From d61c20d05a8a3f5fc10d0af6088050d80b2bd6be Mon Sep 17 00:00:00 2001 From: jstaerk Date: Wed, 4 Dec 2024 16:42:34 +0100 Subject: [PATCH 1/2] test ubl item level note import --- library/src/main/java/org/mustangproject/Item.java | 8 +++++++- .../test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java | 6 +++++- .../mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java | 2 ++ library/src/test/resources/testout-ZF2new.ubl.xml | 3 ++- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/library/src/main/java/org/mustangproject/Item.java b/library/src/main/java/org/mustangproject/Item.java index 92aaee4e..90b3d4c2 100644 --- a/library/src/main/java/org/mustangproject/Item.java +++ b/library/src/main/java/org/mustangproject/Item.java @@ -182,7 +182,6 @@ 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 -> { @@ -378,6 +377,13 @@ public class Item implements IZUGFeRDExportableItem { notes = new ArrayList<>(); } notes.add(text); + + if (includedNotes == null) { + includedNotes = new ArrayList<>(); + } + includedNotes.add(IncludedNote.unspecifiedNote(text)); + + return this; } diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java index 24c73e0f..6ac57f72 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java @@ -29,6 +29,7 @@ import java.nio.charset.StandardCharsets; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; import org.mustangproject.*; import org.junit.FixMethodOrder; @@ -138,6 +139,7 @@ public class ZF2PushTest extends TestCase { String senderDescription = "Kleinunternehmer"; String taxID = "9990815"; + String theNote="oh lala"; BigDecimal price = new BigDecimal(priceStr); try { InputStream SOURCE_PDF = this.getClass().getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf"); @@ -155,7 +157,7 @@ public class ZF2PushTest extends TestCase { .setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE4711") .setContact(new Contact("Franz Müller", "01779999999", "franz@mueller.de", "teststr. 12", "55232", "Entenhausen", "DE"))) .setNumber(number) - .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)).setTaxExemptionReason("Kleinunternehmer gemäß §19 UStG").setTaxCategoryCode("E"), price, new BigDecimal(1.0))) + .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)).setTaxExemptionReason("Kleinunternehmer gemäß §19 UStG").setTaxCategoryCode("E"), price, new BigDecimal(1.0)).addNote(theNote)) ); String theXML = new String(ze.getProvider().getXML()); assertTrue(theXML.contains(" 1 + Something 1 160 @@ -178,4 +179,4 @@ 1 - \ No newline at end of file + From e62db5113efaa2d21d0a8c3d83fb548a34317ec5 Mon Sep 17 00:00:00 2001 From: jstaerk Date: Wed, 4 Dec 2024 16:51:11 +0100 Subject: [PATCH 2/2] prevent jackson setterless issue --- library/src/main/java/org/mustangproject/Item.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/library/src/main/java/org/mustangproject/Item.java b/library/src/main/java/org/mustangproject/Item.java index 90b3d4c2..249d5067 100644 --- a/library/src/main/java/org/mustangproject/Item.java +++ b/library/src/main/java/org/mustangproject/Item.java @@ -232,6 +232,11 @@ public class Item implements IZUGFeRDExportableItem { return lineTotalAmount; } + public Item setNotesWithSubjectCode(List theList) { + includedNotes=theList; + return this; + } + /** * should only be set by calculator classes or maybe when reading from XML *