diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/TransactionCalculator.java b/library/src/main/java/org/mustangproject/ZUGFeRD/TransactionCalculator.java
index f6e9e510..414ef7bf 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/TransactionCalculator.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/TransactionCalculator.java
@@ -51,6 +51,54 @@ public class TransactionCalculator implements IAbsoluteValueProvider {
return res;
}
+ /***
+ * returns a (potentially concatenated) string of charge reasons, or "Charges" if none are defined
+ * @param percent a specific rate, or null for any rate
+ * @return the space separated String
+ */
+ protected String getChargeReasonForPercent(BigDecimal percent) {
+ String res = " ";
+ IZUGFeRDAllowanceCharge[] charges = trans.getZFCharges();
+ if ((charges != null) && (charges.length > 0)) {
+ for (IZUGFeRDAllowanceCharge currentCharge : charges) {
+ if ((percent==null)||(currentCharge.getTaxPercent().equals(percent))) {
+ if (currentCharge.getReason()!=null) {
+ res = res+currentCharge.getReason()+" ";
+ }
+ }
+ }
+ }
+ res=res.substring(0,res.length()-1);
+ if (res.equals("")) {
+ res="Charges";
+ }
+ return res;
+ }
+
+ /***
+ * returns a (potentially concatenated) string of allowance reasons, or "Allowances", if none are defined
+ * @param percent a specific rate, or null for any rate
+ * @return the space separated String
+ */
+ protected String getAllowanceReasonForPercent(BigDecimal percent) {
+ String res = " ";
+ IZUGFeRDAllowanceCharge[] allowances = trans.getZFAllowances();
+ if ((allowances != null) && (allowances.length > 0)) {
+ for (IZUGFeRDAllowanceCharge currentAllowance : allowances) {
+ if ((percent==null)||(currentAllowance.getTaxPercent().equals(percent))) {
+ if (currentAllowance.getReason()!=null) {
+ res = res+currentAllowance.getReason()+" ";
+ }
+ }
+ }
+ }
+ res=res.substring(0,res.length()-1);
+ if (res.equals("")) {
+ res="Allowances";
+ }
+ return res;
+ }
+
/***
* returns total of allowances for this tax rate
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/XMLUpgrader.java b/library/src/main/java/org/mustangproject/ZUGFeRD/XMLUpgrader.java
index ff733e02..0537c868 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/XMLUpgrader.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/XMLUpgrader.java
@@ -15,7 +15,7 @@ import java.io.*;
public class XMLUpgrader {
static final ClassLoader CLASS_LOADER = XMLUpgrader.class.getClassLoader();
- private static final String RESOURCE_PATH = ""; //$NON-NLS-1$
+ private static final String RESOURCE_PATH = "";
private TransformerFactory mFactory = null;
private Templates mXsltTemplate = null;
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java
index 032b6bfc..2452651d 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java
@@ -454,7 +454,7 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
}
} catch (UnsupportedEncodingException e) {
Logger.getLogger(ZUGFeRD1PullProvider.class.getName()).log(Level.SEVERE, null, e);
- } // $NON-NLS-1$
+ }
}
@Override
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
index 4ea1e87b..5b0cc867 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
@@ -500,7 +500,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
" true\n" +
" \n" +
" " + currencyFormat(calc.getChargesForPercent(currentTaxPercent)) + "\n" +
- " Charge\n" +
+ " "+XMLTools.encodeXML(calc.getChargeReasonForPercent(currentTaxPercent))+"\n" +
" \n" +
" VAT\n" +
" S\n" +
@@ -521,7 +521,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
" false\n" +
" \n" +
" " + currencyFormat(calc.getAllowancesForPercent(currentTaxPercent)) + "\n" +
- " Allowance\n" +
+ " "+XMLTools.encodeXML(calc.getAllowanceReasonForPercent(currentTaxPercent))+"\n" +
" \n" +
" VAT\n" +
" S\n" +
@@ -604,7 +604,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
}
} catch (UnsupportedEncodingException e) {
Logger.getLogger(ZUGFeRD2PullProvider.class.getName()).log(Level.SEVERE, null, e);
- } // $NON-NLS-1$
+ }
}
@Override
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporterFromA3.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporterFromA3.java
index 810411e4..1bbd6607 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporterFromA3.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporterFromA3.java
@@ -490,7 +490,7 @@ public class ZUGFeRDExporterFromA3 extends XRExporter implements IZUGFeRDExporte
pdf.setProducer(fullProducer);
if (ensurePDFisUpgraded) {
try {
- pdfaid.setConformance(conformanceLevel.getLetter());// $NON-NLS-1$
+ pdfaid.setConformance(conformanceLevel.getLetter());
} catch (BadFieldValueException ex) {
// This should be impossible, because it would occur only if an illegal
// conformance level is supplied,
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
index 5e887618..80f3033d 100644
--- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
+++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
@@ -257,8 +257,8 @@ public class ZF2PushTest extends TestCase {
.load(SOURCE_PDF)) {
ze.setTransaction(new Invoice().setCurrency("CHF").addNote("document level 1/2").addNote("document level 2/2").setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID(taxID)).setOwnVATID("DE0815").setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE4711").setContact(new Contact("Franz Müller", "01779999999", "franz@mueller.de", "teststr. 12", "55232", "Entenhausen", "DE"))).setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(16)), price, new BigDecimal(1.0)).addNote("item level 1/1"))
- .addCharge(new Charge(new BigDecimal(0.5)).setTaxPercent(new BigDecimal(16)))
- .addAllowance(new Allowance(new BigDecimal(0.2)).setTaxPercent(new BigDecimal(16)))
+ .addCharge(new Charge(new BigDecimal(0.5)).setReason("quick delivery charge").setTaxPercent(new BigDecimal(16)))
+ .addAllowance(new Allowance(new BigDecimal(0.2)).setReason("discount").setTaxPercent(new BigDecimal(16)))
);
String theXML = new String(ze.getProvider().getXML());