Merge pull request #1010 from ThomasChr/addDeliveryNoteReferencePerItem

add DeliveryNoteReferencedDocument per Item
This commit is contained in:
Jochen Staerk
2026-02-04 13:17:12 +01:00
committed by GitHub
6 changed files with 149 additions and 3 deletions

View File

@@ -28,6 +28,8 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class MustangReaderWriterCustomXMLTest extends TestCase {
@@ -100,6 +102,13 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
"</ram:SpecifiedLineTradeAgreement>\n" +
"<ram:SpecifiedLineTradeDelivery>\n" +
"<ram:BilledQuantity unitCode=\"HUR\">1.0000</ram:BilledQuantity>\n" +
"<ram:DeliveryNoteReferencedDocument>\n" +
"<ram:IssuerAssignedID>deliverynote123</ram:IssuerAssignedID>\n" +
"<ram:LineID>deliverypos456</ram:LineID>\n" +
"<ram:FormattedIssueDateTime>\n" +
"<udt:DateTimeString format=\"102\">20260114</udt:DateTimeString>\n" +
"</ram:FormattedIssueDateTime>\n" +
"</ram:DeliveryNoteReferencedDocument>\n" +
"</ram:SpecifiedLineTradeDelivery>\n" +
"<ram:SpecifiedLineTradeSettlement>\n" +
"<ram:ApplicableTradeTax>\n" +
@@ -279,6 +288,13 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
assertEquals(zi.getIBAN(), "DE88 2008 0000 0970 3757 00");
assertEquals(zi.getHolder(), "Bei Spiel GmbH");
assertEquals(zi.getForeignReference(), "RE-20171118/506");
assertEquals(zi.getLineItemList().get(0).getDeliveryNoteReferencedDocumentID(), "deliverynote123");
assertEquals(zi.getLineItemList().get(0).getDeliveryNoteReferencedDocumentLineID(), "deliverypos456");
try {
assertEquals(zi.getLineItemList().get(0).getDeliveryNoteReferencedDocumentDate(), new SimpleDateFormat("dd.MM.yyyy").parse("14.01.2026"));
} catch (ParseException e) {
e.printStackTrace();
}
}
/**

View File

@@ -611,7 +611,12 @@ public class ZF2PushTest extends TestCase {
.setInvoicer( new TradeParty("Abweichender Rechnungssteller", "Teststr.12", "04711", "Entenhausen", "DE") )
.setInvoicee( new TradeParty("Abweichender Rechnungsempfänger", "Teststr.42", "00815", "Entenhausen", "DE") )
.addItem(new Item(new Product("Testprodukt", "", "H87", new BigDecimal(16)).addGlobalID(gtin).setSellerAssignedID("4711"), price, new BigDecimal(1.0)).setId("a123").
addAdditionalReference(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")))
addAdditionalReference(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"))
.setDeliveryNoteReferencedDocumentID("deliverynote123")
.setDeliveryNoteReferencedDocumentLineID("deliverypos456")
.setDeliveryNoteReferencedDocumentDate(new SimpleDateFormat("dd.MM.yyyy").parse("14.01.2026"))
)
.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))
@@ -647,6 +652,13 @@ public class ZF2PushTest extends TestCase {
assertTrue(zi.getUTF8().contains(occurrenceTo));
assertTrue(zi.getUTF8().contains(contractID));
assertEquals(zi.importedInvoice.getZFItems()[0].getId(), "a123");
assertEquals(zi.importedInvoice.getZFItems()[0].getDeliveryNoteReferencedDocumentID(), "deliverynote123");
assertEquals(zi.importedInvoice.getZFItems()[0].getDeliveryNoteReferencedDocumentLineID(), "deliverypos456");
try {
assertEquals(zi.importedInvoice.getZFItems()[0].getDeliveryNoteReferencedDocumentDate(), new SimpleDateFormat("dd.MM.yyyy").parse("14.01.2026"));
} catch (ParseException e) {
e.printStackTrace();
}
assertTrue(zi.getUTF8().contains("20200113")); // to contain item delivery periods
assertTrue(zi.getUTF8().contains("20200115")); // to contain item delivery periods