diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java index bbf490f5..a0d5b2ce 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java @@ -463,6 +463,11 @@ public class ZUGFeRDImporter { */ public String getBuyerTradePartyName() { return extractString("//*[local-name() = 'BuyerTradeParty']//*[local-name() = 'Name']"); + } /** + * @return the BuyerTradeParty Name + */ + public String getDeliveryTradePartyName() { + return extractString("//*[local-name() = 'ShipToTradeParty']//*[local-name() = 'Name']"); } @@ -658,7 +663,7 @@ public class ZUGFeRDImporter { if (!containsMeta) { throw new Exception("Not yet parsed"); } - String head = getUTF8(); + final String head = getUTF8(); if (head.contains("")); @@ -227,7 +228,7 @@ public class ZF2Test extends MustangReaderTestCase { assertEquals(zi.getSellerTradePartyAddress().getCountryID(), "DE"); assertEquals(zi.getSellerTradePartyAddress().getCityName(), "Stadthausen"); - List li = zi.getLineItemList(); + final List li = zi.getLineItemList(); assertEquals(zi.getLineItemList().get(0).getId().toString(), "1"); assertEquals(zi.getLineItemList().get(0).getProduct().getBuyerAssignedID(), ""); assertEquals(zi.getLineItemList().get(0).getProduct().getSellerAssignedID(), ""); @@ -240,7 +241,68 @@ public class ZF2Test extends MustangReaderTestCase { try { assertEquals(zi.getVersion(), 2); - } catch (Exception e) { + } catch (final Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } /** + * The exporter test bases on @{code + * ./src/test/MustangBeispiel20221026.pdf}, adds + * metadata, writes to @{code ./target/testout-*} and then imports to check the + * values. + */ + public void testImport() { + // now check the contents (like MustangReaderTest) + final ZUGFeRDImporter zi = new ZUGFeRDImporter("src/test/resources/MustangBeispiel20221026.pdf"); + + // Reading ZUGFeRD + assertEquals("963.11", zi.getAmount()); + assertEquals("RE1001", zi.getInvoiceID()); + assertEquals("COMFORT", zi.getZUGFeRDProfil()); + assertEquals("EUR", zi.getInvoiceCurrencyCode()); + assertEquals("20221026", zi.getIssueDate()); + assertEquals("20221026", zi.getTaxPointDate()); + assertEquals("Innerhalb von 30 Tagen 2% Skonto, 60 Tage ohne Abzug", zi.getPaymentTerms()); + assertEquals("804.35", zi.getLineTotalAmount()); + assertEquals("809.34", zi.getTaxBasisTotalAmount()); + assertEquals("153.77",zi.getTaxTotalAmount()); + assertEquals("", zi.getRoundingAmount()); + assertEquals("0.00", zi.getPaidAmount()); + assertEquals("Beispiel AG", zi.getBuyerTradePartyName()); + assertEquals("", zi.getBuyerTradePartyGlobalID()); + assertEquals("", zi.getSellerTradePartyGlobalID()); + assertEquals("10000", zi.getBuyerTradePartyID()); + assertEquals("\n weclapp.com\nSomestreet 42\n08155 Some city\nDE\n ", zi.getIncludedNote()); + assertEquals("weclapp.com", zi.getHolder()); + assertEquals("380",zi.getDocumentCode()); + assertEquals("01-95",zi.getReference()); + assertEquals("RE1001", zi.getForeignReference()); + assertEquals("54321", zi.getBuyerTradePartyAddress().getPostcodeCode()); + assertEquals("Feldstraße 34", zi.getBuyerTradePartyAddress().getLineOne()); + assertEquals(null, zi.getBuyerTradePartyAddress().getLineTwo()); + assertEquals(null, zi.getBuyerTradePartyAddress().getLineThree()); + assertEquals(null, zi.getBuyerTradePartyAddress().getCountrySubDivisionName()); + assertEquals("DE", zi.getBuyerTradePartyAddress().getCountryID()); + assertEquals("Hithausen", zi.getBuyerTradePartyAddress().getCityName()); + assertEquals("Beispiel Lager AG", zi.getDeliveryTradePartyName()); + assertEquals("54321", zi.getDeliveryTradePartyAddress().getPostcodeCode()); + assertEquals("Feldstraße 39", zi.getDeliveryTradePartyAddress().getLineOne()); + assertEquals(null, zi.getDeliveryTradePartyAddress().getLineTwo()); + assertEquals(null, zi.getDeliveryTradePartyAddress().getLineThree()); + assertEquals(null, zi.getDeliveryTradePartyAddress().getCountrySubDivisionName()); + assertEquals("DE", zi.getDeliveryTradePartyAddress().getCountryID()); + assertEquals("Hithausen", zi.getDeliveryTradePartyAddress().getCityName()); + assertEquals("08155", zi.getSellerTradePartyAddress().getPostcodeCode()); + assertEquals("Somestreet 42", zi.getSellerTradePartyAddress().getLineOne()); + assertEquals(null, zi.getSellerTradePartyAddress().getLineTwo()); + assertEquals(null, zi.getSellerTradePartyAddress().getLineThree()); + assertEquals(null, zi.getSellerTradePartyAddress().getCountrySubDivisionName()); + assertEquals("DE", zi.getSellerTradePartyAddress().getCountryID()); + assertEquals("Some city", zi.getSellerTradePartyAddress().getCityName()); + + try { + assertEquals(zi.getVersion(), 2); + } catch (final Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } diff --git a/library/src/test/resources/MustangBeispiel20221026.pdf b/library/src/test/resources/MustangBeispiel20221026.pdf new file mode 100644 index 00000000..cb86a426 Binary files /dev/null and b/library/src/test/resources/MustangBeispiel20221026.pdf differ