switch to getTenderReferencedDocument analogue to getContractReferencedDocument, added DatedReference class and setters/getters for Invoice

This commit is contained in:
jstaerk
2025-10-16 10:21:00 +02:00
parent 882d509580
commit ec1ccbc75e
5 changed files with 80 additions and 2 deletions

View File

@@ -0,0 +1,46 @@
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;
}
}

View File

@@ -54,6 +54,7 @@ public class Invoice implements IExportableTransaction {
protected BigDecimal totalPrepaidAmount = null; protected BigDecimal totalPrepaidAmount = null;
protected Date detailedDeliveryDateStart = null; protected Date detailedDeliveryDateStart = null;
protected Date detailedDeliveryPeriodEnd = null; protected Date detailedDeliveryPeriodEnd = null;
protected IDatedReference tenderReference = null;
protected ArrayList<IZUGFeRDAllowanceCharge> Allowances = new ArrayList<>(), protected ArrayList<IZUGFeRDAllowanceCharge> Allowances = new ArrayList<>(),
Charges = new ArrayList<>(), LogisticsServiceCharges = new ArrayList<>(); Charges = new ArrayList<>(), LogisticsServiceCharges = new ArrayList<>();
@@ -144,6 +145,34 @@ public class Invoice implements IExportableTransaction {
return number; return number;
} }
@Override
/***
* BT-17
*/
public IDatedReference getTenderReferencedDocument() {
return tenderReference;
}
/***
* BT-17
* @param dr
* @return
*/
public Invoice setTenderReferencedDocument(DatedReference dr) {
tenderReference=dr;
return this;
}
public Invoice setTenderReferencedDocument(String ID) {
DatedReference dr=new DatedReference(ID);
setTenderReferencedDocument(dr);
return this;
}
public Invoice setNumber(String number) { public Invoice setNumber(String number) {
this.number = number; this.number = number;
return this; return this;

View File

@@ -219,7 +219,7 @@ public interface IExportableTransaction {
* *
* @return mandatory ID, optional Date * @return mandatory ID, optional Date
*/ */
default IDatedReference getTenderReference() { default IDatedReference getTenderReferencedDocument() {
return null; return null;
} }

View File

@@ -145,7 +145,7 @@ public class ZF2EdgeTest extends MustangReaderTestCase {
} }
@Override @Override
public IDatedReference getTenderReference() { public IDatedReference getTenderReferencedDocument() {
return new IDatedReference() { return new IDatedReference() {
@Override @Override
public String getID() { public String getID() {
@@ -159,6 +159,7 @@ public class ZF2EdgeTest extends MustangReaderTestCase {
} catch (ParseException e) { } catch (ParseException e) {
// wont happen, I promise :-) // wont happen, I promise :-)
} }
return null; // wont happen either
} }
}; };
} }

View File

@@ -596,6 +596,7 @@ public class ZF2PushTest extends TestCase {
try { try {
SchemedID gtin = new SchemedID("0160", "2001015001325"); SchemedID gtin = new SchemedID("0160", "2001015001325");
SchemedID gln = new SchemedID("0088", "4304171000002"); SchemedID gln = new SchemedID("0088", "4304171000002");
DatedReference dr=new DatedReference("90-kl-98798-C", sdf.parse("2025-10-12"));
ze.setTransaction(new Invoice().setCurrency("CHF").addNote("document level 1/2").addNote("document level 2/2").setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setPaymentReference("Verwendungszweck").setDocumentName("Rechnung") ze.setTransaction(new Invoice().setCurrency("CHF").addNote("document level 1/2").addNote("document level 2/2").setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setPaymentReference("Verwendungszweck").setDocumentName("Rechnung")
.setSellerOrderReferencedDocumentID("9384").setBuyerOrderReferencedDocumentID("28934") .setSellerOrderReferencedDocumentID("9384").setBuyerOrderReferencedDocumentID("28934")
.setDetailedDeliveryPeriod(new SimpleDateFormat("yyyyMMdd").parse(occurrenceFrom), new SimpleDateFormat("yyyyMMdd").parse(occurrenceTo)) .setDetailedDeliveryPeriod(new SimpleDateFormat("yyyyMMdd").parse(occurrenceFrom), new SimpleDateFormat("yyyyMMdd").parse(occurrenceTo))
@@ -608,6 +609,7 @@ public class ZF2PushTest extends TestCase {
.addCharge(new Charge(new BigDecimal(0.5)).setReason("quick delivery charge").setTaxPercent(new BigDecimal(16))) .addCharge(new Charge(new BigDecimal(0.5)).setReason("quick delivery charge").setTaxPercent(new BigDecimal(16)))
.addAllowance(new Allowance(new BigDecimal(0.2)).setReason("discount").setTaxPercent(new BigDecimal(16))) .addAllowance(new Allowance(new BigDecimal(0.2)).setReason("discount").setTaxPercent(new BigDecimal(16)))
.addCashDiscount(new CashDiscount(new BigDecimal(2), 14)) .addCashDiscount(new CashDiscount(new BigDecimal(2), 14))
.setTenderReferencedDocument(dr)
.setDeliveryDate(sdf.parse("2020-11-02")).setNumber(number).setVATDueDateTypeCode(EventTimeCodeTypeConstants.PAYMENT_DATE) .setDeliveryDate(sdf.parse("2020-11-02")).setNumber(number).setVATDueDateTypeCode(EventTimeCodeTypeConstants.PAYMENT_DATE)
.setInvoiceReferencedDocumentID("abc123").addInvoiceReferencedDocument(new ReferencedDocument("abcd1234")) .setInvoiceReferencedDocumentID("abc123").addInvoiceReferencedDocument(new ReferencedDocument("abcd1234"))
); );