adding tenderreferenceddocument on line level

This commit is contained in:
jstaerk
2025-10-27 14:37:56 +01:00
parent c59204289f
commit a30780b411
5 changed files with 22 additions and 10 deletions

View File

@@ -625,11 +625,17 @@ public class Item implements IZUGFeRDExportableItem {
return tenderReferencedDocument; return tenderReferencedDocument;
} }
public Item getTenderReferencedDocument(IReferencedDocument idr) { public Item setTenderReferencedDocument(IReferencedDocument idr) {
tenderReferencedDocument=idr; tenderReferencedDocument=idr;
return this; return this;
} }
public Item setTenderReferencedDocument(String id) {
ReferencedDocument rd=new ReferencedDocument(id);
setTenderReferencedDocument(rd);
return this;
}
public IZUGFeRDExportableItem addNotes(Collection<IncludedNote> notes) { public IZUGFeRDExportableItem addNotes(Collection<IncludedNote> notes) {
if (notes == null) { if (notes == null) {
return this; return this;

View File

@@ -17,6 +17,10 @@ public class ReferencedDocument implements IReferencedDocument {
String referenceTypeCode; String referenceTypeCode;
Date formattedIssueDateTime; Date formattedIssueDateTime;
public ReferencedDocument() {
//bean
}
public ReferencedDocument(String issuerAssignedID, String typeCode, String referenceTypeCode) { public ReferencedDocument(String issuerAssignedID, String typeCode, String referenceTypeCode) {
this(issuerAssignedID); this(issuerAssignedID);
this.typeCode = typeCode; this.typeCode = typeCode;

View File

@@ -633,11 +633,11 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
if(trans.getTenderReferencedDocument() != null){ if(trans.getTenderReferencedDocument() != null){
xml += "<ram:AdditionalReferencedDocument>" xml += "<ram:AdditionalReferencedDocument>"
+ "<ram:IssuerAssignedID>" + XMLTools.encodeXML(trans.getTenderReferencedDocument().getID()) + "</ram:IssuerAssignedID>" + "<ram:IssuerAssignedID>" + XMLTools.encodeXML(trans.getTenderReferencedDocument().getIssuerAssignedID()) + "</ram:IssuerAssignedID>"
+ "<ram:TypeCode>" + 50 + "</ram:TypeCode>"; + "<ram:TypeCode>" + 50 + "</ram:TypeCode>";
if (trans.getTenderReferencedDocument().getDate()!=null) { if (trans.getTenderReferencedDocument().getFormattedIssueDateTime()!=null) {
final SimpleDateFormat dateFormat102 = new SimpleDateFormat("yyyyMMdd"); final SimpleDateFormat dateFormat102 = new SimpleDateFormat("yyyyMMdd");
xml += "<ram:FormattedIssueDateTime><qdt:DateTimeString format=\"102\">"+XMLTools.encodeXML(dateFormat102.format(trans.getTenderReferencedDocument().getDate()))+"</qdt:DateTimeString></ram:FormattedIssueDateTime>"; xml += "<ram:FormattedIssueDateTime><qdt:DateTimeString format=\"102\">"+XMLTools.encodeXML(dateFormat102.format(trans.getTenderReferencedDocument().getFormattedIssueDateTime()))+"</qdt:DateTimeString></ram:FormattedIssueDateTime>";
} }

View File

@@ -596,7 +596,9 @@ 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")); ReferencedDocument dr1=new ReferencedDocument("90-kl-98798-C", sdf.parse("2025-10-12"));
ReferencedDocument dr2=new ReferencedDocument("90-kl-98798-C1", sdf.parse("2025-10-13"));
dr2.setReferenceTypeCode("AAG");
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))
@@ -605,11 +607,11 @@ public class ZF2PushTest extends TestCase {
.setContractReferencedDocument(contractID) .setContractReferencedDocument(contractID)
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addGlobalID(gln).setEmail("recipient@test.org").addVATID("DE4711") .setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addGlobalID(gln).setEmail("recipient@test.org").addVATID("DE4711")
.setContact(new Contact("Franz Müller", "01779999999", "franz@mueller.de", "teststr. 12", "55232", "Entenhausen", "DE").setFax("++49555123456")).setAdditionalAddress("Hinterhaus 3")) .setContact(new Contact("Franz Müller", "01779999999", "franz@mueller.de", "teststr. 12", "55232", "Entenhausen", "DE").setFax("++49555123456")).setAdditionalAddress("Hinterhaus 3"))
.addItem(new Item(new Product("Testprodukt", "", "H87", new BigDecimal(16)).addGlobalID(gtin).setSellerAssignedID("4711"), price, new BigDecimal(1.0)).setId("a123").addBuyerOrderReferencedDocumentID("orderId").addBuyerOrderReferencedDocumentLineID("xxx").addReferencedLineID("xxx").addNote("item level 1/1").addAllowance(new Allowance(new BigDecimal(0.02)).setReason("item discount").setTaxPercent(new BigDecimal(16))).setDetailedDeliveryPeriod(sdf.parse("2020-01-13"), sdf.parse("2020-01-15"))) .addItem(new Item(new Product("Testprodukt", "", "H87", new BigDecimal(16)).addGlobalID(gtin).setSellerAssignedID("4711"), price, new BigDecimal(1.0)).setId("a123").setTenderReferencedDocument(dr2).addBuyerOrderReferencedDocumentID("orderId").addBuyerOrderReferencedDocumentLineID("xxx").addReferencedLineID("xxx").addNote("item level 1/1").addAllowance(new Allowance(new BigDecimal(0.02)).setReason("item discount").setTaxPercent(new BigDecimal(16))).setDetailedDeliveryPeriod(sdf.parse("2020-01-13"), sdf.parse("2020-01-15")))
.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) .setTenderReferencedDocument(dr1)
.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"))
); );

View File

@@ -183,8 +183,8 @@ public class ZF2ZInvoiceImporterTest extends ResourceCase {
// Reading ZUGFeRD // Reading ZUGFeRD
assertEquals("4711", invoice.getZFItems()[0].getProduct().getSellerAssignedID()); assertEquals("4711", invoice.getZFItems()[0].getProduct().getSellerAssignedID());
assertEquals("9384", invoice.getSellerOrderReferencedDocumentID()); assertEquals("9384", invoice.getSellerOrderReferencedDocumentID());
assertEquals("90-kl-98798-C", invoice.getTenderReferencedDocument().getID()); assertEquals("90-kl-98798-C", invoice.getTenderReferencedDocument().getIssuerAssignedID());
assertEquals("2025-10-12", sdf.format(invoice.getTenderReferencedDocument().getDate())); assertEquals("2025-10-12", sdf.format(invoice.getTenderReferencedDocument().getFormattedIssueDateTime()));
assertEquals("sender@test.org", invoice.getSender().getEmail()); assertEquals("sender@test.org", invoice.getSender().getEmail());
assertEquals("recipient@test.org", invoice.getRecipient().getEmail()); assertEquals("recipient@test.org", invoice.getRecipient().getEmail());
assertEquals("28934", invoice.getBuyerOrderReferencedDocumentID()); assertEquals("28934", invoice.getBuyerOrderReferencedDocumentID());
@@ -222,7 +222,7 @@ public class ZF2ZInvoiceImporterTest extends ResourceCase {
} }
assertFalse(hasExceptions); assertFalse(hasExceptions);
// Reading ZUGFeRD // Reading ZUGFeRD
assertEquals("Testing1", invoice.getTenderReferencedDocument().getID()); assertEquals("Testing1", invoice.getTenderReferencedDocument().getIssuerAssignedID());
} }