diff --git a/library/src/main/java/org/mustangproject/Item.java b/library/src/main/java/org/mustangproject/Item.java index 205d144d..2273c9da 100644 --- a/library/src/main/java/org/mustangproject/Item.java +++ b/library/src/main/java/org/mustangproject/Item.java @@ -625,11 +625,17 @@ public class Item implements IZUGFeRDExportableItem { return tenderReferencedDocument; } - public Item getTenderReferencedDocument(IReferencedDocument idr) { + public Item setTenderReferencedDocument(IReferencedDocument idr) { tenderReferencedDocument=idr; return this; } + public Item setTenderReferencedDocument(String id) { + ReferencedDocument rd=new ReferencedDocument(id); + setTenderReferencedDocument(rd); + return this; + } + public IZUGFeRDExportableItem addNotes(Collection notes) { if (notes == null) { return this; diff --git a/library/src/main/java/org/mustangproject/ReferencedDocument.java b/library/src/main/java/org/mustangproject/ReferencedDocument.java index 7a1c04a0..01a975a2 100644 --- a/library/src/main/java/org/mustangproject/ReferencedDocument.java +++ b/library/src/main/java/org/mustangproject/ReferencedDocument.java @@ -17,6 +17,10 @@ public class ReferencedDocument implements IReferencedDocument { String referenceTypeCode; Date formattedIssueDateTime; + public ReferencedDocument() { + //bean + } + public ReferencedDocument(String issuerAssignedID, String typeCode, String referenceTypeCode) { this(issuerAssignedID); this.typeCode = typeCode; diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index 28635a2f..51da4a63 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -633,11 +633,11 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { if(trans.getTenderReferencedDocument() != null){ xml += "" - + "" + XMLTools.encodeXML(trans.getTenderReferencedDocument().getID()) + "" + + "" + XMLTools.encodeXML(trans.getTenderReferencedDocument().getIssuerAssignedID()) + "" + "" + 50 + ""; - if (trans.getTenderReferencedDocument().getDate()!=null) { + if (trans.getTenderReferencedDocument().getFormattedIssueDateTime()!=null) { final SimpleDateFormat dateFormat102 = new SimpleDateFormat("yyyyMMdd"); - xml += ""+XMLTools.encodeXML(dateFormat102.format(trans.getTenderReferencedDocument().getDate()))+""; + xml += ""+XMLTools.encodeXML(dateFormat102.format(trans.getTenderReferencedDocument().getFormattedIssueDateTime()))+""; } diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java index 041f4a25..218136b9 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java @@ -596,7 +596,9 @@ public class ZF2PushTest extends TestCase { try { SchemedID gtin = new SchemedID("0160", "2001015001325"); 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") .setSellerOrderReferencedDocumentID("9384").setBuyerOrderReferencedDocumentID("28934") .setDetailedDeliveryPeriod(new SimpleDateFormat("yyyyMMdd").parse(occurrenceFrom), new SimpleDateFormat("yyyyMMdd").parse(occurrenceTo)) @@ -605,11 +607,11 @@ public class ZF2PushTest extends TestCase { .setContractReferencedDocument(contractID) .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")) - .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))) .addAllowance(new Allowance(new BigDecimal(0.2)).setReason("discount").setTaxPercent(new BigDecimal(16))) .addCashDiscount(new CashDiscount(new BigDecimal(2), 14)) - .setTenderReferencedDocument(dr) + .setTenderReferencedDocument(dr1) .setDeliveryDate(sdf.parse("2020-11-02")).setNumber(number).setVATDueDateTypeCode(EventTimeCodeTypeConstants.PAYMENT_DATE) .setInvoiceReferencedDocumentID("abc123").addInvoiceReferencedDocument(new ReferencedDocument("abcd1234")) ); diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java index df10da24..99314cd9 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java @@ -183,8 +183,8 @@ public class ZF2ZInvoiceImporterTest extends ResourceCase { // Reading ZUGFeRD assertEquals("4711", invoice.getZFItems()[0].getProduct().getSellerAssignedID()); assertEquals("9384", invoice.getSellerOrderReferencedDocumentID()); - assertEquals("90-kl-98798-C", invoice.getTenderReferencedDocument().getID()); - assertEquals("2025-10-12", sdf.format(invoice.getTenderReferencedDocument().getDate())); + assertEquals("90-kl-98798-C", invoice.getTenderReferencedDocument().getIssuerAssignedID()); + assertEquals("2025-10-12", sdf.format(invoice.getTenderReferencedDocument().getFormattedIssueDateTime())); assertEquals("sender@test.org", invoice.getSender().getEmail()); assertEquals("recipient@test.org", invoice.getRecipient().getEmail()); assertEquals("28934", invoice.getBuyerOrderReferencedDocumentID()); @@ -222,7 +222,7 @@ public class ZF2ZInvoiceImporterTest extends ResourceCase { } assertFalse(hasExceptions); // Reading ZUGFeRD - assertEquals("Testing1", invoice.getTenderReferencedDocument().getID()); + assertEquals("Testing1", invoice.getTenderReferencedDocument().getIssuerAssignedID()); }