From dff6334185e6c9aa6d00b1d68ce3d3a463857e06 Mon Sep 17 00:00:00 2001 From: jstaerk Date: Thu, 19 Nov 2020 12:12:27 +0100 Subject: [PATCH] do not expect dueDate for corrected invoices --- History.md | 1 + .../org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java | 6 +++++- .../test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/History.md b/History.md index a720a280..ded828af 100644 --- a/History.md +++ b/History.md @@ -9,6 +9,7 @@ - xmp errors may not show correctly in log ### 2.0.1 done +- do not expect dueDate for corrected invoices - XR test now includes guideline ID #172 - BigDecimal specific refactoring PR #192 Thanks to weclapp-dev - Preserving metadata PR #193 Thanks to mr-stephan diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index ebaaf5c5..c0d97e94 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -38,6 +38,7 @@ import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; import org.mustangproject.FileAttachment; import org.mustangproject.XMLTools; +import org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants; public class ZUGFeRD2PullProvider implements IXMLProvider { @@ -226,7 +227,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { paymentTermsDescription = trans.getPaymentTermDescription(); } - if (paymentTermsDescription == null) { + if ((paymentTermsDescription == null)&&(trans.getDocumentCode()!= org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants.CORRECTEDINVOICE)) { paymentTermsDescription = "Zahlbar ohne Abzug bis " + germanDateFormat.format(trans.getDueDate()); } @@ -479,6 +480,9 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } } } + if (trans.getDocumentCode()== DocumentCodeTypeConstants.CORRECTEDINVOICE) { + hasDueDate=false; + } HashMap VATPercentAmountMap = calc.getVATPercentAmountMap(); for (BigDecimal currentTaxPercent : VATPercentAmountMap.keySet()) { diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java index 198ad1d5..1375a634 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java @@ -389,8 +389,8 @@ public class ZF2PushTest extends TestCase { ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1().setProducer("My Application") .setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors() .load(SOURCE_PDF)) { - - Invoice i = new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDetailedDeliveryPeriod(new Date(), new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815")).setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0815")).setNumber(number) + // no due date, since we are not expecting money + Invoice i = new Invoice().setIssueDate(new Date()).setDetailedDeliveryPeriod(new Date(), new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815")).setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0815")).setNumber(number) .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty)) .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty)) .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty)).setCorrection("0815");