From 3af123040191d4236721109b096ea09d8f94f0a1 Mon Sep 17 00:00:00 2001 From: Zahi YOUSFI Date: Mon, 29 Dec 2025 12:19:59 +0100 Subject: [PATCH] Fix #1000 : support ItemSellerTradeParty in line level --- .../src/main/java/org/mustangproject/Item.java | 16 ++++++++++++++++ .../ZUGFeRD/IZUGFeRDExportableItem.java | 10 ++++++++++ .../ZUGFeRD/ZUGFeRD2PullProvider.java | 9 +++++++-- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/org/mustangproject/Item.java b/library/src/main/java/org/mustangproject/Item.java index b385ee84..5c9d8976 100644 --- a/library/src/main/java/org/mustangproject/Item.java +++ b/library/src/main/java/org/mustangproject/Item.java @@ -45,6 +45,7 @@ public class Item implements IZUGFeRDExportableItem { protected String accountingReference; protected String parentLineID = null; protected String lineStatusReasonCode = null; + protected TradeParty lineSeller; //protected HashMap attributes = new HashMap<>(); /*** @@ -681,4 +682,19 @@ public class Item implements IZUGFeRDExportableItem { this.lineStatusReasonCode = lineStatusReasonCode; return this; } + + /*** + * For line seller + * @param seller The line seller + * @return fluent setter + */ + public Item setLineSeller(TradeParty seller) { + this.lineSeller = seller; + return this; + } + @Override + public TradeParty getLineSeller() { + return this.lineSeller; + } + } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java index 7b48ab5f..38ab882b 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java @@ -32,6 +32,7 @@ import java.util.List; import org.mustangproject.IncludedNote; import org.mustangproject.Item; +import org.mustangproject.TradeParty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; @@ -237,4 +238,13 @@ public interface IZUGFeRDExportableItem extends IAbsoluteValueProvider{ } default LineCalculator getCalculation() {return new LineCalculator(this); }; + /*** + * For line seller + * @return the seller + */ + + default TradeParty getLineSeller() { + return null; + } + } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index f326c339..9e42c42a 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -525,8 +525,13 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { + "" // currencyID=\"EUR\" + "" + quantityFormat(currentItem.getBasisQuantity()) + "" - + "" - + "" + + ""; + + if(currentItem.getLineSeller()!=null) { + xml += "" + getTradePartyAsXML(currentItem.getLineSeller(), true, false) + ""; + + } + xml += "" + "" + "" + quantityFormat(currentItem.getQuantity()) + ""