fix: Add UBL CreditNote support in ZUGFeRDInvoiceImporter

This commit is contained in:
burak
2026-01-11 17:17:26 +03:00
parent 3d7b3cd252
commit 61267edb8d
2 changed files with 4 additions and 4 deletions

View File

@@ -107,7 +107,7 @@ public class Item implements IZUGFeRDExportableItem {
icnm.getAsBigDecimal("BaseQuantity").ifPresent(this::setBasisQuantity); icnm.getAsBigDecimal("BaseQuantity").ifPresent(this::setBasisQuantity);
}); });
itemMap.getNode("InvoicedQuantity").ifPresent(icn -> { itemMap.getNode(new String[]{"InvoicedQuantity", "CreditedQuantity"}).ifPresent(icn -> {
// ubl // ubl
setQuantity(new BigDecimal(icn.getTextContent().trim())); setQuantity(new BigDecimal(icn.getTextContent().trim()));
product.setUnit(icn.getAttributes().getNamedItem("unitCode").getNodeValue()); product.setUnit(icn.getAttributes().getNamedItem("unitCode").getNodeValue());

View File

@@ -609,7 +609,7 @@ public class ZUGFeRDInvoiceImporter {
// //*[local-name()="Invoice" or local-name()="CreditNote"] // //*[local-name()="Invoice" or local-name()="CreditNote"]
number = extractString("/*[local-name()=\"Invoice\" or local-name()=\"CreditNote\"]/*[local-name()=\"ID\"]").trim(); number = extractString("/*[local-name()=\"Invoice\" or local-name()=\"CreditNote\"]/*[local-name()=\"ID\"]").trim();
potentialCashDiscountTerms = extractString("/*[local-name()=\"Invoice\" or local-name()=\"CreditNote\"]/*[local-name()=\"PaymentTerms\"]/*[local-name()=\"Note\"]").trim(); potentialCashDiscountTerms = extractString("/*[local-name()=\"Invoice\" or local-name()=\"CreditNote\"]/*[local-name()=\"PaymentTerms\"]/*[local-name()=\"Note\"]").trim();
typeCode = extractString("/*[local-name()=\"Invoice\" or local-name()=\"CreditNote\"]/*[local-name()=\"InvoiceTypeCode\"]").trim(); typeCode = extractString("/*[local-name()=\"Invoice\"]/*[local-name()=\"InvoiceTypeCode\"] | /*[local-name()=\"CreditNote\"]/*[local-name()=\"CreditNoteTypeCode\"]").trim();
String issueDateStr = extractString("/*[local-name()=\"Invoice\" or local-name()=\"CreditNote\"]/*[local-name()=\"IssueDate\"]").trim(); String issueDateStr = extractString("/*[local-name()=\"Invoice\" or local-name()=\"CreditNote\"]/*[local-name()=\"IssueDate\"]").trim();
if (!issueDateStr.isEmpty()) { if (!issueDateStr.isEmpty()) {
issueDate = parseDate(issueDateStr, "yyyy-MM-dd"); issueDate = parseDate(issueDateStr, "yyyy-MM-dd");
@@ -626,7 +626,7 @@ public class ZUGFeRDInvoiceImporter {
} }
String dueDt = extractString("/*[local-name()=\"Invoice\" or local-name()=\"CreditNote\"]/*[local-name()=\"DueDate\"]").trim(); String dueDt = extractString("/*[local-name()=\"Invoice\" or local-name()=\"CreditNote\"]/*[local-name()=\"DueDate\"] | /*[local-name()=\"CreditNote\"]/*[local-name()=\"PaymentMeans\"]/*[local-name()=\"PaymentDueDate\"]").trim();
if (!dueDt.isEmpty()) { if (!dueDt.isEmpty()) {
dueDate = parseDate(dueDt, "yyyy-MM-dd"); dueDate = parseDate(dueDt, "yyyy-MM-dd");
} }
@@ -1077,7 +1077,7 @@ public class ZUGFeRDInvoiceImporter {
zpp.setReferenceNumber(buyerReference); zpp.setReferenceNumber(buyerReference);
} }
xpr = xpath.compile("//*[local-name()=\"IncludedSupplyChainTradeLineItem\"]|//*[local-name()=\"InvoiceLine\"]"); xpr = xpath.compile("//*[local-name()=\"IncludedSupplyChainTradeLineItem\"]|//*[local-name()=\"InvoiceLine\"]|//*[local-name()=\"CreditNoteLine\"]");
nodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET); nodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
if (nodes.getLength() != 0) { if (nodes.getLength() != 0) {