From 7f5ae2036d99783243d49906bb1d7bcc86325898 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jochen=20Sta=CC=88rk?= Date: Tue, 22 Sep 2020 21:50:28 +0200 Subject: [PATCH] also write recipienttradeparty with getTradePartyAsXML, not only sender --- .../java/org/mustangproject/TradeParty.java | 24 +++- .../ZUGFeRD/ZUGFeRD2PullProvider.java | 103 ++++++------------ .../ZUGFeRD/MustangReaderTestCase.java | 2 +- .../mustangproject/ZUGFeRD/ZF2PushTest.java | 2 +- 4 files changed, 57 insertions(+), 74 deletions(-) diff --git a/library/src/main/java/org/mustangproject/TradeParty.java b/library/src/main/java/org/mustangproject/TradeParty.java index 3311fbf5..e1069e4d 100644 --- a/library/src/main/java/org/mustangproject/TradeParty.java +++ b/library/src/main/java/org/mustangproject/TradeParty.java @@ -5,9 +5,9 @@ import org.mustangproject.ZUGFeRD.IZUGFeRDExportableTradeParty; public class TradeParty implements IZUGFeRDExportableTradeParty { - protected String name,zip,street,location,country; - protected String taxID=null, vatID=null; - protected Contact contact=null; + protected String name, zip, street, location, country; + protected String taxID = null, vatID = null; + protected Contact contact = null; public TradeParty(String name, String street, String zip, String location, String country) { this.name = name; @@ -24,12 +24,12 @@ public class TradeParty implements IZUGFeRDExportableTradeParty { } public TradeParty addTaxID(String taxID) { - this.taxID=taxID; + this.taxID = taxID; return this; } public TradeParty addVATID(String vatID) { - this.vatID=vatID; + this.vatID = vatID; return this; } @@ -91,4 +91,18 @@ public class TradeParty implements IZUGFeRDExportableTradeParty { this.country = country; return this; } + + + public String getVatID() { + return vatID; + } + + public String getZip() { + return zip; + } + + @Override + public IZUGFeRDExportableContact getContact() { + return contact; + } } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index c9995ac4..1db437d1 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -159,38 +159,54 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider { return "urn:cen.eu:en16931:2017"; } - protected String getTradePartyAsXML(IZUGFeRDExportableTradeParty contact) { + protected String getTradePartyAsXML(IZUGFeRDExportableTradeParty party) { String xml = ""; // According EN16931 either GlobalID or seller assigned ID might be present for BuyerTradeParty // and ShipToTradeParty, but not both. Prefer seller assigned ID for now. - if (contact.getID()!=null) { - xml += " " + XMLTools.encodeXML(contact.getID()) + "\n"; + if (party.getID()!=null) { + xml += " " + XMLTools.encodeXML(party.getID()) + "\n"; } - else if ((contact.getGlobalIDScheme()!=null)&&(contact.getGlobalID()!=null)) { - xml = xml + " " - + XMLTools.encodeXML(contact.getGlobalID()) + "\n"; + else if ((party.getGlobalIDScheme()!=null)&&(party.getGlobalID()!=null)) { + xml = xml + " " + + XMLTools.encodeXML(party.getGlobalID()) + "\n"; + } + xml += " " + XMLTools.encodeXML(party.getName()) + "\n"; //$NON-NLS-2$ + + if (party.getContact() != null) { + xml = xml + "\n" + " " + XMLTools.encodeXML(party.getContact().getName()) + + "\n"; + if (party.getContact().getPhone() != null) { + + xml = xml + " \n" + " " + + XMLTools.encodeXML(party.getContact().getPhone()) + "\n" + + " \n"; + } + if (party.getContact().getEMail() != null) { + + xml = xml + " \n" + " " + + XMLTools.encodeXML(party.getContact().getEMail()) + "\n" + + " \n"; + } + xml = xml + " "; + } - xml += " " + XMLTools.encodeXML(contact.getName()) + "\n"; //$NON-NLS-2$ - // + " \n" - // + " xxx\n" - // + " \n" xml += " \n" - + " " + XMLTools.encodeXML(contact.getZIP()) + + " " + XMLTools.encodeXML(party.getZIP()) + "\n" - + " " + XMLTools.encodeXML(contact.getStreet()) + + " " + XMLTools.encodeXML(party.getStreet()) + "\n"; - if (contact.getAdditionalAddress() != null) { - xml += " " + XMLTools.encodeXML(contact.getAdditionalAddress()) + if (party.getAdditionalAddress() != null) { + xml += " " + XMLTools.encodeXML(party.getAdditionalAddress()) + "\n"; } - xml += " " + XMLTools.encodeXML(contact.getLocation()) + xml += " " + XMLTools.encodeXML(party.getLocation()) + "\n" - + " " + XMLTools.encodeXML(contact.getCountry()) + + " " + XMLTools.encodeXML(party.getCountry()) + "\n" + " \n"; - if (contact.getVATID() != null) { + if (party.getVATID() != null) { xml += " \n" - + " " + XMLTools.encodeXML(contact.getVATID()) + + " " + XMLTools.encodeXML(party.getVATID()) + "\n" + " \n"; } @@ -369,55 +385,8 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider { xml = xml + " " + XMLTools.encodeXML(trans.getReferenceNumber()) + "\n"; } - xml = xml + " \n"; - if (trans.getOwnForeignOrganisationID() != null) { - xml = xml + " " + XMLTools.encodeXML(trans.getOwnForeignOrganisationID()) + "\n"; - } - - if ((trans.getSender() != null) && (trans.getSender().getGlobalID() != null) && (trans.getSender().getGlobalIDScheme() != null)) { - xml = xml + " " - + XMLTools.encodeXML(trans.getSender().getGlobalID()) + "\n"; - } - xml = xml + " " + XMLTools.encodeXML(trans.getSender().getName()) + "\n"; //$NON-NLS-2$ - - if ((trans.getOwnVATID() != null) && (trans.getOwnOrganisationName() != null)) { - - xml = xml + " \n" + " " - + XMLTools.encodeXML(trans.getOwnVATID()) + "\n" + " " - + XMLTools.encodeXML(trans.getOwnOrganisationName()) + "\n" - + " "; - } - - if (trans.getSender().getContact() != null) { - xml = xml + "\n" + " " + XMLTools.encodeXML(trans.getSender().getContact().getName()) - + "\n"; - if (trans.getSender().getContact().getPhone() != null) { - - xml = xml + " \n" + " " - + XMLTools.encodeXML(trans.getSender().getContact().getPhone()) + "\n" - + " \n"; - } - if (trans.getSender().getContact().getEMail() != null) { - - xml = xml + " \n" + " " - + XMLTools.encodeXML(trans.getSender().getContact().getEMail()) + "\n" - + " \n"; - } - xml = xml + " "; - - } - - xml = xml + " \n" + " " - + XMLTools.encodeXML(trans.getOwnZIP()) + "\n" + " " - + XMLTools.encodeXML(trans.getOwnStreet()) + "\n" + " " + XMLTools.encodeXML(trans.getOwnLocation()) - + "\n" + " " + XMLTools.encodeXML(trans.getOwnCountry()) - + "\n" + " \n" - + " \n" - + " " + XMLTools.encodeXML(trans.getOwnTaxID()) + "\n" //$NON-NLS-2$ - + " \n" - + " \n" - + " " + XMLTools.encodeXML(trans.getOwnVATID()) + "\n" //$NON-NLS-2$ - + " \n" + xml = xml + " \n" + + getTradePartyAsXML(trans.getSender()) + " \n" + " \n"; // + " GE2020211\n" diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderTestCase.java b/library/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderTestCase.java index c0947bfc..437d0883 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderTestCase.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderTestCase.java @@ -118,7 +118,7 @@ public abstract class MustangReaderTestCase extends TestCase implements IExporta @Override public String getZIP() { - return "55232"; + return "12345"; } @Override diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java index 4ad130c1..147aeead 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java @@ -54,7 +54,7 @@ public class ZF2PushTest extends TestCase { .setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors() .load(SOURCE_PDF)) { - ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setContractReferencedDocument("0815").setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE19990815").setRecipient(new TradeParty("Franz Müller","teststr.12", "55232", "Entenhausen", "DE")).setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)))); + ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setContractReferencedDocument("0815").setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE19990815").setRecipient(new TradeParty("Franz Müller","teststr.12", "55232", "Entenhausen", "DE").setContact(new Contact("nameRep", "phoneRep", "emailRep@test.com"))).setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)))); String theXML = new String(ze.getProvider().getXML()); assertTrue(theXML.contains("