reverting redundant BT-128 changes

This commit is contained in:
jstaerk
2025-10-29 08:43:03 +01:00
parent 1cedd281b9
commit 775448f45a
5 changed files with 24 additions and 56 deletions

View File

@@ -35,7 +35,6 @@ public class Item implements IZUGFeRDExportableItem {
protected String id;
protected String buyerOrderReferencedDocumentLineID = null;
protected String buyerOrderReferencedDocumentID = null;
protected ReferencedDocument tenderReferencedDocument=null;
protected Product product;
protected ArrayList<String> notes = null;
protected ArrayList<ReferencedDocument> referencedDocuments = null;
@@ -132,28 +131,7 @@ public class Item implements IZUGFeRDExportableItem {
product = new Product();
}
}
itemMap.getAsNodeMap("DocumentReference").ifPresent(drnm -> {
// BT-128
ReferencedDocument rd=getTenderReferencedDocument();
if (rd==null) {
rd=new ReferencedDocument();
}
Node idNode=drnm.getNode("ID").get();
if (idNode!=null) {
rd.setIssuerAssignedID(idNode.getTextContent());
Node schemeIDAttr;
schemeIDAttr=idNode.getAttributes().getNamedItem("schemeID");
if (schemeIDAttr!=null) {
rd.setReferenceTypeCode(schemeIDAttr.getNodeValue());
}
}
drnm.getAsString("DocumentTypeCode").ifPresent(rd::setTypeCode);
if (rd!=null) {
setTenderReferencedDocument(rd);
}
});
itemMap.getAsNodeMap("SpecifiedLineTradeAgreement", "SpecifiedSupplyChainTradeAgreement").ifPresent(icnm -> {
icnm.getAsNodeMap("BuyerOrderReferencedDocument")
@@ -645,21 +623,6 @@ public class Item implements IZUGFeRDExportableItem {
return detailedDeliveryPeriodTo;
}
@Override
public ReferencedDocument getTenderReferencedDocument() {
return tenderReferencedDocument;
}
public Item setTenderReferencedDocument(ReferencedDocument idr) {
tenderReferencedDocument=idr;
return this;
}
public Item setTenderReferencedDocument(String id) {
ReferencedDocument rd=new ReferencedDocument(id);
setTenderReferencedDocument(rd);
return this;
}
public IZUGFeRDExportableItem addNotes(Collection<IncludedNote> notes) {
if (notes == null) {

View File

@@ -2,6 +2,7 @@ package org.mustangproject;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.Date;
import org.mustangproject.ZUGFeRD.IReferencedDocument;
@@ -55,6 +56,7 @@ public class ReferencedDocument implements IReferencedDocument {
/**
* which type is the document? e.g. "916" for additional invoice related
*
* @param typeCode as String, e.g. 916
*/
public void setTypeCode(String typeCode) {
@@ -63,6 +65,7 @@ public class ReferencedDocument implements IReferencedDocument {
/**
* type of the reference of this line, a UNTDID 1153 code
*
* @param referenceTypeCode three uppercase character reference type code as string
*/
public void setReferenceTypeCode(String referenceTypeCode) {
@@ -94,8 +97,7 @@ public class ReferencedDocument implements IReferencedDocument {
}
@Override
public Date getFormattedIssueDateTime()
{
public Date getFormattedIssueDateTime() {
return formattedIssueDateTime;
}
@@ -104,9 +106,20 @@ public class ReferencedDocument implements IReferencedDocument {
return null;
}
NodeMap nodes = new NodeMap(node);
return new ReferencedDocument(nodes.getAsStringOrNull("IssuerAssignedID", "ID"),
ReferencedDocument rd = new ReferencedDocument(nodes.getAsStringOrNull("IssuerAssignedID", "ID"),
nodes.getAsStringOrNull("TypeCode", "DocumentTypeCode"),
nodes.getAsStringOrNull("ReferenceTypeCode"),
XMLTools.tryDate(nodes.getAsStringOrNull("FormattedIssueDateTime")));
if (nodes.getAsStringOrNull("ID") != null) {
//sure sign for UBL: here ReferenceTypeCode is no element but a "schemeID" attribute to ID
Node idNode = nodes.getNode("ID").get();
if (idNode != null) {
Node schemeIDAttr = idNode.getAttributes().getNamedItem("schemeID");
if (schemeIDAttr != null) {
rd.setReferenceTypeCode(schemeIDAttr.getNodeValue());
}
}
}
return rd;
}
}

View File

@@ -156,14 +156,6 @@ public interface IZUGFeRDExportableItem extends IAbsoluteValueProvider{
}
/***
* 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),

View File

@@ -607,7 +607,8 @@ 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").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")))
.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")))
.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))

View File

@@ -185,10 +185,9 @@ public class ZF2ZInvoiceImporterTest extends ResourceCase {
assertEquals("9384", invoice.getSellerOrderReferencedDocumentID());
assertEquals("90-kl-98798-C", invoice.getTenderReferencedDocument().getIssuerAssignedID());
IReferencedDocument rd=invoice.getZFItems()[0].getTenderReferencedDocument();
assertEquals("90-kl-98798-C1", rd.getIssuerAssignedID());
assertEquals("AAG", rd.getReferenceTypeCode());
assertEquals("2025-10-13", sdf.format(rd.getFormattedIssueDateTime()));
IReferencedDocument[] rd=invoice.getZFItems()[0].getAdditionalReferences();
assertEquals("90-kl-98798-C1", rd[0].getIssuerAssignedID());
assertEquals("AAG", rd[0].getReferenceTypeCode());
@@ -248,8 +247,8 @@ public class ZF2ZInvoiceImporterTest extends ResourceCase {
assertFalse(hasExceptions);
SimpleDateFormat sdf=new SimpleDateFormat("YYYY-mm-dd");
// Reading ZUGFeRD
assertEquals("90-kl-98798-C1", invoice.getZFItems()[0].getTenderReferencedDocument().getIssuerAssignedID());
assertEquals("AAG", invoice.getZFItems()[0].getTenderReferencedDocument().getReferenceTypeCode());
assertEquals("90-kl-98798-C1", invoice.getZFItems()[0].getAdditionalReferences()[0].getIssuerAssignedID());
assertEquals("AAG", invoice.getZFItems()[0].getAdditionalReferences()[0].getReferenceTypeCode());
}