From e90d1e12fdf712ea6a794fb28dcf24455dc23931 Mon Sep 17 00:00:00 2001 From: Daniel Murygin Date: Mon, 8 Feb 2021 10:12:33 +0100 Subject: [PATCH 1/2] Check if street in the address of the recipient is null Fixes #222 --- .../org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index 1041b67f..96818027 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -156,9 +156,11 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } xml += " \n" + " " + XMLTools.encodeXML(party.getZIP()) - + "\n" - + " " + XMLTools.encodeXML(party.getStreet()) - + "\n"; + + "\n"; + if (party.getStreet() != null) { + xml += " " + XMLTools.encodeXML(party.getStreet()) + + "\n"; + } if (party.getAdditionalAddress() != null) { xml += " " + XMLTools.encodeXML(party.getAdditionalAddress()) + "\n"; From 2739411424bedc485afab80165e41d68f17782b5 Mon Sep 17 00:00:00 2001 From: Daniel Murygin Date: Mon, 8 Feb 2021 10:15:37 +0100 Subject: [PATCH 2/2] Add a test that generates invoices with a recipient without a street resolves #222 Add a test that generates invoices with a recipient without a street in the address. Extract a method in the test to create the invoice with recipient as parameter. --- .../org/mustangproject/ZUGFeRD/XRTest.java | 56 +++++++++++++++---- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java index 12d83ba2..a584e8dc 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java @@ -44,17 +44,8 @@ public class XRTest extends TestCase { public void testXRExport() { // the writing part - - String orgname = "Test company"; - String number = "123"; - String amountStr = "1.00"; - BigDecimal amount = new BigDecimal(amountStr); - Invoice i = new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()) - .setSender(new TradeParty(orgname,"teststr","55232","teststadt","DE").addTaxID("DE4711").addVATID("DE0815").setContact(new Contact("Hans Test","+49123456789","test@example.org")).addBankDetails(new BankDetails("DE12500105170648489890","COBADEFXXX"))) - .setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")) - .setReferenceNumber("991-01484-64")//leitweg-id - // not using any VAT, this is also a test of zero-rated goods: - .setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", BigDecimal.ZERO), amount, new BigDecimal(1.0))); + TradeParty recipient = new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE"); + Invoice i = createInvoice(recipient); ZUGFeRD2PullProvider zf2p = new ZUGFeRD2PullProvider(); zf2p.setProfile(Profiles.getByName("XRechnung")); @@ -78,6 +69,7 @@ public class XRTest extends TestCase { } } + public void testXREdgeExport() { // the writing part @@ -122,4 +114,46 @@ public class XRTest extends TestCase { } + public void testXRExportWithoutStreet() { + + // the writing part + TradeParty recipient = new TradeParty("Franz Müller", null, "55232", "Entenhausen", "DE"); + Invoice i = createInvoice(recipient); + + ZUGFeRD2PullProvider zf2p = new ZUGFeRD2PullProvider(); + zf2p.setProfile(Profiles.getByName("XRechnung")); + zf2p.generateXML(i); + String theXML = new String(zf2p.getXML(), StandardCharsets.UTF_8); + assertTrue(theXML.contains("