From 8f34fa90103a44310190cb86898a65292d55c5d5 Mon Sep 17 00:00:00 2001 From: Stefan Schmiedl Date: Wed, 31 Jul 2019 21:49:24 +0200 Subject: [PATCH 1/2] add getter for TotalPrepaidAmount to IZUGFeRDExportableTransaction interface --- .../ZUGFeRD/IZUGFeRDExportableTransaction.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java b/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java index 3be30215..9d3306aa 100644 --- a/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java +++ b/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java @@ -29,6 +29,7 @@ package org.mustangproject.ZUGFeRD; import org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants; +import java.math.BigDecimal; import java.util.Date; public interface IZUGFeRDExportableTransaction { @@ -257,4 +258,12 @@ public interface IZUGFeRDExportableTransaction { * @return the IssueDateTime in format CCYY-MM-DDTHH:MM:SS */ default String getBuyerOrderReferencedDocumentIssueDateTime() { return null; } + + /** + * get the TotalPrepaidAmount located in SpecifiedTradeSettlementMonetarySummation (v1) or + * SpecifiedTradeSettlementHeaderMonetarySummation (v2) + * @return the total sum (incl. VAT) of prepayments, i.e. the difference between GrandTotalAmount + * and DuePayableAmount + */ + default BigDecimal getTotalPrepaidAmount() { return BigDecimal.ZERO; } } From e668a460fb9b64e4392755e888a22a4d3be85688 Mon Sep 17 00:00:00 2001 From: Stefan Schmiedl Date: Wed, 31 Jul 2019 21:54:00 +0200 Subject: [PATCH 2/2] add totalPrepaidAmount to monetarySummation and use value to calculate duePayableAmount --- .../ZUGFeRD/ZUGFeRDTransactionModelConverter.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDTransactionModelConverter.java b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDTransactionModelConverter.java index 6610f0f2..e8ca6841 100644 --- a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDTransactionModelConverter.java +++ b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDTransactionModelConverter.java @@ -659,9 +659,14 @@ class ZUGFeRDTransactionModelConverter { grandTotalAmount.setValue(currencyFormat(totals.getTotalGross())); monetarySummation.getGrandTotalAmount().add(grandTotalAmount); + AmountType totalPrepaidAmount = xmlFactory.createAmountType(); + totalPrepaidAmount.setCurrencyID(currency); + totalPrepaidAmount.setValue(currencyFormat(trans.getTotalPrepaidAmount())); + monetarySummation.getTotalPrepaidAmount().add(totalPrepaidAmount); + AmountType duePayableAmount = xmlFactory.createAmountType(); duePayableAmount.setCurrencyID(currency); - duePayableAmount.setValue(currencyFormat(totals.getTotalGross())); + duePayableAmount.setValue(currencyFormat(totals.getTotalGross().subtract(trans.getTotalPrepaidAmount()))); monetarySummation.getDuePayableAmount().add(duePayableAmount); return monetarySummation;