From c59204289fdc9a508e7e596aed7e6b5ab121e75f Mon Sep 17 00:00:00 2001 From: jstaerk Date: Mon, 27 Oct 2025 14:27:20 +0100 Subject: [PATCH] using IReferencedDocument instead of IDatedReference --- .../org/mustangproject/DatedReference.java | 46 ------------------- .../main/java/org/mustangproject/Invoice.java | 8 ++-- .../main/java/org/mustangproject/Item.java | 16 +++++-- .../ZUGFeRD/IDatedReference.java | 10 ---- .../ZUGFeRD/IExportableTransaction.java | 2 +- .../ZUGFeRD/IZUGFeRDExportableItem.java | 16 +++++-- .../ZUGFeRD/ZUGFeRDInvoiceImporter.java | 4 +- .../mustangproject/ZUGFeRD/ZF2EdgeTest.java | 20 ++++++-- 8 files changed, 47 insertions(+), 75 deletions(-) delete mode 100644 library/src/main/java/org/mustangproject/DatedReference.java delete mode 100644 library/src/main/java/org/mustangproject/ZUGFeRD/IDatedReference.java diff --git a/library/src/main/java/org/mustangproject/DatedReference.java b/library/src/main/java/org/mustangproject/DatedReference.java deleted file mode 100644 index 5d5ca70f..00000000 --- a/library/src/main/java/org/mustangproject/DatedReference.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.mustangproject; - -import org.mustangproject.ZUGFeRD.IDatedReference; - -import java.beans.BeanProperty; -import java.util.Date; - -public class DatedReference implements IDatedReference { - - protected String ID; - protected Date opDate; - - public DatedReference setDate(Date opDate) { - this.opDate = opDate; - return this; - } - - public DatedReference setID(String ID) { - this.ID = ID; - return this; - } - - public DatedReference() { - - } - - public DatedReference(String ID) { - setID(ID); - } - - public DatedReference(String ID, Date theDate) { - setID(ID); - setDate(theDate); - } - - - @Override - public String getID() { - return ID; - } - - @Override - public Date getDate() { - return opDate; - } -} diff --git a/library/src/main/java/org/mustangproject/Invoice.java b/library/src/main/java/org/mustangproject/Invoice.java index a625ec6d..dc883f20 100644 --- a/library/src/main/java/org/mustangproject/Invoice.java +++ b/library/src/main/java/org/mustangproject/Invoice.java @@ -54,7 +54,7 @@ public class Invoice implements IExportableTransaction { protected BigDecimal totalPrepaidAmount = null; protected Date detailedDeliveryDateStart = null; protected Date detailedDeliveryPeriodEnd = null; - protected IDatedReference tenderReference = null; + protected IReferencedDocument tenderReference = null; protected ArrayList Allowances = new ArrayList<>(), Charges = new ArrayList<>(), LogisticsServiceCharges = new ArrayList<>(); @@ -151,7 +151,7 @@ public class Invoice implements IExportableTransaction { /*** * BT-17 */ - public IDatedReference getTenderReferencedDocument() { + public IReferencedDocument getTenderReferencedDocument() { return tenderReference; } @@ -161,13 +161,13 @@ public class Invoice implements IExportableTransaction { * @param dr * @return */ - public Invoice setTenderReferencedDocument(DatedReference dr) { + public Invoice setTenderReferencedDocument(ReferencedDocument dr) { tenderReference=dr; return this; } public Invoice setTenderReferencedDocument(String ID) { - DatedReference dr=new DatedReference(ID); + ReferencedDocument dr=new ReferencedDocument(ID); setTenderReferencedDocument(dr); return this; } diff --git a/library/src/main/java/org/mustangproject/Item.java b/library/src/main/java/org/mustangproject/Item.java index 5a3853a0..205d144d 100644 --- a/library/src/main/java/org/mustangproject/Item.java +++ b/library/src/main/java/org/mustangproject/Item.java @@ -3,10 +3,7 @@ package org.mustangproject; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; -import org.mustangproject.ZUGFeRD.IReferencedDocument; -import org.mustangproject.ZUGFeRD.IZUGFeRDAllowanceCharge; -import org.mustangproject.ZUGFeRD.IZUGFeRDExportableItem; -import org.mustangproject.ZUGFeRD.LineCalculator; +import org.mustangproject.ZUGFeRD.*; import org.mustangproject.util.NodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -38,6 +35,7 @@ public class Item implements IZUGFeRDExportableItem { protected String id; protected String buyerOrderReferencedDocumentLineID = null; protected String buyerOrderReferencedDocumentID = null; + protected IReferencedDocument tenderReferencedDocument=null; protected Product product; protected ArrayList notes = null; protected ArrayList referencedDocuments = null; @@ -622,6 +620,16 @@ public class Item implements IZUGFeRDExportableItem { return detailedDeliveryPeriodTo; } + @Override + public IReferencedDocument getTenderReferencedDocument() { + return tenderReferencedDocument; + } + + public Item getTenderReferencedDocument(IReferencedDocument idr) { + tenderReferencedDocument=idr; + return this; + } + public IZUGFeRDExportableItem addNotes(Collection notes) { if (notes == null) { return this; diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IDatedReference.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IDatedReference.java deleted file mode 100644 index af1adf38..00000000 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/IDatedReference.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.mustangproject.ZUGFeRD; - -import java.util.Date; - -public interface IDatedReference { - public String getID(); - default Date getDate() { - return null; - } -} diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java index 8d317b1a..c191ca78 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java @@ -219,7 +219,7 @@ public interface IExportableTransaction { * * @return mandatory ID, optional Date */ - default IDatedReference getTenderReferencedDocument() { + default IReferencedDocument getTenderReferencedDocument() { return null; } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java index 05d86170..54873510 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java @@ -156,12 +156,20 @@ public interface IZUGFeRDExportableItem extends IAbsoluteValueProvider{ } - /*** - * specifies the item level delivery period (there is also one on document level), - * this will be included in a BillingSpecifiedPeriod element - * @return the beginning of the delivery period + * tender reference on line level BT-128 + * @return BT-17 on line level */ + default IReferencedDocument getTenderReferencedDocument() { + return null; + } + + + /*** + * specifies the item level delivery period (there is also one on document level), + * this will be included in a BillingSpecifiedPeriod element + * @return the beginning of the delivery period + */ default Date getDetailedDeliveryPeriodFrom() { return null; } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java index 093f6032..44698f62 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java @@ -612,7 +612,7 @@ public class ZUGFeRDInvoiceImporter { //if (tenderReference!=null) zpp... @todo bt-17 create a ubl with a date and set up an according xpath and if only tenderReference!=null only set that but if tenderReference!=null&&date!=null set both in zpp if((tenderReference != null)&&(!tenderReference.isEmpty())){ if((tenderReferenceDate != null)&&(!tenderReferenceDate.isEmpty())){ - zpp.setTenderReferencedDocument(new DatedReference(tenderReference, parseDate(tenderReferenceDate, "yyyy-MM-dd"))); + zpp.setTenderReferencedDocument(new ReferencedDocument(tenderReference, parseDate(tenderReferenceDate, "yyyy-MM-dd"))); } else { zpp.setTenderReferencedDocument(tenderReference); } @@ -746,7 +746,7 @@ public class ZUGFeRDInvoiceImporter { if (typeC == 50) { if (additionalReferencedDocument != null){ if (additionalReferencedDocumentDate!=null) { - zpp.setTenderReferencedDocument(new DatedReference(additionalReferencedDocument, additionalReferencedDocumentDate)); + zpp.setTenderReferencedDocument(new ReferencedDocument(additionalReferencedDocument, additionalReferencedDocumentDate)); } else { zpp.setTenderReferencedDocument(additionalReferencedDocument); } diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java index 740412ae..a82b160d 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java @@ -145,14 +145,25 @@ public class ZF2EdgeTest extends MustangReaderTestCase { } @Override - public IDatedReference getTenderReferencedDocument() { - return new IDatedReference() { + public IReferencedDocument getTenderReferencedDocument() { + return new IReferencedDocument() { @Override - public String getID() { + public String getIssuerAssignedID() { return "983-jk-787"; } + @Override - public Date getDate() { + public String getTypeCode() { + return "50"; + } + + @Override + public String getReferenceTypeCode() { + return ""; + } + + @Override + public Date getFormattedIssueDateTime() { SimpleDateFormat sdf=new SimpleDateFormat("YYYY-mm-dd"); try { return sdf.parse("2025-10-12"); @@ -161,6 +172,7 @@ public class ZF2EdgeTest extends MustangReaderTestCase { } return null; // wont happen either } + }; }