From 577ac0e930e303937ebf01e343884249594d497c Mon Sep 17 00:00:00 2001 From: Sebastian Sieber Date: Mon, 21 Mar 2022 16:19:22 +0100 Subject: [PATCH] Remove \n behind xml tags --- .../ZUGFeRD/IZUGFeRDTradeSettlementDebit.java | 12 +- .../IZUGFeRDTradeSettlementPayment.java | 29 +- .../ZUGFeRD/OXPullProvider.java | 375 ++++++++------- .../ZUGFeRD/ZUGFeRD1PullProvider.java | 286 ++++++------ .../ZUGFeRD/ZUGFeRD2PullProvider.java | 428 +++++++++--------- 5 files changed, 563 insertions(+), 567 deletions(-) diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDTradeSettlementDebit.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDTradeSettlementDebit.java index 35390856..25b326bc 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDTradeSettlementDebit.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDTradeSettlementDebit.java @@ -28,13 +28,13 @@ public interface IZUGFeRDTradeSettlementDebit extends IZUGFeRDTradeSettlement { - String xml = " \n" - + " 59\n" - + " \n" - + " "+XMLTools.encodeXML(getIBAN())+"\n" - + " \n"; + String xml = "" + + "59" + + " " + + ""+XMLTools.encodeXML(getIBAN())+"" + + ""; - xml = xml + " \n"; + xml = xml + ""; return xml; } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDTradeSettlementPayment.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDTradeSettlementPayment.java index c65ae921..b5e46089 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDTradeSettlementPayment.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDTradeSettlementPayment.java @@ -18,8 +18,6 @@ *********************************************************************** */ package org.mustangproject.ZUGFeRD; -import java.text.SimpleDateFormat; - import org.mustangproject.XMLTools; public interface IZUGFeRDTradeSettlementPayment extends IZUGFeRDTradeSettlement { @@ -60,26 +58,27 @@ public interface IZUGFeRDTradeSettlementPayment extends IZUGFeRDTradeSettlement default String getAccountName() { return null; } - default String getSettlementXML() { + @Override + default String getSettlementXML() { String accountNameStr=""; if (getAccountName()!=null) { - accountNameStr="" + XMLTools.encodeXML(getAccountName()) + "\n"; + accountNameStr="" + XMLTools.encodeXML(getAccountName()) + ""; } - String xml = " \n" - + " 58\n" - + " SEPA credit transfer\n" - + " \n" - + " " + XMLTools.encodeXML(getOwnIBAN()) + "\n"; + String xml = " " + + " 58" + + " SEPA credit transfer" + + " " + + " " + XMLTools.encodeXML(getOwnIBAN()) + ""; xml+= accountNameStr; - xml+= " \n" - + " \n" - + " " + XMLTools.encodeXML(getOwnBIC()) + "\n" - // + " "+trans.getOwnBankName()+"\n" + xml+= " " + + " " + + " " + XMLTools.encodeXML(getOwnBIC()) + "" + // + " "+trans.getOwnBankName()+"" // - + " \n" - + " \n"; + + " " + + " "; return xml; } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java index 1ca123f0..91f9d1bf 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java @@ -20,17 +20,10 @@ */ package org.mustangproject.ZUGFeRD; -import org.dom4j.Document; -import org.dom4j.DocumentException; -import org.dom4j.DocumentHelper; -import org.dom4j.io.OutputFormat; -import org.dom4j.io.XMLWriter; -import org.mustangproject.EStandard; -import org.mustangproject.FileAttachment; -import org.mustangproject.XMLTools; +import static org.mustangproject.ZUGFeRD.ZUGFeRDDateFormat.DATE; +import static org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants.CORRECTEDINVOICE; +import static org.mustangproject.ZUGFeRD.model.TaxCategoryCodeTypeConstants.CATEGORY_CODES_WITH_EXEMPTION_REASON; -import java.io.IOException; -import java.io.StringWriter; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.text.SimpleDateFormat; @@ -40,9 +33,9 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; -import static org.mustangproject.ZUGFeRD.ZUGFeRDDateFormat.DATE; -import static org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants.CORRECTEDINVOICE; -import static org.mustangproject.ZUGFeRD.model.TaxCategoryCodeTypeConstants.CATEGORY_CODES_WITH_EXEMPTION_REASON; +import org.mustangproject.EStandard; +import org.mustangproject.FileAttachment; +import org.mustangproject.XMLTools; public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider { @@ -60,7 +53,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider boolean hasDueDate = false; final SimpleDateFormat germanDateFormat = new SimpleDateFormat("dd.MM.yyyy"); - String exemptionReason = ""; + final String exemptionReason = ""; if (trans.getPaymentTermDescription() != null) { paymentTermsDescription = trans.getPaymentTermDescription(); @@ -73,73 +66,73 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider String senderReg = ""; if (trans.getOwnOrganisationFullPlaintextInfo() != null) { - senderReg = "" + "\n" + " \n" - + XMLTools.encodeXML(trans.getOwnOrganisationFullPlaintextInfo()) + " \n" - + "REG\n" + "\n"; + senderReg = "" + + XMLTools.encodeXML(trans.getOwnOrganisationFullPlaintextInfo()) + "" + + "REG"; } String rebateAgreement = ""; if (trans.rebateAgreementExists()) { - rebateAgreement = "\n" + " " - + "Es bestehen Rabatt- und Bonusvereinbarungen.\n" - + "AAK\n" + "\n"; + rebateAgreement = "" + + "Es bestehen Rabatt- und Bonusvereinbarungen." + + "AAK"; } String subjectNote = ""; if (trans.getSubjectNote() != null) { - subjectNote = "\n" + " " - + XMLTools.encodeXML(trans.getSubjectNote()) + "\n" - + "\n"; + subjectNote = "" + + XMLTools.encodeXML(trans.getSubjectNote()) + "" + + ""; } - String typecode = "220"; + final String typecode = "220"; /*if (trans.getDocumentCode() != null) { typecode = trans.getDocumentCode(); }*/ String notes = ""; if (trans.getNotes() != null) { for (final String currentNote : trans.getNotes()) { - notes = notes + "" + XMLTools.encodeXML(currentNote) + ""; + notes += "" + XMLTools.encodeXML(currentNote) + ""; } } - String xml = "\n" + String xml = "" + "\n" + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" // + " // xsi:schemaLocation=\"urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100 // ../Schema/ZUGFeRD1p0.xsd\"" - + " \n" + + "" // + " // "+testBooleanStr+"\n" // - + "\n" - + "A1\n" - + "\n" - + " \n" - + " " + getProfile().getID() + "\n" - + " \n" - + " \n" - + " \n" - + " " + XMLTools.encodeXML(trans.getNumber()) + "\n" - // + " RECHNUNG\n" - // + " 380\n" - + " " + typecode + "\n" - + " " - + DATE.udtFormat(trans.getIssueDate()) + "\n" // date + + "" + + "A1" + + "" + + "" + + "" + getProfile().getID() + "" + + "" + + "" + + "" + + "" + XMLTools.encodeXML(trans.getNumber()) + "" + // + " RECHNUNG" + // + "380" + + "" + typecode + "" + + "" + + DATE.udtFormat(trans.getIssueDate()) + "" // date + notes + subjectNote + rebateAgreement + senderReg - + " \n" - + " \n"; + + "" + + ""; int lineID = 0; for (final IZUGFeRDExportableItem currentItem : trans.getZFItems()) { lineID++; @@ -154,21 +147,21 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider } } final LineCalculator lc = new LineCalculator(currentItem); - xml = xml + " \n" + - " \n" - + " " + lineID + "\n" + xml = xml + "" + + "" + + "" + lineID + "" + notes - + " \n" + + "" - + " \n"; - // + " 4012345001235\n" + + ""; + // + " 4012345001235" if (currentItem.getProduct().getSellerAssignedID() != null) { - xml = xml + " " - + XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + "\n"; + xml = xml + "" + + XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + ""; } if (currentItem.getProduct().getBuyerAssignedID() != null) { - xml = xml + " " - + XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + "\n"; + xml = xml + "" + + XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + ""; } String allowanceChargeStr = ""; if (currentItem.getItemAllowances() != null && currentItem.getItemAllowances().length > 0) { @@ -184,12 +177,12 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider } - xml = xml + " " + XMLTools.encodeXML(currentItem.getProduct().getName()) + "\n" - + " " + XMLTools.encodeXML(currentItem.getProduct().getDescription()) - + "\n" - + " \n" + xml = xml + "" + XMLTools.encodeXML(currentItem.getProduct().getName()) + "" + + "" + XMLTools.encodeXML(currentItem.getProduct().getDescription()) + + "" + + "" - + " \n"; + + ""; /* if (currentItem.getReferencedDocuments() != null) { for (IReferencedDocument currentReferencedDocument : currentItem.getReferencedDocuments()) { xml = xml + "\n" + @@ -203,44 +196,44 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider }*/ if (currentItem.getBuyerOrderReferencedDocumentLineID() != null) { - xml = xml + " \n" - + " " + XMLTools.encodeXML(currentItem.getBuyerOrderReferencedDocumentLineID()) + "\n" - + " \n"; + xml = xml + " \n" + + "" + XMLTools.encodeXML(currentItem.getBuyerOrderReferencedDocumentLineID()) + "" + + ""; } - xml = xml + " \n" - + " " + priceFormat(lc.getPriceGross()) - + "\n" //currencyID=\"EUR\" + xml = xml + "" + + "" + priceFormat(lc.getPriceGross()) + + "" //currencyID=\"EUR\" + "" + quantityFormat(currentItem.getBasisQuantity()) + "\n" + + "\">" + quantityFormat(currentItem.getBasisQuantity()) + "" + allowanceChargeStr // + " \n" // + " false\n" // + " 0.6667\n" // + " Rabatt\n" // + " \n" - + " \n" - + " \n" - + " " + priceFormat(lc.getPrice()) - + "\n" // currencyID=\"EUR\" - + " " + quantityFormat(currentItem.getBasisQuantity()) + "\n" - + " \n" - + " \n" + + "\n" + + "\n" + + "" + priceFormat(lc.getPrice()) + + "" // currencyID=\"EUR\" + + "" + quantityFormat(currentItem.getBasisQuantity()) + "" + + "" + + "" - + " \n" - + " " - + quantityFormat(currentItem.getQuantity()) + "\n" - + " \n" - + " \n" - + " \n" - + " VAT\n" + + "" + + "" + + quantityFormat(currentItem.getQuantity()) + "" + + "" + + "" + + "" + + "VAT" + exemptionReason - + " " + currentItem.getProduct().getTaxCategoryCode() + "\n" + + "" + currentItem.getProduct().getTaxCategoryCode() + "" - + " " - + vatFormat(currentItem.getProduct().getVATPercent()) + "\n" - + " \n"; + + "" + + vatFormat(currentItem.getProduct().getVATPercent()) + "" + + ""; if ((currentItem.getDetailedDeliveryPeriodFrom() != null) || (currentItem.getDetailedDeliveryPeriodTo() != null)) { xml = xml + ""; if (currentItem.getDetailedDeliveryPeriodFrom() != null) { @@ -253,86 +246,86 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider } - xml = xml + " \n" - + " " + currencyFormat(lc.getItemTotalNetAmount()) - + "\n" // currencyID=\"EUR\" - + " \n"; + xml = xml + "" + + "" + currencyFormat(lc.getItemTotalNetAmount()) + + "" // currencyID=\"EUR\" + + ""; /* if (currentItem.getAdditionalReferencedDocumentID() != null) { - xml = xml + " " + currentItem.getAdditionalReferencedDocumentID() + "130\n"; + xml = xml + "" + currentItem.getAdditionalReferencedDocumentID() + "130"; }*/ - xml = xml + " \n" - + " \n"; + xml = xml + "" + + ""; } - xml = xml + " \n"; + xml = xml + ""; if (trans.getReferenceNumber() != null) { - xml = xml + " " + XMLTools.encodeXML(trans.getReferenceNumber()) + "\n"; + xml = xml + "" + XMLTools.encodeXML(trans.getReferenceNumber()) + ""; } - xml = xml + " \n" + xml = xml + "" + getTradePartyAsXML(trans.getSender(), true, false) - + " \n" - + " \n"; - // + " GE2020211\n" - // + " 4000001987658\n" + + "" + + ""; + // + " GE2020211" + // + " 4000001987658" xml += getTradePartyAsXML(trans.getRecipient(), false, false); - xml += " \n"; + xml += ""; if (trans.getSellerOrderReferencedDocumentID() != null) { - xml = xml + " \n" - + " " - + XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "\n" - + " \n"; + xml = xml + "" + + "" + + XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "" + + ""; } if (trans.getBuyerOrderReferencedDocumentID() != null) { - xml = xml + " \n" - + " " - + XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "\n" - + " \n"; + xml = xml + "" + + "" + + XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "" + + ""; } if (trans.getContractReferencedDocument() != null) { - xml = xml + " \n" - + " " - + XMLTools.encodeXML(trans.getContractReferencedDocument()) + "\n" - + " \n"; + xml = xml + "" + + "" + + XMLTools.encodeXML(trans.getContractReferencedDocument()) + "" + + ""; } // Additional Documents of XRechnung (Rechnungsbegruendende Unterlagen - BG-24 XRechnung) if (trans.getAdditionalReferencedDocuments() != null) { for (final FileAttachment f : trans.getAdditionalReferencedDocuments()) { final String documentContent = new String(Base64.getEncoder().encodeToString(f.getData())); - xml = xml + " \n" - + " " + f.getFilename() + "\n" - + " 916\n" - + " " + f.getDescription() + "\n" - + " " + documentContent + "\n" - + " \n"; + xml = xml + "" + + "" + f.getFilename() + "" + + "916" + + "" + f.getDescription() + "" + + "" + documentContent + "" + + ""; } } if (trans.getSpecifiedProcuringProjectID() != null) { - xml = xml + " \n" - + " " - + XMLTools.encodeXML(trans.getSpecifiedProcuringProjectID()) + "\n"; + xml = xml + "" + + "" + + XMLTools.encodeXML(trans.getSpecifiedProcuringProjectID()) + ""; if (trans.getSpecifiedProcuringProjectName() != null) { - xml += " " + XMLTools.encodeXML(trans.getSpecifiedProcuringProjectName()) + "\n"; + xml += "" + XMLTools.encodeXML(trans.getSpecifiedProcuringProjectName()) + ""; } - xml += " \n"; + xml += ""; } - xml = xml + " \n" - + " \n"; + xml = xml + "" + + ""; if (this.trans.getDeliveryAddress() != null) { xml += "" + getTradePartyAsXML(this.trans.getDeliveryAddress(), false, true) + ""; } /* - xml += " \n" - + " "; + xml += "" + + ""; if (trans.getDeliveryDate() != null) { xml += DATE.udtFormat(trans.getDeliveryDate()); @@ -340,18 +333,18 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider throw new IllegalStateException("No delivery date provided"); } xml += "\n"; - xml += " \n" + xml += "\n" */ /* - * + " \n" + - * " 20130603\n" + - * " 2013-51112\n" + - * " \n" + * + "\n" + + * "20130603\n" + + * "2013-51112\n" + + * "\n" */ - xml+= " \n" + " \n" - // + " " + XMLTools.encodeXML(trans.getNumber()) + "\n" - + " " + trans.getCurrency() + "\n"; + xml+= "\n" + // + "" + XMLTools.encodeXML(trans.getNumber()) + "" + + "" + trans.getCurrency() + ""; if (trans.getTradeSettlementPayment() != null) { for (final IZUGFeRDTradeSettlementPayment payment : trans.getTradeSettlementPayment()) { @@ -381,15 +374,15 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider if (amount != null) { final String amountCategoryCode = amount.getCategoryCode(); final boolean displayExemptionReason = CATEGORY_CODES_WITH_EXEMPTION_REASON.contains(amountCategoryCode); - /* xml += " \n" - + " " + currencyFormat(amount.getCalculated()) + /* xml += "\n" + + "" + currencyFormat(amount.getCalculated()) + "\n" //currencyID=\"EUR\" - + " VAT\n" + + "VAT\n" + (displayExemptionReason ? exemptionReason : "") - + " " + currencyFormat(amount.getBasis()) + "\n" // currencyID=\"EUR\" - + " " + amountCategoryCode + "\n" - + " " - + vatFormat(currentTaxPercent) + "\n" + " \n"; + + "" + currencyFormat(amount.getBasis()) + "\n" // currencyID=\"EUR\" + + "" + amountCategoryCode + "\n" + + "" + + vatFormat(currentTaxPercent) + "\n" + "\n"; */ } @@ -413,18 +406,18 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider if (calc.getChargesForPercent(currentTaxPercent).compareTo(BigDecimal.ZERO) != 0) { - xml = xml + " \n" + - " \n" + - " true\n" + - " \n" + - " " + currencyFormat(calc.getChargesForPercent(currentTaxPercent)) + "\n" + - " " + XMLTools.encodeXML(calc.getChargeReasonForPercent(currentTaxPercent)) + "\n" + - " \n" + - " VAT\n" + - " " + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "\n" + - " " + vatFormat(currentTaxPercent) + "\n" + - " \n" + - " \n"; + xml = xml + " " + + "" + + "true" + + "" + + "" + currencyFormat(calc.getChargesForPercent(currentTaxPercent)) + "" + + "" + XMLTools.encodeXML(calc.getChargeReasonForPercent(currentTaxPercent)) + "" + + "" + + "VAT" + + "" + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "" + + "" + vatFormat(currentTaxPercent) + "" + + "" + + " \n"; } } @@ -434,28 +427,28 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider if ((trans.getZFAllowances() != null) && (trans.getZFAllowances().length > 0)) { for (final BigDecimal currentTaxPercent : VATPercentAmountMap.keySet()) { if (calc.getAllowancesForPercent(currentTaxPercent).compareTo(BigDecimal.ZERO) != 0) { - xml = xml + " \n" + - " \n" + - " false\n" + - " \n" + - " " + currencyFormat(calc.getAllowancesForPercent(currentTaxPercent)) + "\n" + - " " + XMLTools.encodeXML(calc.getAllowanceReasonForPercent(currentTaxPercent)) + "\n" + - " \n" + - " VAT\n" + - " " + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "\n" + - " " + vatFormat(currentTaxPercent) + "\n" + - " \n" + - " \n"; + xml = xml + " " + + "" + + "false" + + "" + + "" + currencyFormat(calc.getAllowancesForPercent(currentTaxPercent)) + "" + + "" + XMLTools.encodeXML(calc.getAllowanceReasonForPercent(currentTaxPercent)) + "" + + "" + + "VAT" + + "" + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "" + + "" + vatFormat(currentTaxPercent) + "" + + "" + + " \n"; } } } if ((trans.getPaymentTerms() == null) && ((paymentTermsDescription != null) || (trans.getTradeSettlement() != null) || (hasDueDate))) { - xml = xml + "\n"; + xml = xml + ""; if (paymentTermsDescription != null) { - xml = xml + "" + paymentTermsDescription + "\n"; + xml = xml + "" + paymentTermsDescription + ""; } if (trans.getTradeSettlement() != null) { @@ -467,12 +460,12 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider } if (hasDueDate && (trans.getDueDate() != null)) { - xml = xml + " " // $NON-NLS-2$ + xml = xml + "" // $NON-NLS-2$ + DATE.udtFormat(trans.getDueDate()) - + "\n";// 20130704 + + "";// 20130704 } - xml = xml + " \n"; + xml = xml + ""; } else { xml = xml + buildPaymentTermsXml(); } @@ -482,44 +475,44 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider final String chargesTotalLine = "" + currencyFormat(calc.getChargesForPercent(null)) + ""; - xml = xml + " \n" - + " " + currencyFormat(calc.getTotal()) + "\n" + xml = xml + "" + + "" + currencyFormat(calc.getTotal()) + "" + chargesTotalLine + allowanceTotalLine - + " " + currencyFormat(calc.getTaxBasis()) + "\n" + + "" + currencyFormat(calc.getTaxBasis()) + "" // // // currencyID=\"EUR\" - + " " - + currencyFormat(calc.getGrandTotal().subtract(calc.getTaxBasis())) + "\n" - + " " + currencyFormat(calc.getGrandTotal()) + "\n" + + "" + + currencyFormat(calc.getGrandTotal().subtract(calc.getTaxBasis())) + "" + + "" + currencyFormat(calc.getGrandTotal()) + "" // // // currencyID=\"EUR\" - //+ " " + currencyFormat(calc.getTotalPrepaid()) + "\n" - //+ " " + currencyFormat(calc.getGrandTotal().subtract(calc.getTotalPrepaid())) + "\n" - + " \n"; + //+ "" + currencyFormat(calc.getTotalPrepaid()) + "" + //+ "" + currencyFormat(calc.getGrandTotal().subtract(calc.getTotalPrepaid())) + "" + + ""; if (trans.getInvoiceReferencedDocumentID() != null) { - xml = xml + " \n" - + " " - + XMLTools.encodeXML(trans.getInvoiceReferencedDocumentID()) + "\n"; + xml = xml + "" + + "" + + XMLTools.encodeXML(trans.getInvoiceReferencedDocumentID()) + ""; if (trans.getInvoiceReferencedIssueDate() != null) { xml += "" + DATE.qdtFormat(trans.getInvoiceReferencedIssueDate()) - + "\n"; + + ""; } - xml += " \n"; + xml += ""; } - xml = xml + " \n"; - // + " \n" - // + " \n" - // + " \n" + xml = xml + ""; + // + " " + // + " " + // + " " // + " Wir erlauben uns Ihnen folgende Positionen aus der Lieferung Nr. // 2013-51112 in Rechnung zu stellen:\n" // + " \n" // + " \n" // + " \n"; - xml = xml + " \n" + xml = xml + "" + ""; final byte[] zugferdRaw; diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java index 0ab4f772..20b4f816 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java @@ -57,19 +57,23 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr public void setTest() { } - protected String vatFormat(BigDecimal value) { + @Override + protected String vatFormat(BigDecimal value) { return XMLTools.nDigitFormat(value, 2); } - protected String currencyFormat(BigDecimal value) { + @Override + protected String currencyFormat(BigDecimal value) { return XMLTools.nDigitFormat(value, 2); } - protected String priceFormat(BigDecimal value) { + @Override + protected String priceFormat(BigDecimal value) { return XMLTools.nDigitFormat(value, 4); } - protected String quantityFormat(BigDecimal value) { + @Override + protected String quantityFormat(BigDecimal value) { return XMLTools.nDigitFormat(value, 4); } @@ -127,52 +131,52 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr String senderReg = ""; if (trans.getOwnOrganisationFullPlaintextInfo() != null) { - senderReg = "" + "\n" + " \n" - + XMLTools.encodeXML(trans.getOwnOrganisationFullPlaintextInfo()) + " \n" - + "REG\n" + "\n"; + senderReg = "" + + XMLTools.encodeXML(trans.getOwnOrganisationFullPlaintextInfo()) + "" + + "REG"; } String rebateAgreement = ""; if (trans.rebateAgreementExists()) { - rebateAgreement = "\n" + " " - + "Es bestehen Rabatt- und Bonusvereinbarungen.\n" - + "AAK\n" + "\n"; + rebateAgreement = "" + + "Es bestehen Rabatt- und Bonusvereinbarungen." + + "AAK"; } String subjectNote = ""; if (trans.getSubjectNote() != null) { - subjectNote = "\n" + " " - + XMLTools.encodeXML(trans.getSubjectNote()) + "\n" - + "\n"; + subjectNote = "" + + XMLTools.encodeXML(trans.getSubjectNote()) + "" + + ""; } String typecode = "380"; if (trans.getDocumentCode() != null) { typecode = trans.getDocumentCode(); } - String xml = "\n" + String xml = "" + "\n" - + "\n" - + " \n" + + " xmlns:udt=\"urn:un:unece:uncefact:data:standard:UnqualifiedDataType:15\">" + + "" + + "" // + " - // "+testBooleanStr+"\n" + // "+testBooleanStr+"" // - + " \n" - + " " + getProfile().getID() + "\n" - + " \n" - + " \n" - + " \n" - + " " + XMLTools.encodeXML(trans.getNumber()) + "\n" - + " RECHNUNG\n" - + " " + typecode + "\n" - + " " - + DATE.udtFormat(trans.getIssueDate()) + "\n" // date + + "" + + "" + getProfile().getID() + "" + + "" + + "" + + "" + + "" + XMLTools.encodeXML(trans.getNumber()) + "" + + "RECHNUNG" + + "" + typecode + "" + + "" + + DATE.udtFormat(trans.getIssueDate()) + "" // date // format // was // 20130605 @@ -180,68 +184,68 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr + rebateAgreement + senderReg - + " \n" - + " \n"; - xml = xml + " \n"; + + "" + + ""; + xml = xml + ""; if (trans.getReferenceNumber() != null) { - xml = xml + " " + XMLTools.encodeXML(trans.getReferenceNumber()) + "\n"; + xml = xml + "" + XMLTools.encodeXML(trans.getReferenceNumber()) + ""; } - xml = xml + " \n"; + xml = xml + ""; xml += getTradePartyAsXML(trans.getSender(), true, false); - xml += " \n" - + " \n"; - // + " GE2020211\n" - // + " 4000001987658\n" + xml += "" + + ""; + // + " GE2020211" + // + " 4000001987658" xml += getTradePartyAsXML(trans.getRecipient(), false, false); if ((trans.getOwnVATID() != null) && (trans.getOwnOrganisationName() != null)) { - xml = xml + " \n" + " " - + XMLTools.encodeXML(trans.getOwnVATID()) + "\n" - + " "; + xml = xml + "\n" + + XMLTools.encodeXML(trans.getOwnVATID()) + "" + + ""; } - xml += " \n"; + xml += ""; if (trans.getSellerOrderReferencedDocumentID() != null) { - xml = xml + " \n" - + " " - + XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "\n" - + " \n"; + xml = xml + "" + + "" + + XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "" + + ""; } if (trans.getBuyerOrderReferencedDocumentID() != null) { - xml = xml + " \n" - + " " - + XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "\n" - + " \n"; + xml = xml + "" + + "" + + XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "" + + ""; } - xml = xml + " \n" - + " \n"; + xml = xml + "" + + ""; if (this.trans.getDeliveryAddress() != null) { xml += "" + getTradePartyAsXML(this.trans.getDeliveryAddress(), false, true) + ""; } - xml += " \n" - + " "; + xml += "" + + ""; if (trans.getDeliveryDate() != null) { xml += DATE.udtFormat(trans.getDeliveryDate()); } else { throw new IllegalStateException("No delivery date provided"); } - xml += "\n"; - xml += " \n" + xml += ""; + xml += "" /* - * + " \n" + - * " 20130603\n" + - * " 2013-51112\n" + - * " \n" + * + "" + + * "20130603" + + * "2013-51112" + + * "" */ - + " \n" + " \n" - + " " + XMLTools.encodeXML(trans.getNumber()) + "\n" - + " " + trans.getCurrency() + "\n"; + + "\n" + + "" + XMLTools.encodeXML(trans.getNumber()) + "" + + "" + trans.getCurrency() + ""; if (trans.getTradeSettlementPayment() != null) { for (final IZUGFeRDTradeSettlementPayment payment : trans.getTradeSettlementPayment()) { @@ -268,21 +272,21 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr if (amount != null) { final String amountCategoryCode = amount.getCategoryCode(); final boolean displayExemptionReason = CATEGORY_CODES_WITH_EXEMPTION_REASON.contains(amountCategoryCode); - xml += " \n" - + " " + currencyFormat(amount.getCalculated()) - + "\n" //currencyID=\"EUR\" - + " VAT\n" + xml += "" + + "" + currencyFormat(amount.getCalculated()) + + "" //currencyID=\"EUR\" + + "VAT" + (displayExemptionReason ? exemptionReason : "") - + " " + currencyFormat(amount.getBasis()) + "\n" // currencyID=\"EUR\" - + " " + amount.getCategoryCode() + "\n" - + " " + vatFormat(currentTaxPercent) - + "\n" + " \n"; + + "" + currencyFormat(amount.getBasis()) + "" // currencyID=\"EUR\" + + "" + amount.getCategoryCode() + "" + + "" + vatFormat(currentTaxPercent) + + "\n"; } } if (trans.getPaymentTerms() == null) { - xml = xml + " \n" - + " " + paymentTermsDescription + "\n"; + xml = xml + "" + + "" + paymentTermsDescription + ""; if (trans.getTradeSettlement() != null) { for (final IZUGFeRDTradeSettlement payment : trans.getTradeSettlement()) { @@ -293,38 +297,38 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr } if (hasDueDate && (trans.getDueDate() != null)) { - xml = xml + " " // $NON-NLS-2$ + xml = xml + "" // $NON-NLS-2$ + DATE.udtFormat(trans.getDueDate()) - + "\n";// 20130704 + + "";// 20130704 } - xml = xml + " \n"; + xml = xml + ""; } else { xml = xml + buildPaymentTermsXml(); } - xml = xml + " \n" - + " " + currencyFormat(calc.getTotal()) + "\n" + xml = xml + "" + + "" + currencyFormat(calc.getTotal()) + "" // currencyID=\"EUR\" - + " 0.00\n" // currencyID=\"EUR\" - + " 0.00\n" // + + "0.00" // currencyID=\"EUR\" + + "0.00" // // currencyID=\"EUR\" - // + " 5.80\n" - // + " 14.73\n" - + " " + currencyFormat(calc.getTotal()) + "\n" + // + " 5.80" + // + " 14.73" + + "" + currencyFormat(calc.getTotal()) + "" // // // currencyID=\"EUR\" - + " " - + currencyFormat(calc.getGrandTotal().subtract(calc.getTotal())) + "\n" - + " " + currencyFormat(calc.getGrandTotal()) + "\n" + + "" + + currencyFormat(calc.getGrandTotal().subtract(calc.getTotal())) + "" + + "" + currencyFormat(calc.getGrandTotal()) + "" // // // currencyID=\"EUR\" - + " " + currencyFormat(calc.getTotalPrepaid()) + "\n" - + " " + currencyFormat(calc.getGrandTotal().subtract(calc.getTotalPrepaid())) + "\n" + + "" + currencyFormat(calc.getTotalPrepaid()) + "" + + "" + currencyFormat(calc.getGrandTotal().subtract(calc.getTotalPrepaid())) + "" // // // currencyID=\"EUR\" - + " \n" - + " \n"; + + "" + + ""; int lineID = 0; @@ -336,69 +340,69 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr final LineCalculator lc = new LineCalculator(currentItem); - xml = xml + " \n" + - " \n" - + " " + lineID + "\n" - + " \n" - + " \n" - + " \n" - + " " + priceFormat(lc.getPriceGross()) - + "\n" - + " " + quantityFormat(currentItem.getBasisQuantity()) + "\n" - // + " \n" - // + " false\n" - // + " 0.6667\n" - // + " Rabatt\n" - // + " \n" - + " \n" - + " \n" - + " " + priceFormat(currentItem.getPrice()) - + "\n" - + " " + quantityFormat(currentItem.getBasisQuantity()) + "\n" - + " \n" - + " \n" + xml = xml + "" + + "" + + "" + lineID + "" + + "" + + "" + + "" + + "" + priceFormat(lc.getPriceGross()) + + "" + + "" + quantityFormat(currentItem.getBasisQuantity()) + "" + // + " " + // + " false" + // + " 0.6667" + // + " Rabatt" + // + " " + + "" + + "" + + "" + priceFormat(currentItem.getPrice()) + + "" + + "" + quantityFormat(currentItem.getBasisQuantity()) + "" + + "" + + "" - + " \n" - + " " - + quantityFormat(currentItem.getQuantity()) + "\n" - + " \n" - + " \n" - + " \n" - + " VAT\n" + + "" + + "" + + quantityFormat(currentItem.getQuantity()) + "" + + "" + + "" + + "" + + "VAT" + exemptionReason - + " " + currentItem.getProduct().getTaxCategoryCode() + "\n" + + "" + currentItem.getProduct().getTaxCategoryCode() + "" - + " " - + vatFormat(currentItem.getProduct().getVATPercent()) + "\n" - + " \n" - + " \n" - + " " + currencyFormat(lc.getItemTotalNetAmount()) - + "\n" - + " \n"; + + "" + + vatFormat(currentItem.getProduct().getVATPercent()) + "" + + "" + + "" + + "" + currencyFormat(lc.getItemTotalNetAmount()) + + "" + + ""; if (currentItem.getAdditionalReferencedDocumentID() != null) { - xml = xml + " " + currentItem.getAdditionalReferencedDocumentID() + "130\n"; + xml = xml + "" + currentItem.getAdditionalReferencedDocumentID() + "130"; } - xml = xml + " \n" - + " \n"; - // + " 4012345001235\n" + xml = xml + "" + + ""; + // + " 4012345001235" if (currentItem.getProduct().getSellerAssignedID() != null) { - xml = xml + " " - + XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + "\n"; + xml = xml + "" + + XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + ""; } if (currentItem.getProduct().getBuyerAssignedID() != null) { - xml = xml + " " - + XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + "\n"; + xml = xml + "" + + XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + ""; } - xml = xml + " " + XMLTools.encodeXML(currentItem.getProduct().getName()) + "\n" - + " " + XMLTools.encodeXML(currentItem.getProduct().getDescription()) - + "\n" - + " \n" + xml = xml + "" + XMLTools.encodeXML(currentItem.getProduct().getName()) + "" + + "" + XMLTools.encodeXML(currentItem.getProduct().getDescription()) + + "" + + "" - + " \n"; + + ""; } @@ -411,7 +415,7 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr // + " \n" // + " \n"; - xml = xml + " \n" + xml = xml + "" + ""; final byte[] zugferdRaw; diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index f10abe4b..8042e24a 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -28,6 +28,7 @@ import java.io.IOException; import java.io.StringWriter; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; +import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.Base64; import java.util.Date; @@ -92,7 +93,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { format.setTrimText(false); final XMLWriter writer = new XMLWriter(sw, format); writer.write(document); - res = sw.toString().getBytes("UTF-8"); + res = sw.toString().getBytes(StandardCharsets.UTF_8); } catch (final IOException e) { Logger.getLogger(ZUGFeRD2PullProvider.class.getName()).log(Level.SEVERE, null, e); @@ -123,12 +124,12 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { // According EN16931 either GlobalID or seller assigned ID might be present for BuyerTradeParty // and ShipToTradeParty, but not both. Prefer seller assigned ID for now. if (party.getID() != null) { - xml += " " + XMLTools.encodeXML(party.getID()) + "\n"; + xml += "" + XMLTools.encodeXML(party.getID()) + ""; } else if ((party.getGlobalIDScheme() != null) && (party.getGlobalID() != null)) { - xml = xml + " " - + XMLTools.encodeXML(party.getGlobalID()) + "\n"; + xml = xml + "" + + XMLTools.encodeXML(party.getGlobalID()) + ""; } - xml += " " + XMLTools.encodeXML(party.getName()) + "\n"; + xml += "" + XMLTools.encodeXML(party.getName()) + ""; if (party.getLegalOrganisation() != null) { xml += " "; @@ -137,60 +138,60 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } if ((party.getContact() != null) && (isSender || profile == Profiles.getByName("Extended") || profile == Profiles.getByName("XRechnung"))) { - xml = xml + "\n"; + xml = xml + ""; if (party.getContact().getName() != null) { xml = xml + "" + XMLTools.encodeXML(party.getContact().getName()) - + "\n"; + + ""; } if (party.getContact().getPhone() != null) { - xml = xml + " \n" + " " - + XMLTools.encodeXML(party.getContact().getPhone()) + "\n" - + " \n"; + xml = xml + "" + + XMLTools.encodeXML(party.getContact().getPhone()) + "" + + ""; } if ((party.getContact().getFax() != null) && (profile == Profiles.getByName("Extended"))) { - xml = xml + " \n" + " " - + XMLTools.encodeXML(party.getContact().getFax()) + "\n" - + " \n"; + xml = xml + "" + + XMLTools.encodeXML(party.getContact().getFax()) + "" + + ""; } if (party.getContact().getEMail() != null) { - xml = xml + " \n" + " " - + XMLTools.encodeXML(party.getContact().getEMail()) + "\n" - + " \n"; + xml = xml + "" + + XMLTools.encodeXML(party.getContact().getEMail()) + "" + + ""; } - xml = xml + " "; + xml = xml + ""; } - xml += " \n" - + " " + XMLTools.encodeXML(party.getZIP()) - + "\n"; + xml += "" + + "" + XMLTools.encodeXML(party.getZIP()) + + ""; if (party.getStreet() != null) { - xml += " " + XMLTools.encodeXML(party.getStreet()) - + "\n"; + xml += "" + XMLTools.encodeXML(party.getStreet()) + + ""; } if (party.getAdditionalAddress() != null) { - xml += " " + XMLTools.encodeXML(party.getAdditionalAddress()) - + "\n"; + xml += "" + XMLTools.encodeXML(party.getAdditionalAddress()) + + ""; } - xml += " " + XMLTools.encodeXML(party.getLocation()) - + "\n" - + " " + XMLTools.encodeXML(party.getCountry()) - + "\n" - + " \n"; + xml += "" + XMLTools.encodeXML(party.getLocation()) + + "" + + "" + XMLTools.encodeXML(party.getCountry()) + + "" + + ""; if ((party.getVATID() != null) && (!isShipToTradeParty)) { - xml += " \n" - + " " + XMLTools.encodeXML(party.getVATID()) - + "\n" - + " \n"; + xml += "" + + "" + XMLTools.encodeXML(party.getVATID()) + + "" + + ""; } if ((party.getTaxID() != null) && (!isShipToTradeParty)) { - xml += " \n" - + " " + XMLTools.encodeXML(party.getTaxID()) - + "\n" - + " \n"; + xml += "" + + "" + XMLTools.encodeXML(party.getTaxID()) + + "" + + ""; } return xml; @@ -249,24 +250,24 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { String senderReg = ""; if (trans.getOwnOrganisationFullPlaintextInfo() != null) { - senderReg = "" + "\n" + " \n" - + XMLTools.encodeXML(trans.getOwnOrganisationFullPlaintextInfo()) + " \n" - + "REG\n" + "\n"; + senderReg = "" + + XMLTools.encodeXML(trans.getOwnOrganisationFullPlaintextInfo()) + "" + + "REG\n"; } String rebateAgreement = ""; if (trans.rebateAgreementExists()) { - rebateAgreement = "\n" + " " - + "Es bestehen Rabatt- und Bonusvereinbarungen.\n" - + "AAK\n" + "\n"; + rebateAgreement = "\n" + + "Es bestehen Rabatt- und Bonusvereinbarungen." + + "AAK\n"; } String subjectNote = ""; if (trans.getSubjectNote() != null) { - subjectNote = "\n" + " " - + XMLTools.encodeXML(trans.getSubjectNote()) + "\n" - + "\n"; + subjectNote = "\n" + + XMLTools.encodeXML(trans.getSubjectNote()) + "" + + ""; } String typecode = "380"; @@ -280,7 +281,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } } - String xml = "\n" + String xml = "" + "\n" - + "\n" - + " \n" + + " xmlns:qdt=\"urn:un:unece:uncefact:data:standard:QualifiedDataType:100\">" + + "" + + "" // + " - // "+testBooleanStr+"\n" + // "+testBooleanStr+"" // - + " \n" - + " " + getProfile().getID() + "\n" - + " \n" - + " \n" - + " \n" - + " " + XMLTools.encodeXML(trans.getNumber()) + "\n" - // + " RECHNUNG\n" - // + " 380\n" - + " " + typecode + "\n" - + " " - + DATE.udtFormat(trans.getIssueDate()) + "\n" // date + + "" + + "" + getProfile().getID() + "" + + "" + + "" + + "" + + "" + XMLTools.encodeXML(trans.getNumber()) + "" + // + " RECHNUNG" + // + "380" + + "" + typecode + "" + + "" + + DATE.udtFormat(trans.getIssueDate()) + "" // date + notes + subjectNote + rebateAgreement + senderReg - + " \n" - + " \n"; + + "" + + ""; int lineID = 0; for (final IZUGFeRDExportableItem currentItem : trans.getZFItems()) { lineID++; @@ -326,21 +327,21 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } } final LineCalculator lc = new LineCalculator(currentItem); - xml = xml + " \n" + - " \n" - + " " + lineID + "\n" + xml = xml + "" + + "" + + "" + lineID + "" + notes - + " \n" + + "" - + " \n"; - // + " 4012345001235\n" + + ""; + // + " 4012345001235" if (currentItem.getProduct().getSellerAssignedID() != null) { - xml = xml + " " - + XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + "\n"; + xml = xml + "" + + XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + ""; } if (currentItem.getProduct().getBuyerAssignedID() != null) { - xml = xml + " " - + XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + "\n"; + xml = xml + "" + + XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + ""; } String allowanceChargeStr = ""; if (currentItem.getItemAllowances() != null && currentItem.getItemAllowances().length > 0) { @@ -356,63 +357,63 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } - xml = xml + " " + XMLTools.encodeXML(currentItem.getProduct().getName()) + "\n" - + " " + XMLTools.encodeXML(currentItem.getProduct().getDescription()) - + "\n" - + " \n" + xml = xml + "" + XMLTools.encodeXML(currentItem.getProduct().getName()) + "" + + "" + XMLTools.encodeXML(currentItem.getProduct().getDescription()) + + "" + + "" - + " \n"; + + ""; if (currentItem.getReferencedDocuments() != null) { - for (IReferencedDocument currentReferencedDocument : currentItem.getReferencedDocuments()) { - xml = xml + "\n" + - "" + XMLTools.encodeXML(currentReferencedDocument.getIssuerAssignedID()) + "\n" + - "" + XMLTools.encodeXML(currentReferencedDocument.getTypeCode()) + "\n" + - "" + XMLTools.encodeXML(currentReferencedDocument.getReferenceTypeCode()) + "\n" + - "\n"; + for (final IReferencedDocument currentReferencedDocument : currentItem.getReferencedDocuments()) { + xml = xml + "" + + "" + XMLTools.encodeXML(currentReferencedDocument.getIssuerAssignedID()) + "" + + "" + XMLTools.encodeXML(currentReferencedDocument.getTypeCode()) + "" + + "" + XMLTools.encodeXML(currentReferencedDocument.getReferenceTypeCode()) + "" + + ""; } } if (currentItem.getBuyerOrderReferencedDocumentLineID() != null) { - xml = xml + " \n" - + " " + XMLTools.encodeXML(currentItem.getBuyerOrderReferencedDocumentLineID()) + "\n" - + " \n"; + xml = xml + " \n" + + "" + XMLTools.encodeXML(currentItem.getBuyerOrderReferencedDocumentLineID()) + "" + + ""; } - xml = xml + " \n" - + " " + priceFormat(lc.getPriceGross()) - + "\n" //currencyID=\"EUR\" + xml = xml + "" + + "" + priceFormat(lc.getPriceGross()) + + "" //currencyID=\"EUR\" + "" + quantityFormat(currentItem.getBasisQuantity()) + "\n" + + "\">" + quantityFormat(currentItem.getBasisQuantity()) + "" + allowanceChargeStr - // + " \n" - // + " false\n" - // + " 0.6667\n" - // + " Rabatt\n" - // + " \n" - + " \n" - + " \n" - + " " + priceFormat(lc.getPrice()) - + "\n" // currencyID=\"EUR\" - + " " + quantityFormat(currentItem.getBasisQuantity()) + "\n" - + " \n" - + " \n" + // + " " + // + " false" + // + " 0.6667" + // + " Rabatt" + // + " " + + "" + + "" + + "" + priceFormat(lc.getPrice()) + + "" // currencyID=\"EUR\" + + "" + quantityFormat(currentItem.getBasisQuantity()) + "" + + "" + + "" - + " \n" - + " " - + quantityFormat(currentItem.getQuantity()) + "\n" - + " \n" - + " \n" - + " \n" - + " VAT\n" + + "" + + "" + + quantityFormat(currentItem.getQuantity()) + "" + + "" + + "" + + "" + + "VAT" + exemptionReason - + " " + currentItem.getProduct().getTaxCategoryCode() + "\n" + + "" + currentItem.getProduct().getTaxCategoryCode() + "" - + " " - + vatFormat(currentItem.getProduct().getVATPercent()) + "\n" - + " \n"; + + "" + + vatFormat(currentItem.getProduct().getVATPercent()) + "" + + ""; if ((currentItem.getDetailedDeliveryPeriodFrom() != null) || (currentItem.getDetailedDeliveryPeriodTo() != null)) { xml = xml + ""; if (currentItem.getDetailedDeliveryPeriodFrom() != null) { @@ -425,100 +426,99 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } - xml = xml + " \n" - + " " + currencyFormat(lc.getItemTotalNetAmount()) - + "\n" // currencyID=\"EUR\" - + " \n"; + xml = xml + "" + + "" + currencyFormat(lc.getItemTotalNetAmount()) + + "" // currencyID=\"EUR\" + + ""; if (currentItem.getAdditionalReferencedDocumentID() != null) { - xml = xml + " " + currentItem.getAdditionalReferencedDocumentID() + "130\n"; + xml = xml + "" + currentItem.getAdditionalReferencedDocumentID() + "130"; } - xml = xml + " \n" - + " \n"; + xml = xml + "" + + ""; } - xml = xml + " \n"; + xml = xml + ""; if (trans.getReferenceNumber() != null) { - xml = xml + " " + XMLTools.encodeXML(trans.getReferenceNumber()) + "\n"; + xml = xml + "" + XMLTools.encodeXML(trans.getReferenceNumber()) + ""; } - xml = xml + " \n" + xml = xml + "" + getTradePartyAsXML(trans.getSender(), true, false) - + " \n" - + " \n"; - // + " GE2020211\n" - // + " 4000001987658\n" + + "" + + ""; + // + " GE2020211" + // + " 4000001987658" xml += getTradePartyAsXML(trans.getRecipient(), false, false); - xml += " \n"; + xml += ""; if (trans.getSellerOrderReferencedDocumentID() != null) { - xml = xml + " \n" + xml = xml + " " + " " - + XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "\n" - + " \n"; + + XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "" + + " "; } if (trans.getBuyerOrderReferencedDocumentID() != null) { - xml = xml + " \n" + xml = xml + " " + " " - + XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "\n" - + " \n"; + + XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "" + + " "; } if (trans.getContractReferencedDocument() != null) { - xml = xml + " \n" + xml = xml + " " + " " - + XMLTools.encodeXML(trans.getContractReferencedDocument()) + "\n" - + " \n"; + + XMLTools.encodeXML(trans.getContractReferencedDocument()) + "" + + " "; } // Additional Documents of XRechnung (Rechnungsbegruendende Unterlagen - BG-24 XRechnung) if (trans.getAdditionalReferencedDocuments() != null) { for (final FileAttachment f : trans.getAdditionalReferencedDocuments()) { final String documentContent = new String(Base64.getEncoder().encodeToString(f.getData())); - xml = xml + " \n" - + " " + f.getFilename() + "\n" - + " 916\n" - + " " + f.getDescription() + "\n" + xml = xml + " " + + " " + f.getFilename() + "" + + " 916" + + " " + f.getDescription() + "" + " " + documentContent + "\n" - + " \n"; + + " filename=\"" + f.getFilename() + "\">" + documentContent + "" + + " "; } } if (trans.getSpecifiedProcuringProjectID() != null) { - xml = xml + " \n" + xml = xml + " " + " " - + XMLTools.encodeXML(trans.getSpecifiedProcuringProjectID()) + "\n"; + + XMLTools.encodeXML(trans.getSpecifiedProcuringProjectID()) + ""; if (trans.getSpecifiedProcuringProjectName() != null) { - xml += " " + XMLTools.encodeXML(trans.getSpecifiedProcuringProjectName()) + "\n"; + xml += " " + XMLTools.encodeXML(trans.getSpecifiedProcuringProjectName()) + ""; } - xml += " \n"; + xml += " "; } - xml = xml + " \n" - + " \n"; + xml = xml + "" + + ""; if (this.trans.getDeliveryAddress() != null) { xml += "" + getTradePartyAsXML(this.trans.getDeliveryAddress(), false, true) + ""; } - xml += " \n" - + " "; + xml += "" + + ""; if (trans.getDeliveryDate() != null) { xml += DATE.udtFormat(trans.getDeliveryDate()); } else { throw new IllegalStateException("No delivery date provided"); } - xml += "\n"; - xml += " \n"; - + xml += ""; + xml += " "; /* - * + " \n" + - * " 20130603\n" + - * " 2013-51112\n" + - * " \n" + * + "" + + * "20130603" + + * "2013-51112" + + * "" */ if (trans.getDespatchAdviceReferencedDocumentID() != null) { xml += ""; @@ -526,9 +526,9 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { xml += ""; } - xml += " \n" + " \n" - + " " + XMLTools.encodeXML(trans.getNumber()) + "\n" - + " " + trans.getCurrency() + "\n"; + xml += " \n " + + " " + XMLTools.encodeXML(trans.getNumber()) + "" + + " " + trans.getCurrency() + ""; if (trans.getTradeSettlementPayment() != null) { for (final IZUGFeRDTradeSettlementPayment payment : trans.getTradeSettlementPayment()) { @@ -558,15 +558,15 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { if (amount != null) { final String amountCategoryCode = amount.getCategoryCode(); final boolean displayExemptionReason = CATEGORY_CODES_WITH_EXEMPTION_REASON.contains(amountCategoryCode); - xml += " \n" - + " " + currencyFormat(amount.getCalculated()) - + "\n" //currencyID=\"EUR\" - + " VAT\n" + xml += "" + + "" + currencyFormat(amount.getCalculated()) + + "" //currencyID=\"EUR\" + + "VAT" + (displayExemptionReason ? exemptionReason : "") - + " " + currencyFormat(amount.getBasis()) + "\n" // currencyID=\"EUR\" - + " " + amountCategoryCode + "\n" - + " " - + vatFormat(currentTaxPercent) + "\n" + " \n"; + + "" + currencyFormat(amount.getBasis()) + "" // currencyID=\"EUR\" + + "" + amountCategoryCode + "" + + "" + + vatFormat(currentTaxPercent) + "\n"; } } if ((trans.getDetailedDeliveryPeriodFrom() != null) || (trans.getDetailedDeliveryPeriodTo() != null)) { @@ -588,17 +588,17 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { if (calc.getChargesForPercent(currentTaxPercent).compareTo(BigDecimal.ZERO) != 0) { - xml = xml + " \n" + - " \n" + - " true\n" + - " \n" + - " " + currencyFormat(calc.getChargesForPercent(currentTaxPercent)) + "\n" + - " " + XMLTools.encodeXML(calc.getChargeReasonForPercent(currentTaxPercent)) + "\n" + - " \n" + - " VAT\n" + - " " + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "\n" + - " " + vatFormat(currentTaxPercent) + "\n" + - " \n" + + xml = xml + " " + + " " + + " true" + + " " + + " " + currencyFormat(calc.getChargesForPercent(currentTaxPercent)) + "" + + " " + XMLTools.encodeXML(calc.getChargeReasonForPercent(currentTaxPercent)) + "" + + " " + + " VAT" + + " " + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "" + + " " + vatFormat(currentTaxPercent) + "" + + " " + " \n"; } @@ -609,17 +609,17 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { if ((trans.getZFAllowances() != null) && (trans.getZFAllowances().length > 0)) { for (final BigDecimal currentTaxPercent : VATPercentAmountMap.keySet()) { if (calc.getAllowancesForPercent(currentTaxPercent).compareTo(BigDecimal.ZERO) != 0) { - xml = xml + " \n" + - " \n" + - " false\n" + - " \n" + - " " + currencyFormat(calc.getAllowancesForPercent(currentTaxPercent)) + "\n" + - " " + XMLTools.encodeXML(calc.getAllowanceReasonForPercent(currentTaxPercent)) + "\n" + - " \n" + - " VAT\n" + - " " + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "\n" + - " " + vatFormat(currentTaxPercent) + "\n" + - " \n" + + xml = xml + " " + + " " + + " false" + + " " + + " " + currencyFormat(calc.getAllowancesForPercent(currentTaxPercent)) + "" + + " " + XMLTools.encodeXML(calc.getAllowanceReasonForPercent(currentTaxPercent)) + "" + + " " + + " VAT" + + " " + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "" + + " " + vatFormat(currentTaxPercent) + "" + + " " + " \n"; } } @@ -627,10 +627,10 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { if ((trans.getPaymentTerms() == null) && ((paymentTermsDescription != null) || (trans.getTradeSettlement() != null) || (hasDueDate))) { - xml = xml + "\n"; + xml = xml + ""; if (paymentTermsDescription != null) { - xml = xml + "" + paymentTermsDescription + "\n"; + xml = xml + "" + paymentTermsDescription + ""; } if (trans.getTradeSettlement() != null) { @@ -642,12 +642,12 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } if (hasDueDate && (trans.getDueDate() != null)) { - xml = xml + " " // $NON-NLS-2$ + xml = xml + "" // $NON-NLS-2$ + DATE.udtFormat(trans.getDueDate()) - + "\n";// 20130704 + + "";// 20130704 } - xml = xml + " \n"; + xml = xml + ""; } else { xml = xml + buildPaymentTermsXml(); } @@ -657,34 +657,34 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { final String chargesTotalLine = "" + currencyFormat(calc.getChargesForPercent(null)) + ""; - xml = xml + " \n" - + " " + currencyFormat(calc.getTotal()) + "\n" + xml = xml + "" + + "" + currencyFormat(calc.getTotal()) + "" + chargesTotalLine + allowanceTotalLine - + " " + currencyFormat(calc.getTaxBasis()) + "\n" + + "" + currencyFormat(calc.getTaxBasis()) + "" // // // currencyID=\"EUR\" - + " " - + currencyFormat(calc.getGrandTotal().subtract(calc.getTaxBasis())) + "\n" - + " " + currencyFormat(calc.getGrandTotal()) + "\n" + + "" + + currencyFormat(calc.getGrandTotal().subtract(calc.getTaxBasis())) + "" + + "" + currencyFormat(calc.getGrandTotal()) + "" // // // currencyID=\"EUR\" - + " " + currencyFormat(calc.getTotalPrepaid()) + "\n" - + " " + currencyFormat(calc.getGrandTotal().subtract(calc.getTotalPrepaid())) + "\n" - + " \n"; + + " " + currencyFormat(calc.getTotalPrepaid()) + "" + + "" + currencyFormat(calc.getGrandTotal().subtract(calc.getTotalPrepaid())) + "" + + ""; if (trans.getInvoiceReferencedDocumentID() != null) { - xml = xml + " \n" + xml = xml + " " + " " - + XMLTools.encodeXML(trans.getInvoiceReferencedDocumentID()) + "\n"; + + XMLTools.encodeXML(trans.getInvoiceReferencedDocumentID()) + ""; if (trans.getInvoiceReferencedIssueDate() != null) { xml += "" + DATE.qdtFormat(trans.getInvoiceReferencedIssueDate()) - + "\n"; + + ""; } - xml += " \n"; + xml += " "; } - xml = xml + " \n"; + xml = xml + ""; // + " \n" // + " \n" // + " \n" @@ -694,7 +694,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { // + " \n" // + " \n"; - xml = xml + " \n" + xml = xml + "" + ""; final byte[] zugferdRaw;