From 4a410bcd14d8ac8bbb52233929511ce21ac46c35 Mon Sep 17 00:00:00 2001 From: jstaerk Date: Tue, 14 Jan 2025 13:47:37 +0100 Subject: [PATCH] closes #681 --- History.md | 1 + .../ZUGFeRD/ZUGFeRDInvoiceImporter.java | 4 +++- .../ZUGFeRD/ZF2ZInvoiceImporterTest.java | 24 +++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/History.md b/History.md index 6a8f4be3..4a4c67a6 100644 --- a/History.md +++ b/History.md @@ -1,5 +1,6 @@ - #678 - #679 +- #681 2.16.0 ======= diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java index b9d3f5c1..9115feb4 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java @@ -813,9 +813,11 @@ public class ZUGFeRDInvoiceImporter { d.setPaymentMeansInformation(paymentMeansInformation); } zpp.getSender().addDebitDetails(d); + bankDetails.forEach(bankDetail -> zpp.getRecipient().addBankDetails(bankDetail)); + } else { + bankDetails.forEach(bankDetail -> zpp.getSender().addBankDetails(bankDetail)); } - bankDetails.forEach(bankDetail -> zpp.getSender().addBankDetails(bankDetail)); if (payeeNodes.getLength() > 0) { zpp.setPayee(new TradeParty(payeeNodes)); diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java index 11daecf0..02985e61 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2ZInvoiceImporterTest.java @@ -467,6 +467,30 @@ public class ZF2ZInvoiceImporterTest extends ResourceCase { } + + @Test + public void testIBANparsing() throws XPathExpressionException, ParseException, FileNotFoundException { + + File inputFile = getResourceAsFile("cii/minimalDebit.xml"); + + ZUGFeRDInvoiceImporter importer = new ZUGFeRDInvoiceImporter(new FileInputStream(inputFile)); + Invoice invoice = importer.extractInvoice(); + assertEquals(1,invoice.getRecipient().getBankDetails().size()); + // IBAN belongs to recipient in invoice with sepa debit + assertEquals("DE21860000000086001055",invoice.getRecipient().getBankDetails().get(0).getIBAN()); + assertEquals(0,invoice.getSender().getBankDetails().size()); + + inputFile = getResourceAsFile("factur-x.xml"); + + importer = new ZUGFeRDInvoiceImporter(new FileInputStream(inputFile)); + invoice = importer.extractInvoice(); + assertEquals(1,invoice.getSender().getBankDetails().size()); + // IBAN belongs to sender in normal invoice + assertEquals("DE88200800000970375700",invoice.getSender().getBankDetails().get(0).getIBAN()); + assertEquals(0,invoice.getRecipient().getBankDetails().size()); + + } + @Test public void testImportPositionIncludedNotes() throws FileNotFoundException, XPathExpressionException, ParseException { File inputFile = getResourceAsFile("ZTESTZUGFERD_1_INVDSS_012015738820PDF-1.pdf");