From 1c8d5c7d60a7fc30f5eee8ad4e0bd5c2447950ee Mon Sep 17 00:00:00 2001 From: Jan Rosendahl Date: Thu, 21 Nov 2024 16:46:57 +0100 Subject: [PATCH 1/9] #571: init for IBAN and mandate --- library/src/main/java/org/mustangproject/DirectDebit.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/org/mustangproject/DirectDebit.java b/library/src/main/java/org/mustangproject/DirectDebit.java index e4ac9a85..cc408eb7 100644 --- a/library/src/main/java/org/mustangproject/DirectDebit.java +++ b/library/src/main/java/org/mustangproject/DirectDebit.java @@ -20,7 +20,8 @@ public class DirectDebit implements IZUGFeRDTradeSettlementDebit { * bean constructor */ public DirectDebit() { - + this.IBAN = ""; + this.mandate = ""; } /*** From 742a135b6a953a80b7f77e0c5248b23abf98cc71 Mon Sep 17 00:00:00 2001 From: Jan Rosendahl Date: Thu, 21 Nov 2024 16:47:37 +0100 Subject: [PATCH 2/9] feature: Category Code for tax category --- .../java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java index a5d16dae..f72316e4 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java @@ -743,6 +743,15 @@ public class ZUGFeRDImporter extends ZUGFeRDInvoiceImporter { node = getNodeByName(node.getChildNodes(), "CalculatedAmount"); lineItem.setTax(XMLTools.tryBigDecimal(node)); } + + node = getNodeByName(nn.getChildNodes(), "ApplicableTradeTax"); + if (node != null) { + node = getNodeByName(node.getChildNodes(), "CategoryCode"); + if(node != null){ + lineItem.getProduct().setTaxCategoryCode(XMLTools.getNodeValue(node)); + } + } + node = getNodeByName(nn.getChildNodes(), "BillingSpecifiedPeriod"); if (node != null) { final Node start = getNodeByName(node.getChildNodes(), "StartDateTime"); From 419af1d8d1b33a97a6c19feb40eabe27c4d1c832 Mon Sep 17 00:00:00 2001 From: Jan Rosendahl Date: Thu, 21 Nov 2024 17:20:57 +0100 Subject: [PATCH 3/9] div/zero --- .../java/org/mustangproject/ZUGFeRD/LineCalculator.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/LineCalculator.java b/library/src/main/java/org/mustangproject/ZUGFeRD/LineCalculator.java index f3e8aa2d..2f997991 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/LineCalculator.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/LineCalculator.java @@ -44,10 +44,14 @@ public class LineCalculator { BigDecimal multiplicator = vatPercent.divide(BigDecimal.valueOf(100)); priceGross = currentItem.getPrice(); // see https://github.com/ZUGFeRD/mustangproject/issues/159 price = priceGross.subtract(allowance).add(charge); - itemTotalNetAmount = currentItem.getQuantity().multiply(getPrice()).divide(currentItem.getBasisQuantity(), 18, RoundingMode.HALF_UP) + // Division/Zero occurred here. + // Used the setScale only because that's also done in getBasisQuantity + BigDecimal basisQuantity = currentItem.getBasisQuantity().compareTo(BigDecimal.ZERO) == 0 + ? BigDecimal.ONE.setScale(4) + : currentItem.getBasisQuantity(); + itemTotalNetAmount = currentItem.getQuantity().multiply(getPrice()).divide(basisQuantity, 18, RoundingMode.HALF_UP) .subtract(allowanceItemTotal).setScale(2, RoundingMode.HALF_UP); itemTotalVATAmount = itemTotalNetAmount.multiply(multiplicator); - } public BigDecimal getPrice() { From 35f8ff4253cfbd596c418c03f10216b8905a0d8a Mon Sep 17 00:00:00 2001 From: langfr Date: Sat, 23 Nov 2024 14:05:23 +0000 Subject: [PATCH 4/9] Fix compilation problems. --- .../main/java/org/mustangproject/DirectDebit.java | 14 ++++++++++++-- .../java/org/mustangproject/FileAttachment.java | 6 +----- .../main/java/org/mustangproject/IncludedNote.java | 12 +++++++++++- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/library/src/main/java/org/mustangproject/DirectDebit.java b/library/src/main/java/org/mustangproject/DirectDebit.java index e4ac9a85..bc47204d 100644 --- a/library/src/main/java/org/mustangproject/DirectDebit.java +++ b/library/src/main/java/org/mustangproject/DirectDebit.java @@ -9,12 +9,12 @@ public class DirectDebit implements IZUGFeRDTradeSettlementDebit { /** * Debited account identifier (BT-91) */ - protected final String IBAN; + protected String IBAN; /** * Mandate reference identifier (BT-89) */ - protected final String mandate; + protected String mandate; /** * bean constructor @@ -42,8 +42,18 @@ public class DirectDebit implements IZUGFeRDTradeSettlementDebit { return this.IBAN; } + public DirectDebit setIBAN(String iBAN) { + this.IBAN = iBAN; + return this; + } + @Override public String getMandate() { return this.mandate; } + + public DirectDebit setMandate(String mandate) { + this.mandate = mandate; + return this; + } } diff --git a/library/src/main/java/org/mustangproject/FileAttachment.java b/library/src/main/java/org/mustangproject/FileAttachment.java index dfced588..ba924af3 100644 --- a/library/src/main/java/org/mustangproject/FileAttachment.java +++ b/library/src/main/java/org/mustangproject/FileAttachment.java @@ -21,7 +21,7 @@ public class FileAttachment { this.mimetype = mimetype; this.relation = relation; this.data = data; - description = "Additional file attachment"; + this.description = "Additional file attachment"; } public String getDescription() { @@ -68,8 +68,4 @@ public class FileAttachment { this.data = data; return this; } - - - - } diff --git a/library/src/main/java/org/mustangproject/IncludedNote.java b/library/src/main/java/org/mustangproject/IncludedNote.java index eff8385b..9133bcca 100644 --- a/library/src/main/java/org/mustangproject/IncludedNote.java +++ b/library/src/main/java/org/mustangproject/IncludedNote.java @@ -59,10 +59,20 @@ public class IncludedNote { return content; } + public IncludedNote setContent(String content) { + this.content = content; + return this; +} + public SubjectCode getSubjectCode() { return subjectCode; } - + + public IncludedNote setSubjectCode(SubjectCode subjectCode) { + this.subjectCode = subjectCode; + return this; + } + public String toCiiXml(){ String result = INCLUDE_START + CONTENT_START + XMLTools.encodeXML(getContent() )+ CONTENT_END; From b69dceaae76351b1852ee7b0c03ae7aa8a5633d7 Mon Sep 17 00:00:00 2001 From: langfr Date: Sat, 23 Nov 2024 14:36:14 +0000 Subject: [PATCH 5/9] dom4j: exclude all (optional) dependencies to avoid potential conflicts. --- library/pom.xml | 6 ++++++ validator/pom.xml | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/library/pom.xml b/library/pom.xml index 6e5e6daa..b9e92200 100644 --- a/library/pom.xml +++ b/library/pom.xml @@ -116,6 +116,12 @@ org.dom4j dom4j 2.1.4 + + + * + * + + diff --git a/validator/pom.xml b/validator/pom.xml index b09a497b..36ef5550 100644 --- a/validator/pom.xml +++ b/validator/pom.xml @@ -44,6 +44,12 @@ org.dom4j dom4j 2.1.4 + + + * + * + + commons-io From 446643956123ca5e5068ae6f4ca1f03806a9f615 Mon Sep 17 00:00:00 2001 From: ean Date: Wed, 27 Nov 2024 12:58:36 +0100 Subject: [PATCH 6/9] Import IncludedNotes on item extraction similar to #554 but on item level --- .../java/org/mustangproject/IncludedNote.java | 2 +- .../main/java/org/mustangproject/Item.java | 50 ++++++ .../java/org/mustangproject/SubjectCode.java | 6 +- .../ZUGFeRD/IZUGFeRDExportableItem.java | 5 + .../ZUGFeRD/ZF2ZInvoiceImporterTest.java | 24 +++ .../TESTXRECHNUNG_INVDSS_012015776085.XML | 157 ++++++++++++++++++ ...TESTZUGFERD_1_INVDSS_012015738820PDF-1.pdf | Bin 0 -> 88656 bytes 7 files changed, 242 insertions(+), 2 deletions(-) create mode 100644 library/src/test/resources/TESTXRECHNUNG_INVDSS_012015776085.XML create mode 100644 library/src/test/resources/ZTESTZUGFERD_1_INVDSS_012015738820PDF-1.pdf diff --git a/library/src/main/java/org/mustangproject/IncludedNote.java b/library/src/main/java/org/mustangproject/IncludedNote.java index eff8385b..e721ffd1 100644 --- a/library/src/main/java/org/mustangproject/IncludedNote.java +++ b/library/src/main/java/org/mustangproject/IncludedNote.java @@ -14,7 +14,7 @@ public class IncludedNote { private static final String SUBJECT_CODE_START = ""; private static final String SUBJECT_CODE_END = ""; - private IncludedNote(String content, SubjectCode subjectCode) { + public IncludedNote(String content, SubjectCode subjectCode) { this.content = content; this.subjectCode = subjectCode; } diff --git a/library/src/main/java/org/mustangproject/Item.java b/library/src/main/java/org/mustangproject/Item.java index d726ed08..4e644bd6 100644 --- a/library/src/main/java/org/mustangproject/Item.java +++ b/library/src/main/java/org/mustangproject/Item.java @@ -12,7 +12,9 @@ import org.w3c.dom.NodeList; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; +import java.util.Collection; import java.util.Date; +import java.util.List; /*** * describes any invoice line @@ -37,6 +39,7 @@ public class Item implements IZUGFeRDExportableItem { protected ArrayList additionalReference = null; protected ArrayList Allowances = new ArrayList<>(); protected ArrayList Charges = new ArrayList<>(); + protected List includedNotes = null; /*** * default constructor @@ -125,6 +128,38 @@ public class Item implements IZUGFeRDExportableItem { icnm.getAllNodes("AdditionalReferencedDocument").map(ReferencedDocument::fromNode).forEach(this::addAdditionalReference); }); + + itemMap.getAsString("Note").ifPresent(this::addNote); + itemMap.getAsNodeMap("AssociatedDocumentLineDocument").ifPresent(adld -> { + List includedNotes = new ArrayList<>(); + adld.getAllNodes("IncludedNote").forEach(item -> { + String subjectCode = ""; + String content = null; + NodeList includedNodeChilds = item.getChildNodes(); + for (int issueDateChildIndex = 0; issueDateChildIndex < includedNodeChilds.getLength(); issueDateChildIndex++) { + if ((includedNodeChilds.item(issueDateChildIndex).getLocalName() != null) + && (includedNodeChilds.item(issueDateChildIndex).getLocalName().equals("Content"))) { + content = XMLTools.trimOrNull(includedNodeChilds.item(issueDateChildIndex)); + } + if ((includedNodeChilds.item(issueDateChildIndex).getLocalName() != null) + && (includedNodeChilds.item(issueDateChildIndex).getLocalName().equals("SubjectCode"))) { + subjectCode = XMLTools.trimOrNull(includedNodeChilds.item(issueDateChildIndex)); + } + } + boolean foundCode = false; + for (SubjectCode code : SubjectCode.values()) { + if (code.toString().equals(subjectCode)) { + includedNotes.add(new IncludedNote(content, code)); + foundCode = true; + break; + } + } + if (!foundCode) { + includedNotes.add(new IncludedNote(content, null)); + } + }); + addNotes(includedNotes); + }); } public Item addReferencedLineID(String s) { @@ -372,4 +407,19 @@ public class Item implements IZUGFeRDExportableItem { return detailedDeliveryPeriodTo; } + public IZUGFeRDExportableItem addNotes(Collection notes) { + if (notes == null) { + return this; + } + if (includedNotes == null) { + includedNotes = new ArrayList<>(); + } + includedNotes.addAll(notes); + return this; + } + + @Override + public List getNotesWithSubjectCode() { + return includedNotes; + } } diff --git a/library/src/main/java/org/mustangproject/SubjectCode.java b/library/src/main/java/org/mustangproject/SubjectCode.java index c58070fd..808c09d4 100644 --- a/library/src/main/java/org/mustangproject/SubjectCode.java +++ b/library/src/main/java/org/mustangproject/SubjectCode.java @@ -36,5 +36,9 @@ public enum SubjectCode { /** * Discount and bonus agreements */ - AAK + AAK, + /** + * Vehicle licence number + */ + ABZ } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java index e5e25cae..c2f57f9e 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java @@ -28,7 +28,9 @@ package org.mustangproject.ZUGFeRD; import java.math.BigDecimal; import java.util.Date; +import java.util.List; +import org.mustangproject.IncludedNote; import org.mustangproject.Item; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; @@ -153,4 +155,7 @@ public interface IZUGFeRDExportableItem extends IAbsoluteValueProvider{ return null; } + default List getNotesWithSubjectCode() { + return null; + } } diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java index b9342e1e..e32bc28f 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java @@ -22,12 +22,15 @@ package org.mustangproject.ZUGFeRD; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; + +import org.apache.commons.codec.binary.StringUtils; import org.junit.jupiter.api.Test; import org.mustangproject.*; import javax.xml.xpath.XPathExpressionException; import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; @@ -397,4 +400,25 @@ public class ZF2ZInvoiceImporterTest extends ResourceCase { } + @Test + public void testImportPositionIncludedNotes() throws FileNotFoundException, XPathExpressionException, ParseException { + File inputFile = getResourceAsFile("ZTESTZUGFERD_1_INVDSS_012015738820PDF-1.pdf"); + ZUGFeRDInvoiceImporter zii = new ZUGFeRDInvoiceImporter(new FileInputStream(inputFile)); + + Invoice invoice = zii.extractInvoice(); + assertEquals(1, invoice.getZFItems().length); + assertEquals(8, invoice.getZFItems()[0].getNotesWithSubjectCode().size()); + assertEquals("FB-LE 9999", invoice.getZFItems()[0].getNotesWithSubjectCode().stream().filter(note -> note.getSubjectCode().equals(SubjectCode.ABZ)).findFirst().get().getContent()); + } + + @Test + public void testImportXRechnungPositionNote() throws FileNotFoundException, XPathExpressionException, ParseException { + File inputFile = getResourceAsFile("TESTXRECHNUNG_INVDSS_012015776085.XML"); + ZUGFeRDInvoiceImporter zii = new ZUGFeRDInvoiceImporter(new FileInputStream(inputFile)); + + Invoice invoice = zii.extractInvoice(); + assertEquals(1, invoice.getZFItems().length); + assertFalse(invoice.getZFItems()[0].getNotes() == null); + assertEquals(1, invoice.getZFItems()[0].getNotes().length); + } } diff --git a/library/src/test/resources/TESTXRECHNUNG_INVDSS_012015776085.XML b/library/src/test/resources/TESTXRECHNUNG_INVDSS_012015776085.XML new file mode 100644 index 00000000..1541326d --- /dev/null +++ b/library/src/test/resources/TESTXRECHNUNG_INVDSS_012015776085.XML @@ -0,0 +1,157 @@ + + urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0 + urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 + 2015776085 + 2024-11-01 + 380 + #AAI# Wenn bereits bezahlt, nur zu den Akten legen. Für Verzug und Verzugszinsen gelten die Bestimmungen der §§ 286 - 288 BGB. Der Schuldner einer Entgeltforderung kommt spätestens in Verzug, wenn er nicht innerhalb von 30 Tagen nach Fälligkeit und Zugang einer Rechnung oder gleichwertigen Zahlungsaufstellung leistet. Die Lieferung von Waren und Fahrzeugen erfolgt unter Eigentumsvorbehalt. + #PAI# Rechnungsbetrag zahlbar ohne Abzug sofort nach Erhalt der Rechnung. + EUR + 02-ZZ987654-99 + + 2024-11-01 + 2024-11-30 + + + N/A + + + 63435555 + + + + DE238574172 + + Alphabet Fuhrparkmanagement GmbH + + + Lilienthalallee 26 + München + 80786 + + DE + + + + DE238574172 + + VAT + + + + Alphabet Fuhrparkmanagement GmbH + HRB 181098 + + + Yildiz Tolga + +49899-- + Tolga.Yildiz@alphabet.de + + + + + + N/A + + 00987654 + + + Muster GmbH + + + Musterweg 1 + Kiel + 24105 + + DE + + + + Muster GmbH + + + Mustermann Max + + + + + 2024-11-30 + + 00987654 + + Musterweg 1 + Kiel + 24105 + + DE + + + + + + Muster GmbH + + + + + 30 + + DE34700700100156919301 + Alphabet Fuhrparkmanagement GmbH + + DEUTDEMMXXX + + + + + Rechnungsbetrag zahlbar ohne Abzug sofort nach Erhalt der Rechnung. + + + 161.69 + + 851.00 + 161.69 + + S + 19.00 + + VAT + + + + + + 851.00 + 851.00 + 1012.69 + 1012.69 + + + 1 + #AAI# Finanzrate vom 01.11.2024 bis 30.11.2024 #ABZ/Kennzeichen#SH-9 18E #AKG/Fahrgestellnummer#WBY51EJ080CR55555 #BA/Kilometerstand#0 #AKV/LeasingNr#63435555 + 1.00 + 851.00 + + 2024-11-01 + 2024-11-30 + + + FL-Rate + FL-Rate + + 90101 + + + S + 19.00 + + VAT + + + + + 851.00 + 1.00 + + + diff --git a/library/src/test/resources/ZTESTZUGFERD_1_INVDSS_012015738820PDF-1.pdf b/library/src/test/resources/ZTESTZUGFERD_1_INVDSS_012015738820PDF-1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7b2206894658edf797e22dfaff3c3096406ef50a GIT binary patch literal 88656 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

2G6d&L88`|lO(xLLe|{iOyPS2MVlK0l1 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�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

NlIM_yYU|&aD|rrcGX~dy4#u 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 F`Cm1o)OP>? literal 0 HcmV?d00001 From d0aeffdc1c65453d1e5aee19a1ecf2fc4c115732 Mon Sep 17 00:00:00 2001 From: Matthias Kilian Date: Fri, 29 Nov 2024 22:02:09 +0100 Subject: [PATCH 7/9] Treat all fatal XR schematron rules as errors, not as warnings. In org.mustangproject.validator.XMLValidator.validateSchematron(), the severity has to be determined for every node of the validation result. Otherwise, all schematron assertions tagged as "fatal" will be treated as warnings after the first warning. --- .../validator/XMLValidator.java | 20 ++++++++----------- .../validator/ZUGFeRDValidatorTest.java | 4 ++-- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/validator/src/main/java/org/mustangproject/validator/XMLValidator.java b/validator/src/main/java/org/mustangproject/validator/XMLValidator.java index 48dfd6f6..08f2c1f9 100644 --- a/validator/src/main/java/org/mustangproject/validator/XMLValidator.java +++ b/validator/src/main/java/org/mustangproject/validator/XMLValidator.java @@ -424,11 +424,6 @@ public class XMLValidator extends Validator { */ public void validateSchematron(String xml, String xsltFilename, int section, ESeverity defaultSeverity) throws IrrecoverableValidationError { ISchematronResource aResSCH = null; - ESeverity severity=defaultSeverity; - if (defaultSeverity!=ESeverity.notice) { - severity=ESeverity.error; - } - aResSCH = SchematronResourceXSLT.fromClassPath(xsltFilename); if (aResSCH != null) { @@ -470,14 +465,15 @@ public class XMLValidator extends Validator { thisFailLocation = currentFailNode.getAttributes().getNamedItem("location").getNodeValue(); } - if (currentFailNode.getAttributes().getNamedItem("flag") != null) { + ESeverity severity; + if (defaultSeverity == ESeverity.notice) { + severity = defaultSeverity; + } else if (currentFailNode.getAttributes().getNamedItem("flag") != null + && currentFailNode.getAttributes().getNamedItem("flag").getNodeValue().equals("warning")) { // the XR issues warnings with flag=warning - if (currentFailNode.getAttributes().getNamedItem("flag").getNodeValue().equals("warning")) { - if (defaultSeverity!=ESeverity.notice) { - severity=ESeverity.warning; - } - } - + severity = ESeverity.warning; + } else { + severity = ESeverity.error; } NodeList failChilds = currentFailNode.getChildNodes(); diff --git a/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java b/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java index 2eb284f9..55affaa9 100644 --- a/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java +++ b/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java @@ -216,10 +216,10 @@ public class ZUGFeRDValidatorTest extends ResourceCase { assertThat(res).valueByXPath("count(//error)") .asInt() - .isEqualTo(1); + .isEqualTo(2); assertThat(res).valueByXPath("count(//warning)") .asInt() - .isEqualTo(3); + .isEqualTo(2); assertThat(res).valueByXPath("count(//notice)") .asInt() From 0d98706cd945fad23b397fdb6583fe72506fded4 Mon Sep 17 00:00:00 2001 From: ean Date: Mon, 2 Dec 2024 10:16:31 +0100 Subject: [PATCH 8/9] Fix Nullpointer --- .../org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java index 12504210..f923eef5 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java @@ -317,8 +317,10 @@ public class ZUGFeRDInvoiceImporter { deliveryLocationNodeMap -> { deliveryLocationNodeMap.getNode("ID").ifPresent(s -> { - SchemedID sID = new SchemedID().setScheme(s.getAttributes().getNamedItem("schemeID").getTextContent()).setId(s.getTextContent()); - delivery.addGlobalID(sID); + if (s.getAttributes().getNamedItem("schemeID") != null) { + SchemedID sID = new SchemedID().setScheme(s.getAttributes().getNamedItem("schemeID").getTextContent()).setId(s.getTextContent()); + delivery.addGlobalID(sID); + } }); deliveryLocationNodeMap.getAsNodeMap("Address").ifPresent(s -> { s.getAsString("StreetName").ifPresent(t -> delivery.setStreet(t)); From 550f52018940149d449f9e1e7fb93352f91e0c17 Mon Sep 17 00:00:00 2001 From: Bharti Date: Wed, 4 Dec 2024 09:09:13 +0100 Subject: [PATCH 9/9] UBL updates : adding item id and note --- library/src/main/java/org/mustangproject/Item.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/library/src/main/java/org/mustangproject/Item.java b/library/src/main/java/org/mustangproject/Item.java index 5d624adb..92aaee4e 100644 --- a/library/src/main/java/org/mustangproject/Item.java +++ b/library/src/main/java/org/mustangproject/Item.java @@ -127,6 +127,12 @@ public class Item implements IZUGFeRDExportableItem { .flatMap(bordNodes -> bordNodes.getAsString("LineID")) .ifPresent(this::addReferencedLineID); + itemMap.getAsString("ID") + .ifPresent(this::setId); + + + itemMap.getAsString("Note") + .ifPresent(this::addNote);