diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
index 8fe07564..13d47148 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
@@ -589,19 +589,19 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
xml += getTradePartyAsXML(trans.getRecipient(), false, false);
xml += "";
- if (trans.getSellerOrderReferencedDocumentID() != null) {
+ if (trans.getSellerOrderReferencedDocumentID() != null && !trans.getSellerOrderReferencedDocumentID().trim().isEmpty()) {
xml += ""
+ ""
+ XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + ""
+ "";
}
- if (trans.getBuyerOrderReferencedDocumentID() != null) {
+ if (trans.getBuyerOrderReferencedDocumentID() != null && !trans.getBuyerOrderReferencedDocumentID().trim().isEmpty()) {
xml += ""
+ ""
+ XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + ""
+ "";
}
- if (trans.getContractReferencedDocument() != null) {
+ if (trans.getContractReferencedDocument() != null && !trans.getContractReferencedDocument().trim().isEmpty()) {
xml += ""
+ ""
+ XMLTools.encodeXML(trans.getContractReferencedDocument()) + ""
@@ -655,7 +655,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
* "2013-51112" +
* ""
*/
- if (trans.getDespatchAdviceReferencedDocumentID() != null) {
+ if (trans.getDespatchAdviceReferencedDocumentID() != null && !trans.getDespatchAdviceReferencedDocumentID().trim().isEmpty()) {
xml += "";
xml += "" + XMLTools.encodeXML(trans.getDespatchAdviceReferencedDocumentID()) + "";
xml += "";
@@ -888,7 +888,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
}
xml += "" + currencyFormat(calc.getDuePayable()) + ""
+ "";
- if (trans.getInvoiceReferencedDocumentID() != null) {
+ if (trans.getInvoiceReferencedDocumentID() != null && !trans.getInvoiceReferencedDocumentID().trim().isEmpty()) {
xml += ""
+ ""
+ XMLTools.encodeXML(trans.getInvoiceReferencedDocumentID()) + "";
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
index 10f28a3a..c32b1d7d 100644
--- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
+++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
@@ -816,4 +816,51 @@ public class ZF2PushTest extends TestCase {
}
}
+ public void testEmptyDocumentReference() {
+ String orgname = "Test company";
+ String number = "123";
+ BigDecimal price = new BigDecimal(1.0);
+ BigDecimal qty = new BigDecimal(1.0);
+
+ ZUGFeRD2PullProvider zf2p = new ZUGFeRD2PullProvider();
+ zf2p.setProfile( Profiles.getByName( "XRechnung" ) );
+
+ Invoice i = new Invoice().setIssueDate(new Date()).setDueDate(new Date()).setDetailedDeliveryPeriod(new Date(), new Date()).setDeliveryDate(new Date())
+ .setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addTaxID("4711").addVATID("DE0815").addBankDetails(new BankDetails("DE88200800000970375700", "COBADEFFXXX")))
+ .setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").addVATID("DE0815"))
+ .setNumber(number)
+ .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), price, qty));
+
+ // empty strings for document id's
+ i.setSellerOrderReferencedDocumentID("")
+ .setBuyerOrderReferencedDocumentID("")
+ .setContractReferencedDocument("")
+ .setDespatchAdviceReferencedDocumentID("")
+ .setInvoiceReferencedDocumentID("");
+
+ zf2p.generateXML(i);
+ String theXML = new String(zf2p.getXML());
+
+ assertFalse(theXML.contains("