From 6f63c85b149b0a6c130ea3e37193744030387a1e Mon Sep 17 00:00:00 2001 From: jstaerk Date: Fri, 10 Jan 2025 10:39:12 +0100 Subject: [PATCH] also allow item allowances --- History.md | 4 ++- .../main/java/org/mustangproject/Item.java | 16 +++++++++--- .../ZUGFeRD/ZF2ZInvoiceImporterTest.java | 26 ------------------- 3 files changed, 16 insertions(+), 30 deletions(-) diff --git a/History.md b/History.md index a829860d..98dfa6da 100644 --- a/History.md +++ b/History.md @@ -8,7 +8,9 @@ allow to add includedNotes with type - 631 multiple invoice referenced documents - 629 - 630 #296 #565 -- +- 648 +- 651 +- 652 2.15.2 ======= diff --git a/library/src/main/java/org/mustangproject/Item.java b/library/src/main/java/org/mustangproject/Item.java index 3f302d63..8fefa87f 100644 --- a/library/src/main/java/org/mustangproject/Item.java +++ b/library/src/main/java/org/mustangproject/Item.java @@ -176,15 +176,25 @@ public class Item implements IZUGFeRDExportableItem { stac.getAsNodeMap("ChargeIndicator").ifPresent(ci -> { String isChargeString=ci.getAsString("Indicator").get(); String percentString=stac.getAsStringOrNull("CalculationPercent"); + String amountString=stac.getAsStringOrNull("ActualAmount"); String reason=stac.getAsStringOrNull("Reason"); - Allowance izac=null; + Charge izac= new Charge(); if (isChargeString.equalsIgnoreCase("false")) { izac = new Allowance(); + } else { + izac = new Charge(); + } + if (amountString!=null) { + izac.setTotalAmount(new BigDecimal(amountString)); } - izac.setPercent(new BigDecimal(percentString)); izac.setReason(reason); - addAllowance(izac); + + if (isChargeString.equalsIgnoreCase("false")) { + addAllowance(izac); + } else { + addCharge(izac); + } }); }); diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java index 17c1e15b..49c5ce78 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java @@ -40,7 +40,6 @@ import java.nio.file.Paths; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; -import java.util.Date; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; @@ -104,31 +103,6 @@ public class ZF2ZInvoiceImporterTest extends ResourceCase { } - public void testTheInvoiceImport() { - - ZUGFeRDInvoiceImporter zii = new ZUGFeRDInvoiceImporter("C:\\Users\\jstaerk\\workspace\\XMLExamples\\zfdiverses\\20250108_\\xmlDieWirLesenSollten.xml"); - - boolean hasExceptions = false; - Invoice invoice = null; - try { - invoice = zii.extractInvoice(); - } catch (XPathExpressionException | ParseException e) { - hasExceptions = true; - } - assertFalse(hasExceptions); - // Reading ZUGFeRD - - TransactionCalculator tc = new TransactionCalculator(invoice); - assertEquals(new BigDecimal("0.00"), tc.getDuePayable()); - assertEquals(new BigDecimal("0.00"), tc.getGrandTotal()); - - - // name street location zip country, contact name phone email, total amount - - } - - - public void testInvoiceImportUBL() {