diff --git a/libraryBasic/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java b/libraryBasic/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java index b2587061..8cfe38d0 100644 --- a/libraryBasic/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java +++ b/libraryBasic/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java @@ -400,6 +400,14 @@ public class ZUGFeRDImporter { return extractString("//SellerTradeParty//GlobalID"); } + /** + * @return the BuyerTradeParty Name + */ + public String getBuyerTradePartyName() { + return extractString("//BuyerTradeParty//Name"); + } + + /** * @return the line Total Amount @@ -679,6 +687,28 @@ public class ZUGFeRDImporter { return s.hasNext() ? s.next() : ""; } + /** + * returns an instance of PostalTradeAddress for SellerTradeParty section + * @return an instance of PostalTradeAddress + */ + public PostalTradeAddress getBuyerTradePartyAddress() { + + NodeList nl = null; + + try { + if (getVersion() == 1) { + nl = getNodeListByPath("//CrossIndustryDocument//SpecifiedSupplyChainTradeTransaction//ApplicableSupplyChainTradeAgreement//BuyerTradeParty//PostalTradeAddress"); + } else { + nl = getNodeListByPath("//CrossIndustryInvoice//SupplyChainTradeTransaction//ApplicableHeaderTradeAgreement//BuyerTradeParty//PostalTradeAddress"); + } + } catch (Exception e) { + e.printStackTrace(); + return null; + } + + return getAddressFromNodeList(nl); + } + /** * returns an instance of PostalTradeAddress for SellerTradeParty section * @return an instance of PostalTradeAddress @@ -696,9 +726,15 @@ public class ZUGFeRDImporter { } } catch (Exception e) { e.printStackTrace(); - return address; + return null; } + return getAddressFromNodeList(nl); + } + + private PostalTradeAddress getAddressFromNodeList(NodeList nl) { + PostalTradeAddress address = new PostalTradeAddress(); + if (nl != null) { for (int i = 0; i < nl.getLength(); i++) { Node n = nl.item(i); @@ -737,7 +773,6 @@ public class ZUGFeRDImporter { return address; } - /** * returns a list of LineItems * @return a List of LineItem instances diff --git a/libraryBasic/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java b/libraryBasic/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java index 44507dcf..dc05e85f 100644 --- a/libraryBasic/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java +++ b/libraryBasic/src/test/java/org/mustangproject/ZUGFeRD/ZF2Test.java @@ -219,6 +219,7 @@ public class ZF2Test extends MustangReaderTestCase { assertEquals(zi.getTaxTotalAmount(),"75.04"); assertEquals(zi.getRoundingAmount(), ""); assertEquals(zi.getPaidAmount(), "0.00"); + assertEquals(zi.getBuyerTradePartyName(), "Theodor Est"); assertEquals(zi.getSellerTradePartyGlobalID(), ""); assertEquals(zi.getBuyerTradePartyID(), "DE999999999"); assertEquals(zi.getHolder(), getOwnOrganisationName()); @@ -229,6 +230,13 @@ public class ZF2Test extends MustangReaderTestCase { assertEquals(zi.getIBAN(),getTradeSettlementPayment()[0].getOwnIBAN()); assertEquals(zi.getHolder(), getOwnOrganisationName()); assertEquals(zi.getForeignReference(), getNumber()); + assertEquals(zi.getBuyerTradePartyAddress().getPostcodeCode(), "88802"); + assertEquals(zi.getBuyerTradePartyAddress().getLineOne(), "Bahnstr. 42"); + assertEquals(zi.getBuyerTradePartyAddress().getLineTwo(), null); + assertEquals(zi.getBuyerTradePartyAddress().getLineThree(), null); + assertEquals(zi.getBuyerTradePartyAddress().getCountrySubDivisionName(), null); + assertEquals(zi.getBuyerTradePartyAddress().getCountryID(), "DE"); + assertEquals(zi.getBuyerTradePartyAddress().getCityName(), "Spielkreis"); assertEquals(zi.getSellerTradePartyAddress().getPostcodeCode(), "12345"); assertEquals(zi.getSellerTradePartyAddress().getLineOne(), "Ecke 12"); assertEquals(zi.getSellerTradePartyAddress().getLineTwo(), null);