Replace xml = xml + ... with xml += ...
Use StandardCharsets constant and remove unnecessary exception handling
Eliminate last occurrences of "\n"
This commit is contained in:
Sebastian Sieber
2022-03-21 17:08:47 +01:00
parent 4077700b2e
commit 3a6232a7b8
4 changed files with 141 additions and 154 deletions

View File

@@ -35,7 +35,7 @@ public interface IZUGFeRDTradeSettlementDebit extends IZUGFeRDTradeSettlement {
+ "<ram:IBANID>"+XMLTools.encodeXML(getIBAN())+"</ram:IBANID>" + "<ram:IBANID>"+XMLTools.encodeXML(getIBAN())+"</ram:IBANID>"
+ "</ram:PayerPartyDebtorFinancialAccount>"; + "</ram:PayerPartyDebtorFinancialAccount>";
xml = xml + "</ram:SpecifiedTradeSettlementPaymentMeans>"; xml += "</ram:SpecifiedTradeSettlementPaymentMeans>";
return xml; return xml;
} }

View File

@@ -147,7 +147,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
} }
} }
final LineCalculator lc = new LineCalculator(currentItem); final LineCalculator lc = new LineCalculator(currentItem);
xml = xml + "<ram:IncludedSupplyChainTradeLineItem>" + xml += "<ram:IncludedSupplyChainTradeLineItem>" +
"<ram:AssociatedDocumentLineDocument>" "<ram:AssociatedDocumentLineDocument>"
+ "<ram:LineID>" + lineID + "</ram:LineID>" + "<ram:LineID>" + lineID + "</ram:LineID>"
+ notes + notes
@@ -156,11 +156,11 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
+ "<ram:SpecifiedTradeProduct>"; + "<ram:SpecifiedTradeProduct>";
// + " <GlobalID schemeID=\"0160\">4012345001235</GlobalID>" // + " <GlobalID schemeID=\"0160\">4012345001235</GlobalID>"
if (currentItem.getProduct().getSellerAssignedID() != null) { if (currentItem.getProduct().getSellerAssignedID() != null) {
xml = xml + "<ram:SellerAssignedID>" xml += "<ram:SellerAssignedID>"
+ XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + "</ram:SellerAssignedID>"; + XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + "</ram:SellerAssignedID>";
} }
if (currentItem.getProduct().getBuyerAssignedID() != null) { if (currentItem.getProduct().getBuyerAssignedID() != null) {
xml = xml + "<ram:BuyerAssignedID>" xml += "<ram:BuyerAssignedID>"
+ XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + "</ram:BuyerAssignedID>"; + XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + "</ram:BuyerAssignedID>";
} }
String allowanceChargeStr = ""; String allowanceChargeStr = "";
@@ -177,7 +177,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
} }
xml = xml + "<ram:Name>" + XMLTools.encodeXML(currentItem.getProduct().getName()) + "</ram:Name>" xml += "<ram:Name>" + XMLTools.encodeXML(currentItem.getProduct().getName()) + "</ram:Name>"
+ "<ram:Description>" + XMLTools.encodeXML(currentItem.getProduct().getDescription()) + "<ram:Description>" + XMLTools.encodeXML(currentItem.getProduct().getDescription())
+ "</ram:Description>" + "</ram:Description>"
+ "</ram:SpecifiedTradeProduct>" + "</ram:SpecifiedTradeProduct>"
@@ -185,7 +185,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
+ "<ram:SpecifiedLineTradeAgreement>"; + "<ram:SpecifiedLineTradeAgreement>";
/* if (currentItem.getReferencedDocuments() != null) { /* if (currentItem.getReferencedDocuments() != null) {
for (IReferencedDocument currentReferencedDocument : currentItem.getReferencedDocuments()) { for (IReferencedDocument currentReferencedDocument : currentItem.getReferencedDocuments()) {
xml = xml + "<ram:AdditionalReferencedDocument>\n" + xml += "<ram:AdditionalReferencedDocument>\n" +
"<ram:IssuerAssignedID>" + XMLTools.encodeXML(currentReferencedDocument.getIssuerAssignedID()) + "</ram:IssuerAssignedID>\n" + "<ram:IssuerAssignedID>" + XMLTools.encodeXML(currentReferencedDocument.getIssuerAssignedID()) + "</ram:IssuerAssignedID>\n" +
"<ram:TypeCode>" + XMLTools.encodeXML(currentReferencedDocument.getTypeCode()) + "</ram:TypeCode>\n" + "<ram:TypeCode>" + XMLTools.encodeXML(currentReferencedDocument.getTypeCode()) + "</ram:TypeCode>\n" +
"<ram:ReferenceTypeCode>" + XMLTools.encodeXML(currentReferencedDocument.getReferenceTypeCode()) + "</ram:ReferenceTypeCode>\n" + "<ram:ReferenceTypeCode>" + XMLTools.encodeXML(currentReferencedDocument.getReferenceTypeCode()) + "</ram:ReferenceTypeCode>\n" +
@@ -196,12 +196,12 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
}*/ }*/
if (currentItem.getBuyerOrderReferencedDocumentLineID() != null) { if (currentItem.getBuyerOrderReferencedDocumentLineID() != null) {
xml = xml + "<ram:BuyerOrderReferencedDocument> \n" xml += "<ram:BuyerOrderReferencedDocument> \n"
+ "<ram:LineID>" + XMLTools.encodeXML(currentItem.getBuyerOrderReferencedDocumentLineID()) + "</ram:LineID>" + "<ram:LineID>" + XMLTools.encodeXML(currentItem.getBuyerOrderReferencedDocumentLineID()) + "</ram:LineID>"
+ "</ram:BuyerOrderReferencedDocument>"; + "</ram:BuyerOrderReferencedDocument>";
} }
xml = xml + "<ram:GrossPriceProductTradePrice>" xml += "<ram:GrossPriceProductTradePrice>"
+ "<ram:ChargeAmount>" + priceFormat(lc.getPriceGross()) + "<ram:ChargeAmount>" + priceFormat(lc.getPriceGross())
+ "</ram:ChargeAmount>" //currencyID=\"EUR\" + "</ram:ChargeAmount>" //currencyID=\"EUR\"
+ "<ram:BasisQuantity unitCode=\"" + XMLTools.encodeXML(currentItem.getProduct().getUnit()) + "<ram:BasisQuantity unitCode=\"" + XMLTools.encodeXML(currentItem.getProduct().getUnit())
@@ -212,8 +212,8 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
// + " <ActualAmount currencyID=\"EUR\">0.6667</ActualAmount>\n" // + " <ActualAmount currencyID=\"EUR\">0.6667</ActualAmount>\n"
// + " <Reason>Rabatt</Reason>\n" // + " <Reason>Rabatt</Reason>\n"
// + " </AppliedTradeAllowanceCharge>\n" // + " </AppliedTradeAllowanceCharge>\n"
+ "</ram:GrossPriceProductTradePrice>\n" + "</ram:GrossPriceProductTradePrice>"
+ "<ram:NetPriceProductTradePrice>\n" + "<ram:NetPriceProductTradePrice>"
+ "<ram:ChargeAmount>" + priceFormat(lc.getPrice()) + "<ram:ChargeAmount>" + priceFormat(lc.getPrice())
+ "</ram:ChargeAmount>" // currencyID=\"EUR\" + "</ram:ChargeAmount>" // currencyID=\"EUR\"
+ "<ram:BasisQuantity unitCode=\"" + XMLTools.encodeXML(currentItem.getProduct().getUnit()) + "<ram:BasisQuantity unitCode=\"" + XMLTools.encodeXML(currentItem.getProduct().getUnit())
@@ -235,36 +235,36 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
+ vatFormat(currentItem.getProduct().getVATPercent()) + "</ram:RateApplicablePercent>" + vatFormat(currentItem.getProduct().getVATPercent()) + "</ram:RateApplicablePercent>"
+ "</ram:ApplicableTradeTax>"; + "</ram:ApplicableTradeTax>";
if ((currentItem.getDetailedDeliveryPeriodFrom() != null) || (currentItem.getDetailedDeliveryPeriodTo() != null)) { if ((currentItem.getDetailedDeliveryPeriodFrom() != null) || (currentItem.getDetailedDeliveryPeriodTo() != null)) {
xml = xml + "<ram:BillingSpecifiedPeriod>"; xml += "<ram:BillingSpecifiedPeriod>";
if (currentItem.getDetailedDeliveryPeriodFrom() != null) { if (currentItem.getDetailedDeliveryPeriodFrom() != null) {
xml = xml + "<ram:StartDateTime>" + DATE.udtFormat(currentItem.getDetailedDeliveryPeriodFrom()) + "</ram:StartDateTime>"; xml += "<ram:StartDateTime>" + DATE.udtFormat(currentItem.getDetailedDeliveryPeriodFrom()) + "</ram:StartDateTime>";
} }
if (currentItem.getDetailedDeliveryPeriodTo() != null) { if (currentItem.getDetailedDeliveryPeriodTo() != null) {
xml = xml + "<ram:EndDateTime>" + DATE.udtFormat(currentItem.getDetailedDeliveryPeriodTo()) + "</ram:EndDateTime>"; xml += "<ram:EndDateTime>" + DATE.udtFormat(currentItem.getDetailedDeliveryPeriodTo()) + "</ram:EndDateTime>";
} }
xml = xml + "</ram:BillingSpecifiedPeriod>"; xml += "</ram:BillingSpecifiedPeriod>";
} }
xml = xml + "<ram:SpecifiedTradeSettlementLineMonetarySummation>" xml += "<ram:SpecifiedTradeSettlementLineMonetarySummation>"
+ "<ram:LineTotalAmount>" + currencyFormat(lc.getItemTotalNetAmount()) + "<ram:LineTotalAmount>" + currencyFormat(lc.getItemTotalNetAmount())
+ "</ram:LineTotalAmount>" // currencyID=\"EUR\" + "</ram:LineTotalAmount>" // currencyID=\"EUR\"
+ "</ram:SpecifiedTradeSettlementLineMonetarySummation>"; + "</ram:SpecifiedTradeSettlementLineMonetarySummation>";
/* if (currentItem.getAdditionalReferencedDocumentID() != null) { /* if (currentItem.getAdditionalReferencedDocumentID() != null) {
xml = xml + "<ram:AdditionalReferencedDocument><ram:IssuerAssignedID>" + currentItem.getAdditionalReferencedDocumentID() + "</ram:IssuerAssignedID><ram:TypeCode>130</ram:TypeCode></ram:AdditionalReferencedDocument>"; xml += "<ram:AdditionalReferencedDocument><ram:IssuerAssignedID>" + currentItem.getAdditionalReferencedDocumentID() + "</ram:IssuerAssignedID><ram:TypeCode>130</ram:TypeCode></ram:AdditionalReferencedDocument>";
}*/ }*/
xml = xml + "</ram:SpecifiedLineTradeSettlement>" xml += "</ram:SpecifiedLineTradeSettlement>"
+ "</ram:IncludedSupplyChainTradeLineItem>"; + "</ram:IncludedSupplyChainTradeLineItem>";
} }
xml = xml + "<ram:ApplicableHeaderTradeAgreement>"; xml += "<ram:ApplicableHeaderTradeAgreement>";
if (trans.getReferenceNumber() != null) { if (trans.getReferenceNumber() != null) {
xml = xml + "<ram:BuyerReference>" + XMLTools.encodeXML(trans.getReferenceNumber()) + "</ram:BuyerReference>"; xml += "<ram:BuyerReference>" + XMLTools.encodeXML(trans.getReferenceNumber()) + "</ram:BuyerReference>";
} }
xml = xml + "<ram:SellerTradeParty>" xml += "<ram:SellerTradeParty>"
+ getTradePartyAsXML(trans.getSender(), true, false) + getTradePartyAsXML(trans.getSender(), true, false)
+ "</ram:SellerTradeParty>" + "</ram:SellerTradeParty>"
+ "<ram:BuyerTradeParty>"; + "<ram:BuyerTradeParty>";
@@ -275,19 +275,19 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
xml += "</ram:BuyerTradeParty>"; xml += "</ram:BuyerTradeParty>";
if (trans.getSellerOrderReferencedDocumentID() != null) { if (trans.getSellerOrderReferencedDocumentID() != null) {
xml = xml + "<ram:SellerOrderReferencedDocument>" xml += "<ram:SellerOrderReferencedDocument>"
+ "<ram:IssuerAssignedID>" + "<ram:IssuerAssignedID>"
+ XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>" + XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>"
+ "</ram:SellerOrderReferencedDocument>"; + "</ram:SellerOrderReferencedDocument>";
} }
if (trans.getBuyerOrderReferencedDocumentID() != null) { if (trans.getBuyerOrderReferencedDocumentID() != null) {
xml = xml + "<ram:BuyerOrderReferencedDocument>" xml += "<ram:BuyerOrderReferencedDocument>"
+ "<ram:IssuerAssignedID>" + "<ram:IssuerAssignedID>"
+ XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>" + XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>"
+ "</ram:BuyerOrderReferencedDocument>"; + "</ram:BuyerOrderReferencedDocument>";
} }
if (trans.getContractReferencedDocument() != null) { if (trans.getContractReferencedDocument() != null) {
xml = xml + "<ram:ContractReferencedDocument>" xml += "<ram:ContractReferencedDocument>"
+ "<ram:IssuerAssignedID>" + "<ram:IssuerAssignedID>"
+ XMLTools.encodeXML(trans.getContractReferencedDocument()) + "</ram:IssuerAssignedID>" + XMLTools.encodeXML(trans.getContractReferencedDocument()) + "</ram:IssuerAssignedID>"
+ "</ram:ContractReferencedDocument>"; + "</ram:ContractReferencedDocument>";
@@ -297,7 +297,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
if (trans.getAdditionalReferencedDocuments() != null) { if (trans.getAdditionalReferencedDocuments() != null) {
for (final FileAttachment f : trans.getAdditionalReferencedDocuments()) { for (final FileAttachment f : trans.getAdditionalReferencedDocuments()) {
final String documentContent = new String(Base64.getEncoder().encodeToString(f.getData())); final String documentContent = new String(Base64.getEncoder().encodeToString(f.getData()));
xml = xml + "<ram:AdditionalReferencedDocument>" xml += "<ram:AdditionalReferencedDocument>"
+ "<ram:IssuerAssignedID>" + f.getFilename() + "</ram:IssuerAssignedID>" + "<ram:IssuerAssignedID>" + f.getFilename() + "</ram:IssuerAssignedID>"
+ "<ram:TypeCode>916</ram:TypeCode>" + "<ram:TypeCode>916</ram:TypeCode>"
+ "<ram:Name>" + f.getDescription() + "</ram:Name>" + "<ram:Name>" + f.getDescription() + "</ram:Name>"
@@ -308,7 +308,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
} }
if (trans.getSpecifiedProcuringProjectID() != null) { if (trans.getSpecifiedProcuringProjectID() != null) {
xml = xml + "<ram:SpecifiedProcuringProject>" xml += "<ram:SpecifiedProcuringProject>"
+ "<ram:ID>" + "<ram:ID>"
+ XMLTools.encodeXML(trans.getSpecifiedProcuringProjectID()) + "</ram:ID>"; + XMLTools.encodeXML(trans.getSpecifiedProcuringProjectID()) + "</ram:ID>";
if (trans.getSpecifiedProcuringProjectName() != null) { if (trans.getSpecifiedProcuringProjectName() != null) {
@@ -316,7 +316,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
} }
xml += "</ram:SpecifiedProcuringProject>"; xml += "</ram:SpecifiedProcuringProject>";
} }
xml = xml + "</ram:ApplicableHeaderTradeAgreement>" xml += "</ram:ApplicableHeaderTradeAgreement>"
+ "<ram:ApplicableHeaderTradeDelivery>"; + "<ram:ApplicableHeaderTradeDelivery>";
if (this.trans.getDeliveryAddress() != null) { if (this.trans.getDeliveryAddress() != null) {
xml += "<ram:ShipToTradeParty>" + xml += "<ram:ShipToTradeParty>" +
@@ -388,14 +388,14 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
} }
} }
if ((trans.getDetailedDeliveryPeriodFrom() != null) || (trans.getDetailedDeliveryPeriodTo() != null)) { if ((trans.getDetailedDeliveryPeriodFrom() != null) || (trans.getDetailedDeliveryPeriodTo() != null)) {
xml = xml + "<ram:BillingSpecifiedPeriod>"; xml += "<ram:BillingSpecifiedPeriod>";
if (trans.getDetailedDeliveryPeriodFrom() != null) { if (trans.getDetailedDeliveryPeriodFrom() != null) {
xml = xml + "<ram:StartDateTime>" + DATE.udtFormat(trans.getDetailedDeliveryPeriodFrom()) + "</ram:StartDateTime>"; xml += "<ram:StartDateTime>" + DATE.udtFormat(trans.getDetailedDeliveryPeriodFrom()) + "</ram:StartDateTime>";
} }
if (trans.getDetailedDeliveryPeriodTo() != null) { if (trans.getDetailedDeliveryPeriodTo() != null) {
xml = xml + "<ram:EndDateTime>" + DATE.udtFormat(trans.getDetailedDeliveryPeriodTo()) + "</ram:EndDateTime>"; xml += "<ram:EndDateTime>" + DATE.udtFormat(trans.getDetailedDeliveryPeriodTo()) + "</ram:EndDateTime>";
} }
xml = xml + "</ram:BillingSpecifiedPeriod>"; xml += "</ram:BillingSpecifiedPeriod>";
} }
@@ -406,7 +406,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
if (calc.getChargesForPercent(currentTaxPercent).compareTo(BigDecimal.ZERO) != 0) { if (calc.getChargesForPercent(currentTaxPercent).compareTo(BigDecimal.ZERO) != 0) {
xml = xml + " <ram:SpecifiedTradeAllowanceCharge>" + xml += " <ram:SpecifiedTradeAllowanceCharge>" +
"<ram:ChargeIndicator>" + "<ram:ChargeIndicator>" +
"<udt:Indicator>true</udt:Indicator>" + "<udt:Indicator>true</udt:Indicator>" +
"</ram:ChargeIndicator>" + "</ram:ChargeIndicator>" +
@@ -417,7 +417,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
"<ram:CategoryCode>" + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "</ram:CategoryCode>" + "<ram:CategoryCode>" + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "</ram:CategoryCode>" +
"<ram:RateApplicablePercent>" + vatFormat(currentTaxPercent) + "</ram:RateApplicablePercent>" + "<ram:RateApplicablePercent>" + vatFormat(currentTaxPercent) + "</ram:RateApplicablePercent>" +
"</ram:CategoryTradeTax>" + "</ram:CategoryTradeTax>" +
"</ram:SpecifiedTradeAllowanceCharge> \n"; "</ram:SpecifiedTradeAllowanceCharge>";
} }
} }
@@ -427,7 +427,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
if ((trans.getZFAllowances() != null) && (trans.getZFAllowances().length > 0)) { if ((trans.getZFAllowances() != null) && (trans.getZFAllowances().length > 0)) {
for (final BigDecimal currentTaxPercent : VATPercentAmountMap.keySet()) { for (final BigDecimal currentTaxPercent : VATPercentAmountMap.keySet()) {
if (calc.getAllowancesForPercent(currentTaxPercent).compareTo(BigDecimal.ZERO) != 0) { if (calc.getAllowancesForPercent(currentTaxPercent).compareTo(BigDecimal.ZERO) != 0) {
xml = xml + " <ram:SpecifiedTradeAllowanceCharge>" + xml += "<ram:SpecifiedTradeAllowanceCharge>" +
"<ram:ChargeIndicator>" + "<ram:ChargeIndicator>" +
"<udt:Indicator>false</udt:Indicator>" + "<udt:Indicator>false</udt:Indicator>" +
"</ram:ChargeIndicator>" + "</ram:ChargeIndicator>" +
@@ -445,10 +445,10 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
if ((trans.getPaymentTerms() == null) && ((paymentTermsDescription != null) || (trans.getTradeSettlement() != null) || (hasDueDate))) { if ((trans.getPaymentTerms() == null) && ((paymentTermsDescription != null) || (trans.getTradeSettlement() != null) || (hasDueDate))) {
xml = xml + "<ram:SpecifiedTradePaymentTerms>"; xml += "<ram:SpecifiedTradePaymentTerms>";
if (paymentTermsDescription != null) { if (paymentTermsDescription != null) {
xml = xml + "<ram:Description>" + paymentTermsDescription + "</ram:Description>"; xml += "<ram:Description>" + paymentTermsDescription + "</ram:Description>";
} }
if (trans.getTradeSettlement() != null) { if (trans.getTradeSettlement() != null) {
@@ -460,14 +460,14 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
} }
if (hasDueDate && (trans.getDueDate() != null)) { if (hasDueDate && (trans.getDueDate() != null)) {
xml = xml + "<ram:DueDateDateTime>" // $NON-NLS-2$ xml += "<ram:DueDateDateTime>" // $NON-NLS-2$
+ DATE.udtFormat(trans.getDueDate()) + DATE.udtFormat(trans.getDueDate())
+ "</ram:DueDateDateTime>";// 20130704 + "</ram:DueDateDateTime>";// 20130704
} }
xml = xml + "</ram:SpecifiedTradePaymentTerms>"; xml += "</ram:SpecifiedTradePaymentTerms>";
} else { } else {
xml = xml + buildPaymentTermsXml(); xml += buildPaymentTermsXml();
} }
@@ -475,7 +475,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
final String chargesTotalLine = "<ram:ChargeTotalAmount>" + currencyFormat(calc.getChargesForPercent(null)) + "</ram:ChargeTotalAmount>"; final String chargesTotalLine = "<ram:ChargeTotalAmount>" + currencyFormat(calc.getChargesForPercent(null)) + "</ram:ChargeTotalAmount>";
xml = xml + "<ram:SpecifiedTradeSettlementHeaderMonetarySummation>" xml += "<ram:SpecifiedTradeSettlementHeaderMonetarySummation>"
+ "<ram:LineTotalAmount>" + currencyFormat(calc.getTotal()) + "</ram:LineTotalAmount>" + "<ram:LineTotalAmount>" + currencyFormat(calc.getTotal()) + "</ram:LineTotalAmount>"
+ chargesTotalLine + chargesTotalLine
+ allowanceTotalLine + allowanceTotalLine
@@ -491,7 +491,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
//+ "<ram:DuePayableAmount>" + currencyFormat(calc.getGrandTotal().subtract(calc.getTotalPrepaid())) + "</ram:DuePayableAmount>" //+ "<ram:DuePayableAmount>" + currencyFormat(calc.getGrandTotal().subtract(calc.getTotalPrepaid())) + "</ram:DuePayableAmount>"
+ "</ram:SpecifiedTradeSettlementHeaderMonetarySummation>"; + "</ram:SpecifiedTradeSettlementHeaderMonetarySummation>";
if (trans.getInvoiceReferencedDocumentID() != null) { if (trans.getInvoiceReferencedDocumentID() != null) {
xml = xml + "<ram:InvoiceReferencedDocument>" xml += "<ram:InvoiceReferencedDocument>"
+ "<ram:IssuerAssignedID>" + "<ram:IssuerAssignedID>"
+ XMLTools.encodeXML(trans.getInvoiceReferencedDocumentID()) + "</ram:IssuerAssignedID>"; + XMLTools.encodeXML(trans.getInvoiceReferencedDocumentID()) + "</ram:IssuerAssignedID>";
if (trans.getInvoiceReferencedIssueDate() != null) { if (trans.getInvoiceReferencedIssueDate() != null) {
@@ -502,7 +502,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
xml += "</ram:InvoiceReferencedDocument>"; xml += "</ram:InvoiceReferencedDocument>";
} }
xml = xml + "</ram:ApplicableHeaderTradeSettlement>"; xml += "</ram:ApplicableHeaderTradeSettlement>";
// + " <IncludedSupplyChainTradeLineItem>" // + " <IncludedSupplyChainTradeLineItem>"
// + " <AssociatedDocumentLineDocument>" // + " <AssociatedDocumentLineDocument>"
// + " <IncludedNote>" // + " <IncludedNote>"
@@ -512,7 +512,7 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider
// + " </AssociatedDocumentLineDocument>\n" // + " </AssociatedDocumentLineDocument>\n"
// + " </IncludedSupplyChainTradeLineItem>\n"; // + " </IncludedSupplyChainTradeLineItem>\n";
xml = xml + "</rsm:SupplyChainTradeTransaction>" xml += "</rsm:SupplyChainTradeTransaction>"
+ "</rsm:SCRDMCCBDACIOMessageStructure>"; + "</rsm:SCRDMCCBDACIOMessageStructure>";
final byte[] zugferdRaw; final byte[] zugferdRaw;

View File

@@ -25,8 +25,8 @@ import static org.mustangproject.ZUGFeRD.model.TaxCategoryCodeTypeConstants.CATE
import java.io.IOException; import java.io.IOException;
import java.io.StringWriter; import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
@@ -186,12 +186,12 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
+ "</rsm:HeaderExchangedDocument>" + "</rsm:HeaderExchangedDocument>"
+ "<rsm:SpecifiedSupplyChainTradeTransaction>"; + "<rsm:SpecifiedSupplyChainTradeTransaction>";
xml = xml + "<ram:ApplicableSupplyChainTradeAgreement>"; xml += "<ram:ApplicableSupplyChainTradeAgreement>";
if (trans.getReferenceNumber() != null) { if (trans.getReferenceNumber() != null) {
xml = xml + "<ram:BuyerReference>" + XMLTools.encodeXML(trans.getReferenceNumber()) + "</ram:BuyerReference>"; xml += "<ram:BuyerReference>" + XMLTools.encodeXML(trans.getReferenceNumber()) + "</ram:BuyerReference>";
} }
xml = xml + "<ram:SellerTradeParty>"; xml += "<ram:SellerTradeParty>";
xml += getTradePartyAsXML(trans.getSender(), true, false); xml += getTradePartyAsXML(trans.getSender(), true, false);
xml += "</ram:SellerTradeParty>" xml += "</ram:SellerTradeParty>"
+ "<ram:BuyerTradeParty>"; + "<ram:BuyerTradeParty>";
@@ -200,7 +200,7 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
xml += getTradePartyAsXML(trans.getRecipient(), false, false); xml += getTradePartyAsXML(trans.getRecipient(), false, false);
if ((trans.getOwnVATID() != null) && (trans.getOwnOrganisationName() != null)) { if ((trans.getOwnVATID() != null) && (trans.getOwnOrganisationName() != null)) {
xml = xml + "<ram:SpecifiedTaxRegistration>\n<ram:ID schemeID=\"VA\">" xml += "<ram:SpecifiedTaxRegistration><ram:ID schemeID=\"VA\">"
+ XMLTools.encodeXML(trans.getOwnVATID()) + "</ram:ID>" + XMLTools.encodeXML(trans.getOwnVATID()) + "</ram:ID>"
+ "</ram:SpecifiedTaxRegistration>"; + "</ram:SpecifiedTaxRegistration>";
} }
@@ -208,18 +208,18 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
xml += "</ram:BuyerTradeParty>"; xml += "</ram:BuyerTradeParty>";
if (trans.getSellerOrderReferencedDocumentID() != null) { if (trans.getSellerOrderReferencedDocumentID() != null) {
xml = xml + "<ram:SellerOrderReferencedDocument>" xml += "<ram:SellerOrderReferencedDocument>"
+ "<ram:IssuerAssignedID>" + "<ram:IssuerAssignedID>"
+ XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>" + XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>"
+ "</ram:SellerOrderReferencedDocument>"; + "</ram:SellerOrderReferencedDocument>";
} }
if (trans.getBuyerOrderReferencedDocumentID() != null) { if (trans.getBuyerOrderReferencedDocumentID() != null) {
xml = xml + "<ram:BuyerOrderReferencedDocument>" xml += "<ram:BuyerOrderReferencedDocument>"
+ "<ram:IssuerAssignedID>" + "<ram:IssuerAssignedID>"
+ XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>" + XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>"
+ "</ram:BuyerOrderReferencedDocument>"; + "</ram:BuyerOrderReferencedDocument>";
} }
xml = xml + "</ram:ApplicableSupplyChainTradeAgreement>" xml += "</ram:ApplicableSupplyChainTradeAgreement>"
+ "<ram:ApplicableSupplyChainTradeDelivery>"; + "<ram:ApplicableSupplyChainTradeDelivery>";
if (this.trans.getDeliveryAddress() != null) { if (this.trans.getDeliveryAddress() != null) {
xml += "<ram:ShipToTradeParty>" + xml += "<ram:ShipToTradeParty>" +
@@ -243,7 +243,7 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
* "<ID>2013-51112</ID>" + * "<ID>2013-51112</ID>" +
* "</DeliveryNoteReferencedDocument>" * "</DeliveryNoteReferencedDocument>"
*/ */
+ "</ram:ApplicableSupplyChainTradeDelivery>\n<ram:ApplicableSupplyChainTradeSettlement>" + "</ram:ApplicableSupplyChainTradeDelivery><ram:ApplicableSupplyChainTradeSettlement>"
+ "<ram:PaymentReference>" + XMLTools.encodeXML(trans.getNumber()) + "</ram:PaymentReference>" + "<ram:PaymentReference>" + XMLTools.encodeXML(trans.getNumber()) + "</ram:PaymentReference>"
+ "<ram:InvoiceCurrencyCode>" + trans.getCurrency() + "</ram:InvoiceCurrencyCode>"; + "<ram:InvoiceCurrencyCode>" + trans.getCurrency() + "</ram:InvoiceCurrencyCode>";
@@ -280,12 +280,12 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
+ "<ram:BasisAmount currencyID=\"" + trans.getCurrency() + "\">" + currencyFormat(amount.getBasis()) + "</ram:BasisAmount>" // currencyID=\"EUR\" + "<ram:BasisAmount currencyID=\"" + trans.getCurrency() + "\">" + currencyFormat(amount.getBasis()) + "</ram:BasisAmount>" // currencyID=\"EUR\"
+ "<ram:CategoryCode>" + amount.getCategoryCode() + "</ram:CategoryCode>" + "<ram:CategoryCode>" + amount.getCategoryCode() + "</ram:CategoryCode>"
+ "<ram:ApplicablePercent>" + vatFormat(currentTaxPercent) + "<ram:ApplicablePercent>" + vatFormat(currentTaxPercent)
+ "</ram:ApplicablePercent>\n</ram:ApplicableTradeTax>"; + "</ram:ApplicablePercent></ram:ApplicableTradeTax>";
} }
} }
if (trans.getPaymentTerms() == null) { if (trans.getPaymentTerms() == null) {
xml = xml + "<ram:SpecifiedTradePaymentTerms>" xml += "<ram:SpecifiedTradePaymentTerms>"
+ "<ram:Description>" + paymentTermsDescription + "</ram:Description>"; + "<ram:Description>" + paymentTermsDescription + "</ram:Description>";
if (trans.getTradeSettlement() != null) { if (trans.getTradeSettlement() != null) {
@@ -297,17 +297,17 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
} }
if (hasDueDate && (trans.getDueDate() != null)) { if (hasDueDate && (trans.getDueDate() != null)) {
xml = xml + "<ram:DueDateDateTime>" // $NON-NLS-2$ xml += "<ram:DueDateDateTime>" // $NON-NLS-2$
+ DATE.udtFormat(trans.getDueDate()) + DATE.udtFormat(trans.getDueDate())
+ "</ram:DueDateDateTime>";// 20130704 + "</ram:DueDateDateTime>";// 20130704
} }
xml = xml + "</ram:SpecifiedTradePaymentTerms>"; xml += "</ram:SpecifiedTradePaymentTerms>";
} else { } else {
xml = xml + buildPaymentTermsXml(); xml += buildPaymentTermsXml();
} }
xml = xml + "<ram:SpecifiedTradeSettlementMonetarySummation>" xml += "<ram:SpecifiedTradeSettlementMonetarySummation>"
+ "<ram:LineTotalAmount currencyID=\"" + trans.getCurrency() + "\">" + currencyFormat(calc.getTotal()) + "</ram:LineTotalAmount>" + "<ram:LineTotalAmount currencyID=\"" + trans.getCurrency() + "\">" + currencyFormat(calc.getTotal()) + "</ram:LineTotalAmount>"
// currencyID=\"EUR\" // currencyID=\"EUR\"
+ "<ram:ChargeTotalAmount currencyID=\"" + trans.getCurrency() + "\">0.00</ram:ChargeTotalAmount>" // currencyID=\"EUR\" + "<ram:ChargeTotalAmount currencyID=\"" + trans.getCurrency() + "\">0.00</ram:ChargeTotalAmount>" // currencyID=\"EUR\"
@@ -340,7 +340,7 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
final LineCalculator lc = new LineCalculator(currentItem); final LineCalculator lc = new LineCalculator(currentItem);
xml = xml + "<ram:IncludedSupplyChainTradeLineItem>" + xml += "<ram:IncludedSupplyChainTradeLineItem>" +
"<ram:AssociatedDocumentLineDocument>" "<ram:AssociatedDocumentLineDocument>"
+ "<ram:LineID>" + lineID + "</ram:LineID>" + "<ram:LineID>" + lineID + "</ram:LineID>"
+ "</ram:AssociatedDocumentLineDocument>" + "</ram:AssociatedDocumentLineDocument>"
@@ -383,27 +383,25 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
+ "</ram:LineTotalAmount>" + "</ram:LineTotalAmount>"
+ "</ram:SpecifiedTradeSettlementMonetarySummation>"; + "</ram:SpecifiedTradeSettlementMonetarySummation>";
if (currentItem.getAdditionalReferencedDocumentID() != null) { if (currentItem.getAdditionalReferencedDocumentID() != null) {
xml = xml + "<ram:AdditionalReferencedDocument><ram:ID>" + currentItem.getAdditionalReferencedDocumentID() + "</ram:ID><ram:TypeCode>130</ram:TypeCode></ram:AdditionalReferencedDocument>"; xml += "<ram:AdditionalReferencedDocument><ram:ID>" + currentItem.getAdditionalReferencedDocumentID() + "</ram:ID><ram:TypeCode>130</ram:TypeCode></ram:AdditionalReferencedDocument>";
} }
xml = xml + "</ram:SpecifiedSupplyChainTradeSettlement>" xml += "</ram:SpecifiedSupplyChainTradeSettlement>"
+ "<ram:SpecifiedTradeProduct>"; + "<ram:SpecifiedTradeProduct>";
// + " <GlobalID schemeID=\"0160\">4012345001235</GlobalID>" // + " <GlobalID schemeID=\"0160\">4012345001235</GlobalID>"
if (currentItem.getProduct().getSellerAssignedID() != null) { if (currentItem.getProduct().getSellerAssignedID() != null) {
xml = xml + "<ram:SellerAssignedID>" xml += "<ram:SellerAssignedID>"
+ XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + "</ram:SellerAssignedID>"; + XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + "</ram:SellerAssignedID>";
} }
if (currentItem.getProduct().getBuyerAssignedID() != null) { if (currentItem.getProduct().getBuyerAssignedID() != null) {
xml = xml + "<ram:BuyerAssignedID>" xml += "<ram:BuyerAssignedID>"
+ XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + "</ram:BuyerAssignedID>"; + XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + "</ram:BuyerAssignedID>";
} }
xml = xml + "<ram:Name>" + XMLTools.encodeXML(currentItem.getProduct().getName()) + "</ram:Name>" xml += "<ram:Name>" + XMLTools.encodeXML(currentItem.getProduct().getName()) + "</ram:Name>"
+ "<ram:Description>" + XMLTools.encodeXML(currentItem.getProduct().getDescription()) + "<ram:Description>" + XMLTools.encodeXML(currentItem.getProduct().getDescription())
+ "</ram:Description>" + "</ram:Description>"
+ "</ram:SpecifiedTradeProduct>" + "</ram:SpecifiedTradeProduct>"
+ "</ram:IncludedSupplyChainTradeLineItem>"; + "</ram:IncludedSupplyChainTradeLineItem>";
} }
// + " <IncludedSupplyChainTradeLineItem>\n" // + " <IncludedSupplyChainTradeLineItem>\n"
@@ -415,16 +413,12 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
// + " </AssociatedDocumentLineDocument>\n" // + " </AssociatedDocumentLineDocument>\n"
// + " </IncludedSupplyChainTradeLineItem>\n"; // + " </IncludedSupplyChainTradeLineItem>\n";
xml = xml + "</rsm:SpecifiedSupplyChainTradeTransaction>" xml += "</rsm:SpecifiedSupplyChainTradeTransaction>"
+ "</rsm:CrossIndustryDocument>"; + "</rsm:CrossIndustryDocument>";
final byte[] zugferdRaw; final byte[] zugferdRaw;
try { zugferdRaw = xml.getBytes(StandardCharsets.UTF_8);
zugferdRaw = xml.getBytes("UTF-8");
zugferdData = XMLTools.removeBOM(zugferdRaw); zugferdData = XMLTools.removeBOM(zugferdRaw);
} catch (final UnsupportedEncodingException e) {
Logger.getLogger(ZUGFeRD1PullProvider.class.getName()).log(Level.SEVERE, null, e);
}
} }
@Override @Override

View File

@@ -126,7 +126,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
if (party.getID() != null) { if (party.getID() != null) {
xml += "<ram:ID>" + XMLTools.encodeXML(party.getID()) + "</ram:ID>"; xml += "<ram:ID>" + XMLTools.encodeXML(party.getID()) + "</ram:ID>";
} else if ((party.getGlobalIDScheme() != null) && (party.getGlobalID() != null)) { } else if ((party.getGlobalIDScheme() != null) && (party.getGlobalID() != null)) {
xml = xml + "<ram:GlobalID schemeID=\"" + XMLTools.encodeXML(party.getGlobalIDScheme()) + "\">" xml += "<ram:GlobalID schemeID=\"" + XMLTools.encodeXML(party.getGlobalIDScheme()) + "\">"
+ XMLTools.encodeXML(party.getGlobalID()) + "</ram:GlobalID>"; + XMLTools.encodeXML(party.getGlobalID()) + "</ram:GlobalID>";
} }
xml += "<ram:Name>" + XMLTools.encodeXML(party.getName()) + "</ram:Name>"; xml += "<ram:Name>" + XMLTools.encodeXML(party.getName()) + "</ram:Name>";
@@ -138,31 +138,31 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
} }
if ((party.getContact() != null) && (isSender || profile == Profiles.getByName("Extended") || profile == Profiles.getByName("XRechnung"))) { if ((party.getContact() != null) && (isSender || profile == Profiles.getByName("Extended") || profile == Profiles.getByName("XRechnung"))) {
xml = xml + "<ram:DefinedTradeContact>"; xml += "<ram:DefinedTradeContact>";
if (party.getContact().getName() != null) { if (party.getContact().getName() != null) {
xml = xml + "<ram:PersonName>" + XMLTools.encodeXML(party.getContact().getName()) xml += "<ram:PersonName>" + XMLTools.encodeXML(party.getContact().getName())
+ "</ram:PersonName>"; + "</ram:PersonName>";
} }
if (party.getContact().getPhone() != null) { if (party.getContact().getPhone() != null) {
xml = xml + "<ram:TelephoneUniversalCommunication><ram:CompleteNumber>" xml += "<ram:TelephoneUniversalCommunication><ram:CompleteNumber>"
+ XMLTools.encodeXML(party.getContact().getPhone()) + "</ram:CompleteNumber>" + XMLTools.encodeXML(party.getContact().getPhone()) + "</ram:CompleteNumber>"
+ "</ram:TelephoneUniversalCommunication>"; + "</ram:TelephoneUniversalCommunication>";
} }
if ((party.getContact().getFax() != null) && (profile == Profiles.getByName("Extended"))) { if ((party.getContact().getFax() != null) && (profile == Profiles.getByName("Extended"))) {
xml = xml + "<ram:FaxUniversalCommunication><ram:CompleteNumber>" xml += "<ram:FaxUniversalCommunication><ram:CompleteNumber>"
+ XMLTools.encodeXML(party.getContact().getFax()) + "</ram:CompleteNumber>" + XMLTools.encodeXML(party.getContact().getFax()) + "</ram:CompleteNumber>"
+ "</ram:FaxUniversalCommunication>"; + "</ram:FaxUniversalCommunication>";
} }
if (party.getContact().getEMail() != null) { if (party.getContact().getEMail() != null) {
xml = xml + "<ram:EmailURIUniversalCommunication><ram:URIID>" xml += "<ram:EmailURIUniversalCommunication><ram:URIID>"
+ XMLTools.encodeXML(party.getContact().getEMail()) + "</ram:URIID>" + XMLTools.encodeXML(party.getContact().getEMail()) + "</ram:URIID>"
+ "</ram:EmailURIUniversalCommunication>"; + "</ram:EmailURIUniversalCommunication>";
} }
xml = xml + "</ram:DefinedTradeContact>"; xml += "</ram:DefinedTradeContact>";
} }
xml += "<ram:PostalTradeAddress>" xml += "<ram:PostalTradeAddress>"
@@ -252,20 +252,20 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
if (trans.getOwnOrganisationFullPlaintextInfo() != null) { if (trans.getOwnOrganisationFullPlaintextInfo() != null) {
senderReg = "<ram:IncludedNote><ram:Content>" senderReg = "<ram:IncludedNote><ram:Content>"
+ XMLTools.encodeXML(trans.getOwnOrganisationFullPlaintextInfo()) + "</ram:Content>" + XMLTools.encodeXML(trans.getOwnOrganisationFullPlaintextInfo()) + "</ram:Content>"
+ "<ram:SubjectCode>REG</ram:SubjectCode>\n</ram:IncludedNote>"; + "<ram:SubjectCode>REG</ram:SubjectCode></ram:IncludedNote>";
} }
String rebateAgreement = ""; String rebateAgreement = "";
if (trans.rebateAgreementExists()) { if (trans.rebateAgreementExists()) {
rebateAgreement = "<ram:IncludedNote>\n<ram:Content>" rebateAgreement = "<ram:IncludedNote><ram:Content>"
+ "Es bestehen Rabatt- und Bonusvereinbarungen.</ram:Content>" + "Es bestehen Rabatt- und Bonusvereinbarungen.</ram:Content>"
+ "<ram:SubjectCode>AAK</ram:SubjectCode>\n</ram:IncludedNote>"; + "<ram:SubjectCode>AAK</ram:SubjectCode></ram:IncludedNote>";
} }
String subjectNote = ""; String subjectNote = "";
if (trans.getSubjectNote() != null) { if (trans.getSubjectNote() != null) {
subjectNote = "<ram:IncludedNote>\n<ram:Content>" subjectNote = "<ram:IncludedNote><ram:Content>"
+ XMLTools.encodeXML(trans.getSubjectNote()) + "</ram:Content>" + XMLTools.encodeXML(trans.getSubjectNote()) + "</ram:Content>"
+ "</ram:IncludedNote>"; + "</ram:IncludedNote>";
} }
@@ -327,7 +327,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
} }
} }
final LineCalculator lc = new LineCalculator(currentItem); final LineCalculator lc = new LineCalculator(currentItem);
xml = xml + "<ram:IncludedSupplyChainTradeLineItem>" + xml += "<ram:IncludedSupplyChainTradeLineItem>" +
"<ram:AssociatedDocumentLineDocument>" "<ram:AssociatedDocumentLineDocument>"
+ "<ram:LineID>" + lineID + "</ram:LineID>" + "<ram:LineID>" + lineID + "</ram:LineID>"
+ notes + notes
@@ -336,11 +336,11 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
+ "<ram:SpecifiedTradeProduct>"; + "<ram:SpecifiedTradeProduct>";
// + " <GlobalID schemeID=\"0160\">4012345001235</GlobalID>" // + " <GlobalID schemeID=\"0160\">4012345001235</GlobalID>"
if (currentItem.getProduct().getSellerAssignedID() != null) { if (currentItem.getProduct().getSellerAssignedID() != null) {
xml = xml + "<ram:SellerAssignedID>" xml += "<ram:SellerAssignedID>"
+ XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + "</ram:SellerAssignedID>"; + XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + "</ram:SellerAssignedID>";
} }
if (currentItem.getProduct().getBuyerAssignedID() != null) { if (currentItem.getProduct().getBuyerAssignedID() != null) {
xml = xml + "<ram:BuyerAssignedID>" xml += "<ram:BuyerAssignedID>"
+ XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + "</ram:BuyerAssignedID>"; + XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + "</ram:BuyerAssignedID>";
} }
String allowanceChargeStr = ""; String allowanceChargeStr = "";
@@ -357,7 +357,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
} }
xml = xml + "<ram:Name>" + XMLTools.encodeXML(currentItem.getProduct().getName()) + "</ram:Name>" xml += "<ram:Name>" + XMLTools.encodeXML(currentItem.getProduct().getName()) + "</ram:Name>"
+ "<ram:Description>" + XMLTools.encodeXML(currentItem.getProduct().getDescription()) + "<ram:Description>" + XMLTools.encodeXML(currentItem.getProduct().getDescription())
+ "</ram:Description>" + "</ram:Description>"
+ "</ram:SpecifiedTradeProduct>" + "</ram:SpecifiedTradeProduct>"
@@ -365,7 +365,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
+ "<ram:SpecifiedLineTradeAgreement>"; + "<ram:SpecifiedLineTradeAgreement>";
if (currentItem.getReferencedDocuments() != null) { if (currentItem.getReferencedDocuments() != null) {
for (final IReferencedDocument currentReferencedDocument : currentItem.getReferencedDocuments()) { for (final IReferencedDocument currentReferencedDocument : currentItem.getReferencedDocuments()) {
xml = xml + "<ram:AdditionalReferencedDocument>" + xml += "<ram:AdditionalReferencedDocument>" +
"<ram:IssuerAssignedID>" + XMLTools.encodeXML(currentReferencedDocument.getIssuerAssignedID()) + "</ram:IssuerAssignedID>" + "<ram:IssuerAssignedID>" + XMLTools.encodeXML(currentReferencedDocument.getIssuerAssignedID()) + "</ram:IssuerAssignedID>" +
"<ram:TypeCode>" + XMLTools.encodeXML(currentReferencedDocument.getTypeCode()) + "</ram:TypeCode>" + "<ram:TypeCode>" + XMLTools.encodeXML(currentReferencedDocument.getTypeCode()) + "</ram:TypeCode>" +
"<ram:ReferenceTypeCode>" + XMLTools.encodeXML(currentReferencedDocument.getReferenceTypeCode()) + "</ram:ReferenceTypeCode>" + "<ram:ReferenceTypeCode>" + XMLTools.encodeXML(currentReferencedDocument.getReferenceTypeCode()) + "</ram:ReferenceTypeCode>" +
@@ -376,12 +376,12 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
} }
if (currentItem.getBuyerOrderReferencedDocumentLineID() != null) { if (currentItem.getBuyerOrderReferencedDocumentLineID() != null) {
xml = xml + "<ram:BuyerOrderReferencedDocument> \n" xml += "<ram:BuyerOrderReferencedDocument> "
+ "<ram:LineID>" + XMLTools.encodeXML(currentItem.getBuyerOrderReferencedDocumentLineID()) + "</ram:LineID>" + "<ram:LineID>" + XMLTools.encodeXML(currentItem.getBuyerOrderReferencedDocumentLineID()) + "</ram:LineID>"
+ "</ram:BuyerOrderReferencedDocument>"; + "</ram:BuyerOrderReferencedDocument>";
} }
xml = xml + "<ram:GrossPriceProductTradePrice>" xml += "<ram:GrossPriceProductTradePrice>"
+ "<ram:ChargeAmount>" + priceFormat(lc.getPriceGross()) + "<ram:ChargeAmount>" + priceFormat(lc.getPriceGross())
+ "</ram:ChargeAmount>" //currencyID=\"EUR\" + "</ram:ChargeAmount>" //currencyID=\"EUR\"
+ "<ram:BasisQuantity unitCode=\"" + XMLTools.encodeXML(currentItem.getProduct().getUnit()) + "<ram:BasisQuantity unitCode=\"" + XMLTools.encodeXML(currentItem.getProduct().getUnit())
@@ -400,7 +400,6 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
+ "\">" + quantityFormat(currentItem.getBasisQuantity()) + "</ram:BasisQuantity>" + "\">" + quantityFormat(currentItem.getBasisQuantity()) + "</ram:BasisQuantity>"
+ "</ram:NetPriceProductTradePrice>" + "</ram:NetPriceProductTradePrice>"
+ "</ram:SpecifiedLineTradeAgreement>" + "</ram:SpecifiedLineTradeAgreement>"
+ "<ram:SpecifiedLineTradeDelivery>" + "<ram:SpecifiedLineTradeDelivery>"
+ "<ram:BilledQuantity unitCode=\"" + XMLTools.encodeXML(currentItem.getProduct().getUnit()) + "\">" + "<ram:BilledQuantity unitCode=\"" + XMLTools.encodeXML(currentItem.getProduct().getUnit()) + "\">"
+ quantityFormat(currentItem.getQuantity()) + "</ram:BilledQuantity>" + quantityFormat(currentItem.getQuantity()) + "</ram:BilledQuantity>"
@@ -410,41 +409,39 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
+ "<ram:TypeCode>VAT</ram:TypeCode>" + "<ram:TypeCode>VAT</ram:TypeCode>"
+ exemptionReason + exemptionReason
+ "<ram:CategoryCode>" + currentItem.getProduct().getTaxCategoryCode() + "</ram:CategoryCode>" + "<ram:CategoryCode>" + currentItem.getProduct().getTaxCategoryCode() + "</ram:CategoryCode>"
+ "<ram:RateApplicablePercent>" + "<ram:RateApplicablePercent>"
+ vatFormat(currentItem.getProduct().getVATPercent()) + "</ram:RateApplicablePercent>" + vatFormat(currentItem.getProduct().getVATPercent()) + "</ram:RateApplicablePercent>"
+ "</ram:ApplicableTradeTax>"; + "</ram:ApplicableTradeTax>";
if ((currentItem.getDetailedDeliveryPeriodFrom() != null) || (currentItem.getDetailedDeliveryPeriodTo() != null)) { if ((currentItem.getDetailedDeliveryPeriodFrom() != null) || (currentItem.getDetailedDeliveryPeriodTo() != null)) {
xml = xml + "<ram:BillingSpecifiedPeriod>"; xml += "<ram:BillingSpecifiedPeriod>";
if (currentItem.getDetailedDeliveryPeriodFrom() != null) { if (currentItem.getDetailedDeliveryPeriodFrom() != null) {
xml = xml + "<ram:StartDateTime>" + DATE.udtFormat(currentItem.getDetailedDeliveryPeriodFrom()) + "</ram:StartDateTime>"; xml += "<ram:StartDateTime>" + DATE.udtFormat(currentItem.getDetailedDeliveryPeriodFrom()) + "</ram:StartDateTime>";
} }
if (currentItem.getDetailedDeliveryPeriodTo() != null) { if (currentItem.getDetailedDeliveryPeriodTo() != null) {
xml = xml + "<ram:EndDateTime>" + DATE.udtFormat(currentItem.getDetailedDeliveryPeriodTo()) + "</ram:EndDateTime>"; xml += "<ram:EndDateTime>" + DATE.udtFormat(currentItem.getDetailedDeliveryPeriodTo()) + "</ram:EndDateTime>";
} }
xml = xml + "</ram:BillingSpecifiedPeriod>"; xml += "</ram:BillingSpecifiedPeriod>";
} }
xml = xml + "<ram:SpecifiedTradeSettlementLineMonetarySummation>" xml += "<ram:SpecifiedTradeSettlementLineMonetarySummation>"
+ "<ram:LineTotalAmount>" + currencyFormat(lc.getItemTotalNetAmount()) + "<ram:LineTotalAmount>" + currencyFormat(lc.getItemTotalNetAmount())
+ "</ram:LineTotalAmount>" // currencyID=\"EUR\" + "</ram:LineTotalAmount>" // currencyID=\"EUR\"
+ "</ram:SpecifiedTradeSettlementLineMonetarySummation>"; + "</ram:SpecifiedTradeSettlementLineMonetarySummation>";
if (currentItem.getAdditionalReferencedDocumentID() != null) { if (currentItem.getAdditionalReferencedDocumentID() != null) {
xml = xml + "<ram:AdditionalReferencedDocument><ram:IssuerAssignedID>" + currentItem.getAdditionalReferencedDocumentID() + "</ram:IssuerAssignedID><ram:TypeCode>130</ram:TypeCode></ram:AdditionalReferencedDocument>"; xml += "<ram:AdditionalReferencedDocument><ram:IssuerAssignedID>" + currentItem.getAdditionalReferencedDocumentID() + "</ram:IssuerAssignedID><ram:TypeCode>130</ram:TypeCode></ram:AdditionalReferencedDocument>";
} }
xml = xml + "</ram:SpecifiedLineTradeSettlement>" xml += "</ram:SpecifiedLineTradeSettlement>"
+ "</ram:IncludedSupplyChainTradeLineItem>"; + "</ram:IncludedSupplyChainTradeLineItem>";
} }
xml = xml + "<ram:ApplicableHeaderTradeAgreement>"; xml += "<ram:ApplicableHeaderTradeAgreement>";
if (trans.getReferenceNumber() != null) { if (trans.getReferenceNumber() != null) {
xml = xml + "<ram:BuyerReference>" + XMLTools.encodeXML(trans.getReferenceNumber()) + "</ram:BuyerReference>"; xml += "<ram:BuyerReference>" + XMLTools.encodeXML(trans.getReferenceNumber()) + "</ram:BuyerReference>";
} }
xml = xml + "<ram:SellerTradeParty>" xml += "<ram:SellerTradeParty>"
+ getTradePartyAsXML(trans.getSender(), true, false) + getTradePartyAsXML(trans.getSender(), true, false)
+ "</ram:SellerTradeParty>" + "</ram:SellerTradeParty>"
+ "<ram:BuyerTradeParty>"; + "<ram:BuyerTradeParty>";
@@ -455,19 +452,19 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
xml += "</ram:BuyerTradeParty>"; xml += "</ram:BuyerTradeParty>";
if (trans.getSellerOrderReferencedDocumentID() != null) { if (trans.getSellerOrderReferencedDocumentID() != null) {
xml = xml + " <ram:SellerOrderReferencedDocument>" xml += " <ram:SellerOrderReferencedDocument>"
+ " <ram:IssuerAssignedID>" + " <ram:IssuerAssignedID>"
+ XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>" + XMLTools.encodeXML(trans.getSellerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>"
+ " </ram:SellerOrderReferencedDocument>"; + " </ram:SellerOrderReferencedDocument>";
} }
if (trans.getBuyerOrderReferencedDocumentID() != null) { if (trans.getBuyerOrderReferencedDocumentID() != null) {
xml = xml + " <ram:BuyerOrderReferencedDocument>" xml += " <ram:BuyerOrderReferencedDocument>"
+ " <ram:IssuerAssignedID>" + " <ram:IssuerAssignedID>"
+ XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>" + XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "</ram:IssuerAssignedID>"
+ " </ram:BuyerOrderReferencedDocument>"; + " </ram:BuyerOrderReferencedDocument>";
} }
if (trans.getContractReferencedDocument() != null) { if (trans.getContractReferencedDocument() != null) {
xml = xml + " <ram:ContractReferencedDocument>" xml += " <ram:ContractReferencedDocument>"
+ " <ram:IssuerAssignedID>" + " <ram:IssuerAssignedID>"
+ XMLTools.encodeXML(trans.getContractReferencedDocument()) + "</ram:IssuerAssignedID>" + XMLTools.encodeXML(trans.getContractReferencedDocument()) + "</ram:IssuerAssignedID>"
+ " </ram:ContractReferencedDocument>"; + " </ram:ContractReferencedDocument>";
@@ -477,7 +474,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
if (trans.getAdditionalReferencedDocuments() != null) { if (trans.getAdditionalReferencedDocuments() != null) {
for (final FileAttachment f : trans.getAdditionalReferencedDocuments()) { for (final FileAttachment f : trans.getAdditionalReferencedDocuments()) {
final String documentContent = new String(Base64.getEncoder().encodeToString(f.getData())); final String documentContent = new String(Base64.getEncoder().encodeToString(f.getData()));
xml = xml + " <ram:AdditionalReferencedDocument>" xml += " <ram:AdditionalReferencedDocument>"
+ " <ram:IssuerAssignedID>" + f.getFilename() + "</ram:IssuerAssignedID>" + " <ram:IssuerAssignedID>" + f.getFilename() + "</ram:IssuerAssignedID>"
+ " <ram:TypeCode>916</ram:TypeCode>" + " <ram:TypeCode>916</ram:TypeCode>"
+ " <ram:Name>" + f.getDescription() + "</ram:Name>" + " <ram:Name>" + f.getDescription() + "</ram:Name>"
@@ -488,7 +485,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
} }
if (trans.getSpecifiedProcuringProjectID() != null) { if (trans.getSpecifiedProcuringProjectID() != null) {
xml = xml + " <ram:SpecifiedProcuringProject>" xml += " <ram:SpecifiedProcuringProject>"
+ " <ram:ID>" + " <ram:ID>"
+ XMLTools.encodeXML(trans.getSpecifiedProcuringProjectID()) + "</ram:ID>"; + XMLTools.encodeXML(trans.getSpecifiedProcuringProjectID()) + "</ram:ID>";
if (trans.getSpecifiedProcuringProjectName() != null) { if (trans.getSpecifiedProcuringProjectName() != null) {
@@ -496,7 +493,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
} }
xml += " </ram:SpecifiedProcuringProject>"; xml += " </ram:SpecifiedProcuringProject>";
} }
xml = xml + "</ram:ApplicableHeaderTradeAgreement>" xml += "</ram:ApplicableHeaderTradeAgreement>"
+ "<ram:ApplicableHeaderTradeDelivery>"; + "<ram:ApplicableHeaderTradeDelivery>";
if (this.trans.getDeliveryAddress() != null) { if (this.trans.getDeliveryAddress() != null) {
xml += "<ram:ShipToTradeParty>" + xml += "<ram:ShipToTradeParty>" +
@@ -526,7 +523,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
xml += "</ram:DespatchAdviceReferencedDocument>"; xml += "</ram:DespatchAdviceReferencedDocument>";
} }
xml += " </ram:ApplicableHeaderTradeDelivery>\n <ram:ApplicableHeaderTradeSettlement>" xml += " </ram:ApplicableHeaderTradeDelivery> <ram:ApplicableHeaderTradeSettlement>"
+ " <ram:PaymentReference>" + XMLTools.encodeXML(trans.getNumber()) + "</ram:PaymentReference>" + " <ram:PaymentReference>" + XMLTools.encodeXML(trans.getNumber()) + "</ram:PaymentReference>"
+ " <ram:InvoiceCurrencyCode>" + trans.getCurrency() + "</ram:InvoiceCurrencyCode>"; + " <ram:InvoiceCurrencyCode>" + trans.getCurrency() + "</ram:InvoiceCurrencyCode>";
@@ -566,18 +563,18 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
+ "<ram:BasisAmount>" + currencyFormat(amount.getBasis()) + "</ram:BasisAmount>" // currencyID=\"EUR\" + "<ram:BasisAmount>" + currencyFormat(amount.getBasis()) + "</ram:BasisAmount>" // currencyID=\"EUR\"
+ "<ram:CategoryCode>" + amountCategoryCode + "</ram:CategoryCode>" + "<ram:CategoryCode>" + amountCategoryCode + "</ram:CategoryCode>"
+ "<ram:RateApplicablePercent>" + "<ram:RateApplicablePercent>"
+ vatFormat(currentTaxPercent) + "</ram:RateApplicablePercent>\n</ram:ApplicableTradeTax>"; + vatFormat(currentTaxPercent) + "</ram:RateApplicablePercent></ram:ApplicableTradeTax>";
} }
} }
if ((trans.getDetailedDeliveryPeriodFrom() != null) || (trans.getDetailedDeliveryPeriodTo() != null)) { if ((trans.getDetailedDeliveryPeriodFrom() != null) || (trans.getDetailedDeliveryPeriodTo() != null)) {
xml = xml + "<ram:BillingSpecifiedPeriod>"; xml += "<ram:BillingSpecifiedPeriod>";
if (trans.getDetailedDeliveryPeriodFrom() != null) { if (trans.getDetailedDeliveryPeriodFrom() != null) {
xml = xml + "<ram:StartDateTime>" + DATE.udtFormat(trans.getDetailedDeliveryPeriodFrom()) + "</ram:StartDateTime>"; xml += "<ram:StartDateTime>" + DATE.udtFormat(trans.getDetailedDeliveryPeriodFrom()) + "</ram:StartDateTime>";
} }
if (trans.getDetailedDeliveryPeriodTo() != null) { if (trans.getDetailedDeliveryPeriodTo() != null) {
xml = xml + "<ram:EndDateTime>" + DATE.udtFormat(trans.getDetailedDeliveryPeriodTo()) + "</ram:EndDateTime>"; xml += "<ram:EndDateTime>" + DATE.udtFormat(trans.getDetailedDeliveryPeriodTo()) + "</ram:EndDateTime>";
} }
xml = xml + "</ram:BillingSpecifiedPeriod>"; xml += "</ram:BillingSpecifiedPeriod>";
} }
@@ -586,9 +583,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
for (final BigDecimal currentTaxPercent : VATPercentAmountMap.keySet()) { for (final BigDecimal currentTaxPercent : VATPercentAmountMap.keySet()) {
if (calc.getChargesForPercent(currentTaxPercent).compareTo(BigDecimal.ZERO) != 0) { if (calc.getChargesForPercent(currentTaxPercent).compareTo(BigDecimal.ZERO) != 0) {
xml += " <ram:SpecifiedTradeAllowanceCharge>" +
xml = xml + " <ram:SpecifiedTradeAllowanceCharge>" +
"<ram:ChargeIndicator>" + "<ram:ChargeIndicator>" +
"<udt:Indicator>true</udt:Indicator>" + "<udt:Indicator>true</udt:Indicator>" +
"</ram:ChargeIndicator>" + "</ram:ChargeIndicator>" +
@@ -599,17 +594,15 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
"<ram:CategoryCode>" + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "</ram:CategoryCode>" + "<ram:CategoryCode>" + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "</ram:CategoryCode>" +
"<ram:RateApplicablePercent>" + vatFormat(currentTaxPercent) + "</ram:RateApplicablePercent>" + "<ram:RateApplicablePercent>" + vatFormat(currentTaxPercent) + "</ram:RateApplicablePercent>" +
"</ram:CategoryTradeTax>" + "</ram:CategoryTradeTax>" +
" </ram:SpecifiedTradeAllowanceCharge> \n"; "</ram:SpecifiedTradeAllowanceCharge> ";
} }
} }
} }
if ((trans.getZFAllowances() != null) && (trans.getZFAllowances().length > 0)) { if ((trans.getZFAllowances() != null) && (trans.getZFAllowances().length > 0)) {
for (final BigDecimal currentTaxPercent : VATPercentAmountMap.keySet()) { for (final BigDecimal currentTaxPercent : VATPercentAmountMap.keySet()) {
if (calc.getAllowancesForPercent(currentTaxPercent).compareTo(BigDecimal.ZERO) != 0) { if (calc.getAllowancesForPercent(currentTaxPercent).compareTo(BigDecimal.ZERO) != 0) {
xml = xml + " <ram:SpecifiedTradeAllowanceCharge>" + xml += "<ram:SpecifiedTradeAllowanceCharge>" +
"<ram:ChargeIndicator>" + "<ram:ChargeIndicator>" +
"<udt:Indicator>false</udt:Indicator>" + "<udt:Indicator>false</udt:Indicator>" +
"</ram:ChargeIndicator>" + "</ram:ChargeIndicator>" +
@@ -620,17 +613,17 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
"<ram:CategoryCode>" + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "</ram:CategoryCode>" + "<ram:CategoryCode>" + VATPercentAmountMap.get(currentTaxPercent).getCategoryCode() + "</ram:CategoryCode>" +
"<ram:RateApplicablePercent>" + vatFormat(currentTaxPercent) + "</ram:RateApplicablePercent>" + "<ram:RateApplicablePercent>" + vatFormat(currentTaxPercent) + "</ram:RateApplicablePercent>" +
"</ram:CategoryTradeTax>" + "</ram:CategoryTradeTax>" +
" </ram:SpecifiedTradeAllowanceCharge> \n"; "</ram:SpecifiedTradeAllowanceCharge> ";
} }
} }
} }
if ((trans.getPaymentTerms() == null) && ((paymentTermsDescription != null) || (trans.getTradeSettlement() != null) || (hasDueDate))) { if ((trans.getPaymentTerms() == null) && ((paymentTermsDescription != null) || (trans.getTradeSettlement() != null) || (hasDueDate))) {
xml = xml + "<ram:SpecifiedTradePaymentTerms>"; xml += "<ram:SpecifiedTradePaymentTerms>";
if (paymentTermsDescription != null) { if (paymentTermsDescription != null) {
xml = xml + "<ram:Description>" + paymentTermsDescription + "</ram:Description>"; xml += "<ram:Description>" + paymentTermsDescription + "</ram:Description>";
} }
if (trans.getTradeSettlement() != null) { if (trans.getTradeSettlement() != null) {
@@ -642,14 +635,14 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
} }
if (hasDueDate && (trans.getDueDate() != null)) { if (hasDueDate && (trans.getDueDate() != null)) {
xml = xml + "<ram:DueDateDateTime>" // $NON-NLS-2$ xml += "<ram:DueDateDateTime>" // $NON-NLS-2$
+ DATE.udtFormat(trans.getDueDate()) + DATE.udtFormat(trans.getDueDate())
+ "</ram:DueDateDateTime>";// 20130704 + "</ram:DueDateDateTime>";// 20130704
} }
xml = xml + "</ram:SpecifiedTradePaymentTerms>"; xml += "</ram:SpecifiedTradePaymentTerms>";
} else { } else {
xml = xml + buildPaymentTermsXml(); xml += buildPaymentTermsXml();
} }
@@ -657,7 +650,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
final String chargesTotalLine = "<ram:ChargeTotalAmount>" + currencyFormat(calc.getChargesForPercent(null)) + "</ram:ChargeTotalAmount>"; final String chargesTotalLine = "<ram:ChargeTotalAmount>" + currencyFormat(calc.getChargesForPercent(null)) + "</ram:ChargeTotalAmount>";
xml = xml + "<ram:SpecifiedTradeSettlementHeaderMonetarySummation>" xml += "<ram:SpecifiedTradeSettlementHeaderMonetarySummation>"
+ "<ram:LineTotalAmount>" + currencyFormat(calc.getTotal()) + "</ram:LineTotalAmount>" + "<ram:LineTotalAmount>" + currencyFormat(calc.getTotal()) + "</ram:LineTotalAmount>"
+ chargesTotalLine + chargesTotalLine
+ allowanceTotalLine + allowanceTotalLine
@@ -673,7 +666,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
+ "<ram:DuePayableAmount>" + currencyFormat(calc.getGrandTotal().subtract(calc.getTotalPrepaid())) + "</ram:DuePayableAmount>" + "<ram:DuePayableAmount>" + currencyFormat(calc.getGrandTotal().subtract(calc.getTotalPrepaid())) + "</ram:DuePayableAmount>"
+ "</ram:SpecifiedTradeSettlementHeaderMonetarySummation>"; + "</ram:SpecifiedTradeSettlementHeaderMonetarySummation>";
if (trans.getInvoiceReferencedDocumentID() != null) { if (trans.getInvoiceReferencedDocumentID() != null) {
xml = xml + " <ram:InvoiceReferencedDocument>" xml += " <ram:InvoiceReferencedDocument>"
+ " <ram:IssuerAssignedID>" + " <ram:IssuerAssignedID>"
+ XMLTools.encodeXML(trans.getInvoiceReferencedDocumentID()) + "</ram:IssuerAssignedID>"; + XMLTools.encodeXML(trans.getInvoiceReferencedDocumentID()) + "</ram:IssuerAssignedID>";
if (trans.getInvoiceReferencedIssueDate() != null) { if (trans.getInvoiceReferencedIssueDate() != null) {
@@ -684,7 +677,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
xml += " </ram:InvoiceReferencedDocument>"; xml += " </ram:InvoiceReferencedDocument>";
} }
xml = xml + "</ram:ApplicableHeaderTradeSettlement>"; xml += "</ram:ApplicableHeaderTradeSettlement>";
// + " <IncludedSupplyChainTradeLineItem>\n" // + " <IncludedSupplyChainTradeLineItem>\n"
// + " <AssociatedDocumentLineDocument>\n" // + " <AssociatedDocumentLineDocument>\n"
// + " <IncludedNote>\n" // + " <IncludedNote>\n"
@@ -694,7 +687,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
// + " </AssociatedDocumentLineDocument>\n" // + " </AssociatedDocumentLineDocument>\n"
// + " </IncludedSupplyChainTradeLineItem>\n"; // + " </IncludedSupplyChainTradeLineItem>\n";
xml = xml + "</rsm:SupplyChainTradeTransaction>" xml += "</rsm:SupplyChainTradeTransaction>"
+ "</rsm:CrossIndustryInvoice>"; + "</rsm:CrossIndustryInvoice>";
final byte[] zugferdRaw; final byte[] zugferdRaw;