From 68294ea9d2ef838e82ec04f56eb35506f79ef632 Mon Sep 17 00:00:00 2001 From: Jens Nober Date: Fri, 30 Aug 2024 09:15:25 +0200 Subject: [PATCH 1/5] Issue #458 Allow multiple PaymentTerms for in Invoice --- .../main/java/org/mustangproject/Invoice.java | 14 ++- .../ZUGFeRD/IExportableTransaction.java | 2 +- .../ZUGFeRD/OXPullProvider.java | 48 +++++----- .../ZUGFeRD/ZUGFeRD1PullProvider.java | 79 ++++++++++------- .../ZUGFeRD/ZUGFeRD2PullProvider.java | 88 +++++++++++-------- .../mustangproject/ZUGFeRD/ZF2EdgeTest.java | 16 ++-- .../org/mustangproject/ZUGFeRD/ZF2Test.java | 2 +- 7 files changed, 146 insertions(+), 103 deletions(-) diff --git a/library/src/main/java/org/mustangproject/Invoice.java b/library/src/main/java/org/mustangproject/Invoice.java index 639663b9..0544f0b0 100644 --- a/library/src/main/java/org/mustangproject/Invoice.java +++ b/library/src/main/java/org/mustangproject/Invoice.java @@ -28,6 +28,7 @@ import org.mustangproject.ZUGFeRD.*; import org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; /*** @@ -56,7 +57,7 @@ public class Invoice implements IExportableTransaction { protected ArrayList Allowances = new ArrayList<>(), Charges = new ArrayList<>(), LogisticsServiceCharges = new ArrayList<>(); - protected IZUGFeRDPaymentTerms paymentTerms = null; + protected IZUGFeRDPaymentTerms[] paymentTerms = null; protected String invoiceReferencedDocumentID = null; protected Date invoiceReferencedIssueDate; @@ -641,15 +642,22 @@ public class Invoice implements IExportableTransaction { @Override - public IZUGFeRDPaymentTerms getPaymentTerms() { + public IZUGFeRDPaymentTerms[] getPaymentTerms() { return paymentTerms; } - public Invoice setPaymentTerms(IZUGFeRDPaymentTerms paymentTerms) { + @JsonProperty + public Invoice setPaymentTerms(IZUGFeRDPaymentTerms[] paymentTerms) { this.paymentTerms = paymentTerms; return this; } + public Invoice setPaymentTerms(IZUGFeRDPaymentTerms paymentTerms) { + this.paymentTerms = new IZUGFeRDPaymentTerms[] { paymentTerms }; + return this; + } + + @Override public TradeParty getDeliveryAddress() { return deliveryAddress; diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java index 0a013ba3..2c9e9d53 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java @@ -310,7 +310,7 @@ public interface IExportableTransaction { * * @return the IZUGFeRDPaymentTerms of the invoice */ - default IZUGFeRDPaymentTerms getPaymentTerms() { + default IZUGFeRDPaymentTerms[] getPaymentTerms() { return null; } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java index 7347d422..0ff721e9 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java @@ -505,36 +505,44 @@ public class OXPullProvider extends ZUGFeRD2PullProvider { private String buildPaymentTermsXml() { - final IZUGFeRDPaymentTerms paymentTerms = trans.getPaymentTerms(); - if (paymentTerms == null) { + final IZUGFeRDPaymentTerms[] paymentTerms = trans.getPaymentTerms(); + + String paymentTermsXml = ""; + if (paymentTerms == null || paymentTerms.length == 0) { return ""; } - String paymentTermsXml = ""; - final IZUGFeRDPaymentDiscountTerms discountTerms = paymentTerms.getDiscountTerms(); - paymentTermsXml += "" + paymentTerms.getDescription() + ""; - if (discountTerms != null) { - paymentTermsXml += ""; - final String currency = trans.getCurrency(); - final String basisAmount = currencyFormat(calc.getGrandTotal()); - paymentTermsXml += "" + basisAmount + ""; - paymentTermsXml += "" + discountTerms.getCalculationPercentage().toString() + for (IZUGFeRDPaymentTerms pt : paymentTerms) + { + paymentTermsXml += ""; + + final IZUGFeRDPaymentDiscountTerms discountTerms = pt.getDiscountTerms(); + paymentTermsXml += "" + pt.getDescription() + ""; + if (discountTerms != null) + { + paymentTermsXml += ""; + final String currency = trans.getCurrency(); + final String basisAmount = currencyFormat(calc.getGrandTotal()); + paymentTermsXml += "" + basisAmount + ""; + paymentTermsXml += "" + discountTerms.getCalculationPercentage().toString() + ""; - if (discountTerms.getBaseDate() != null) { - final Date baseDate = discountTerms.getBaseDate(); - paymentTermsXml += ""; - paymentTermsXml += DATE.udtFormat(baseDate); - paymentTermsXml += ""; + if (discountTerms.getBaseDate() != null) + { + final Date baseDate = discountTerms.getBaseDate(); + paymentTermsXml += ""; + paymentTermsXml += DATE.udtFormat(baseDate); + paymentTermsXml += ""; - paymentTermsXml += "" + paymentTermsXml += "" + discountTerms.getBasePeriodMeasure() + ""; + } + + paymentTermsXml += ""; } - paymentTermsXml += ""; + paymentTermsXml += ""; } - - paymentTermsXml += ""; return paymentTermsXml; } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java index b98abebc..6708a6a7 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java @@ -433,44 +433,57 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider { } private String buildPaymentTermsXml() { - String paymentTermsXml = ""; + final IZUGFeRDPaymentTerms[] paymentTerms = trans.getPaymentTerms(); - final IZUGFeRDPaymentTerms paymentTerms = trans.getPaymentTerms(); - final IZUGFeRDPaymentDiscountTerms discountTerms = paymentTerms.getDiscountTerms(); - final Date dueDate = paymentTerms.getDueDate(); - if (dueDate != null && discountTerms != null && discountTerms.getBaseDate() != null) { - throw new IllegalStateException( + String paymentTermsXml = ""; + if (paymentTerms == null || paymentTerms.length == 0) { + return paymentTermsXml; + } + + for (IZUGFeRDPaymentTerms pt : paymentTerms) + { + paymentTermsXml += ""; + + final IZUGFeRDPaymentDiscountTerms discountTerms = pt.getDiscountTerms(); + final Date dueDate = pt.getDueDate(); + if (dueDate != null && discountTerms != null && discountTerms.getBaseDate() != null) + { + throw new IllegalStateException( "if paymentTerms.dueDate is specified, paymentTerms.discountTerms.baseDate has not to be specified"); - } - paymentTermsXml += "" + paymentTerms.getDescription() + ""; - if (dueDate != null) { - paymentTermsXml += ""; - paymentTermsXml += DATE.udtFormat(dueDate); - paymentTermsXml += ""; - } - - if (discountTerms != null) { - paymentTermsXml += ""; - final String currency = trans.getCurrency(); - final String basisAmount = currencyFormat(calc.getGrandTotal()); - paymentTermsXml += "" + basisAmount + ""; - paymentTermsXml += "" + discountTerms.getCalculationPercentage().toString() - + ""; - - if (discountTerms.getBaseDate() != null) { - final Date baseDate = discountTerms.getBaseDate(); - paymentTermsXml += ""; - paymentTermsXml += DATE.udtFormat(baseDate); - paymentTermsXml += ""; - - paymentTermsXml += "" - + discountTerms.getBasePeriodMeasure() + ""; + } + paymentTermsXml += "" + pt.getDescription() + ""; + if (dueDate != null) + { + paymentTermsXml += ""; + paymentTermsXml += DATE.udtFormat(dueDate); + paymentTermsXml += ""; } - paymentTermsXml += ""; - } + if (discountTerms != null) + { + paymentTermsXml += ""; + final String currency = trans.getCurrency(); + final String basisAmount = currencyFormat(calc.getGrandTotal()); + paymentTermsXml += "" + basisAmount + ""; + paymentTermsXml += "" + discountTerms.getCalculationPercentage().toString() + + ""; - paymentTermsXml += ""; + if (discountTerms.getBaseDate() != null) + { + final Date baseDate = discountTerms.getBaseDate(); + paymentTermsXml += ""; + paymentTermsXml += DATE.udtFormat(baseDate); + paymentTermsXml += ""; + + paymentTermsXml += "" + + discountTerms.getBasePeriodMeasure() + ""; + } + + paymentTermsXml += ""; + } + + paymentTermsXml += ""; + } return paymentTermsXml; } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index 192582f4..e397a4c3 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -963,56 +963,70 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } private String buildPaymentTermsXml() { - final IZUGFeRDPaymentTerms paymentTerms = trans.getPaymentTerms(); - if (paymentTerms == null) { + final IZUGFeRDPaymentTerms[] paymentTerms = trans.getPaymentTerms(); + + String paymentTermsXml = ""; + if (paymentTerms == null || paymentTerms.length == 0) { return ""; } - String paymentTermsXml = ""; - final IZUGFeRDPaymentDiscountTerms discountTerms = paymentTerms.getDiscountTerms(); - final Date dueDate = paymentTerms.getDueDate(); - if (dueDate != null && discountTerms != null && discountTerms.getBaseDate() != null) { - throw new IllegalStateException( - "if paymentTerms.dueDate is specified, paymentTerms.discountTerms.baseDate has not to be specified"); - } - paymentTermsXml += "" + paymentTerms.getDescription() + ""; + for (IZUGFeRDPaymentTerms pt : paymentTerms) + { - if (dueDate != null) { - paymentTermsXml += ""; - paymentTermsXml += DATE.udtFormat(dueDate); - paymentTermsXml += ""; - } + paymentTermsXml += ""; - if (trans.getTradeSettlement() != null) { - for (final IZUGFeRDTradeSettlement payment : trans.getTradeSettlement()) { - if ((payment != null) && (payment instanceof IZUGFeRDTradeSettlementDebit)) { - paymentTermsXml += payment.getPaymentXML(); + final IZUGFeRDPaymentDiscountTerms discountTerms = pt.getDiscountTerms(); + final Date dueDate = pt.getDueDate(); + if (dueDate != null && discountTerms != null && discountTerms.getBaseDate() != null) + { + throw new IllegalStateException( + "if paymentTerms.dueDate is specified, paymentTerms.discountTerms.baseDate has not to be specified"); + } + paymentTermsXml += "" + pt.getDescription() + ""; + + if (dueDate != null) + { + paymentTermsXml += ""; + paymentTermsXml += DATE.udtFormat(dueDate); + paymentTermsXml += ""; + } + + if (trans.getTradeSettlement() != null) + { + for (final IZUGFeRDTradeSettlement payment : trans.getTradeSettlement()) + { + if ((payment != null) && (payment instanceof IZUGFeRDTradeSettlementDebit)) + { + paymentTermsXml += payment.getPaymentXML(); + } } } - } - if (discountTerms != null) { - paymentTermsXml += ""; - final String currency = trans.getCurrency(); - final String basisAmount = currencyFormat(calc.getGrandTotal()); - paymentTermsXml += "" + basisAmount + ""; - paymentTermsXml += "" + discountTerms.getCalculationPercentage().toString() - + ""; + if (discountTerms != null) + { + paymentTermsXml += ""; + final String currency = trans.getCurrency(); + final String basisAmount = currencyFormat(calc.getGrandTotal()); + paymentTermsXml += "" + basisAmount + ""; + paymentTermsXml += "" + discountTerms.getCalculationPercentage().toString() + + ""; - if (discountTerms.getBaseDate() != null) { - final Date baseDate = discountTerms.getBaseDate(); - paymentTermsXml += ""; - paymentTermsXml += DATE.udtFormat(baseDate); - paymentTermsXml += ""; + if (discountTerms.getBaseDate() != null) + { + final Date baseDate = discountTerms.getBaseDate(); + paymentTermsXml += ""; + paymentTermsXml += DATE.udtFormat(baseDate); + paymentTermsXml += ""; - paymentTermsXml += "" - + discountTerms.getBasePeriodMeasure() + ""; + paymentTermsXml += "" + + discountTerms.getBasePeriodMeasure() + ""; + } + + paymentTermsXml += ""; } - paymentTermsXml += ""; + paymentTermsXml += ""; } - - paymentTermsXml += ""; return paymentTermsXml; } diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java index 4708b09a..84af8ca2 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java @@ -225,7 +225,7 @@ public class ZF2EdgeTest extends MustangReaderTestCase { } @Override - public IZUGFeRDPaymentTerms getPaymentTerms() { + public IZUGFeRDPaymentTerms[] getPaymentTerms() { PaymentDiscountTerms paymentDiscountTerms = new PaymentDiscountTerms( new BigDecimal(2), // skonto prozent @@ -240,13 +240,13 @@ public class ZF2EdgeTest extends MustangReaderTestCase { e.printStackTrace(); } - return - new PaymentTerms( - "14 Tage 2% Skonto, 30 Tage rein netto", - due,// fälligkeitsdatum - paymentDiscountTerms //PaymentDiscountTerms - ); - + return new IZUGFeRDPaymentTerms[]{ + new PaymentTerms( + "14 Tage 2% Skonto, 30 Tage rein netto", + due,// fälligkeitsdatum + paymentDiscountTerms //PaymentDiscountTerms + ) + }; } @Override diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java index d945c770..8bd721e9 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java @@ -243,7 +243,7 @@ public class ZF2Test extends MustangReaderTestCase { try { assertEquals(zi.getVersion(), 2); } catch (final Exception e) { - // TODO Auto-generated catch block + // TCalODO Auto-generated catch block e.printStackTrace(); } } From 189decbe28be7178e0e3e9a0e1468af77f565931 Mon Sep 17 00:00:00 2001 From: Jens Nober Date: Fri, 30 Aug 2024 09:22:47 +0200 Subject: [PATCH 2/5] Issue #458 Allow multiple PaymentTerms for in Invoice --- library/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java index 8bd721e9..d945c770 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java @@ -243,7 +243,7 @@ public class ZF2Test extends MustangReaderTestCase { try { assertEquals(zi.getVersion(), 2); } catch (final Exception e) { - // TCalODO Auto-generated catch block + // TODO Auto-generated catch block e.printStackTrace(); } } From 53646a615e40007fcdd7b149da3ef1db518102a5 Mon Sep 17 00:00:00 2001 From: Jens Nober Date: Fri, 30 Aug 2024 09:36:16 +0200 Subject: [PATCH 3/5] Issue #458 Allow multiple PaymentTerms for in Invoice --- library/src/main/java/org/mustangproject/Invoice.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/org/mustangproject/Invoice.java b/library/src/main/java/org/mustangproject/Invoice.java index 0544f0b0..4ada39a9 100644 --- a/library/src/main/java/org/mustangproject/Invoice.java +++ b/library/src/main/java/org/mustangproject/Invoice.java @@ -653,7 +653,13 @@ public class Invoice implements IExportableTransaction { } public Invoice setPaymentTerms(IZUGFeRDPaymentTerms paymentTerms) { - this.paymentTerms = new IZUGFeRDPaymentTerms[] { paymentTerms }; + if (null != paymentTerms) { + this.paymentTerms = new IZUGFeRDPaymentTerms[] { paymentTerms }; + } + else { + this.paymentTerms = null; + } + return this; } From 42e8f80481052bf395bbeec0ab5d9bd418edec1a Mon Sep 17 00:00:00 2001 From: Jens Nober Date: Sat, 18 Jan 2025 15:10:20 +0100 Subject: [PATCH 4/5] Issue #458 Restore old public api --- .../main/java/org/mustangproject/Invoice.java | 41 +++++++++++++------ .../ZUGFeRD/IExportableTransaction.java | 13 ++++-- .../ZUGFeRD/OXPullProvider.java | 2 +- .../ZUGFeRD/ZUGFeRD1PullProvider.java | 2 +- .../ZUGFeRD/ZUGFeRD2PullProvider.java | 2 +- .../mustangproject/ZUGFeRD/ZF2EdgeTest.java | 8 ++-- 6 files changed, 45 insertions(+), 23 deletions(-) diff --git a/library/src/main/java/org/mustangproject/Invoice.java b/library/src/main/java/org/mustangproject/Invoice.java index 4ada39a9..991a5c8f 100644 --- a/library/src/main/java/org/mustangproject/Invoice.java +++ b/library/src/main/java/org/mustangproject/Invoice.java @@ -57,7 +57,7 @@ public class Invoice implements IExportableTransaction { protected ArrayList Allowances = new ArrayList<>(), Charges = new ArrayList<>(), LogisticsServiceCharges = new ArrayList<>(); - protected IZUGFeRDPaymentTerms[] paymentTerms = null; + protected ArrayList paymentTerms = new ArrayList<>(); protected String invoiceReferencedDocumentID = null; protected Date invoiceReferencedIssueDate; @@ -642,24 +642,41 @@ public class Invoice implements IExportableTransaction { @Override - public IZUGFeRDPaymentTerms[] getPaymentTerms() { - return paymentTerms; + public IZUGFeRDPaymentTerms getPaymentTerms() { + if (!paymentTerms.isEmpty()) { + return paymentTerms.get(0); + } + return null; } @JsonProperty - public Invoice setPaymentTerms(IZUGFeRDPaymentTerms[] paymentTerms) { - this.paymentTerms = paymentTerms; + public Invoice setPaymentTerms(IZUGFeRDPaymentTerms paymentTerm) { + if (paymentTerms.isEmpty()) { + paymentTerms.add(paymentTerm); + } + else { + paymentTerms.set(0, paymentTerm); + } return this; } - public Invoice setPaymentTerms(IZUGFeRDPaymentTerms paymentTerms) { - if (null != paymentTerms) { - this.paymentTerms = new IZUGFeRDPaymentTerms[] { paymentTerms }; - } - else { - this.paymentTerms = null; - } + @Override + public IZUGFeRDPaymentTerms[] getExtendedPaymentTerms() { + return paymentTerms.toArray(new IZUGFeRDPaymentTerms[0]); + } + public Invoice setExtendedPaymentTerms(IZUGFeRDPaymentTerms[] paymentTerms) { + this.paymentTerms.clear(); + this.paymentTerms.addAll(Arrays.asList(paymentTerms)); + return this; + } + + /** + * Set multiple payment terms when using the EXTENDED profile. + * @return + */ + public Invoice addPaymentTerms(IZUGFeRDPaymentTerms paymentTerm) { + paymentTerms.add(paymentTerm); return this; } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java index 2c9e9d53..edc7f538 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java @@ -305,15 +305,22 @@ public interface IExportableTransaction { } /** - * get payment terms. if set, getPaymentTermDescription() and getDueDate() are - * ignored + * get payment terms. if set, getPaymentTermDescription() and getDueDate() are ignored * * @return the IZUGFeRDPaymentTerms of the invoice */ - default IZUGFeRDPaymentTerms[] getPaymentTerms() { + default IZUGFeRDPaymentTerms getPaymentTerms() { return null; } + /** + * Get payment terms for the EXTENDED profile (multiple terms are allowed) + * @return + */ + default IZUGFeRDPaymentTerms[] getExtendedPaymentTerms() { + return new IZUGFeRDPaymentTerms[0]; + } + /** * returns if a rebate agreements exists * diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java index 0ff721e9..2f1c7903 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java @@ -505,7 +505,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider { private String buildPaymentTermsXml() { - final IZUGFeRDPaymentTerms[] paymentTerms = trans.getPaymentTerms(); + final IZUGFeRDPaymentTerms[] paymentTerms = trans.getExtendedPaymentTerms(); String paymentTermsXml = ""; if (paymentTerms == null || paymentTerms.length == 0) { diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java index 6708a6a7..87e6f479 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java @@ -433,7 +433,7 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider { } private String buildPaymentTermsXml() { - final IZUGFeRDPaymentTerms[] paymentTerms = trans.getPaymentTerms(); + final IZUGFeRDPaymentTerms[] paymentTerms = trans.getExtendedPaymentTerms(); String paymentTermsXml = ""; if (paymentTerms == null || paymentTerms.length == 0) { diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index e397a4c3..166802f6 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -963,7 +963,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } private String buildPaymentTermsXml() { - final IZUGFeRDPaymentTerms[] paymentTerms = trans.getPaymentTerms(); + final IZUGFeRDPaymentTerms[] paymentTerms = trans.getExtendedPaymentTerms(); String paymentTermsXml = ""; if (paymentTerms == null || paymentTerms.length == 0) { diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java index 84af8ca2..f095372b 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java @@ -225,7 +225,7 @@ public class ZF2EdgeTest extends MustangReaderTestCase { } @Override - public IZUGFeRDPaymentTerms[] getPaymentTerms() { + public IZUGFeRDPaymentTerms getPaymentTerms() { PaymentDiscountTerms paymentDiscountTerms = new PaymentDiscountTerms( new BigDecimal(2), // skonto prozent @@ -240,13 +240,11 @@ public class ZF2EdgeTest extends MustangReaderTestCase { e.printStackTrace(); } - return new IZUGFeRDPaymentTerms[]{ - new PaymentTerms( + return new PaymentTerms( "14 Tage 2% Skonto, 30 Tage rein netto", due,// fälligkeitsdatum paymentDiscountTerms //PaymentDiscountTerms - ) - }; + ); } @Override From 3cca3683b7f63a59329dce3da1723faef71bfdce Mon Sep 17 00:00:00 2001 From: Jens Nober Date: Sat, 18 Jan 2025 15:33:30 +0100 Subject: [PATCH 5/5] Issue #458 Restore old public api --- library/src/main/java/org/mustangproject/Invoice.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/src/main/java/org/mustangproject/Invoice.java b/library/src/main/java/org/mustangproject/Invoice.java index 991a5c8f..94b3c643 100644 --- a/library/src/main/java/org/mustangproject/Invoice.java +++ b/library/src/main/java/org/mustangproject/Invoice.java @@ -28,7 +28,6 @@ import org.mustangproject.ZUGFeRD.*; import org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; /*** @@ -649,7 +648,6 @@ public class Invoice implements IExportableTransaction { return null; } - @JsonProperty public Invoice setPaymentTerms(IZUGFeRDPaymentTerms paymentTerm) { if (paymentTerms.isEmpty()) { paymentTerms.add(paymentTerm);