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());