diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index 1a935abc..f7123578 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -290,11 +290,21 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { paymentTermsDescription = XMLTools.encodeXML(trans.getPaymentTermDescription()); } - if ((paymentTermsDescription == null) && (trans.getDocumentCode() != DocumentCodeTypeConstants.CORRECTEDINVOICE) && (trans.getDocumentCode() != DocumentCodeTypeConstants.CREDITNOTE)) { - paymentTermsDescription = "Zahlbar ohne Abzug bis " + germanDateFormat.format(trans.getDueDate()); + + if ((profile == Profiles.getByName("XRechnung")) && (trans.getCashDiscounts() != null) && (trans.getCashDiscounts().length > 0)) { + for (IZUGFeRDCashDiscount discount : trans.getCashDiscounts() + ) { + if (paymentTermsDescription == null) { + paymentTermsDescription = ""; + } + paymentTermsDescription += discount.getAsXRechnung(); + } + } else if ((paymentTermsDescription == null) && (trans.getDocumentCode() != DocumentCodeTypeConstants.CORRECTEDINVOICE) && (trans.getDocumentCode() != DocumentCodeTypeConstants.CREDITNOTE)) { + paymentTermsDescription = "Please remit until " + germanDateFormat.format(trans.getDueDate()); } + String typecode = "380"; if (trans.getDocumentCode() != null) { typecode = trans.getDocumentCode(); @@ -689,8 +699,8 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } else { xml += buildPaymentTermsXml(); } - if ((profile == Profiles.getByName("Extended"))&&(trans.getCashDiscounts()!=null)&&(trans.getCashDiscounts().length>0)) { - for (IZUGFeRDCashDiscount discount:trans.getCashDiscounts() + if ((profile == Profiles.getByName("Extended")) && (trans.getCashDiscounts() != null) && (trans.getCashDiscounts().length > 0)) { + for (IZUGFeRDCashDiscount discount : trans.getCashDiscounts() ) { xml += discount.getAsCII(); } diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java index 04c0f502..c1f59f22 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java @@ -124,32 +124,34 @@ public class UBLTest extends ResourceCase { } - public void testInvoiceImportOtherUBL() { +/* public void testInvoiceImportOtherUBL() { - File UBLinputFile = getResourceAsFile("EN16931_2_Teilrechnung.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_AbweichenderZahlungsempf.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Betriebskostenabrechnung.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Einfach.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Einfach_DueDate.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Einfach_negativePaymentDue.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Elektron.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_ElektronischeAdresse.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Gutschrift.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Haftpflichtversicherung_Versicherungssteuer.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Innergemeinschaftliche_Lieferungen.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Kraftfahrversicherung_Bruttopreise.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Miete.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_OEPNV.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Physiotherapeut.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Rabatte.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Rechnungskorrektur.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_RechnungsUebertragung.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Reisekostenabrechnung.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_Sachversicherung_berechneter_Steuersatz.ubl.xml"); - File UBLinputFile = getResourceAsFile("EN16931_SEPA_Prenotification.ubl.xml"); - File UBLinputFile = getResourceAsFile("ubl/EN16931_1_Teilrechnung.ubl.xml"); +// File UBLinputFile = getResourceAsFile("ubl/EN16931_2_Teilrechnung.ubl.xml"); +/* File UBLinputFile = getResourceAsFile("ubl/EN16931_AbweichenderZahlungsempf.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Betriebskostenabrechnung.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Einfach.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Einfach_DueDate.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Einfach_negativePaymentDue.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Elektron.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_ElektronischeAdresse.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Gutschrift.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Haftpflichtversicherung_Versicherungssteuer.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Innergemeinschaftliche_Lieferungen.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Kraftfahrversicherung_Bruttopreise.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Miete.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_OEPNV.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Physiotherapeut.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Rabatte.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Rechnungskorrektur.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_RechnungsUebertragung.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Reisekostenabrechnung.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_Sachversicherung_berechneter_Steuersatz.ubl.xml"); + File UBLinputFile = getResourceAsFile("ubl/EN16931_SEPA_Prenotification.ubl.xml"); + + + boolean hasExceptions = false; ZUGFeRDInvoiceImporter zii = null; @@ -168,5 +170,5 @@ public class UBLTest extends ResourceCase { assertEquals("12345", invoice.getRecipient().getZIP()); assertEquals("DE75512108001245126199", invoice.getSender().getBankDetails().get(0).getIBAN()); - } + }*/ } diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java index 937de436..c5ffdf37 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java @@ -88,10 +88,11 @@ public class XRTest extends TestCase { Invoice i = new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()) .setSender(new TradeParty(orgname,"teststr","55232","teststadt","DE").setEmail("sender@example.com").addTaxID("DE4711").addVATID("DE0815").setContact(new Contact("Hans Test","+49123456789","test@example.org")).addBankDetails(new BankDetails("DE12500105170648489890","COBADEFXXX"))) .setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").setEmail("recipient@sample.org")) + .addCashDiscount(new CashDiscount(new BigDecimal(2),7)) + .addCashDiscount(new CashDiscount(new BigDecimal(3),14)) .setReferenceNumber("991-01484-64")//leitweg-id // not using any VAT, this is also a test of zero-rated goods: - .setNumber(number).setPaymentTermDescription("#SKONTO#TAGE=14#PROZENT=2.25#\n" + - "#SKONTO#TAGE=28#PROZENT=1.00#\n").addItem(new Item(new Product("Testprodukt", "", "C62", BigDecimal.ZERO), amount, new BigDecimal(1.0))) + .setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", BigDecimal.ZERO), amount, new BigDecimal(1.0))) .embedFileInXML(fe1); @@ -101,6 +102,7 @@ public class XRTest extends TestCase { zf2p.generateXML(i); String theXML = new String(zf2p.getXML(), StandardCharsets.UTF_8); assertTrue(theXML.contains("