From d78d0f7fbbaae56f67571a5d5ab73b89009678ef Mon Sep 17 00:00:00 2001 From: Jens Heise Date: Sun, 23 Aug 2020 00:14:08 +0200 Subject: [PATCH] ZUGFeRD2PullProvider: Add write support for GlobalID and ID to buyer addresses especially for 'BuyerTradeParty' and 'ShipToTradeParty' right now. Since EN16931 allows only one ID entry for these entries, the ID assigned by the buyer is prefered over the global ID for now if bot are defined in the IZUGFeRDExportableTradeParty object. --- .../ZUGFeRD/ZUGFeRD2PullProvider.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index 23a7b57e..242b3f2a 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -159,11 +159,21 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider { } protected String getTradePartyAsXML(IZUGFeRDExportableTradeParty contact) { - String xml = " " + XMLTools.encodeXML(contact.getName()) + "\n" //$NON-NLS-2$ + 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"; + } + else if ((contact.getGlobalIDScheme()!=null)&&(contact.getGlobalID()!=null)) { + xml = xml + " " + + XMLTools.encodeXML(contact.getGlobalID()) + "\n"; + } + xml += " " + XMLTools.encodeXML(contact.getName()) + "\n"; //$NON-NLS-2$ // + " \n" // + " xxx\n" // + " \n" - + " \n" + xml += " \n" + " " + XMLTools.encodeXML(contact.getZIP()) + "\n" + " " + XMLTools.encodeXML(contact.getStreet()) @@ -406,9 +416,6 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider { + " \n" + " \n" + " \n"; - // + " GE2020211\n" - // + " 4000001987658\n" - xml+=getTradePartyAsXML(trans.getRecipient()); xml += " \n";