From aaa106f09a5d09ec5cea6e8edb0b5b70679b3858 Mon Sep 17 00:00:00 2001 From: jstaerk Date: Sat, 31 Oct 2020 16:43:04 +0100 Subject: [PATCH] import seller and buyer correctly --- .../ZUGFeRD/ZUGFeRDInvoiceImporter.java | 26 +++++++------------ .../ZUGFeRD/ZF2ZInvoiceImporterTest.java | 9 +++++++ 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java index 5dfe8b9c..c219caec 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java @@ -15,10 +15,14 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter { super(filename); } + /*** + * This will parse a XML into a invoice object + * @return the parsed invoice object + */ public Invoice extractInvoice() { String number = ""; - /** + /* * dummywerte sind derzeit noch setDueDate setIssueDate setDeliveryDate setSender setRecipient setnumber * bspw. due date //ExchangedDocument//IssueDateTime//DateTimeString : due date optional */ @@ -27,15 +31,17 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter { Invoice zpp = null; try { XPathExpression xpr = xpath.compile( - "//SellerTradeParty"); + "//*[local-name()=\"SellerTradeParty\"]"); NodeList SellerNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET); + xpr = xpath.compile( - "//BuyerTradeParty"); + "//*[local-name()=\"BuyerTradeParty\"]"); NodeList BuyerNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET); xpr = xpath.compile( "//*[local-name()=\"ExchangedDocument\"]"); NodeList ExchangedDocumentNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET); + Date issueDate = null; Date dueDate = null; Date deliveryDate = null; @@ -46,18 +52,6 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter { NodeList exchangedDocumentChilds = exchangedDocumentNode.getChildNodes(); for (int documentChildIndex = 0; documentChildIndex < exchangedDocumentChilds.getLength(); documentChildIndex++) { if (exchangedDocumentChilds.item(documentChildIndex).getNodeName().equals("ram:ID")) { - /* NodeList tradeLineChilds = itemChilds.item(documentChildIndex).getChildNodes(); - for (int tradeLineChildIndex = 0; tradeLineChildIndex < tradeLineChilds.getLength(); tradeLineChildIndex++) { - if (tradeLineChilds.item(tradeLineChildIndex).getNodeName().equals("ram:NetPriceProductTradePrice")) { - NodeList netChilds = tradeLineChilds.item(tradeLineChildIndex).getChildNodes(); - for (int netIndex = 0; netIndex < netChilds.getLength(); netIndex++) { - if (netChilds.item(netIndex).getNodeName().equals("ram:ChargeAmount")) { - price = netChilds.item(netIndex).getTextContent();//ram:ChargeAmount - - } - } - } - }*/ number = exchangedDocumentChilds.item(documentChildIndex).getTextContent(); } if (exchangedDocumentChilds.item(documentChildIndex).getNodeName().equals("ram:IssueDateTime")) { @@ -128,7 +122,6 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter { zpp = new Invoice().setDueDate(dueDate).setDeliveryDate(deliveryDate).setIssueDate(issueDate).setSender(new TradeParty(SellerNodes)).setRecipient(new TradeParty(BuyerNodes)).setNumber(number); //.addItem(new Item(new Product("Testprodukt","","C62",new BigDecimal(0)),amount,new BigDecimal(1.0))) zpp.setOwnOrganisationName(extractString("//SellerTradeParty/Name")); - xpr = xpath.compile( "//*[local-name()=\"IncludedSupplyChainTradeLineItem\"]"); NodeList nodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET); @@ -209,4 +202,5 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter { return zpp; } + } diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java index 37a8e823..3ebad073 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java @@ -61,6 +61,15 @@ public class ZF2ZInvoiceImporterTest extends TestCase { assertEquals("2017-05-07",sdf.format(invoice.getDeliveryDate())); assertEquals("2017-05-30",sdf.format(invoice.getDueDate())); + assertEquals("Bahnstr. 42", invoice.getRecipient().getStreet()); + assertEquals("88802", invoice.getRecipient().getZIP()); + assertEquals("DE", invoice.getRecipient().getCountry()); + assertEquals("Spielkreis", invoice.getRecipient().getLocation()); + + assertEquals("Ecke 12", invoice.getSender().getStreet()); + assertEquals("12345", invoice.getSender().getZIP()); + assertEquals("DE", invoice.getSender().getCountry()); + assertEquals("Stadthausen", invoice.getSender().getLocation()); // name street location zip country, contact name phone email, total amount