From d598ae94b0f6d334a715f2aaf80b03fbdb2d2341 Mon Sep 17 00:00:00 2001 From: jstaerk Date: Wed, 30 Jul 2025 10:18:13 +0200 Subject: [PATCH] corrected UBL behaviour (ignorance) --- .../main/java/org/mustangproject/Item.java | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/library/src/main/java/org/mustangproject/Item.java b/library/src/main/java/org/mustangproject/Item.java index d2add5d7..b8afa6be 100644 --- a/library/src/main/java/org/mustangproject/Item.java +++ b/library/src/main/java/org/mustangproject/Item.java @@ -123,10 +123,12 @@ public class Item implements IZUGFeRDExportableItem { itemMap.getAsString("Note") .ifPresent(this::addNote); - if (itemMap.getNode("SpecifiedTradeProduct").isPresent()) { - product = new Product(itemMap.getNode("SpecifiedTradeProduct").get()); - } else { - product = new Product(); + if (product==null) { // CII + if (itemMap.getNode("SpecifiedTradeProduct").isPresent()) { + product = new Product(itemMap.getNode("SpecifiedTradeProduct").get()); + } else { + product = new Product(); + } } itemMap.getAsNodeMap("SpecifiedLineTradeAgreement", "SpecifiedSupplyChainTradeAgreement").ifPresent(icnm -> { @@ -161,16 +163,6 @@ public class Item implements IZUGFeRDExportableItem { } }); }); - - - /* - String chargeIndicator = gpptpNodes.getAsNodeMap("AppliedTradeAllowanceCharge").flatMap(acChargeIndicatorNodes -> acChargeIndicatorNodes.getAsString("ChargeIndicator")).get(); - if (chargeIndicator != null) { - BigDecimal actual = gpptpNodes.getAsNodeMap("AppliedTradeAllowanceCharge").flatMap(acChargeIndicatorNodes -> acChargeIndicatorNodes.getAsBigDecimal("ActualAmount")).get(); - if (actual != null) { - } - }*/ - icnm.getAllNodes("AdditionalReferencedDocument").map(ReferencedDocument::fromNode). forEach(this::addReferencedDocument); }); @@ -250,7 +242,7 @@ public class Item implements IZUGFeRDExportableItem { }); }); - itemMap.getAllNodes("AllowanceCharge").map(NodeMap::new).forEach(stac -> { //UBL + itemMap.getAllNodes("AllowanceCharge").map(NodeMap::new).forEach(stac -> { //CII String isChargeString = stac.getAsString("ChargeIndicator").get(); String percentString = stac.getAsStringOrNull("MultiplierFactorNumeric");