From 248f854d2a2ea5ffcdbd1465b534a6041f019b80 Mon Sep 17 00:00:00 2001 From: jstaerk Date: Tue, 18 Feb 2025 09:56:42 +0100 Subject: [PATCH] closes #745 --- History.md | 1 + .../main/java/org/mustangproject/LegalOrganisation.java | 4 ++++ .../org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java | 7 ++++++- .../src/test/java/org/mustangproject/ZUGFeRD/XRTest.java | 7 ++++++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/History.md b/History.md index e8f81cdd..a33526a1 100644 --- a/History.md +++ b/History.md @@ -1,6 +1,7 @@ #558 #686 #739 +#745 2.16.2 ======= diff --git a/library/src/main/java/org/mustangproject/LegalOrganisation.java b/library/src/main/java/org/mustangproject/LegalOrganisation.java index 705420c2..d5b6d42f 100644 --- a/library/src/main/java/org/mustangproject/LegalOrganisation.java +++ b/library/src/main/java/org/mustangproject/LegalOrganisation.java @@ -23,6 +23,10 @@ public class LegalOrganisation implements IZUGFeRDLegalOrganisation { this.schemedID = new SchemedID(scheme, ID); } + public LegalOrganisation(String ID) { + this.schemedID = new SchemedID(null, ID); + } + public LegalOrganisation(SchemedID schemedID, String tradingBusinessName) { this.schemedID = schemedID; this.tradingBusinessName=tradingBusinessName; diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index 6958bb61..2b6ae8ec 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -149,7 +149,12 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { if (profile == Profiles.getByName("Minimum")) { xml += "" + XMLTools.encodeXML(party.getLegalOrganisation().getSchemedID().getID()) + ""; } else { - xml += "" + XMLTools.encodeXML(party.getLegalOrganisation().getSchemedID().getID()) + ""; + String schemeAttribute=""; + if ((party.getLegalOrganisation().getSchemedID().getScheme()!=null)&&(party.getLegalOrganisation().getSchemedID().getScheme().length()>0)) { + schemeAttribute="schemeID=\"" + XMLTools.encodeXML(party.getLegalOrganisation().getSchemedID().getScheme())+"\""; + + } + xml += "" + XMLTools.encodeXML(party.getLegalOrganisation().getSchemedID().getID()) + ""; } } if (party.getLegalOrganisation().getTradingBusinessName() != null) { diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java index 5fc304ec..ace63df4 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java @@ -52,12 +52,17 @@ public class XRTest extends TestCase { TradeParty recipient = new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE"); recipient.setEmail("quack@ducktown.org"); Invoice i = createInvoice(recipient); - + String legalOrgID="aCustomSellerLegalOrgId"; + String sellerID="aSellerTradePartyID"; + i.getSender().setLegalOrganisation(new LegalOrganisation(legalOrgID)); + i.getSender().setID(sellerID); ZUGFeRD2PullProvider zf2p = new ZUGFeRD2PullProvider(); zf2p.setProfile(Profiles.getByName("XRechnung")); zf2p.generateXML(i); String theXML = new String(zf2p.getXML(), StandardCharsets.UTF_8); assertTrue(theXML.contains(""+sellerID+""));// must be possible without scheme # + assertTrue(theXML.contains(""+legalOrgID+""));// must be possible without scheme # assertThat(theXML).valueByXPath("count(//*[local-name()='IncludedSupplyChainTradeLineItem'])") .asInt() .isEqualTo(1); //2 errors are OK because there is a known bug