From 72f9093e94910f68bad674e7f41d30092b69d0b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jochen=20Sta=CC=88rk?= Date: Thu, 22 Oct 2020 12:11:17 +0200 Subject: [PATCH] add chareg/allowance percent to XML, if set --- .../main/java/org/mustangproject/Charge.java | 4 ++- .../ZUGFeRD/IZUGFeRDAllowanceCharge.java | 1 + .../ZUGFeRD/ZUGFeRD2PullProvider.java | 25 ++++++++++++++++--- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/library/src/main/java/org/mustangproject/Charge.java b/library/src/main/java/org/mustangproject/Charge.java index f9ca59ab..024567f0 100644 --- a/library/src/main/java/org/mustangproject/Charge.java +++ b/library/src/main/java/org/mustangproject/Charge.java @@ -9,7 +9,7 @@ import java.math.BigDecimal; public class Charge implements IZUGFeRDAllowanceCharge { - protected BigDecimal percent; + protected BigDecimal percent = null; protected BigDecimal totalAmount; protected BigDecimal taxPercent; protected String reason; @@ -67,6 +67,7 @@ public class Charge implements IZUGFeRDAllowanceCharge { } + @Override public BigDecimal getPercent() { return percent; } @@ -82,6 +83,7 @@ public class Charge implements IZUGFeRDAllowanceCharge { } + public Charge setCategoryCode(String categoryCode) { this.categoryCode = categoryCode; return this; diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDAllowanceCharge.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDAllowanceCharge.java index edbacedd..152c445c 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDAllowanceCharge.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDAllowanceCharge.java @@ -25,6 +25,7 @@ import java.math.BigDecimal; public interface IZUGFeRDAllowanceCharge { BigDecimal getTotalAmount(IAbsoluteValueProvider trans); + default BigDecimal getPercent() {return null;} String getReason(); diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index 25dbb4b1..a060af4f 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -96,7 +96,8 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IAbsoluteValueProvide return res; } -//move + + //move protected BigDecimal getTotalPrepaid() { if (trans.getTotalPrepaidAmount() == null) { return new BigDecimal(0); @@ -207,6 +208,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IAbsoluteValueProvide return hm; } + @Override public Profile getProfile() { return profile; @@ -273,6 +275,22 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IAbsoluteValueProvide } + + protected String getAllowanceChargeStr(IZUGFeRDAllowanceCharge allowance, IAbsoluteValueProvider item) { + String percentage = ""; + String chargeIndicator = "false"; + if (allowance.getPercent() != null) { + percentage = "" + allowance.getPercent() + ""; + percentage += "" + item.getValue() + ""; + } + if (allowance.isCharge()) { + chargeIndicator = "true"; + } + + String allowanceChargeStr = "" + chargeIndicator + "" + percentage + "" + priceFormat(allowance.getTotalAmount(item)) + ""; + return allowanceChargeStr; + } + @Override public void generateXML(IExportableTransaction trans) { this.trans = trans; @@ -376,12 +394,13 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IAbsoluteValueProvide String allowanceChargeStr = ""; if (currentItem.getItemAllowances() != null && currentItem.getItemAllowances().length > 0) { for (IZUGFeRDAllowanceCharge allowance : currentItem.getItemAllowances()) { - allowanceChargeStr = "false" + priceFormat(allowance.getTotalAmount(currentItem)) + ""; + allowanceChargeStr += getAllowanceChargeStr(allowance, currentItem); } } if (currentItem.getItemCharges() != null && currentItem.getItemCharges().length > 0) { for (IZUGFeRDAllowanceCharge charge : currentItem.getItemCharges()) { - allowanceChargeStr += "true" + priceFormat(charge.getTotalAmount(currentItem)) + ""; + allowanceChargeStr += getAllowanceChargeStr(charge, currentItem); + } }