Merge pull request #855 from langfr/issue/EmptyDocumentID
Suppress empty nodes in output XML
This commit is contained in:
@@ -600,19 +600,19 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
|
||||
xml += getTradePartyAsXML(trans.getRecipient(), false, false);
|
||||
xml += "</ram:BuyerTradeParty>";
|
||||
|
||||
if (trans.getSellerOrderReferencedDocumentID() != null) {
|
||||
if (trans.getSellerOrderReferencedDocumentID() != null && !trans.getSellerOrderReferencedDocumentID().trim().isEmpty()) {
|
||||
xml += "<ram:SellerOrderReferencedDocument>"
|
||||
+ "<ram:IssuerAssignedID>"
|
||||
+ XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>"
|
||||
+ "</ram:SellerOrderReferencedDocument>";
|
||||
}
|
||||
if (trans.getBuyerOrderReferencedDocumentID() != null) {
|
||||
if (trans.getBuyerOrderReferencedDocumentID() != null && !trans.getBuyerOrderReferencedDocumentID().trim().isEmpty()) {
|
||||
xml += "<ram:BuyerOrderReferencedDocument>"
|
||||
+ "<ram:IssuerAssignedID>"
|
||||
+ XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>"
|
||||
+ "</ram:BuyerOrderReferencedDocument>";
|
||||
}
|
||||
if (trans.getContractReferencedDocument() != null) {
|
||||
if (trans.getContractReferencedDocument() != null && !trans.getContractReferencedDocument().trim().isEmpty()) {
|
||||
xml += "<ram:ContractReferencedDocument>"
|
||||
+ "<ram:IssuerAssignedID>"
|
||||
+ XMLTools.encodeXML(trans.getContractReferencedDocument()) + "</ram:IssuerAssignedID>"
|
||||
@@ -666,7 +666,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
|
||||
* "<ID>2013-51112</ID>" +
|
||||
* "</DeliveryNoteReferencedDocument>"
|
||||
*/
|
||||
if (trans.getDespatchAdviceReferencedDocumentID() != null) {
|
||||
if (trans.getDespatchAdviceReferencedDocumentID() != null && !trans.getDespatchAdviceReferencedDocumentID().trim().isEmpty()) {
|
||||
xml += "<ram:DespatchAdviceReferencedDocument>";
|
||||
xml += "<ram:IssuerAssignedID>" + XMLTools.encodeXML(trans.getDespatchAdviceReferencedDocumentID()) + "</ram:IssuerAssignedID>";
|
||||
xml += "</ram:DespatchAdviceReferencedDocument>";
|
||||
@@ -902,7 +902,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
|
||||
}
|
||||
xml += "<ram:DuePayableAmount>" + currencyFormat(calc.getDuePayable()) + "</ram:DuePayableAmount>"
|
||||
+ "</ram:SpecifiedTradeSettlementHeaderMonetarySummation>";
|
||||
if (trans.getInvoiceReferencedDocumentID() != null) {
|
||||
if (trans.getInvoiceReferencedDocumentID() != null && !trans.getInvoiceReferencedDocumentID().trim().isEmpty()) {
|
||||
xml += "<ram:InvoiceReferencedDocument>"
|
||||
+ "<ram:IssuerAssignedID>"
|
||||
+ XMLTools.encodeXML(trans.getInvoiceReferencedDocumentID()) + "</ram:IssuerAssignedID>";
|
||||
|
||||
@@ -817,4 +817,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("<ram:SellerOrderReferencedDocument"));
|
||||
assertFalse(theXML.contains("<ram:BuyerOrderReferencedDocument"));
|
||||
assertFalse(theXML.contains("<ram:ContractReferencedDocument"));
|
||||
assertFalse(theXML.contains("<ram:DespatchAdviceReferencedDocument"));
|
||||
assertFalse(theXML.contains("<ram:InvoiceReferencedDocument"));
|
||||
|
||||
// effective empty strings for document id's
|
||||
i.setSellerOrderReferencedDocumentID(" ")
|
||||
.setBuyerOrderReferencedDocumentID(" ")
|
||||
.setContractReferencedDocument(" ")
|
||||
.setDespatchAdviceReferencedDocumentID(" ")
|
||||
.setInvoiceReferencedDocumentID(" ");
|
||||
|
||||
zf2p.generateXML(i);
|
||||
theXML = new String(zf2p.getXML());
|
||||
|
||||
assertFalse(theXML.contains("<ram:SellerOrderReferencedDocument"));
|
||||
assertFalse(theXML.contains("<ram:BuyerOrderReferencedDocument"));
|
||||
assertFalse(theXML.contains("<ram:ContractReferencedDocument"));
|
||||
assertFalse(theXML.contains("<ram:DespatchAdviceReferencedDocument"));
|
||||
assertFalse(theXML.contains("<ram:InvoiceReferencedDocument"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user