From d1522479bb83e4ad918468fc2d81a6897cf3e8b6 Mon Sep 17 00:00:00 2001 From: langfr Date: Wed, 6 Aug 2025 19:59:19 +0100 Subject: [PATCH] ShipToTradeParty should not contain URIUniversalCommunication --- .../org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java | 8 +++----- .../src/test/java/org/mustangproject/ZUGFeRD/XRTest.java | 1 + .../java/org/mustangproject/validator/LibraryTest.java | 3 +++ 3 files changed, 7 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 6efb4b23..106a8e54 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -219,7 +219,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { xml += "" + XMLTools.encodeXML(party.getCountry()) + "" + ""; - if (party.getUriUniversalCommunicationID() != null && party.getUriUniversalCommunicationIDScheme() != null) { + if (party.getUriUniversalCommunicationID() != null && party.getUriUniversalCommunicationIDScheme() != null && (!isShipToTradeParty)) { xml += "" + "" + XMLTools.encodeXML(party.getUriUniversalCommunicationID()) @@ -462,10 +462,8 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } xml += "" + XMLTools.encodeXML(currentItem.getProduct().getName()) + ""; - if (currentItem.getProduct().getDescription() != null) { - xml += "" + - XMLTools.encodeXML(currentItem.getProduct().getDescription()) + - ""; + if (currentItem.getProduct().getDescription() != null && !currentItem.getProduct().getDescription().isEmpty()) { + xml += "" + XMLTools.encodeXML(currentItem.getProduct().getDescription()) + ""; } if (currentItem.getProduct().getClassifications() != null) { for (IDesignatedProductClassification classification : currentItem.getProduct().getClassifications()) { diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java index 3a211610..42fd653c 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java @@ -106,6 +106,7 @@ public class XRTest extends TestCase { Invoice i = new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()) .setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").setEmail("sender@example.com").addTaxID("DE4711").addVATID("DE0815").setContact(new Contact("Hans Test", "+49123456789", "test@example.org")).addBankDetails(new BankDetails("DE12500105170648489890", "COBADEFXXX").setAccountName("kontoInhaber"))) .setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").setEmail("recipient@sample.org")) + .setDeliveryAddress(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").setEmail("recipient@sample.org")) .addCashDiscount(new CashDiscount(new BigDecimal(2), 7)) .addCashDiscount(new CashDiscount(new BigDecimal(3), 14)) .setReferenceNumber("991-01484-64")//leitweg-id diff --git a/validator/src/test/java/org/mustangproject/validator/LibraryTest.java b/validator/src/test/java/org/mustangproject/validator/LibraryTest.java index 1cf5fd12..62850db3 100644 --- a/validator/src/test/java/org/mustangproject/validator/LibraryTest.java +++ b/validator/src/test/java/org/mustangproject/validator/LibraryTest.java @@ -177,6 +177,9 @@ public class LibraryTest extends ResourceCase { assertThat(res).valueByXPath("count(//error)") .asInt() .isEqualTo(0); + assertThat(res).valueByXPath("count(//warning)") + .asInt() + .isEqualTo(0); assertThat(res).valueByXPath("/validation/summary/@status") .asString() .isEqualTo("valid");// expect to be valid because XR notices are, well, only notices