Merge branch 'issues/503-ubl'

# Conflicts:
#	library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java
This commit is contained in:
jstaerk
2024-12-02 11:03:43 +01:00
2 changed files with 11 additions and 56 deletions

View File

@@ -306,8 +306,18 @@ public class ZUGFeRDInvoiceImporter {
zpp.setDeliveryAddress(new TradeParty(deliveryNodes));
}
List<IncludedNote> includedNotes = new ArrayList<>();
//UBL...
XPathExpression UBLNotesEx = xpath.compile("/*[local-name()=\"Invoice\"]/*[local-name()=\"Note\"]");
NodeList UBLNotesNd = (NodeList) UBLNotesEx.evaluate(getDocument(), XPathConstants.NODESET);
if ((UBLNotesNd != null) && (UBLNotesNd.getLength() > 0)) {
for (int nodeIndex = 0; nodeIndex < UBLNotesNd.getLength(); nodeIndex++) {
includedNotes.add(IncludedNote.generalNote(UBLNotesNd.item(nodeIndex).getTextContent()));
}
zpp.addNotes(includedNotes);
}
XPathExpression shipExUBL = xpath.compile("//*[local-name()=\"Delivery\"]");
Node deliveryNode = (Node) shipExUBL.evaluate(getDocument(), XPathConstants.NODE);
@@ -473,6 +483,7 @@ public class ZUGFeRDInvoiceImporter {
Date dueDate = null;
Date deliveryDate = null;
String despatchAdviceReferencedDocument = null;
for (int i = 0; i < ExchangedDocumentNodes.getLength(); i++) {
Node exchangedDocumentNode = ExchangedDocumentNodes.item(i);
NodeList exchangedDocumentChilds = exchangedDocumentNode.getChildNodes();
@@ -493,7 +504,6 @@ public class ZUGFeRDInvoiceImporter {
}
}
}
List<IncludedNote> includedNotes = new ArrayList<>();
if ((item.getLocalName() != null) && (item.getLocalName().equals("IncludedNote"))) {
String subjectCode = "";
String content = null;

View File

@@ -390,62 +390,7 @@ public class ZF2ZInvoiceImporterTest extends ResourceCase {
}
/*
this would test if for all elements/attributes
*
public void testEEISI_300_cii_Import() throws XPathExpressionException, ParseException {
boolean hasExceptions = false;
File inputCII = getResourceAsFile("not_validating_full_invoice_based_onTest_EeISI_300_CENfullmodel.cii.xml");
File inputUBL = getResourceAsFile("not_validating_full_invoice_based_onTest_EeISI_300_CENfullmodel.ubl.xml");
ZUGFeRDInvoiceImporter zii = new ZUGFeRDInvoiceImporter();
zii.doIgnoreCalculationErrors();
try {
zii.fromXML(new String(Files.readAllBytes(inputCII.toPath()), StandardCharsets.UTF_8));
} catch (IOException e) {
hasExceptions = true;
}
Invoice invoiceUBL = null;
invoiceUBL = zii.extractInvoice();
try {
zii.ignoreCalculationErrors=true;
zii.fromXML(new String(Files.readAllBytes(inputUBL.toPath()), StandardCharsets.UTF_8));
} catch (IOException e) {
hasExceptions = true;
}
Invoice invoiceCII = null;
try {
invoiceCII = zii.extractInvoice();
ObjectMapper mapper = new ObjectMapper();
String ubl=mapper.writeValueAsString(invoiceUBL).replace("," ,"\n");
String cii=mapper.writeValueAsString(invoiceCII).replace("," ,"\n");
assertEquals(cii,ubl);
/*
<cbc:Name>Seller contact point</cbc:Name>
<cbc:Telephone>+41 345 654455</cbc:Telephone>
<cbc:ElectronicMail>seller@contact.de);*
} catch (XPathExpressionException | ParseException e) {
hasExceptions = true;
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
assertFalse(hasExceptions);
// TransactionCalculator tc = new TransactionCalculator(invoiceCII);
// assertEquals(new BigDecimal("205.00"), tc.getGrandTotal());
}
*/
@Test
public void testImportPrepaid() throws XPathExpressionException, ParseException {
InputStream inputStream = this.getClass()