Merge branch 'master' of github.com:ZUGFeRD/mustangproject
This commit is contained in:
@@ -45,7 +45,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>ch.qos.logback</groupId>
|
<groupId>ch.qos.logback</groupId>
|
||||||
<artifactId>logback-core</artifactId>
|
<artifactId>logback-core</artifactId>
|
||||||
<version>1.2.13</version>
|
<version>1.5.13</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<!-- This library is needed so that logback stderr output is sent to, well, stderr, otherwise it lands in stdout -->
|
<!-- This library is needed so that logback stderr output is sent to, well, stderr, otherwise it lands in stdout -->
|
||||||
|
|||||||
@@ -3,11 +3,14 @@ package org.mustangproject.Exceptions;
|
|||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* will be thrown if a invoice cant be reproduced numerically
|
* will be thrown if an invoice cant be reproduced numerically
|
||||||
*/
|
*/
|
||||||
public class ArithmetricException extends ParseException {
|
public class ArithmetricException extends ParseException {
|
||||||
public ArithmetricException() {
|
public ArithmetricException() {
|
||||||
super(
|
this("");
|
||||||
"Could not reproduce the invoice, this could mean that it could not be read properly", 0);
|
}
|
||||||
|
|
||||||
|
public ArithmetricException(String details) {
|
||||||
|
super("Could not reproduce the invoice. " + details, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
|||||||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||||
public class Invoice implements IExportableTransaction {
|
public class Invoice implements IExportableTransaction {
|
||||||
|
|
||||||
protected String documentName = null, documentCode = null, number = null, ownOrganisationFullPlaintextInfo = null, referenceNumber = null, shipToOrganisationID = null, shipToOrganisationName = null, shipToStreet = null, shipToZIP = null, shipToLocation = null, shipToCountry = null, buyerOrderReferencedDocumentID = null, invoiceReferencedDocumentID = null, buyerOrderReferencedDocumentIssueDateTime = null, ownForeignOrganisationID = null, ownOrganisationName = null, currency = null, paymentTermDescription = null;
|
protected String documentName = null, documentCode = null, number = null, ownOrganisationFullPlaintextInfo = null, referenceNumber = null, shipToOrganisationID = null, shipToOrganisationName = null, shipToStreet = null, shipToZIP = null, shipToLocation = null, shipToCountry = null, buyerOrderReferencedDocumentID = null, buyerOrderReferencedDocumentIssueDateTime = null, ownForeignOrganisationID = null, ownOrganisationName = null, currency = null, paymentTermDescription = null;
|
||||||
protected Date issueDate = null, dueDate = null, deliveryDate = null;
|
protected Date issueDate = null, dueDate = null, deliveryDate = null;
|
||||||
protected TradeParty sender = null, recipient = null, deliveryAddress = null, payee = null;
|
protected TradeParty sender = null, recipient = null, deliveryAddress = null, payee = null;
|
||||||
protected ArrayList<CashDiscount> cashDiscounts = null;
|
protected ArrayList<CashDiscount> cashDiscounts = null;
|
||||||
@@ -57,7 +57,12 @@ public class Invoice implements IExportableTransaction {
|
|||||||
protected ArrayList<IZUGFeRDAllowanceCharge> Allowances = new ArrayList<>(),
|
protected ArrayList<IZUGFeRDAllowanceCharge> Allowances = new ArrayList<>(),
|
||||||
Charges = new ArrayList<>(), LogisticsServiceCharges = new ArrayList<>();
|
Charges = new ArrayList<>(), LogisticsServiceCharges = new ArrayList<>();
|
||||||
protected IZUGFeRDPaymentTerms paymentTerms = null;
|
protected IZUGFeRDPaymentTerms paymentTerms = null;
|
||||||
|
|
||||||
|
protected String invoiceReferencedDocumentID = null;
|
||||||
protected Date invoiceReferencedIssueDate;
|
protected Date invoiceReferencedIssueDate;
|
||||||
|
// New field for storing Invoiced Object Identifier (BG-3)
|
||||||
|
protected ArrayList<ReferencedDocument> invoiceReferencedDocuments = null;
|
||||||
|
|
||||||
protected String specifiedProcuringProjectID = null;
|
protected String specifiedProcuringProjectID = null;
|
||||||
protected String specifiedProcuringProjectName = null;
|
protected String specifiedProcuringProjectName = null;
|
||||||
protected String despatchAdviceReferencedDocumentID = null;
|
protected String despatchAdviceReferencedDocumentID = null;
|
||||||
@@ -148,6 +153,7 @@ public class Invoice implements IExportableTransaction {
|
|||||||
*/
|
*/
|
||||||
public Invoice setCorrection(String number) {
|
public Invoice setCorrection(String number) {
|
||||||
setInvoiceReferencedDocumentID(number);
|
setInvoiceReferencedDocumentID(number);
|
||||||
|
addInvoiceReferencedDocument(new ReferencedDocument(number));
|
||||||
documentCode = DocumentCodeTypeConstants.CORRECTEDINVOICE;
|
documentCode = DocumentCodeTypeConstants.CORRECTEDINVOICE;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -546,6 +552,26 @@ public class Invoice implements IExportableTransaction {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Getter for BG-3
|
||||||
|
@Override
|
||||||
|
public ArrayList<ReferencedDocument> getInvoiceReferencedDocuments() {
|
||||||
|
return invoiceReferencedDocuments;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setter for BG-3
|
||||||
|
public void setInvoiceReferencedDocuments(ArrayList<ReferencedDocument> invoiceReferencedDocuments) {
|
||||||
|
this.invoiceReferencedDocuments = invoiceReferencedDocuments;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method to add a single ReferencedDocument for BG-3
|
||||||
|
public Invoice addInvoiceReferencedDocument(ReferencedDocument doc) {
|
||||||
|
if (invoiceReferencedDocuments == null) {
|
||||||
|
invoiceReferencedDocuments = new ArrayList<>();
|
||||||
|
}
|
||||||
|
invoiceReferencedDocuments.add(doc);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IZUGFeRDAllowanceCharge[] getZFAllowances() {
|
public IZUGFeRDAllowanceCharge[] getZFAllowances() {
|
||||||
if (Allowances.isEmpty()) {
|
if (Allowances.isEmpty()) {
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package org.mustangproject;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import org.mustangproject.ZUGFeRD.IReferencedDocument;
|
import org.mustangproject.ZUGFeRD.IReferencedDocument;
|
||||||
import org.mustangproject.util.NodeMap;
|
import org.mustangproject.util.NodeMap;
|
||||||
import org.w3c.dom.Node;
|
import org.w3c.dom.Node;
|
||||||
@@ -13,20 +15,33 @@ public class ReferencedDocument implements IReferencedDocument {
|
|||||||
String issuerAssignedID;
|
String issuerAssignedID;
|
||||||
String typeCode;
|
String typeCode;
|
||||||
String referenceTypeCode;
|
String referenceTypeCode;
|
||||||
|
Date formattedIssueDateTime;
|
||||||
|
|
||||||
public ReferencedDocument(String issuerAssignedID, String typeCode, String referenceTypeCode) {
|
public ReferencedDocument(String issuerAssignedID, String typeCode, String referenceTypeCode) {
|
||||||
this.issuerAssignedID = issuerAssignedID;
|
this(issuerAssignedID);
|
||||||
this.typeCode = typeCode;
|
this.typeCode = typeCode;
|
||||||
this.referenceTypeCode = referenceTypeCode;
|
this.referenceTypeCode = referenceTypeCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ReferencedDocument(String issuerAssignedID, String referenceTypeCode) {
|
public ReferencedDocument(String issuerAssignedID, String typeCode, String referenceTypeCode, Date formattedIssueDateTime) {
|
||||||
this.issuerAssignedID = issuerAssignedID;
|
this(issuerAssignedID, typeCode, referenceTypeCode);
|
||||||
this.typeCode = "916"; // additional invoice related document
|
this.formattedIssueDateTime = formattedIssueDateTime;
|
||||||
this.referenceTypeCode = referenceTypeCode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/***
|
public ReferencedDocument(String issuerAssignedID, String referenceTypeCode) {
|
||||||
|
this(issuerAssignedID, "916", referenceTypeCode); // additional invoice related document
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReferencedDocument(String issuerAssingedID, Date formattedIssueDateTime) {
|
||||||
|
this(issuerAssingedID);
|
||||||
|
this.formattedIssueDateTime = formattedIssueDateTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReferencedDocument(String issuerAssignedID) {
|
||||||
|
this.issuerAssignedID = issuerAssignedID;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***
|
||||||
* sets an ID assigned by the sender
|
* sets an ID assigned by the sender
|
||||||
* @param issuerAssignedID the ID as a string :-)
|
* @param issuerAssignedID the ID as a string :-)
|
||||||
*/
|
*/
|
||||||
@@ -50,6 +65,15 @@ public class ReferencedDocument implements IReferencedDocument {
|
|||||||
this.referenceTypeCode = referenceTypeCode;
|
this.referenceTypeCode = referenceTypeCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* issue date of this line
|
||||||
|
*
|
||||||
|
* @param formattedIssueDateTime as Date
|
||||||
|
*/
|
||||||
|
public void setFormattedIssueDateTime(Date formattedIssueDateTime) {
|
||||||
|
this.formattedIssueDateTime = formattedIssueDateTime;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getIssuerAssignedID() {
|
public String getIssuerAssignedID() {
|
||||||
return issuerAssignedID;
|
return issuerAssignedID;
|
||||||
@@ -65,6 +89,12 @@ public class ReferencedDocument implements IReferencedDocument {
|
|||||||
return referenceTypeCode;
|
return referenceTypeCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Date getFormattedIssueDateTime()
|
||||||
|
{
|
||||||
|
return formattedIssueDateTime;
|
||||||
|
}
|
||||||
|
|
||||||
public static ReferencedDocument fromNode(Node node) {
|
public static ReferencedDocument fromNode(Node node) {
|
||||||
if (!node.hasChildNodes()) {
|
if (!node.hasChildNodes()) {
|
||||||
return null;
|
return null;
|
||||||
@@ -72,6 +102,7 @@ public class ReferencedDocument implements IReferencedDocument {
|
|||||||
NodeMap nodes = new NodeMap(node);
|
NodeMap nodes = new NodeMap(node);
|
||||||
return new ReferencedDocument(nodes.getAsStringOrNull("IssuerAssignedID", "ID"),
|
return new ReferencedDocument(nodes.getAsStringOrNull("IssuerAssignedID", "ID"),
|
||||||
nodes.getAsStringOrNull("TypeCode", "DocumentTypeCode"),
|
nodes.getAsStringOrNull("TypeCode", "DocumentTypeCode"),
|
||||||
nodes.getAsStringOrNull("ReferenceTypeCode"));
|
nodes.getAsStringOrNull("ReferenceTypeCode"),
|
||||||
|
XMLTools.tryDate(nodes.getAsStringOrNull("FormattedIssueDateTime")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,11 +30,13 @@ package org.mustangproject.ZUGFeRD;
|
|||||||
* */
|
* */
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.mustangproject.FileAttachment;
|
import org.mustangproject.FileAttachment;
|
||||||
import org.mustangproject.IncludedNote;
|
import org.mustangproject.IncludedNote;
|
||||||
|
import org.mustangproject.ReferencedDocument;
|
||||||
import org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants;
|
import org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
@@ -424,13 +426,23 @@ public interface IExportableTransaction {
|
|||||||
*
|
*
|
||||||
* @return the ID of the document
|
* @return the ID of the document
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
default String getInvoiceReferencedDocumentID() {
|
default String getInvoiceReferencedDocumentID() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
default Date getInvoiceReferencedIssueDate() {
|
default Date getInvoiceReferencedIssueDate() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getter for BG-3
|
||||||
|
* @return list of documents
|
||||||
|
*/
|
||||||
|
default ArrayList<ReferencedDocument> getInvoiceReferencedDocuments() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get the issue timestamp of the BuyerOrderReferencedDocument, which sits in
|
* get the issue timestamp of the BuyerOrderReferencedDocument, which sits in
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package org.mustangproject.ZUGFeRD;
|
package org.mustangproject.ZUGFeRD;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
public interface IReferencedDocument {
|
public interface IReferencedDocument {
|
||||||
|
|
||||||
/***
|
/***
|
||||||
@@ -20,4 +22,12 @@ public interface IReferencedDocument {
|
|||||||
*/
|
*/
|
||||||
String getReferenceTypeCode();
|
String getReferenceTypeCode();
|
||||||
|
|
||||||
|
/***
|
||||||
|
*
|
||||||
|
* issue date of this line
|
||||||
|
*
|
||||||
|
* @return date of the issue
|
||||||
|
*/
|
||||||
|
Date getFormattedIssueDateTime();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -459,6 +459,19 @@ public class OXPullProvider extends ZUGFeRD2PullProvider {
|
|||||||
}
|
}
|
||||||
xml += "</ram:InvoiceReferencedDocument>";
|
xml += "</ram:InvoiceReferencedDocument>";
|
||||||
}
|
}
|
||||||
|
if (trans.getInvoiceReferencedDocuments() != null) {
|
||||||
|
for (var doc : trans.getInvoiceReferencedDocuments()) {
|
||||||
|
xml += "<ram:InvoiceReferencedDocument>"
|
||||||
|
+ "<ram:IssuerAssignedID>"
|
||||||
|
+ XMLTools.encodeXML(doc.getIssuerAssignedID()) + "</ram:IssuerAssignedID>";
|
||||||
|
if (doc.getFormattedIssueDateTime() != null) {
|
||||||
|
xml += "<ram:FormattedIssueDateTime>"
|
||||||
|
+ DATE.qdtFormat(doc.getFormattedIssueDateTime())
|
||||||
|
+ "</ram:FormattedIssueDateTime>";
|
||||||
|
}
|
||||||
|
xml += "</ram:InvoiceReferencedDocument>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
xml += "</ram:ApplicableHeaderTradeSettlement>";
|
xml += "</ram:ApplicableHeaderTradeSettlement>";
|
||||||
// + " <IncludedSupplyChainTradeLineItem>"
|
// + " <IncludedSupplyChainTradeLineItem>"
|
||||||
|
|||||||
@@ -4,7 +4,10 @@ import static java.math.BigDecimal.ZERO;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
@@ -91,17 +94,14 @@ public class TransactionCalculator implements IAbsoluteValueProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getAllowanceChargeReasonForPercent(BigDecimal percent, IZUGFeRDAllowanceCharge[] charges) {
|
private String getAllowanceChargeReasonForPercent(BigDecimal percent, IZUGFeRDAllowanceCharge[] charges) {
|
||||||
String res = " ";
|
if (charges == null) {
|
||||||
if ((charges != null) && (charges.length > 0)) {
|
return "";
|
||||||
for (IZUGFeRDAllowanceCharge currentCharge : charges) {
|
|
||||||
if ((percent == null) || (currentCharge.getTaxPercent().compareTo(percent) == 0)
|
|
||||||
&& currentCharge.getReason() != null) {
|
|
||||||
res += currentCharge.getReason() + " ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
res = res.substring(0, res.length() - 1);
|
return Arrays.stream(charges)
|
||||||
return res;
|
.filter(currentCharge -> (percent == null || currentCharge.getTaxPercent().compareTo(percent) == 0))
|
||||||
|
.map(IZUGFeRDAllowanceCharge::getReason)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.joining(" "));
|
||||||
}
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
|
|||||||
@@ -828,6 +828,12 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
|
|||||||
if (paymentTermsDescription != null) {
|
if (paymentTermsDescription != null) {
|
||||||
xml += "<ram:Description>" + paymentTermsDescription + "</ram:Description>";
|
xml += "<ram:Description>" + paymentTermsDescription + "</ram:Description>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (trans.getDueDate() != null) {
|
||||||
|
xml += "<ram:DueDateDateTime>" // $NON-NLS-2$
|
||||||
|
+ DATE.udtFormat(trans.getDueDate())
|
||||||
|
+ "</ram:DueDateDateTime>";// 20130704
|
||||||
|
}
|
||||||
|
|
||||||
if (trans.getTradeSettlement() != null) {
|
if (trans.getTradeSettlement() != null) {
|
||||||
for (final IZUGFeRDTradeSettlement payment : trans.getTradeSettlement()) {
|
for (final IZUGFeRDTradeSettlement payment : trans.getTradeSettlement()) {
|
||||||
@@ -837,12 +843,6 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (trans.getDueDate() != null) {
|
|
||||||
xml += "<ram:DueDateDateTime>" // $NON-NLS-2$
|
|
||||||
+ DATE.udtFormat(trans.getDueDate())
|
|
||||||
+ "</ram:DueDateDateTime>";// 20130704
|
|
||||||
|
|
||||||
}
|
|
||||||
xml += "</ram:SpecifiedTradePaymentTerms>";
|
xml += "</ram:SpecifiedTradePaymentTerms>";
|
||||||
} else {
|
} else {
|
||||||
xml += buildPaymentTermsXml();
|
xml += buildPaymentTermsXml();
|
||||||
@@ -893,6 +893,19 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
|
|||||||
}
|
}
|
||||||
xml += "</ram:InvoiceReferencedDocument>";
|
xml += "</ram:InvoiceReferencedDocument>";
|
||||||
}
|
}
|
||||||
|
if (trans.getInvoiceReferencedDocuments() != null) {
|
||||||
|
for (var doc : trans.getInvoiceReferencedDocuments()) {
|
||||||
|
xml += "<ram:InvoiceReferencedDocument>"
|
||||||
|
+ "<ram:IssuerAssignedID>"
|
||||||
|
+ XMLTools.encodeXML(doc.getIssuerAssignedID()) + "</ram:IssuerAssignedID>";
|
||||||
|
if (doc.getFormattedIssueDateTime() != null) {
|
||||||
|
xml += "<ram:FormattedIssueDateTime>"
|
||||||
|
+ DATE.qdtFormat(doc.getFormattedIssueDateTime())
|
||||||
|
+ "</ram:FormattedIssueDateTime>";
|
||||||
|
}
|
||||||
|
xml += "</ram:InvoiceReferencedDocument>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
xml += "</ram:ApplicableHeaderTradeSettlement>";
|
xml += "</ram:ApplicableHeaderTradeSettlement>";
|
||||||
// + "<IncludedSupplyChainTradeLineItem>\n"
|
// + "<IncludedSupplyChainTradeLineItem>\n"
|
||||||
|
|||||||
@@ -32,6 +32,9 @@ import java.nio.file.StandardOpenOption;
|
|||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
|
||||||
public class ZUGFeRDInvoiceImporter {
|
public class ZUGFeRDInvoiceImporter {
|
||||||
|
|
||||||
@@ -472,9 +475,11 @@ public class ZUGFeRDInvoiceImporter {
|
|||||||
|
|
||||||
xpr = xpath.compile("//*[local-name()=\"SpecifiedTradeSettlementHeaderMonetarySummation\"]/*[local-name()=\"DuePayableAmount\"]|//*[local-name()=\"LegalMonetaryTotal\"]/*[local-name()=\"PayableAmount\"]");
|
xpr = xpath.compile("//*[local-name()=\"SpecifiedTradeSettlementHeaderMonetarySummation\"]/*[local-name()=\"DuePayableAmount\"]|//*[local-name()=\"LegalMonetaryTotal\"]/*[local-name()=\"PayableAmount\"]");
|
||||||
NodeList lineDueNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
|
NodeList lineDueNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
|
||||||
|
BigDecimal duePayableAmount = null;
|
||||||
if (lineDueNodes.getLength() > 0) {
|
if (lineDueNodes.getLength() > 0) {
|
||||||
|
duePayableAmount = new BigDecimal(XMLTools.trimOrNull(lineDueNodes.item(0)));
|
||||||
if (zpp instanceof CalculatedInvoice) {
|
if (zpp instanceof CalculatedInvoice) {
|
||||||
((CalculatedInvoice) zpp).setDuePayable(new BigDecimal(XMLTools.trimOrNull(lineDueNodes.item(0))));
|
((CalculatedInvoice) zpp).setDuePayable(duePayableAmount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -816,6 +821,23 @@ public class ZUGFeRDInvoiceImporter {
|
|||||||
}
|
}
|
||||||
zpp.setInvoiceReferencedDocumentID(extractString("//*[local-name()=\"InvoiceReferencedDocument\"]/*[local-name()=\"IssuerAssignedID\"]|//*[local-name()=\"BillingReference\"]/*[local-name()=\"InvoiceDocumentReference\"]/*[local-name()=\"ID\"]"));
|
zpp.setInvoiceReferencedDocumentID(extractString("//*[local-name()=\"InvoiceReferencedDocument\"]/*[local-name()=\"IssuerAssignedID\"]|//*[local-name()=\"BillingReference\"]/*[local-name()=\"InvoiceDocumentReference\"]/*[local-name()=\"ID\"]"));
|
||||||
|
|
||||||
|
xpr = xpath.compile("//*[local-name()=\"InvoiceReferencedDocument\"]");
|
||||||
|
NodeList nodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
|
||||||
|
|
||||||
|
if (nodes.getLength() != 0) {
|
||||||
|
for (int i = 0; i < nodes.getLength(); i++) {
|
||||||
|
|
||||||
|
Node currentItemNode = nodes.item(i);
|
||||||
|
ReferencedDocument doc = ReferencedDocument.fromNode(currentItemNode);
|
||||||
|
if (doc != null
|
||||||
|
&& (!Objects.equals(zpp.getInvoiceReferencedDocumentID(), doc.getIssuerAssignedID())
|
||||||
|
|| !Objects.equals(zpp.getInvoiceReferencedIssueDate(), doc.getFormattedIssueDateTime())))
|
||||||
|
{
|
||||||
|
zpp.addInvoiceReferencedDocument(doc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
zpp.setOwnOrganisationName(extractString("//*[local-name()=\"SellerTradeParty\"]/*[local-name()=\"Name\"]|//*[local-name()=\"AccountingSupplierParty\"]/*[local-name()=\"Party\"]/*[local-name()=\"PartyName\"]").trim());
|
zpp.setOwnOrganisationName(extractString("//*[local-name()=\"SellerTradeParty\"]/*[local-name()=\"Name\"]|//*[local-name()=\"AccountingSupplierParty\"]/*[local-name()=\"Party\"]/*[local-name()=\"PartyName\"]").trim());
|
||||||
|
|
||||||
String rounding = extractString("//*[local-name()=\"SpecifiedTradeSettlementHeaderMonetarySummation\"]/*[local-name()=\"RoundingAmount\"]|//*[local-name()=\"LegalMonetaryTotal\"]/*[local-name()=\"Party\"]/*[local-name()=\"PayableRoundingAmount\"]");
|
String rounding = extractString("//*[local-name()=\"SpecifiedTradeSettlementHeaderMonetarySummation\"]/*[local-name()=\"RoundingAmount\"]|//*[local-name()=\"LegalMonetaryTotal\"]/*[local-name()=\"Party\"]/*[local-name()=\"PayableRoundingAmount\"]");
|
||||||
@@ -834,7 +856,7 @@ public class ZUGFeRDInvoiceImporter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
xpr = xpath.compile("//*[local-name()=\"IncludedSupplyChainTradeLineItem\"]|//*[local-name()=\"InvoiceLine\"]");
|
xpr = xpath.compile("//*[local-name()=\"IncludedSupplyChainTradeLineItem\"]|//*[local-name()=\"InvoiceLine\"]");
|
||||||
NodeList nodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
|
nodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
|
||||||
|
|
||||||
if (nodes.getLength() != 0) {
|
if (nodes.getLength() != 0) {
|
||||||
for (int i = 0; i < nodes.getLength(); i++) {
|
for (int i = 0; i < nodes.getLength(); i++) {
|
||||||
@@ -938,8 +960,7 @@ public class ZUGFeRDInvoiceImporter {
|
|||||||
|
|
||||||
|
|
||||||
TransactionCalculator tc = new TransactionCalculator(zpp);
|
TransactionCalculator tc = new TransactionCalculator(zpp);
|
||||||
String expectedStringTotalGross = tc.getGrandTotal()
|
String calculatedPayableTotal = tc.getDuePayable().toPlainString();
|
||||||
.subtract(Objects.requireNonNullElse(zpp.getTotalPrepaidAmount(), BigDecimal.ZERO)).toPlainString();
|
|
||||||
EStandard whichType;
|
EStandard whichType;
|
||||||
try {
|
try {
|
||||||
whichType = getStandard();
|
whichType = getStandard();
|
||||||
@@ -947,10 +968,21 @@ public class ZUGFeRDInvoiceImporter {
|
|||||||
throw new StructureException("Could not find out if it's an invoice, order, or delivery advice", 0);
|
throw new StructureException("Could not find out if it's an invoice, order, or delivery advice", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((whichType != EStandard.despatchadvice)
|
if (whichType != EStandard.despatchadvice && !ignoreCalculationErrors) {
|
||||||
&& ((!expectedStringTotalGross.equals(XMLTools.nDigitFormat(expectedGrandTotal, 2)))
|
// Check calculation if document type allows it and calculation errors should not be ignored
|
||||||
&& (!ignoreCalculationErrors))) {
|
|
||||||
throw new ArithmetricException();
|
String payableTotalFromXml = XMLTools.nDigitFormat(Objects.requireNonNullElse(duePayableAmount, expectedGrandTotal), 2);
|
||||||
|
if (!calculatedPayableTotal.equals(payableTotalFromXml)) {
|
||||||
|
String moreDetails = "";
|
||||||
|
try {
|
||||||
|
moreDetails = " with tax basis " + tc.getTaxBasis() + " and with positions " + tc.getTotal() + " = "
|
||||||
|
+ Stream.of(tc.trans.getZFItems())
|
||||||
|
.map(item -> new LineCalculator(item).getItemTotalNetAmount().toPlainString())
|
||||||
|
.collect(Collectors.joining(" + "));
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
throw new ArithmetricException("Payable total in XML is " + payableTotalFromXml + ", but calculated total is " + calculatedPayableTotal + moreDetails);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return zpp;
|
return zpp;
|
||||||
@@ -1068,5 +1100,4 @@ public class ZUGFeRDInvoiceImporter {
|
|||||||
LOGGER.error(e.getMessage(), e);
|
LOGGER.error(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,42 +20,9 @@
|
|||||||
*/
|
*/
|
||||||
package org.mustangproject.ZUGFeRD;
|
package org.mustangproject.ZUGFeRD;
|
||||||
|
|
||||||
import java.io.BufferedOutputStream;
|
import com.helger.commons.io.stream.StreamHelper;
|
||||||
import java.io.ByteArrayInputStream;
|
import org.apache.commons.io.IOUtils;
|
||||||
import java.io.ByteArrayOutputStream;
|
import org.apache.fop.apps.*;
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.io.PipedInputStream;
|
|
||||||
import java.io.PipedOutputStream;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Paths;
|
|
||||||
|
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
|
||||||
import javax.xml.transform.Result;
|
|
||||||
import javax.xml.transform.Source;
|
|
||||||
import javax.xml.transform.Templates;
|
|
||||||
import javax.xml.transform.Transformer;
|
|
||||||
import javax.xml.transform.TransformerConfigurationException;
|
|
||||||
import javax.xml.transform.TransformerException;
|
|
||||||
import javax.xml.transform.TransformerFactory;
|
|
||||||
import javax.xml.transform.URIResolver;
|
|
||||||
import javax.xml.transform.sax.SAXResult;
|
|
||||||
import javax.xml.transform.stream.StreamResult;
|
|
||||||
import javax.xml.transform.stream.StreamSource;
|
|
||||||
|
|
||||||
import org.apache.fop.apps.FOPException;
|
|
||||||
import org.apache.fop.apps.FOUserAgent;
|
|
||||||
import org.apache.fop.apps.Fop;
|
|
||||||
import org.apache.fop.apps.FopFactory;
|
|
||||||
import org.apache.fop.apps.FopFactoryBuilder;
|
|
||||||
import org.apache.fop.apps.io.ResourceResolverFactory;
|
import org.apache.fop.apps.io.ResourceResolverFactory;
|
||||||
import org.apache.fop.configuration.Configuration;
|
import org.apache.fop.configuration.Configuration;
|
||||||
import org.apache.fop.configuration.ConfigurationException;
|
import org.apache.fop.configuration.ConfigurationException;
|
||||||
@@ -65,12 +32,19 @@ import org.mustangproject.ClasspathResolverURIAdapter;
|
|||||||
import org.mustangproject.EStandard;
|
import org.mustangproject.EStandard;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import com.helger.commons.io.stream.StreamHelper;
|
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
import org.xml.sax.InputSource;
|
import org.xml.sax.InputSource;
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
|
import javax.xml.transform.*;
|
||||||
|
import javax.xml.transform.sax.SAXResult;
|
||||||
|
import javax.xml.transform.stream.StreamResult;
|
||||||
|
import javax.xml.transform.stream.StreamSource;
|
||||||
|
import java.io.*;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class ZUGFeRDVisualizer {
|
public class ZUGFeRDVisualizer {
|
||||||
|
|
||||||
@@ -113,7 +87,7 @@ public class ZUGFeRDVisualizer {
|
|||||||
* @param fis inputstream (will be consumed)
|
* @param fis inputstream (will be consumed)
|
||||||
* @return (facturx = cii)
|
* @return (facturx = cii)
|
||||||
*/
|
*/
|
||||||
public EStandard findOutStandardFromRootNode(InputStream fis) {
|
private EStandard findOutStandardFromRootNode(InputStream fis) {
|
||||||
|
|
||||||
String zf1Signature = "CrossIndustryDocument";
|
String zf1Signature = "CrossIndustryDocument";
|
||||||
String zf2Signature = "CrossIndustryInvoice";
|
String zf2Signature = "CrossIndustryInvoice";
|
||||||
@@ -144,106 +118,97 @@ public class ZUGFeRDVisualizer {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String visualize(String xmlFilename, Language lang)
|
public String visualize(String xmlFilename, Language lang) throws IOException, TransformerException {
|
||||||
throws FileNotFoundException, TransformerException, IOException, SAXException, ParserConfigurationException {
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (mXsltPDFTemplate == null) {
|
|
||||||
mXsltPDFTemplate = mFactory.newTemplates(
|
|
||||||
new StreamSource(CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/xr-pdf.xsl")));
|
|
||||||
}
|
|
||||||
if (mXsltHTMLTemplate == null) {
|
|
||||||
mXsltHTMLTemplate = mFactory.newTemplates(new StreamSource(
|
|
||||||
CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/xrechnung-html." + lang.name().toLowerCase() + ".xsl")));
|
|
||||||
}
|
|
||||||
if (mXsltZF1HTMLTemplate == null) {
|
|
||||||
mXsltZF1HTMLTemplate = mFactory.newTemplates(new StreamSource(
|
|
||||||
CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/ZUGFeRD_1p0_c1p0_s1p0.xslt")));
|
|
||||||
}
|
|
||||||
} catch (TransformerConfigurationException ex) {
|
|
||||||
LOGGER.error("Failed to init XSLT templates", ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* *
|
|
||||||
* http://www.unece.org/fileadmin/DAM/cefact/xml/XML-Naming-And-Design-Rules-V2_1.pdf
|
|
||||||
* http://www.ferd-net.de/upload/Dokumente/FACTUR-X_ZUGFeRD_2p0_Teil1_Profil_EN16931_1p03.pdf
|
|
||||||
* http://countwordsfree.com/xmlviewer
|
|
||||||
*/
|
|
||||||
FileInputStream fis = new FileInputStream(xmlFilename);
|
FileInputStream fis = new FileInputStream(xmlFilename);
|
||||||
String fileContent = "";
|
return visualize(fis, lang);
|
||||||
try {
|
}
|
||||||
fileContent = new String(Files.readAllBytes(Paths.get(xmlFilename)), StandardCharsets.UTF_8);
|
|
||||||
} catch (IOException e2) {
|
|
||||||
LOGGER.error("Failed to read file content", e2);
|
|
||||||
}
|
|
||||||
|
|
||||||
ByteArrayOutputStream iaos = new ByteArrayOutputStream();
|
public String visualize(InputStream inputXml, Language lang) throws IOException, TransformerException {
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
initTemplates(lang);
|
||||||
|
|
||||||
boolean doPostProcessing = false;
|
String fileContent = new String(IOUtils.toByteArray(inputXml), StandardCharsets.UTF_8);
|
||||||
|
EStandard thestandard = findOutStandardFromRootNode(new ByteArrayInputStream(fileContent.getBytes(StandardCharsets.UTF_8)));
|
||||||
|
ByteArrayOutputStream htmlOutput = new ByteArrayOutputStream();
|
||||||
|
|
||||||
|
|
||||||
fis = new FileInputStream(xmlFilename); // fis wont reset() so re-read from beginning
|
ByteArrayInputStream xmlContentStream = new ByteArrayInputStream(fileContent.getBytes(StandardCharsets.UTF_8));
|
||||||
EStandard thestandard = findOutStandardFromRootNode(fis);
|
|
||||||
fis = new FileInputStream(xmlFilename); // fis wont reset() so re-read from beginning
|
|
||||||
|
|
||||||
if (thestandard == EStandard.zugferd) {
|
if (thestandard == EStandard.zugferd) {
|
||||||
applyZF1XSLT(fis, baos);
|
applyZF1XSLT(xmlContentStream, htmlOutput);
|
||||||
|
return htmlOutput.toString(StandardCharsets.UTF_8);
|
||||||
} else if (thestandard == EStandard.facturx) {
|
} else if (thestandard == EStandard.facturx) {
|
||||||
//zf2 or fx
|
//zf2 or fx
|
||||||
applyZF2XSLT(fis, iaos);
|
applyZF2XSLT(xmlContentStream, htmlOutput);
|
||||||
doPostProcessing = true;
|
|
||||||
} else if (thestandard == EStandard.ubl) {
|
} else if (thestandard == EStandard.ubl) {
|
||||||
//zf2 or fx
|
//zf2 or fx
|
||||||
applyUBL2XSLT(fis, iaos);
|
applyUBL2XSLT(xmlContentStream, htmlOutput);
|
||||||
doPostProcessing = true;
|
|
||||||
} else if (thestandard == EStandard.ubl_creditnote) {
|
} else if (thestandard == EStandard.ubl_creditnote) {
|
||||||
//zf2 or fx
|
//zf2 or fx
|
||||||
applyUBLCreditNote2XSLT(fis, iaos);
|
applyUBLCreditNote2XSLT(xmlContentStream, htmlOutput);
|
||||||
doPostProcessing = true;
|
|
||||||
} else if (thestandard == EStandard.orderx) {
|
} else if (thestandard == EStandard.orderx) {
|
||||||
//zf2 or fx
|
//zf2 or fx
|
||||||
applyCIO2XSLT(fis, iaos);
|
applyCIO2XSLT(xmlContentStream, htmlOutput);
|
||||||
doPostProcessing = true;
|
|
||||||
} else {
|
} else {
|
||||||
throw new IllegalArgumentException("File does not look like CII or UBL");
|
throw new IllegalArgumentException("File does not look like CII or UBL");
|
||||||
}
|
}
|
||||||
if (doPostProcessing) {
|
Optional<InputStream> in = copyStream(htmlOutput);
|
||||||
// take the copy of the stream and re-write it to an InputStream
|
ByteArrayOutputStream htmlOutStream = new ByteArrayOutputStream();
|
||||||
PipedInputStream in = new PipedInputStream();
|
if (in.isPresent()) {
|
||||||
PipedOutputStream out;
|
applyXSLTToHTML(in.get(), htmlOutStream);
|
||||||
try {
|
|
||||||
out = new PipedOutputStream(in);
|
|
||||||
new Thread(new Runnable() {
|
|
||||||
public void run() {
|
|
||||||
try {
|
|
||||||
// write the original OutputStream to the PipedOutputStream
|
|
||||||
// note that in order for the below method to work, you need
|
|
||||||
// to ensure that the data has finished writing to the
|
|
||||||
// ByteArrayOutputStream
|
|
||||||
iaos.writeTo(out);
|
|
||||||
} catch (IOException e) {
|
|
||||||
LOGGER.error("Failed to write to stream", e);
|
|
||||||
} finally {
|
|
||||||
// close the PipedOutputStream here because we're done writing data
|
|
||||||
// once this thread has completed its run
|
|
||||||
StreamHelper.close(out);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}).start();
|
|
||||||
applyXSLTToHTML(in, baos);
|
|
||||||
} catch (IOException e1) {
|
|
||||||
LOGGER.error("Failed to create HTML", e1);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return baos.toString(StandardCharsets.UTF_8);
|
return htmlOutStream.toString(StandardCharsets.UTF_8);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: jstaerk: why not copy with that simple call: new ByteArrayInputStream(byteArrayOutputStream.toByteArray()) ?
|
||||||
|
*/
|
||||||
|
private Optional<InputStream> copyStream(ByteArrayOutputStream byteArrayOutputStream) {
|
||||||
|
// take the copy of the stream and re-write it to an InputStream
|
||||||
|
PipedInputStream in = new PipedInputStream();
|
||||||
|
try {
|
||||||
|
PipedOutputStream out = new PipedOutputStream(in);
|
||||||
|
new Thread(() -> {
|
||||||
|
try {
|
||||||
|
// write the original OutputStream to the PipedOutputStream
|
||||||
|
// note that in order for the below method to work, you need
|
||||||
|
// to ensure that the data has finished writing to the
|
||||||
|
// ByteArrayOutputStream
|
||||||
|
byteArrayOutputStream.writeTo(out);
|
||||||
|
} catch (IOException e) {
|
||||||
|
LOGGER.error("Failed to write to stream", e);
|
||||||
|
} finally {
|
||||||
|
// close the PipedOutputStream here because we're done writing data
|
||||||
|
// once this thread has completed its run
|
||||||
|
StreamHelper.close(out);
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
} catch (IOException e1) {
|
||||||
|
LOGGER.error("Failed to create HTML", e1);
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
return Optional.of(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void initTemplates(Language lang) throws TransformerConfigurationException {
|
||||||
|
if (mXsltXRTemplate == null) {
|
||||||
|
mXsltXRTemplate = mFactory.newTemplates(
|
||||||
|
new StreamSource(CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/cii-xr.xsl")));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mXsltHTMLTemplate == null) {
|
||||||
|
mXsltHTMLTemplate = mFactory.newTemplates(new StreamSource(
|
||||||
|
CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/xrechnung-html." + lang.name().toLowerCase() + ".xsl")));
|
||||||
|
}
|
||||||
|
if (mXsltZF1HTMLTemplate == null) {
|
||||||
|
mXsltZF1HTMLTemplate = mFactory.newTemplates(new StreamSource(
|
||||||
|
CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/ZUGFeRD_1p0_c1p0_s1p0.xslt")));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String toFOP(String xmlFilename)
|
protected String toFOP(String xmlFilename)
|
||||||
throws FileNotFoundException, TransformerException {
|
throws IOException, TransformerException {
|
||||||
|
|
||||||
FileInputStream fis = new FileInputStream(xmlFilename);
|
FileInputStream fis = new FileInputStream(xmlFilename);
|
||||||
EStandard theStandard = findOutStandardFromRootNode(fis);
|
EStandard theStandard = findOutStandardFromRootNode(fis);
|
||||||
@@ -253,8 +218,8 @@ public class ZUGFeRDVisualizer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected String toFOP(InputStream is, EStandard theStandard)
|
protected String toFOP(InputStream is, EStandard theStandard)
|
||||||
throws FileNotFoundException, TransformerException {
|
throws TransformerException, IOException {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (mXsltPDFTemplate == null) {
|
if (mXsltPDFTemplate == null) {
|
||||||
mXsltPDFTemplate = mFactory.newTemplates(
|
mXsltPDFTemplate = mFactory.newTemplates(
|
||||||
@@ -265,7 +230,6 @@ public class ZUGFeRDVisualizer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ByteArrayOutputStream iaos = new ByteArrayOutputStream();
|
ByteArrayOutputStream iaos = new ByteArrayOutputStream();
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
|
||||||
|
|
||||||
//zf2 or fx
|
//zf2 or fx
|
||||||
if (theStandard == EStandard.facturx) {
|
if (theStandard == EStandard.facturx) {
|
||||||
@@ -277,33 +241,11 @@ public class ZUGFeRDVisualizer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PipedInputStream in = new PipedInputStream();
|
Optional<InputStream> in = copyStream(iaos);
|
||||||
PipedOutputStream out;
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
try {
|
if (in.isPresent()) {
|
||||||
out = new PipedOutputStream(in);
|
applyXSLTToPDF(in.get(), baos);
|
||||||
new Thread(new Runnable() {
|
|
||||||
public void run() {
|
|
||||||
try {
|
|
||||||
// write the original OutputStream to the PipedOutputStream
|
|
||||||
// note that in order for the below method to work, you need
|
|
||||||
// to ensure that the data has finished writing to the
|
|
||||||
// ByteArrayOutputStream
|
|
||||||
iaos.writeTo(out);
|
|
||||||
} catch (IOException e) {
|
|
||||||
LOGGER.error("Failed to write to stream", e);
|
|
||||||
} finally {
|
|
||||||
// close the PipedOutputStream here because we're done writing data
|
|
||||||
// once this thread has completed its run
|
|
||||||
StreamHelper.close(out);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}).start();
|
|
||||||
applyXSLTToPDF(in, baos);
|
|
||||||
} catch (IOException e1) {
|
|
||||||
LOGGER.error("Failed to create PDF", e1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return baos.toString(StandardCharsets.UTF_8);
|
return baos.toString(StandardCharsets.UTF_8);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -319,7 +261,7 @@ public class ZUGFeRDVisualizer {
|
|||||||
*/
|
*/
|
||||||
try {
|
try {
|
||||||
result = this.toFOP(XMLinputFile.getAbsolutePath());
|
result = this.toFOP(XMLinputFile.getAbsolutePath());
|
||||||
} catch (FileNotFoundException | TransformerException e) {
|
} catch (TransformerException | IOException e) {
|
||||||
LOGGER.error("Failed to apply FOP", e);
|
LOGGER.error("Failed to apply FOP", e);
|
||||||
}
|
}
|
||||||
DefaultConfigurationBuilder cfgBuilder = new DefaultConfigurationBuilder();
|
DefaultConfigurationBuilder cfgBuilder = new DefaultConfigurationBuilder();
|
||||||
@@ -373,7 +315,7 @@ public class ZUGFeRDVisualizer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void applyZF2XSLT(final InputStream xmlFile, final OutputStream HTMLOutstream)
|
protected void applyZF2XSLT(final InputStream xmlFile, final OutputStream htmlOutStream)
|
||||||
throws TransformerException {
|
throws TransformerException {
|
||||||
if (mXsltXRTemplate == null) {
|
if (mXsltXRTemplate == null) {
|
||||||
mXsltXRTemplate = mFactory.newTemplates(
|
mXsltXRTemplate = mFactory.newTemplates(
|
||||||
@@ -382,10 +324,10 @@ public class ZUGFeRDVisualizer {
|
|||||||
}
|
}
|
||||||
Transformer transformer = mXsltXRTemplate.newTransformer();
|
Transformer transformer = mXsltXRTemplate.newTransformer();
|
||||||
|
|
||||||
transformer.transform(new StreamSource(xmlFile), new StreamResult(HTMLOutstream));
|
transformer.transform(new StreamSource(xmlFile), new StreamResult(htmlOutStream));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void applyCIO2XSLT(final InputStream xmlFile, final OutputStream HTMLOutstream)
|
protected void applyCIO2XSLT(final InputStream xmlFile, final OutputStream htmlOutstream)
|
||||||
throws TransformerException {
|
throws TransformerException {
|
||||||
if (mXsltCIOTemplate == null) {
|
if (mXsltCIOTemplate == null) {
|
||||||
mXsltCIOTemplate = mFactory.newTemplates(
|
mXsltCIOTemplate = mFactory.newTemplates(
|
||||||
@@ -393,10 +335,10 @@ public class ZUGFeRDVisualizer {
|
|||||||
}
|
}
|
||||||
Transformer transformer = mXsltCIOTemplate.newTransformer();
|
Transformer transformer = mXsltCIOTemplate.newTransformer();
|
||||||
|
|
||||||
transformer.transform(new StreamSource(xmlFile), new StreamResult(HTMLOutstream));
|
transformer.transform(new StreamSource(xmlFile), new StreamResult(htmlOutstream));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void applyUBL2XSLT(final InputStream xmlFile, final OutputStream HTMLOutstream)
|
protected void applyUBL2XSLT(final InputStream xmlFile, final OutputStream htmlOutStream)
|
||||||
throws TransformerException {
|
throws TransformerException {
|
||||||
if (mXsltUBLTemplate == null) {
|
if (mXsltUBLTemplate == null) {
|
||||||
mXsltUBLTemplate = mFactory.newTemplates(
|
mXsltUBLTemplate = mFactory.newTemplates(
|
||||||
@@ -404,10 +346,10 @@ public class ZUGFeRDVisualizer {
|
|||||||
}
|
}
|
||||||
Transformer transformer = mXsltUBLTemplate.newTransformer();
|
Transformer transformer = mXsltUBLTemplate.newTransformer();
|
||||||
|
|
||||||
transformer.transform(new StreamSource(xmlFile), new StreamResult(HTMLOutstream));
|
transformer.transform(new StreamSource(xmlFile), new StreamResult(htmlOutStream));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void applyUBLCreditNote2XSLT(final InputStream xmlFile, final OutputStream HTMLOutstream)
|
protected void applyUBLCreditNote2XSLT(final InputStream xmlFile, final OutputStream htmlOutStream)
|
||||||
throws TransformerException {
|
throws TransformerException {
|
||||||
if (mXsltUBLTemplate == null) {
|
if (mXsltUBLTemplate == null) {
|
||||||
mXsltUBLTemplate = mFactory.newTemplates(
|
mXsltUBLTemplate = mFactory.newTemplates(
|
||||||
@@ -415,28 +357,30 @@ public class ZUGFeRDVisualizer {
|
|||||||
}
|
}
|
||||||
Transformer transformer = mXsltUBLTemplate.newTransformer();
|
Transformer transformer = mXsltUBLTemplate.newTransformer();
|
||||||
|
|
||||||
transformer.transform(new StreamSource(xmlFile), new StreamResult(HTMLOutstream));
|
transformer.transform(new StreamSource(xmlFile), new StreamResult(htmlOutStream));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void applyZF1XSLT(final InputStream xmlFile, final OutputStream HTMLOutstream)
|
protected void applyZF1XSLT(final InputStream xmlFile, final OutputStream htmlOutStream)
|
||||||
throws TransformerException {
|
throws TransformerException {
|
||||||
Transformer transformer = mXsltZF1HTMLTemplate.newTransformer();
|
Transformer transformer = mXsltZF1HTMLTemplate.newTransformer();
|
||||||
|
|
||||||
transformer.transform(new StreamSource(xmlFile), new StreamResult(HTMLOutstream));
|
transformer.transform(new StreamSource(xmlFile), new StreamResult(htmlOutStream));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void applyXSLTToHTML(final InputStream xmlFile, final OutputStream HTMLOutstream)
|
protected void applyXSLTToHTML(final InputStream xmlFile, final OutputStream htmlOutStream)
|
||||||
throws TransformerException {
|
throws TransformerException, IOException {
|
||||||
Transformer transformer = mXsltHTMLTemplate.newTransformer();
|
Transformer transformer = mXsltHTMLTemplate.newTransformer();
|
||||||
|
|
||||||
transformer.transform(new StreamSource(xmlFile), new StreamResult(HTMLOutstream));
|
transformer.transform(new StreamSource(xmlFile), new StreamResult(htmlOutStream));
|
||||||
|
xmlFile.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void applyXSLTToPDF(final InputStream xmlFile, final OutputStream PDFOutstream)
|
protected void applyXSLTToPDF(final InputStream xmlFile, final OutputStream PDFOutstream)
|
||||||
throws TransformerException {
|
throws TransformerException, IOException {
|
||||||
Transformer transformer = mXsltPDFTemplate.newTransformer();
|
Transformer transformer = mXsltPDFTemplate.newTransformer();
|
||||||
|
|
||||||
transformer.transform(new StreamSource(xmlFile), new StreamResult(PDFOutstream));
|
transformer.transform(new StreamSource(xmlFile), new StreamResult(PDFOutstream));
|
||||||
|
xmlFile.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ClasspathResourceURIResolver implements URIResolver {
|
private static class ClasspathResourceURIResolver implements URIResolver {
|
||||||
@@ -445,7 +389,7 @@ public class ZUGFeRDVisualizer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Source resolve(String href, String base) throws TransformerException {
|
public Source resolve(String href, String base) {
|
||||||
return new StreamSource(CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/" + href));
|
return new StreamSource(CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/" + href));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,135 +1,135 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
<xsl:stylesheet xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
|
||||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||||
xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
|
xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf"
|
||||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
version="2.0">
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
<!-- ==========================================================================
|
version="2.0">
|
||||||
== Imports
|
<!-- Imports -->
|
||||||
=========================================================================== -->
|
|
||||||
<xsl:import href="common-xr.xsl"/>
|
<xsl:import href="common-xr.xsl"/>
|
||||||
|
|
||||||
<xsl:import href="xr-pdf/lib/konstanten.xsl"/>
|
<xsl:import href="xr-pdf/lib/konstanten.xsl"/>
|
||||||
|
<!--
|
||||||
<!-- FO engine used can be specified. Specific extensions will be then enabled.
|
FO engine used can be specified.
|
||||||
Supported values are:
|
Specific extensions will be then enabled.
|
||||||
axf - Antenna House XSL Formatter
|
Supported values are:
|
||||||
fop - Apache FOP
|
axf - Antenna House XSL Formatter
|
||||||
-->
|
fop - Apache FOP
|
||||||
|
-->
|
||||||
<xsl:param name="foengine"/>
|
<xsl:param name="foengine"/>
|
||||||
|
<xsl:param name="axf.extensions"
|
||||||
<xsl:param name="axf.extensions" select="if ($foengine eq 'axf') then true() else false()"/>
|
select="if ($foengine eq 'axf') then true() else false()"/>
|
||||||
<xsl:param name="fop.extensions" select="if ($foengine eq 'fop') then true() else false()"/>
|
<xsl:param name="fop.extensions"
|
||||||
|
select="if ($foengine eq 'fop') then true() else false()"/>
|
||||||
|
|
||||||
<xsl:variable name="xml_result_color">
|
<xsl:variable name="xml_result_color">
|
||||||
<xsl:if test="/validation/xml/summary/@status = 'valid' ">
|
<xsl:if test="/validation/xml/summary/@status = 'valid'">
|
||||||
<xsl:text>green</xsl:text>
|
<xsl:text>green</xsl:text>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="/validation/xml/summary/@status = 'invalid' ">
|
<xsl:if test="/validation/xml/summary/@status = 'invalid'">
|
||||||
<xsl:text>red</xsl:text>
|
<xsl:text>red</xsl:text>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
|
|
||||||
<xsl:variable name="pdf_result_color">
|
<xsl:variable name="pdf_result_color">
|
||||||
<xsl:if test="/validation/pdf/summary/@status = 'valid' ">
|
<xsl:if test="/validation/pdf/summary/@status = 'valid'">
|
||||||
<xsl:text>green</xsl:text>
|
<xsl:text>green</xsl:text>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="/validation/pdf/summary/@status = 'invalid' ">
|
<xsl:if test="/validation/pdf/summary/@status = 'invalid'">
|
||||||
<xsl:text>red</xsl:text>
|
<xsl:text>red</xsl:text>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
|
|
||||||
<xsl:variable name="pdf_result_text">
|
<xsl:variable name="pdf_result_text">
|
||||||
<xsl:if test="/validation/xml/summary/@status = 'valid' ">
|
<xsl:if test="/validation/xml/summary/@status = 'valid'">
|
||||||
<xsl:text>Das ZUGFeRD-PDF ist valide.</xsl:text>
|
<xsl:text>Das ZUGFeRD-PDF ist valide.</xsl:text>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="/validation/xml/summary/@status = 'invalid' ">
|
<xsl:if test="/validation/xml/summary/@status = 'invalid'">
|
||||||
<xsl:text>Das ZUGFeRD-PDF ist nicht valide.</xsl:text>
|
<xsl:text>Das ZUGFeRD-PDF ist nicht valide.</xsl:text>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
|
|
||||||
<xsl:variable name="result_text">
|
<xsl:variable name="result_text">
|
||||||
<xsl:if test="/validation/xml/summary/@status = 'valid' ">
|
<xsl:if test="/validation/xml/summary/@status = 'valid'">
|
||||||
<xsl:text>Es wird empfohlen das Dokument anzunehmen und weiter zu verarbeiten.</xsl:text>
|
<xsl:text>Es wird empfohlen, das Dokument anzunehmen und weiterzuverarbeiten.</xsl:text>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="/validation/xml/summary/@status = 'invalid' ">
|
<xsl:if test="/validation/xml/summary/@status = 'invalid'">
|
||||||
<xsl:text>Es wird empfohlen das Dokument zurückzuweisen.</xsl:text>
|
<xsl:text>Es wird empfohlen, das Dokument zurückzuweisen.</xsl:text>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
|
|
||||||
<xsl:template match="validation">
|
<xsl:template match="validation">
|
||||||
<fo:root xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf"
|
<fo:root language="{$lang}"
|
||||||
language="{$lang}" font-family="{$fontSans}">
|
font-family="{$fontSans}">
|
||||||
<fo:layout-master-set>
|
<fo:layout-master-set>
|
||||||
<fo:simple-page-master master-name="DIN-A4" page-height="297mm" page-width="210mm">
|
<fo:simple-page-master master-name="DIN-A4"
|
||||||
<fo:region-body region-name="body" margin="20mm 10mm 20mm 20mm" />
|
page-height="297mm"
|
||||||
|
page-width="210mm">
|
||||||
|
<fo:region-body region-name="body"
|
||||||
|
margin="20mm 10mm 20mm 20mm"/>
|
||||||
</fo:simple-page-master>
|
</fo:simple-page-master>
|
||||||
</fo:layout-master-set>
|
</fo:layout-master-set>
|
||||||
|
|
||||||
<fo:page-sequence master-reference="DIN-A4">
|
<fo:page-sequence master-reference="DIN-A4">
|
||||||
<fo:flow flow-name="body">
|
<fo:flow flow-name="body">
|
||||||
<fo:block font-size="24px" font-weight="bold">
|
<fo:block font-size="24px"
|
||||||
Prüfbericht
|
font-weight="bold">
|
||||||
|
<xsl:text>Prüfbericht</xsl:text>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
|
|
||||||
<xsl:call-template name="SubHeader">
|
<xsl:call-template name="SubHeader">
|
||||||
<xsl:with-param name="text" select='"Angaben zum geprüften Dokument"' />
|
<xsl:with-param name="text"
|
||||||
<xsl:with-param name="color" select='"black"' />
|
select=""Angaben zum geprüften Dokument""/>
|
||||||
|
<xsl:with-param name="color"
|
||||||
|
select=""black""/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
|
|
||||||
<fo:block>
|
<fo:block>
|
||||||
<fo:block text-align="justify">
|
<fo:block text-align="justify">
|
||||||
<fo:float float="right">
|
<fo:float float="right">
|
||||||
<fo:block >
|
<fo:block>
|
||||||
<xsl:value-of select="/validation/@filename" />
|
<xsl:value-of select="/validation/@filename"/>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
</fo:float>
|
</fo:float>
|
||||||
Referenz:
|
<xsl:text>Referenz:</xsl:text>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
<fo:block>
|
<fo:block>
|
||||||
<fo:block text-align="justify">
|
<fo:block text-align="justify">
|
||||||
<fo:float float="right">
|
<fo:float float="right">
|
||||||
<fo:block >
|
<fo:block>
|
||||||
<xsl:value-of select="/validation/@datetime" />
|
<xsl:value-of select="/validation/@datetime"/>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
</fo:float>
|
</fo:float>
|
||||||
Zeitpunkt der Prüfung:
|
<xsl:text>Zeitpunkt der Prüfung:</xsl:text>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
<fo:block>
|
<fo:block>
|
||||||
<fo:block text-align="justify">
|
<fo:block text-align="justify">
|
||||||
<fo:float float="right">
|
<fo:float float="right">
|
||||||
<fo:block >
|
<fo:block>
|
||||||
<xsl:value-of select="/validation/xml/info/profile" />
|
<xsl:value-of select="/validation/xml/info/profile"/>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
</fo:float>
|
</fo:float>
|
||||||
Erkannter Dokumenttyp:
|
<xsl:text>Erkannter Dokumenttyp:</xsl:text>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
|
<xsl:apply-templates select="/validation/pdf"/>
|
||||||
<xsl:apply-templates select="/validation/pdf" />
|
<!--
|
||||||
|
<xsl:call-template name="SubHeader">
|
||||||
<!--<xsl:call-template name="SubHeader" >
|
<xsl:with-param name="text"
|
||||||
<xsl:with-param name="text" select='"Konformitätsprüfung:"' />
|
select='"Konformitätsprüfung:"'/>
|
||||||
<xsl:with-param name="color" select='"black"' />
|
<xsl:with-param name="color"
|
||||||
</xsl:call-template>-->
|
select='"black"'/>
|
||||||
|
</xsl:call-template>
|
||||||
<xsl:call-template name="SubHeader" >
|
-->
|
||||||
<xsl:with-param name="text" select="concat('Bewertung: ', $result_text)" />
|
<xsl:call-template name="SubHeader">
|
||||||
<xsl:with-param name="color" select="$xml_result_color" />
|
<xsl:with-param name="text"
|
||||||
|
select="concat('Bewertung: ', $result_text)"/>
|
||||||
|
<xsl:with-param name="color"
|
||||||
|
select="$xml_result_color"/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
|
|
||||||
<fo:block>Validierungsergebnisse im Detail:</fo:block>
|
<fo:block>Validierungsergebnisse im Detail:</fo:block>
|
||||||
|
|
||||||
<fo:table>
|
<fo:table>
|
||||||
<fo:table-column border-style="solid" />
|
<fo:table-column border-style="solid"/>
|
||||||
<fo:table-column border-style="solid" />
|
<fo:table-column border-style="solid"/>
|
||||||
<fo:table-column border-style="solid" />
|
<fo:table-column border-style="solid"/>
|
||||||
<fo:table-column column-width="70%" border-style="solid" />
|
<fo:table-column column-width="70%"
|
||||||
|
border-style="solid"/>
|
||||||
<fo:table-header>
|
<fo:table-header>
|
||||||
<fo:table-row background-color="#E0E0E0" font-weight="bold">
|
<fo:table-row background-color="#E0E0E0"
|
||||||
|
font-weight="bold">
|
||||||
<fo:table-cell>
|
<fo:table-cell>
|
||||||
<fo:block>Type</fo:block>
|
<fo:block>Type</fo:block>
|
||||||
</fo:table-cell>
|
</fo:table-cell>
|
||||||
@@ -145,38 +145,50 @@
|
|||||||
</fo:table-row>
|
</fo:table-row>
|
||||||
</fo:table-header>
|
</fo:table-header>
|
||||||
<fo:table-body>
|
<fo:table-body>
|
||||||
<xsl:apply-templates select="/validation/xml/messages" />
|
<xsl:choose>
|
||||||
|
<xsl:when test="/validation/xml/messages">
|
||||||
|
<xsl:apply-templates select="/validation/xml/messages"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<fo:table-row font-size="12px"
|
||||||
|
border-style="solid">
|
||||||
|
<fo:table-cell number-columns-spanned="4">
|
||||||
|
<fo:block text-align="center">Es gibt weder Hinweise noch Fehler.</fo:block>
|
||||||
|
</fo:table-cell>
|
||||||
|
</fo:table-row>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
</fo:table-body>
|
</fo:table-body>
|
||||||
</fo:table>
|
</fo:table>
|
||||||
|
|
||||||
</fo:flow>
|
</fo:flow>
|
||||||
</fo:page-sequence>
|
</fo:page-sequence>
|
||||||
</fo:root>
|
</fo:root>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="notice|error">
|
<xsl:template match="notice|error">
|
||||||
<fo:table-row font-size="12px" border-style="solid">
|
<fo:table-row font-size="12px"
|
||||||
|
border-style="solid">
|
||||||
<fo:table-cell number-rows-spanned="2">
|
<fo:table-cell number-rows-spanned="2">
|
||||||
<fo:block>
|
<fo:block>
|
||||||
<xsl:value-of select="@type" />
|
<xsl:value-of select="@type"/>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
</fo:table-cell>
|
</fo:table-cell>
|
||||||
<fo:table-cell number-rows-spanned="2">
|
<fo:table-cell number-rows-spanned="2">
|
||||||
<fo:block>
|
<fo:block>
|
||||||
<xsl:call-template name="SUBID" >
|
<xsl:call-template name="SUBID">
|
||||||
<xsl:with-param name="myparam" select="substring-after(.,' [ID ')" />
|
<xsl:with-param name="myparam"
|
||||||
|
select="substring-after(.,' [ID ')"/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
</fo:table-cell>
|
</fo:table-cell>
|
||||||
<fo:table-cell number-rows-spanned="2">
|
<fo:table-cell number-rows-spanned="2">
|
||||||
<fo:block >
|
<fo:block>
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="name() = 'error'">
|
<xsl:when test="name() = 'error'">
|
||||||
<xsl:attribute name="color">red</xsl:attribute>
|
<xsl:attribute name="color">red</xsl:attribute>
|
||||||
Fehler
|
<xsl:text>Fehler</xsl:text>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:otherwise>
|
<xsl:otherwise>
|
||||||
Hinweis
|
<xsl:text>Hinweis</xsl:text>
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
@@ -186,42 +198,46 @@
|
|||||||
<xsl:if test="name() = 'error'">
|
<xsl:if test="name() = 'error'">
|
||||||
<xsl:attribute name="color">red</xsl:attribute>
|
<xsl:attribute name="color">red</xsl:attribute>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:value-of select="substring-before(.,' [ID')" />
|
<xsl:value-of select="substring-before(.,' [ID')"/>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
</fo:table-cell>
|
</fo:table-cell>
|
||||||
</fo:table-row>
|
</fo:table-row>
|
||||||
<fo:table-row font-size="12px" border-style="solid">
|
<fo:table-row font-size="10px"
|
||||||
|
border-style="solid">
|
||||||
<fo:table-cell>
|
<fo:table-cell>
|
||||||
<fo:block>
|
<fo:block>
|
||||||
<xsl:if test="name() = 'error'">
|
<xsl:if test="name() = 'error'">
|
||||||
<xsl:attribute name="color">red</xsl:attribute>
|
<xsl:attribute name="color">red</xsl:attribute>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
Pfad:
|
<xsl:value-of select="concat('Pfad: ', @location)"/>
|
||||||
<xsl:value-of select="@location" />
|
|
||||||
</fo:block>
|
</fo:block>
|
||||||
</fo:table-cell>
|
</fo:table-cell>
|
||||||
</fo:table-row>
|
</fo:table-row>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="pdf">
|
<xsl:template match="pdf">
|
||||||
<xsl:call-template name="SubHeader" >
|
<xsl:call-template name="SubHeader">
|
||||||
<xsl:with-param name="text" select="concat('ZUGFeRD-PDF: ', $pdf_result_text)" />
|
<xsl:with-param name="text"
|
||||||
<xsl:with-param name="color" select='"black"' />
|
select="concat('ZUGFeRD-PDF: ', $pdf_result_text)"/>
|
||||||
|
<xsl:with-param name="color"
|
||||||
|
select=""black""/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template name="SubHeader">
|
<xsl:template name="SubHeader">
|
||||||
<xsl:param name="text" />
|
<xsl:param name="text"/>
|
||||||
<xsl:param name="color" />
|
<xsl:param name="color"/>
|
||||||
<fo:block color="{$color}" background-color="#E0E0E0" margin-bottom="10px" padding="3px" font-weight="bold" margin-top="10px">
|
<fo:block color="{$color}"
|
||||||
<xsl:value-of select="$text" />
|
background-color="#E0E0E0"
|
||||||
|
margin-bottom="10px"
|
||||||
|
padding="3px"
|
||||||
|
font-weight="bold"
|
||||||
|
margin-top="10px">
|
||||||
|
<xsl:value-of select="$text"/>
|
||||||
</fo:block>
|
</fo:block>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template name="SUBID">
|
<xsl:template name="SUBID">
|
||||||
<xsl:param name="myparam" />
|
<xsl:param name="myparam"/>
|
||||||
<xsl:variable name="myparam.end" select="substring-before($myparam, ']')"/>
|
<xsl:variable name="myparam.end"
|
||||||
|
select="substring-before($myparam, ']')"/>
|
||||||
<xsl:value-of select="$myparam.end"/>
|
<xsl:value-of select="$myparam.end"/>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
</xsl:stylesheet>
|
</xsl:stylesheet>
|
||||||
|
|||||||
@@ -1,227 +1,229 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
|
||||||
|
|
||||||
<xsl:variable name="i18n.bt10" select="'Leitweg-ID'"/>
|
<xsl:variable name="i18n.bt10" select="'Leitweg-ID'"/>
|
||||||
<xsl:variable name="i18n.bt44" select="'Name'"/>
|
<xsl:variable name="i18n.bt44" select="'Name'"/>
|
||||||
<xsl:variable name="i18n.title" select="'XRechnung'"/>
|
<xsl:variable name="i18n.title" select="'XRechnung'"/>
|
||||||
<xsl:variable name="i18n.overview" select="'Übersicht'"/>
|
<xsl:variable name="i18n.overview" select="'Übersicht'"/>
|
||||||
<xsl:variable name="i18n.items" select="'Positionen'"/>
|
<xsl:variable name="i18n.items" select="'Positionen'"/>
|
||||||
<xsl:variable name="i18n.information" select="'Informationen'"/>
|
<xsl:variable name="i18n.information" select="'Informationen'"/>
|
||||||
<xsl:variable name="i18n.attachments" select="'Anhänge'"/>
|
<xsl:variable name="i18n.attachments" select="'Anhänge'"/>
|
||||||
<xsl:variable name="i18n.history" select="'Bearbeitungshistorie'"/>
|
<xsl:variable name="i18n.history" select="'Bearbeitungshistorie'"/>
|
||||||
<xsl:variable name="i18n.disclaimer" select="'Wir übernehmen keine Haftung für die Richtigkeit der Daten.'"/>
|
<xsl:variable name="i18n.disclaimer" select="'Wir übernehmen keine Haftung für die Richtigkeit der Daten.'"/>
|
||||||
<xsl:variable name="i18n.recipientInfo" select="'Informationen zum Käufer'"/>
|
<xsl:variable name="i18n.recipientInfo" select="'Informationen zum Käufer'"/>
|
||||||
<xsl:variable name="i18n.bt50" select="'Straße / Haus-Nr.'"/>
|
<xsl:variable name="i18n.dateOf" select="' vom '"/>
|
||||||
<xsl:variable name="i18n.bt51" select="'Postfach'"/>
|
<xsl:variable name="i18n.bt50" select="'Straße / Haus-Nr.'"/>
|
||||||
<xsl:variable name="i18n.bt163" select="'Adresszusatz'"/>
|
<xsl:variable name="i18n.bt51" select="'Postfach'"/>
|
||||||
<xsl:variable name="i18n.bt53" select="'PLZ'"/>
|
<xsl:variable name="i18n.bt163" select="'Adresszusatz'"/>
|
||||||
<xsl:variable name="i18n.bt52" select="'Ort'"/>
|
<xsl:variable name="i18n.bt53" select="'PLZ'"/>
|
||||||
<xsl:variable name="i18n.bt54" select="'Bundesland'"/>
|
<xsl:variable name="i18n.bt52" select="'Ort'"/>
|
||||||
<xsl:variable name="i18n.bt55" select="'Land'"/>
|
<xsl:variable name="i18n.bt54" select="'Bundesland'"/>
|
||||||
<xsl:variable name="i18n.bt46" select="'Kennung / Kunden-Nr.'"/>
|
<xsl:variable name="i18n.bt55" select="'Land'"/>
|
||||||
<xsl:variable name="i18n.bt46-id" select="'Schema der Kennung'"/>
|
<xsl:variable name="i18n.bt46" select="'Kennung / Kunden-Nr.'"/>
|
||||||
<xsl:variable name="i18n.bt56" select="'Name'"/>
|
<xsl:variable name="i18n.bt46-id" select="'Schema der Kennung'"/>
|
||||||
<xsl:variable name="i18n.bt57" select="'Telefon'"/>
|
<xsl:variable name="i18n.bt56" select="'Name'"/>
|
||||||
<xsl:variable name="i18n.bt58" select="'E-Mail-Adresse'"/>
|
<xsl:variable name="i18n.bt57" select="'Telefon'"/>
|
||||||
<xsl:variable name="i18n.bt27" select="'Firmenname'"/>
|
<xsl:variable name="i18n.bt58" select="'E-Mail-Adresse'"/>
|
||||||
<xsl:variable name="i18n.bt35" select="'Straße / Haus-Nr.'"/>
|
<xsl:variable name="i18n.bt27" select="'Firmenname'"/>
|
||||||
<xsl:variable name="i18n.bt36" select="'Postfach'"/>
|
<xsl:variable name="i18n.bt35" select="'Straße / Haus-Nr.'"/>
|
||||||
<xsl:variable name="i18n.bt162" select="'Adresszusatz'"/>
|
<xsl:variable name="i18n.bt36" select="'Postfach'"/>
|
||||||
<xsl:variable name="i18n.bt38" select="'PLZ'"/>
|
<xsl:variable name="i18n.bt162" select="'Adresszusatz'"/>
|
||||||
<xsl:variable name="i18n.bt37" select="'Ort'"/>
|
<xsl:variable name="i18n.bt38" select="'PLZ'"/>
|
||||||
<xsl:variable name="i18n.bt39" select="'Bundesland'"/>
|
<xsl:variable name="i18n.bt37" select="'Ort'"/>
|
||||||
<xsl:variable name="i18n.bt40" select="'Ländercode'"/>
|
<xsl:variable name="i18n.bt39" select="'Bundesland'"/>
|
||||||
<xsl:variable name="i18n.bt29" select="'Kennung'"/>
|
<xsl:variable name="i18n.bt40" select="'Ländercode'"/>
|
||||||
<xsl:variable name="i18n.bt29-id" select="'Schema der Kennung'"/>
|
<xsl:variable name="i18n.bt29" select="'Kennung'"/>
|
||||||
<xsl:variable name="i18n.bt41" select="'Name'"/>
|
<xsl:variable name="i18n.bt29-id" select="'Schema der Kennung'"/>
|
||||||
<xsl:variable name="i18n.bt42" select="'Telefon'"/>
|
<xsl:variable name="i18n.bt41" select="'Name'"/>
|
||||||
<xsl:variable name="i18n.bt43" select="'E-Mail-Adresse'"/>
|
<xsl:variable name="i18n.bt42" select="'Telefon'"/>
|
||||||
<xsl:variable name="i18n.bt1" select="'Rechnungsnummer'"/>
|
<xsl:variable name="i18n.bt43" select="'E-Mail-Adresse'"/>
|
||||||
<xsl:variable name="i18n.bt2" select="'Rechnungsdatum'"/>
|
<xsl:variable name="i18n.bt1" select="'Rechnungsnummer'"/>
|
||||||
<xsl:variable name="i18n.details" select="'Rechnungsdaten'"/>
|
<xsl:variable name="i18n.bt2" select="'Rechnungsdatum'"/>
|
||||||
<xsl:variable name="i18n.period" select="'Abrechnungszeitraum'"/>
|
<xsl:variable name="i18n.details" select="'Rechnungsdaten'"/>
|
||||||
<xsl:variable name="i18n.bt3" select="'Rechnungsart'"/>
|
<xsl:variable name="i18n.period" select="'Abrechnungszeitraum'"/>
|
||||||
<xsl:variable name="i18n.bt5" select="'Währung'"/>
|
<xsl:variable name="i18n.bt3" select="'Rechnungsart'"/>
|
||||||
<xsl:variable name="i18n.bt73" select="'von'"/>
|
<xsl:variable name="i18n.bt5" select="'Währung'"/>
|
||||||
<xsl:variable name="i18n.bt74" select="'bis'"/>
|
<xsl:variable name="i18n.bt73" select="'von'"/>
|
||||||
<xsl:variable name="i18n.bt11" select="'Projektnummer'"/>
|
<xsl:variable name="i18n.bt74" select="'bis'"/>
|
||||||
<xsl:variable name="i18n.bt12" select="'Vertragsnummer'"/>
|
<xsl:variable name="i18n.bt11" select="'Projektnummer'"/>
|
||||||
<xsl:variable name="i18n.bt13" select="'Bestellnummer'"/>
|
<xsl:variable name="i18n.bt12" select="'Vertragsnummer'"/>
|
||||||
<xsl:variable name="i18n.bt14" select="'Auftragsnummer'"/>
|
<xsl:variable name="i18n.bt13" select="'Bestellnummer'"/>
|
||||||
<xsl:variable name="i18n.bt25" select="'Rechnungsnummer'"/>
|
<xsl:variable name="i18n.bt14" select="'Auftragsnummer'"/>
|
||||||
<xsl:variable name="i18n.bt26" select="'Rechnungsdatum'"/>
|
<xsl:variable name="i18n.bt25" select="'Rechnungsnummer'"/>
|
||||||
<xsl:variable name="i18n.bg22" select="'Gesamtbeträge der Rechnung'"/>
|
<xsl:variable name="i18n.bt26" select="'Rechnungsdatum'"/>
|
||||||
<xsl:variable name="i18n.bt106" select="'Summe aller Positionen'"/>
|
<xsl:variable name="i18n.bg22" select="'Gesamtbeträge der Rechnung'"/>
|
||||||
<xsl:variable name="i18n.bt107" select="'Summe Nachlässe'"/>
|
<xsl:variable name="i18n.bt106" select="'Summe aller Positionen'"/>
|
||||||
<xsl:variable name="i18n.bt108" select="'Summe Zuschläge'"/>
|
<xsl:variable name="i18n.bt107" select="'Summe Nachlässe'"/>
|
||||||
<xsl:variable name="i18n.bt109" select="'Gesamtsumme'"/>
|
<xsl:variable name="i18n.bt108" select="'Summe Zuschläge'"/>
|
||||||
<xsl:variable name="i18n.bt110" select="'Summe Umsatzsteuer'"/>
|
<xsl:variable name="i18n.bt109" select="'Gesamtsumme'"/>
|
||||||
<xsl:variable name="i18n.bt111" select="'Summe Umsatzsteuer in Abrechnungswährung'"/>
|
<xsl:variable name="i18n.bt110" select="'Summe Umsatzsteuer'"/>
|
||||||
<xsl:variable name="i18n.bt112" select="'Gesamtsumme'"/>
|
<xsl:variable name="i18n.bt111" select="'Summe Umsatzsteuer in Abrechnungswährung'"/>
|
||||||
<xsl:variable name="i18n.bt113" select="'Gezahlter Betrag'"/>
|
<xsl:variable name="i18n.bt112" select="'Gesamtsumme'"/>
|
||||||
<xsl:variable name="i18n.bt114" select="'Rundungsbetrag'"/>
|
<xsl:variable name="i18n.bt113" select="'Gezahlter Betrag'"/>
|
||||||
<xsl:variable name="i18n.bt115" select="'Fälliger Betrag'"/>
|
<xsl:variable name="i18n.bt114" select="'Rundungsbetrag'"/>
|
||||||
<xsl:variable name="i18n.bg23" select="'Aufschlüsselung der Umsatzsteuer auf Ebene der Rechnung'"/>
|
<xsl:variable name="i18n.bt115" select="'Fälliger Betrag'"/>
|
||||||
<xsl:variable name="i18n.bt118" select="'Umsatzsteuerkategorie'"/>
|
<xsl:variable name="i18n.bg23" select="'Aufschlüsselung der Umsatzsteuer auf Ebene der Rechnung'"/>
|
||||||
<xsl:variable name="i18n.bt116" select="'Gesamtsumme'"/>
|
<xsl:variable name="i18n.bt118" select="'Umsatzsteuerkategorie'"/>
|
||||||
<xsl:variable name="i18n.bt119" select="'Umsatzsteuersatz'"/>
|
<xsl:variable name="i18n.bt116" select="'Gesamtsumme'"/>
|
||||||
<xsl:variable name="i18n.bt117" select="'Umsatzsteuerbetrag'"/>
|
<xsl:variable name="i18n.bt119" select="'Umsatzsteuersatz'"/>
|
||||||
<xsl:variable name="i18n.bt120" select="'Befreiungsgrund'"/>
|
<xsl:variable name="i18n.bt117" select="'Umsatzsteuerbetrag'"/>
|
||||||
<xsl:variable name="i18n.bt121" select="'Kennung für den Befreiungsgrund'"/>
|
<xsl:variable name="i18n.bt120" select="'Befreiungsgrund'"/>
|
||||||
<xsl:variable name="i18n.bg20" select="'Nachlass auf Ebene der Rechnung'"/>
|
<xsl:variable name="i18n.bt121" select="'Kennung für den Befreiungsgrund'"/>
|
||||||
<xsl:variable name="i18n.bt95" select="'Umsatzsteuerkategorie des Nachlasses'"/>
|
<xsl:variable name="i18n.bg20" select="'Nachlass auf Ebene der Rechnung'"/>
|
||||||
<xsl:variable name="i18n.bt93" select="'Grundbetrag'"/>
|
<xsl:variable name="i18n.bt95" select="'Umsatzsteuerkategorie des Nachlasses'"/>
|
||||||
<xsl:variable name="i18n.bt94" select="'Prozentsatz'"/>
|
<xsl:variable name="i18n.bt93" select="'Grundbetrag'"/>
|
||||||
<xsl:variable name="i18n.bt92" select="'Nachlass'"/>
|
<xsl:variable name="i18n.bt94" select="'Prozentsatz'"/>
|
||||||
<xsl:variable name="i18n.bt96" select="'Umsatzsteuersatz des Nachlasses'"/>
|
<xsl:variable name="i18n.bt92" select="'Nachlass'"/>
|
||||||
<xsl:variable name="i18n.bt97" select="'Grund für den Nachlass'"/>
|
<xsl:variable name="i18n.bt96" select="'Umsatzsteuersatz des Nachlasses'"/>
|
||||||
<xsl:variable name="i18n.bt98" select="'Document level allowance reason code'"/>
|
<xsl:variable name="i18n.bt97" select="'Grund für den Nachlass'"/>
|
||||||
<xsl:variable name="i18n.bg21" select="'Zuschlag auf Ebene der Rechnung'"/>
|
<xsl:variable name="i18n.bt98" select="'Document level allowance reason code'"/>
|
||||||
<xsl:variable name="i18n.bt102" select="'Umsatzsteuerkategorie des Zuschlages'"/>
|
<xsl:variable name="i18n.bg21" select="'Zuschlag auf Ebene der Rechnung'"/>
|
||||||
<xsl:variable name="i18n.bt100" select="'Grundbetrag'"/>
|
<xsl:variable name="i18n.bt102" select="'Umsatzsteuerkategorie des Zuschlages'"/>
|
||||||
<xsl:variable name="i18n.bt101" select="'Prozentsatz'"/>
|
<xsl:variable name="i18n.bt100" select="'Grundbetrag'"/>
|
||||||
<xsl:variable name="i18n.bt99" select="'Zuschlag'"/>
|
<xsl:variable name="i18n.bt101" select="'Prozentsatz'"/>
|
||||||
<xsl:variable name="i18n.bt103" select="'Umsatzsteuersatz des Zuschlages'"/>
|
<xsl:variable name="i18n.bt99" select="'Zuschlag'"/>
|
||||||
<xsl:variable name="i18n.bt104" select="'Grund für den Zuschlag'"/>
|
<xsl:variable name="i18n.bt103" select="'Umsatzsteuersatz des Zuschlages'"/>
|
||||||
<xsl:variable name="i18n.bt105" select="'Document level charge reason code'"/>
|
<xsl:variable name="i18n.bt104" select="'Grund für den Zuschlag'"/>
|
||||||
<xsl:variable name="i18n.bgx42" select="'Versandkosten'"/>
|
<xsl:variable name="i18n.bt105" select="'Document level charge reason code'"/>
|
||||||
<xsl:variable name="i18n.btx274" select="'Umsatzsteuerkategorie der Versandkosten'"/>
|
<xsl:variable name="i18n.bgx42" select="'Versandkosten'"/>
|
||||||
<xsl:variable name="i18n.btx272" select="'Betrag'"/>
|
<xsl:variable name="i18n.btx274" select="'Umsatzsteuerkategorie der Versandkosten'"/>
|
||||||
<xsl:variable name="i18n.btx273" select="'Umsatzsteuersatz der Versandkosten'"/>
|
<xsl:variable name="i18n.btx272" select="'Betrag'"/>
|
||||||
<xsl:variable name="i18n.btx271" select="'Versandkostenbeschreibung'"/>
|
<xsl:variable name="i18n.btx273" select="'Umsatzsteuersatz der Versandkosten'"/>
|
||||||
<xsl:variable name="i18n.bt20" select="'Skonto; weitere Zahlungsbed.'"/>
|
<xsl:variable name="i18n.btx271" select="'Versandkostenbeschreibung'"/>
|
||||||
<xsl:variable name="i18n.bt9" select="'Fälligkeitsdatum'"/>
|
<xsl:variable name="i18n.bt20" select="'Skonto; weitere Zahlungsbed.'"/>
|
||||||
<xsl:variable name="i18n.bt81" select="'Code für das Zahlungsmittel'"/>
|
<xsl:variable name="i18n.bt9" select="'Fälligkeitsdatum'"/>
|
||||||
<xsl:variable name="i18n.bt82" select="'Zahlungsmittel'"/>
|
<xsl:variable name="i18n.bt81" select="'Code für das Zahlungsmittel'"/>
|
||||||
<xsl:variable name="i18n.bt83" select="'Verwendungszweck'"/>
|
<xsl:variable name="i18n.bt82" select="'Zahlungsmittel'"/>
|
||||||
<xsl:variable name="i18n.bg18" select="'Karteninformation'"/>
|
<xsl:variable name="i18n.bt83" select="'Verwendungszweck'"/>
|
||||||
<xsl:variable name="i18n.bt87" select="'Kartennummer'"/>
|
<xsl:variable name="i18n.bg18" select="'Karteninformation'"/>
|
||||||
<xsl:variable name="i18n.bt88" select="'Karteninhaber'"/>
|
<xsl:variable name="i18n.bt87" select="'Kartennummer'"/>
|
||||||
<xsl:variable name="i18n.bg19" select="'Lastschrift'"/>
|
<xsl:variable name="i18n.bt88" select="'Karteninhaber'"/>
|
||||||
<xsl:variable name="i18n.bt89" select="'Mandatsreferenznr.'"/>
|
<xsl:variable name="i18n.bg19" select="'Lastschrift'"/>
|
||||||
<xsl:variable name="i18n.bt91" select="'IBAN'"/>
|
<xsl:variable name="i18n.bt89" select="'Mandatsreferenznr.'"/>
|
||||||
<xsl:variable name="i18n.bt90" select="'Gläubiger-ID'"/>
|
<xsl:variable name="i18n.bt91" select="'IBAN'"/>
|
||||||
<xsl:variable name="i18n.bg17" select="'Überweisung'"/>
|
<xsl:variable name="i18n.bt90" select="'Gläubiger-ID'"/>
|
||||||
<xsl:variable name="i18n.bt85" select="'Kontoinhaber'"/>
|
<xsl:variable name="i18n.bg17" select="'Überweisung'"/>
|
||||||
<xsl:variable name="i18n.bt84" select="'IBAN'"/>
|
<xsl:variable name="i18n.bt85" select="'Kontoinhaber'"/>
|
||||||
<xsl:variable name="i18n.bt86" select="'BIC'"/>
|
<xsl:variable name="i18n.bt84" select="'IBAN'"/>
|
||||||
<xsl:variable name="i18n.bg1" select="'Bemerkung zur Rechnung'"/>
|
<xsl:variable name="i18n.bt86" select="'BIC'"/>
|
||||||
<xsl:variable name="i18n.bt21" select="'Betreff'"/>
|
<xsl:variable name="i18n.bg1" select="'Bemerkung zur Rechnung'"/>
|
||||||
<xsl:variable name="i18n.bt22" select="'Bemerkung'"/>
|
<xsl:variable name="i18n.bt21" select="'Betreff'"/>
|
||||||
<xsl:variable name="i18n.bt126" select="'Position'"/>
|
<xsl:variable name="i18n.bt22" select="'Bemerkung'"/>
|
||||||
<xsl:variable name="i18n.bt127" select="'Freitext'"/>
|
<xsl:variable name="i18n.bt126" select="'Position'"/>
|
||||||
<xsl:variable name="i18n.bt128" select="'Objektkennung'"/>
|
<xsl:variable name="i18n.bt127" select="'Freitext'"/>
|
||||||
<xsl:variable name="i18n.bt128-id" select="'Schema der Objektkennung'"/>
|
<xsl:variable name="i18n.bt128" select="'Objektkennung'"/>
|
||||||
<xsl:variable name="i18n.bt132" select="'Nummer der Auftragsposition'"/>
|
<xsl:variable name="i18n.bt128-id" select="'Schema der Objektkennung'"/>
|
||||||
<xsl:variable name="i18n.bt133" select="'Kontierungshinweis /Kostenstelle'"/>
|
<xsl:variable name="i18n.bt132" select="'Nummer der Auftragsposition'"/>
|
||||||
<xsl:variable name="i18n.bg26" select="'Abrechnungszeitraum'"/>
|
<xsl:variable name="i18n.bt133" select="'Kontierungshinweis /Kostenstelle'"/>
|
||||||
<xsl:variable name="i18n.bt134" select="'von'"/>
|
<xsl:variable name="i18n.bg26" select="'Abrechnungszeitraum'"/>
|
||||||
<xsl:variable name="i18n.bt135" select="'bis'"/>
|
<xsl:variable name="i18n.bt134" select="'von'"/>
|
||||||
<xsl:variable name="i18n.bg29" select="'Preiseinzelheiten'"/>
|
<xsl:variable name="i18n.bt135" select="'bis'"/>
|
||||||
<xsl:variable name="i18n.bt129" select="'Menge'"/>
|
<xsl:variable name="i18n.bg29" select="'Preiseinzelheiten'"/>
|
||||||
<xsl:variable name="i18n.bt130" select="'Einheit'"/>
|
<xsl:variable name="i18n.bt129" select="'Menge'"/>
|
||||||
<xsl:variable name="i18n.bt146" select="'Preis pro Einheit (netto)'"/>
|
<xsl:variable name="i18n.bt130" select="'Einheit'"/>
|
||||||
<xsl:variable name="i18n.bt131" select="'Gesamtpreis (netto)'"/>
|
<xsl:variable name="i18n.bt146" select="'Preis pro Einheit (netto)'"/>
|
||||||
<xsl:variable name="i18n.bt147" select="'Rabatt (netto)'"/>
|
<xsl:variable name="i18n.bt131" select="'Gesamtpreis (netto)'"/>
|
||||||
<xsl:variable name="i18n.bt148" select="'Listenpreis (netto)'"/>
|
<xsl:variable name="i18n.bt147" select="'Rabatt (netto)'"/>
|
||||||
<xsl:variable name="i18n.bt149" select="'Anzahl der Einheit'"/>
|
<xsl:variable name="i18n.bt148" select="'Listenpreis (netto)'"/>
|
||||||
<xsl:variable name="i18n.bt150" select="'Code der Maßeinheit'"/>
|
<xsl:variable name="i18n.bt149" select="'Anzahl der Einheit'"/>
|
||||||
<xsl:variable name="i18n.bt151" select="'Umsatzsteuer'"/>
|
<xsl:variable name="i18n.bt150" select="'Code der Maßeinheit'"/>
|
||||||
<xsl:variable name="i18n.bt152" select="'Umsatzsteuersatz in %'"/>
|
<xsl:variable name="i18n.bt151" select="'Umsatzsteuer'"/>
|
||||||
<xsl:variable name="i18n.bg27" select="'Nachlässe auf Ebene der Rechnungsposition'"/>
|
<xsl:variable name="i18n.bt152" select="'Umsatzsteuersatz in %'"/>
|
||||||
<xsl:variable name="i18n.bt137" select="'Grundbetrag (netto)'"/>
|
<xsl:variable name="i18n.bg27" select="'Nachlässe auf Ebene der Rechnungsposition'"/>
|
||||||
<xsl:variable name="i18n.bt138" select="'Prozentsatz'"/>
|
<xsl:variable name="i18n.bt137" select="'Grundbetrag (netto)'"/>
|
||||||
<xsl:variable name="i18n.bt136" select="'Nachlass'"/>
|
<xsl:variable name="i18n.bt138" select="'Prozentsatz'"/>
|
||||||
<xsl:variable name="i18n.bt139" select="'Grund des Nachlasses'"/>
|
<xsl:variable name="i18n.bt136" select="'Nachlass'"/>
|
||||||
<xsl:variable name="i18n.bt140" select="'Code für den Nachlassgrund'"/>
|
<xsl:variable name="i18n.bt139" select="'Grund des Nachlasses'"/>
|
||||||
<xsl:variable name="i18n.bg28" select="'Zuschläge auf Ebene der Rechnungsposition'"/>
|
<xsl:variable name="i18n.bt140" select="'Code für den Nachlassgrund'"/>
|
||||||
<xsl:variable name="i18n.bt142" select="'Grundbetrag (netto)'"/>
|
<xsl:variable name="i18n.bg28" select="'Zuschläge auf Ebene der Rechnungsposition'"/>
|
||||||
<xsl:variable name="i18n.bt143" select="'Prozentsatz'"/>
|
<xsl:variable name="i18n.bt142" select="'Grundbetrag (netto)'"/>
|
||||||
<xsl:variable name="i18n.bt141" select="'Zuschlag (netto)'"/>
|
<xsl:variable name="i18n.bt143" select="'Prozentsatz'"/>
|
||||||
<xsl:variable name="i18n.bt144" select="'Grund des Zuschlags'"/>
|
<xsl:variable name="i18n.bt141" select="'Zuschlag (netto)'"/>
|
||||||
<xsl:variable name="i18n.bt145" select="'Code für den Zuschlagsgrund'"/>
|
<xsl:variable name="i18n.bt144" select="'Grund des Zuschlags'"/>
|
||||||
<xsl:variable name="i18n.bg31" select="'Artikelinformationen'"/>
|
<xsl:variable name="i18n.bt145" select="'Code für den Zuschlagsgrund'"/>
|
||||||
<xsl:variable name="i18n.bt153" select="'Bezeichnung'"/>
|
<xsl:variable name="i18n.bg31" select="'Artikelinformationen'"/>
|
||||||
<xsl:variable name="i18n.bt154" select="'Beschreibung'"/>
|
<xsl:variable name="i18n.bt153" select="'Bezeichnung'"/>
|
||||||
<xsl:variable name="i18n.bt155" select="'Artikelnummer'"/>
|
<xsl:variable name="i18n.bt154" select="'Beschreibung'"/>
|
||||||
<xsl:variable name="i18n.bt156" select="'Kunden-Material-Nr.'"/>
|
<xsl:variable name="i18n.bt155" select="'Artikelnummer'"/>
|
||||||
<xsl:variable name="i18n.bg32" select="'Eigenschaften des Artikels'"/>
|
<xsl:variable name="i18n.bt156" select="'Kunden-Material-Nr.'"/>
|
||||||
<xsl:variable name="i18n.bt157" select="'Artikelkennung (EAN)'"/>
|
<xsl:variable name="i18n.bg32" select="'Eigenschaften des Artikels'"/>
|
||||||
<xsl:variable name="i18n.bt157-id" select="'Schema der Artikelkennung'"/>
|
<xsl:variable name="i18n.bt157" select="'Artikelkennung (EAN)'"/>
|
||||||
<xsl:variable name="i18n.bt158" select="'Code der Artikelklassifizierung'"/>
|
<xsl:variable name="i18n.bt157-id" select="'Schema der Artikelkennung'"/>
|
||||||
<xsl:variable name="i18n.bt158-id" select="'Kennung zur Bildung des Schemas'"/>
|
<xsl:variable name="i18n.bt158" select="'Code der Artikelklassifizierung'"/>
|
||||||
<xsl:variable name="i18n.bt157-vers-id" select="'Version zur Bildung des Schemas'"/>
|
<xsl:variable name="i18n.bt158-id" select="'Kennung zur Bildung des Schemas'"/>
|
||||||
<xsl:variable name="i18n.bt159" select="'Code des Herkunftslandes'"/>
|
<xsl:variable name="i18n.bt157-vers-id" select="'Version zur Bildung des Schemas'"/>
|
||||||
<xsl:variable name="i18n.bg4" select="'Informationen zum Verkäufer'"/>
|
<xsl:variable name="i18n.bt159" select="'Code des Herkunftslandes'"/>
|
||||||
<xsl:variable name="i18n.bt28" select="'Abweichender Handelsname'"/>
|
<xsl:variable name="i18n.bg4" select="'Informationen zum Verkäufer'"/>
|
||||||
<xsl:variable name="i18n.bt34" select="'Elektronische Adresse'"/>
|
<xsl:variable name="i18n.bt28" select="'Abweichender Handelsname'"/>
|
||||||
<xsl:variable name="i18n.bt34-id" select="'Schema der elektronischen Adresse'"/>
|
<xsl:variable name="i18n.bt34" select="'Elektronische Adresse'"/>
|
||||||
<xsl:variable name="i18n.bt30" select="'Register-/Registriernummer'"/>
|
<xsl:variable name="i18n.bt34-id" select="'Schema der elektronischen Adresse'"/>
|
||||||
<xsl:variable name="i18n.bt31" select="'Umsatzsteuer-ID'"/>
|
<xsl:variable name="i18n.bt30" select="'Register-/Registriernummer'"/>
|
||||||
<xsl:variable name="i18n.bt32" select="'Steuernummer'"/>
|
<xsl:variable name="i18n.bt31" select="'Umsatzsteuer-ID'"/>
|
||||||
<xsl:variable name="i18n.bt32-schema" select="'Schema der Steuernummer'"/>
|
<xsl:variable name="i18n.bt32" select="'Steuernummer'"/>
|
||||||
<xsl:variable name="i18n.bt33" select="'Weitere rechtliche Informationen'"/>
|
<xsl:variable name="i18n.bt32-schema" select="'Schema der Steuernummer'"/>
|
||||||
<xsl:variable name="i18n.bt6" select="'Code der Umsatzsteuerwährung'"/>
|
<xsl:variable name="i18n.bt33" select="'Weitere rechtliche Informationen'"/>
|
||||||
<xsl:variable name="i18n.bg11" select="'Steuervertreter des Verkäufers'"/>
|
<xsl:variable name="i18n.bt6" select="'Code der Umsatzsteuerwährung'"/>
|
||||||
<xsl:variable name="i18n.bt62" select="'Name'"/>
|
<xsl:variable name="i18n.bg11" select="'Steuervertreter des Verkäufers'"/>
|
||||||
<xsl:variable name="i18n.bt64" select="'Straße / Hausnummer'"/>
|
<xsl:variable name="i18n.bt62" select="'Name'"/>
|
||||||
<xsl:variable name="i18n.bt65" select="'Postfach'"/>
|
<xsl:variable name="i18n.bt64" select="'Straße / Hausnummer'"/>
|
||||||
<xsl:variable name="i18n.bt164" select="'Adresszusatz'"/>
|
<xsl:variable name="i18n.bt65" select="'Postfach'"/>
|
||||||
<xsl:variable name="i18n.bt67" select="'PLZ'"/>
|
<xsl:variable name="i18n.bt164" select="'Adresszusatz'"/>
|
||||||
<xsl:variable name="i18n.bt66" select="'Ort'"/>
|
<xsl:variable name="i18n.bt67" select="'PLZ'"/>
|
||||||
<xsl:variable name="i18n.bt68" select="'Bundesland'"/>
|
<xsl:variable name="i18n.bt66" select="'Ort'"/>
|
||||||
<xsl:variable name="i18n.bt69" select="'Ländercode'"/>
|
<xsl:variable name="i18n.bt68" select="'Bundesland'"/>
|
||||||
<xsl:variable name="i18n.bt63" select="'Umsatzsteuer-ID'"/>
|
<xsl:variable name="i18n.bt69" select="'Ländercode'"/>
|
||||||
<xsl:variable name="i18n.bg7" select="'Informationen zum Käufer'"/>
|
<xsl:variable name="i18n.bt63" select="'Umsatzsteuer-ID'"/>
|
||||||
<xsl:variable name="i18n.bt45" select="'Abweichender Handelsname'"/>
|
<xsl:variable name="i18n.bg7" select="'Informationen zum Käufer'"/>
|
||||||
<xsl:variable name="i18n.bt49" select="'Elektronische Adresse'"/>
|
<xsl:variable name="i18n.bt45" select="'Abweichender Handelsname'"/>
|
||||||
<xsl:variable name="i18n.bt49-id" select="'Schema der elektronischen Adresse'"/>
|
<xsl:variable name="i18n.bt49" select="'Elektronische Adresse'"/>
|
||||||
<xsl:variable name="i18n.bt47" select="'Register-/Registriernummer'"/>
|
<xsl:variable name="i18n.bt49-id" select="'Schema der elektronischen Adresse'"/>
|
||||||
<xsl:variable name="i18n.bt47-id" select="'Schema der Register-/Registriernummer'"/>
|
<xsl:variable name="i18n.bt47" select="'Register-/Registriernummer'"/>
|
||||||
<xsl:variable name="i18n.bt48" select="'Umsatzsteuer-ID'"/>
|
<xsl:variable name="i18n.bt47-id" select="'Schema der Register-/Registriernummer'"/>
|
||||||
<xsl:variable name="i18n.bt7" select="'Abrechnungsdatum der Umsatzsteuer'"/>
|
<xsl:variable name="i18n.bt48" select="'Umsatzsteuer-ID'"/>
|
||||||
<xsl:variable name="i18n.bt8" select="'Code des Umsatzsteuer-Abrechnungsdatums'"/>
|
<xsl:variable name="i18n.bt7" select="'Abrechnungsdatum der Umsatzsteuer'"/>
|
||||||
<xsl:variable name="i18n.bt19" select="'Kontierungsinformation / Kostenstelle'"/>
|
<xsl:variable name="i18n.bt8" select="'Code des Umsatzsteuer-Abrechnungsdatums'"/>
|
||||||
<xsl:variable name="i18n.bg13" select="'Lieferinformationen'"/>
|
<xsl:variable name="i18n.bt19" select="'Kontierungsinformation / Kostenstelle'"/>
|
||||||
<xsl:variable name="i18n.bt71" select="'Kennung des Lieferorts'"/>
|
<xsl:variable name="i18n.bg13" select="'Lieferinformationen'"/>
|
||||||
<xsl:variable name="i18n.bt71-id" select="'Schema der Kennung'"/>
|
<xsl:variable name="i18n.bt71" select="'Kennung des Lieferorts'"/>
|
||||||
<xsl:variable name="i18n.bt72" select="'Lieferdatum'"/>
|
<xsl:variable name="i18n.bt71-id" select="'Schema der Kennung'"/>
|
||||||
<xsl:variable name="i18n.bt70" select="'Name des Empfängers'"/>
|
<xsl:variable name="i18n.bt72" select="'Lieferdatum'"/>
|
||||||
<xsl:variable name="i18n.bt75" select="'Straße / Haus-Nr.'"/>
|
<xsl:variable name="i18n.bt70" select="'Name des Empfängers'"/>
|
||||||
<xsl:variable name="i18n.bt76" select="'Postfach'"/>
|
<xsl:variable name="i18n.bt75" select="'Straße / Haus-Nr.'"/>
|
||||||
<xsl:variable name="i18n.bt165" select="'Adresszusatz'"/>
|
<xsl:variable name="i18n.bt76" select="'Postfach'"/>
|
||||||
<xsl:variable name="i18n.bt78" select="'PLZ'"/>
|
<xsl:variable name="i18n.bt165" select="'Adresszusatz'"/>
|
||||||
<xsl:variable name="i18n.bt77" select="'Ort'"/>
|
<xsl:variable name="i18n.bt78" select="'PLZ'"/>
|
||||||
<xsl:variable name="i18n.bt79" select="'Bundesland'"/>
|
<xsl:variable name="i18n.bt77" select="'Ort'"/>
|
||||||
<xsl:variable name="i18n.bt80" select="'Land'"/>
|
<xsl:variable name="i18n.bt79" select="'Bundesland'"/>
|
||||||
<xsl:variable name="i18n.bt17" select="'Vergabenummer'"/>
|
<xsl:variable name="i18n.bt80" select="'Land'"/>
|
||||||
<xsl:variable name="i18n.bt15" select="'Kennung der Empfangsbestätigung'"/>
|
<xsl:variable name="i18n.bt17" select="'Vergabenummer'"/>
|
||||||
<xsl:variable name="i18n.bt16" select="'Kennung der Versandanzeige'"/>
|
<xsl:variable name="i18n.bt15" select="'Kennung der Empfangsbestätigung'"/>
|
||||||
<xsl:variable name="i18n.bt23" select="'Prozesskennung'"/>
|
<xsl:variable name="i18n.bt16" select="'Kennung der Versandanzeige'"/>
|
||||||
<xsl:variable name="i18n.bt24" select="'Spezifikationskennung'"/>
|
<xsl:variable name="i18n.btx202" select="'Kennung des Lieferscheins'"/>
|
||||||
<xsl:variable name="i18n.bt18" select="'Objektkennung'"/>
|
<xsl:variable name="i18n.bt23" select="'Prozesskennung'"/>
|
||||||
<xsl:variable name="i18n.bt18-id" select="'Schema der Objektkennung'"/>
|
<xsl:variable name="i18n.bt24" select="'Spezifikationskennung'"/>
|
||||||
<xsl:variable name="i18n.bg10" select="'Vom Verkäufer abweichender Zahlungsempfänger'"/>
|
<xsl:variable name="i18n.bt18" select="'Objektkennung'"/>
|
||||||
<xsl:variable name="i18n.bt59" select="'Name'"/>
|
<xsl:variable name="i18n.bt18-id" select="'Schema der Objektkennung'"/>
|
||||||
<xsl:variable name="i18n.bt60" select="'Kennung'"/>
|
<xsl:variable name="i18n.bg10" select="'Vom Verkäufer abweichender Zahlungsempfänger'"/>
|
||||||
<xsl:variable name="i18n.bt60-id" select="'Schema der Kennung'"/>
|
<xsl:variable name="i18n.bt59" select="'Name'"/>
|
||||||
<xsl:variable name="i18n.bt61" select="'Register-/Registriernummer'"/>
|
<xsl:variable name="i18n.bt60" select="'Kennung'"/>
|
||||||
<xsl:variable name="i18n.bt61-id" select="'Schema der Register-/Registriernummer'"/>
|
<xsl:variable name="i18n.bt60-id" select="'Schema der Kennung'"/>
|
||||||
<xsl:variable name="i18n.bg24" select="'Rechnungsbegründende Unterlagen'"/>
|
<xsl:variable name="i18n.bt61" select="'Register-/Registriernummer'"/>
|
||||||
<xsl:variable name="i18n.bt122" select="'Kennung'"/>
|
<xsl:variable name="i18n.bt61-id" select="'Schema der Register-/Registriernummer'"/>
|
||||||
<xsl:variable name="i18n.bt123" select="'Beschreibung'"/>
|
<xsl:variable name="i18n.bg24" select="'Rechnungsbegründende Unterlagen'"/>
|
||||||
<xsl:variable name="i18n.bt124" select="'Verweis (z.B. Internetadresse)'"/>
|
<xsl:variable name="i18n.bt122" select="'Kennung'"/>
|
||||||
<xsl:variable name="i18n.bt125" select="'Anhangsdokument'"/>
|
<xsl:variable name="i18n.bt123" select="'Beschreibung'"/>
|
||||||
<xsl:variable name="i18n.bt125-format" select="'Format des Anhangdokuments'"/>
|
<xsl:variable name="i18n.bt124" select="'Verweis (z.B. Internetadresse)'"/>
|
||||||
<xsl:variable name="i18n.bt125-name" select="'Name des Anhangsdokuments'"/>
|
<xsl:variable name="i18n.bt125" select="'Anhangsdokument'"/>
|
||||||
<xsl:variable name="i18n.historyDate" select="'Datum/Uhrzeit'"/>
|
<xsl:variable name="i18n.bt125-format" select="'Format des Anhangdokuments'"/>
|
||||||
<xsl:variable name="i18n.historySubject" select="'Betreff'"/>
|
<xsl:variable name="i18n.bt125-name" select="'Name des Anhangsdokuments'"/>
|
||||||
<xsl:variable name="i18n.historyText" select="'Text'"/>
|
<xsl:variable name="i18n.historyDate" select="'Datum/Uhrzeit'"/>
|
||||||
<xsl:variable name="i18n.historyDetails" select="'Details'"/>
|
<xsl:variable name="i18n.historySubject" select="'Betreff'"/>
|
||||||
<xsl:variable name="i18n.payment" select="'Zahlungsdaten'"/>
|
<xsl:variable name="i18n.historyText" select="'Text'"/>
|
||||||
<xsl:variable name="i18n.contract_information" select="'Vertragsdaten'"/>
|
<xsl:variable name="i18n.historyDetails" select="'Details'"/>
|
||||||
<xsl:variable name="i18n.preceding_invoice_reference" select="'Vorausgegangene Rechnungen'"/>
|
<xsl:variable name="i18n.payment" select="'Zahlungsdaten'"/>
|
||||||
|
<xsl:variable name="i18n.contract_information" select="'Vertragsdaten'"/>
|
||||||
<xsl:include href="xrechnung-html.univ.xsl"/>
|
<xsl:variable name="i18n.preceding_invoice_reference" select="'Vorausgegangene Rechnungen'"/>
|
||||||
|
|
||||||
</xsl:stylesheet>
|
<xsl:include href="xrechnung-html.univ.xsl"/>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
|
|||||||
@@ -1,227 +1,229 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
|
||||||
|
|
||||||
<xsl:variable name="i18n.bt10" select="'Routing ID'"/>
|
<xsl:variable name="i18n.bt10" select="'Routing ID'"/>
|
||||||
<xsl:variable name="i18n.bt44" select="'Name'"/>
|
<xsl:variable name="i18n.bt44" select="'Name'"/>
|
||||||
<xsl:variable name="i18n.title" select="'XRechnung'"/>
|
<xsl:variable name="i18n.title" select="'XRechnung'"/>
|
||||||
<xsl:variable name="i18n.overview" select="'Overview'"/>
|
<xsl:variable name="i18n.overview" select="'Overview'"/>
|
||||||
<xsl:variable name="i18n.items" select="'Items'"/>
|
<xsl:variable name="i18n.items" select="'Items'"/>
|
||||||
<xsl:variable name="i18n.information" select="'Information'"/>
|
<xsl:variable name="i18n.information" select="'Information'"/>
|
||||||
<xsl:variable name="i18n.attachments" select="'Attachments'"/>
|
<xsl:variable name="i18n.attachments" select="'Attachments'"/>
|
||||||
<xsl:variable name="i18n.history" select="'History'"/>
|
<xsl:variable name="i18n.history" select="'History'"/>
|
||||||
<xsl:variable name="i18n.disclaimer" select="'We accept no liability for the correctness of the data'"/>
|
<xsl:variable name="i18n.disclaimer" select="'We accept no liability for the correctness of the data'"/>
|
||||||
<xsl:variable name="i18n.recipientInfo" select="'Buyer Information'"/>
|
<xsl:variable name="i18n.recipientInfo" select="'Buyer Information'"/>
|
||||||
<xsl:variable name="i18n.bt50" select="'Street / house number'"/>
|
<xsl:variable name="i18n.dateOf" select="' from '"/>
|
||||||
<xsl:variable name="i18n.bt51" select="'PO Box'"/>
|
<xsl:variable name="i18n.bt50" select="'Street / house number'"/>
|
||||||
<xsl:variable name="i18n.bt163" select="'Address Addition'"/>
|
<xsl:variable name="i18n.bt51" select="'PO Box'"/>
|
||||||
<xsl:variable name="i18n.bt53" select="'Postcode'"/>
|
<xsl:variable name="i18n.bt163" select="'Address Addition'"/>
|
||||||
<xsl:variable name="i18n.bt52" select="'Place'"/>
|
<xsl:variable name="i18n.bt53" select="'Postcode'"/>
|
||||||
<xsl:variable name="i18n.bt54" select="'State/Province'"/>
|
<xsl:variable name="i18n.bt52" select="'Place'"/>
|
||||||
<xsl:variable name="i18n.bt55" select="'Country'"/>
|
<xsl:variable name="i18n.bt54" select="'State/Province'"/>
|
||||||
<xsl:variable name="i18n.bt46" select="'ID'"/>
|
<xsl:variable name="i18n.bt55" select="'Country'"/>
|
||||||
<xsl:variable name="i18n.bt46-id" select="'ID scheme'"/>
|
<xsl:variable name="i18n.bt46" select="'ID'"/>
|
||||||
<xsl:variable name="i18n.bt56" select="'Name'"/>
|
<xsl:variable name="i18n.bt46-id" select="'ID scheme'"/>
|
||||||
<xsl:variable name="i18n.bt57" select="'Phone'"/>
|
<xsl:variable name="i18n.bt56" select="'Name'"/>
|
||||||
<xsl:variable name="i18n.bt58" select="'E-mail address'"/>
|
<xsl:variable name="i18n.bt57" select="'Phone'"/>
|
||||||
<xsl:variable name="i18n.bt27" select="'Company name'"/>
|
<xsl:variable name="i18n.bt58" select="'E-mail address'"/>
|
||||||
<xsl:variable name="i18n.bt35" select="'Street / house number'"/>
|
<xsl:variable name="i18n.bt27" select="'Company name'"/>
|
||||||
<xsl:variable name="i18n.bt36" select="'PO Box'"/>
|
<xsl:variable name="i18n.bt35" select="'Street / house number'"/>
|
||||||
<xsl:variable name="i18n.bt162" select="'Address Addition'"/>
|
<xsl:variable name="i18n.bt36" select="'PO Box'"/>
|
||||||
<xsl:variable name="i18n.bt38" select="'Code postal'"/>
|
<xsl:variable name="i18n.bt162" select="'Address Addition'"/>
|
||||||
<xsl:variable name="i18n.bt37" select="'Place'"/>
|
<xsl:variable name="i18n.bt38" select="'Code postal'"/>
|
||||||
<xsl:variable name="i18n.bt39" select="'State/Province'"/>
|
<xsl:variable name="i18n.bt37" select="'Place'"/>
|
||||||
<xsl:variable name="i18n.bt40" select="'Country code'"/>
|
<xsl:variable name="i18n.bt39" select="'State/Province'"/>
|
||||||
<xsl:variable name="i18n.bt29" select="'ID'"/>
|
<xsl:variable name="i18n.bt40" select="'Country code'"/>
|
||||||
<xsl:variable name="i18n.bt29-id" select="'ID scheme'"/>
|
<xsl:variable name="i18n.bt29" select="'ID'"/>
|
||||||
<xsl:variable name="i18n.bt41" select="'Name'"/>
|
<xsl:variable name="i18n.bt29-id" select="'ID scheme'"/>
|
||||||
<xsl:variable name="i18n.bt42" select="'Phone'"/>
|
<xsl:variable name="i18n.bt41" select="'Name'"/>
|
||||||
<xsl:variable name="i18n.bt43" select="'E-mail address'"/>
|
<xsl:variable name="i18n.bt42" select="'Phone'"/>
|
||||||
<xsl:variable name="i18n.bt1" select="'Seller Information'"/>
|
<xsl:variable name="i18n.bt43" select="'E-mail address'"/>
|
||||||
<xsl:variable name="i18n.bt2" select="'Invoice date'"/>
|
<xsl:variable name="i18n.bt1" select="'Seller Information'"/>
|
||||||
<xsl:variable name="i18n.details" select="'Invoice details'"/>
|
<xsl:variable name="i18n.bt2" select="'Invoice date'"/>
|
||||||
<xsl:variable name="i18n.period" select="'Billing period'"/>
|
<xsl:variable name="i18n.details" select="'Invoice details'"/>
|
||||||
<xsl:variable name="i18n.bt3" select="'Invoice type'"/>
|
<xsl:variable name="i18n.period" select="'Billing period'"/>
|
||||||
<xsl:variable name="i18n.bt5" select="'Currency'"/>
|
<xsl:variable name="i18n.bt3" select="'Invoice type'"/>
|
||||||
<xsl:variable name="i18n.bt73" select="'from'"/>
|
<xsl:variable name="i18n.bt5" select="'Currency'"/>
|
||||||
<xsl:variable name="i18n.bt74" select="'to'"/>
|
<xsl:variable name="i18n.bt73" select="'from'"/>
|
||||||
<xsl:variable name="i18n.bt11" select="'Project number'"/>
|
<xsl:variable name="i18n.bt74" select="'to'"/>
|
||||||
<xsl:variable name="i18n.bt12" select="'Contract Number'"/>
|
<xsl:variable name="i18n.bt11" select="'Project number'"/>
|
||||||
<xsl:variable name="i18n.bt13" select="'Order number'"/>
|
<xsl:variable name="i18n.bt12" select="'Contract Number'"/>
|
||||||
<xsl:variable name="i18n.bt14" select="'Order number'"/>
|
<xsl:variable name="i18n.bt13" select="'Order number'"/>
|
||||||
<xsl:variable name="i18n.bt25" select="'Invoice number'"/>
|
<xsl:variable name="i18n.bt14" select="'Order number'"/>
|
||||||
<xsl:variable name="i18n.bt26" select="'Invoice date'"/>
|
<xsl:variable name="i18n.bt25" select="'Invoice number'"/>
|
||||||
<xsl:variable name="i18n.bg22" select="'Total amounts of the invoice'"/>
|
<xsl:variable name="i18n.bt26" select="'Invoice date'"/>
|
||||||
<xsl:variable name="i18n.bt106" select="'Line total'"/>
|
<xsl:variable name="i18n.bg22" select="'Total amounts of the invoice'"/>
|
||||||
<xsl:variable name="i18n.bt107" select="'Total discounts'"/>
|
<xsl:variable name="i18n.bt106" select="'Line total'"/>
|
||||||
<xsl:variable name="i18n.bt108" select="'Total charges'"/>
|
<xsl:variable name="i18n.bt107" select="'Total discounts'"/>
|
||||||
<xsl:variable name="i18n.bt109" select="'Grand total'"/>
|
<xsl:variable name="i18n.bt108" select="'Total charges'"/>
|
||||||
<xsl:variable name="i18n.bt110" select="'VAT amount'"/>
|
<xsl:variable name="i18n.bt109" select="'Grand total'"/>
|
||||||
<xsl:variable name="i18n.bt111" select="'Total VAT'"/>
|
<xsl:variable name="i18n.bt110" select="'VAT amount'"/>
|
||||||
<xsl:variable name="i18n.bt112" select="'Grand total'"/>
|
<xsl:variable name="i18n.bt111" select="'Total VAT'"/>
|
||||||
<xsl:variable name="i18n.bt113" select="'Amount paid'"/>
|
<xsl:variable name="i18n.bt112" select="'Grand total'"/>
|
||||||
<xsl:variable name="i18n.bt114" select="'rounding amount'"/>
|
<xsl:variable name="i18n.bt113" select="'Amount paid'"/>
|
||||||
<xsl:variable name="i18n.bt115" select="'Amount Due'"/>
|
<xsl:variable name="i18n.bt114" select="'rounding amount'"/>
|
||||||
<xsl:variable name="i18n.bg23" select="'Breakdown of VAT at invoice level'"/>
|
<xsl:variable name="i18n.bt115" select="'Amount Due'"/>
|
||||||
<xsl:variable name="i18n.bt118" select="'VAT category'"/>
|
<xsl:variable name="i18n.bg23" select="'Breakdown of VAT at invoice level'"/>
|
||||||
<xsl:variable name="i18n.bt116" select="'Grand total'"/>
|
<xsl:variable name="i18n.bt118" select="'VAT category'"/>
|
||||||
<xsl:variable name="i18n.bt119" select="'VAT rate'"/>
|
<xsl:variable name="i18n.bt116" select="'Grand total'"/>
|
||||||
<xsl:variable name="i18n.bt117" select="'VAT amount'"/>
|
<xsl:variable name="i18n.bt119" select="'VAT rate'"/>
|
||||||
<xsl:variable name="i18n.bt120" select="'Reason for exemption:'"/>
|
<xsl:variable name="i18n.bt117" select="'VAT amount'"/>
|
||||||
<xsl:variable name="i18n.bt121" select="'ID for the exemption reason:'"/>
|
<xsl:variable name="i18n.bt120" select="'Reason for exemption:'"/>
|
||||||
<xsl:variable name="i18n.bg20" select="'Allowance at invoice level'"/>
|
<xsl:variable name="i18n.bt121" select="'ID for the exemption reason:'"/>
|
||||||
<xsl:variable name="i18n.bt95" select="'VAT category of the discount:'"/>
|
<xsl:variable name="i18n.bg20" select="'Allowance at invoice level'"/>
|
||||||
<xsl:variable name="i18n.bt93" select="'Basic amount'"/>
|
<xsl:variable name="i18n.bt95" select="'VAT category of the discount:'"/>
|
||||||
<xsl:variable name="i18n.bt94" select="'Percentage'"/>
|
<xsl:variable name="i18n.bt93" select="'Basic amount'"/>
|
||||||
<xsl:variable name="i18n.bt92" select="'Allowance'"/>
|
<xsl:variable name="i18n.bt94" select="'Percentage'"/>
|
||||||
<xsl:variable name="i18n.bt96" select="'VAT rate on allowance'"/>
|
<xsl:variable name="i18n.bt92" select="'Allowance'"/>
|
||||||
<xsl:variable name="i18n.bt97" select="'Reason for the allowance'"/>
|
<xsl:variable name="i18n.bt96" select="'VAT rate on allowance'"/>
|
||||||
<xsl:variable name="i18n.bt98" select="'Document level allowance reason code'"/>
|
<xsl:variable name="i18n.bt97" select="'Reason for the allowance'"/>
|
||||||
<xsl:variable name="i18n.bg21" select="'Charge amount at invoice level'"/>
|
<xsl:variable name="i18n.bt98" select="'Document level allowance reason code'"/>
|
||||||
<xsl:variable name="i18n.bt102" select="'VAT category of the charge amount'"/>
|
<xsl:variable name="i18n.bg21" select="'Charge amount at invoice level'"/>
|
||||||
<xsl:variable name="i18n.bt100" select="'Basic amount'"/>
|
<xsl:variable name="i18n.bt102" select="'VAT category of the charge amount'"/>
|
||||||
<xsl:variable name="i18n.bt101" select="'Percentage'"/>
|
<xsl:variable name="i18n.bt100" select="'Basic amount'"/>
|
||||||
<xsl:variable name="i18n.bt99" select="'Charge amount'"/>
|
<xsl:variable name="i18n.bt101" select="'Percentage'"/>
|
||||||
<xsl:variable name="i18n.bt103" select="'VAT rate of the charge amount'"/>
|
<xsl:variable name="i18n.bt99" select="'Charge amount'"/>
|
||||||
<xsl:variable name="i18n.bt104" select="'Reason for the charge amount:'"/>
|
<xsl:variable name="i18n.bt103" select="'VAT rate of the charge amount'"/>
|
||||||
<xsl:variable name="i18n.bt105" select="'Document level charge reason code'"/>
|
<xsl:variable name="i18n.bt104" select="'Reason for the charge amount:'"/>
|
||||||
<xsl:variable name="i18n.bgx42" select="'Shipping cost'"/>
|
<xsl:variable name="i18n.bt105" select="'Document level charge reason code'"/>
|
||||||
<xsl:variable name="i18n.btx274" select="'VAT category of the shipping cost'"/>
|
<xsl:variable name="i18n.bgx42" select="'Shipping cost'"/>
|
||||||
<xsl:variable name="i18n.btx272" select="'Amount'"/>
|
<xsl:variable name="i18n.btx274" select="'VAT category of the shipping cost'"/>
|
||||||
<xsl:variable name="i18n.btx273" select="'VAT rate of the shipping cost'"/>
|
<xsl:variable name="i18n.btx272" select="'Amount'"/>
|
||||||
<xsl:variable name="i18n.btx271" select="'Shipping cost description'"/>
|
<xsl:variable name="i18n.btx273" select="'VAT rate of the shipping cost'"/>
|
||||||
<xsl:variable name="i18n.bt20" select="'Discount; other payment terms'"/>
|
<xsl:variable name="i18n.btx271" select="'Shipping cost description'"/>
|
||||||
<xsl:variable name="i18n.bt9" select="'Due date'"/>
|
<xsl:variable name="i18n.bt20" select="'Discount; other payment terms'"/>
|
||||||
<xsl:variable name="i18n.bt81" select="'Code for the means of payment'"/>
|
<xsl:variable name="i18n.bt9" select="'Due date'"/>
|
||||||
<xsl:variable name="i18n.bt82" select="'Means of payment'"/>
|
<xsl:variable name="i18n.bt81" select="'Code for the means of payment'"/>
|
||||||
<xsl:variable name="i18n.bt83" select="'Usage'"/>
|
<xsl:variable name="i18n.bt82" select="'Means of payment'"/>
|
||||||
<xsl:variable name="i18n.bg18" select="'Card information'"/>
|
<xsl:variable name="i18n.bt83" select="'Usage'"/>
|
||||||
<xsl:variable name="i18n.bt87" select="'Card number'"/>
|
<xsl:variable name="i18n.bg18" select="'Card information'"/>
|
||||||
<xsl:variable name="i18n.bt88" select="'Card holder'"/>
|
<xsl:variable name="i18n.bt87" select="'Card number'"/>
|
||||||
<xsl:variable name="i18n.bg19" select="'Direct debit'"/>
|
<xsl:variable name="i18n.bt88" select="'Card holder'"/>
|
||||||
<xsl:variable name="i18n.bt89" select="'Mandate Reference No'"/>
|
<xsl:variable name="i18n.bg19" select="'Direct debit'"/>
|
||||||
<xsl:variable name="i18n.bt91" select="'IBAN'"/>
|
<xsl:variable name="i18n.bt89" select="'Mandate Reference No'"/>
|
||||||
<xsl:variable name="i18n.bt90" select="'Creditor ID'"/>
|
<xsl:variable name="i18n.bt91" select="'IBAN'"/>
|
||||||
<xsl:variable name="i18n.bg17" select="'Transfer'"/>
|
<xsl:variable name="i18n.bt90" select="'Creditor ID'"/>
|
||||||
<xsl:variable name="i18n.bt85" select="'Account holder'"/>
|
<xsl:variable name="i18n.bg17" select="'Transfer'"/>
|
||||||
<xsl:variable name="i18n.bt84" select="'IBAN'"/>
|
<xsl:variable name="i18n.bt85" select="'Account holder'"/>
|
||||||
<xsl:variable name="i18n.bt86" select="'BIC'"/>
|
<xsl:variable name="i18n.bt84" select="'IBAN'"/>
|
||||||
<xsl:variable name="i18n.bg1" select="'Invoice Comment'"/>
|
<xsl:variable name="i18n.bt86" select="'BIC'"/>
|
||||||
<xsl:variable name="i18n.bt21" select="'Subject'"/>
|
<xsl:variable name="i18n.bg1" select="'Invoice Comment'"/>
|
||||||
<xsl:variable name="i18n.bt22" select="'Comment'"/>
|
<xsl:variable name="i18n.bt21" select="'Subject'"/>
|
||||||
<xsl:variable name="i18n.bt126" select="'Line'"/>
|
<xsl:variable name="i18n.bt22" select="'Comment'"/>
|
||||||
<xsl:variable name="i18n.bt127" select="'Free text'"/>
|
<xsl:variable name="i18n.bt126" select="'Line'"/>
|
||||||
<xsl:variable name="i18n.bt128" select="'Object ID'"/>
|
<xsl:variable name="i18n.bt127" select="'Free text'"/>
|
||||||
<xsl:variable name="i18n.bt128-id" select="'Object ID schema'"/>
|
<xsl:variable name="i18n.bt128" select="'Object ID'"/>
|
||||||
<xsl:variable name="i18n.bt132" select="'Order line number'"/>
|
<xsl:variable name="i18n.bt128-id" select="'Object ID schema'"/>
|
||||||
<xsl:variable name="i18n.bt133" select="'Account assignment information'"/>
|
<xsl:variable name="i18n.bt132" select="'Order line number'"/>
|
||||||
<xsl:variable name="i18n.bg26" select="'Billing period'"/>
|
<xsl:variable name="i18n.bt133" select="'Account assignment information'"/>
|
||||||
<xsl:variable name="i18n.bt134" select="'from'"/>
|
<xsl:variable name="i18n.bg26" select="'Billing period'"/>
|
||||||
<xsl:variable name="i18n.bt135" select="'to'"/>
|
<xsl:variable name="i18n.bt134" select="'from'"/>
|
||||||
<xsl:variable name="i18n.bg29" select="'Price details'"/>
|
<xsl:variable name="i18n.bt135" select="'to'"/>
|
||||||
<xsl:variable name="i18n.bt129" select="'Quantity'"/>
|
<xsl:variable name="i18n.bg29" select="'Price details'"/>
|
||||||
<xsl:variable name="i18n.bt130" select="'Unit'"/>
|
<xsl:variable name="i18n.bt129" select="'Quantity'"/>
|
||||||
<xsl:variable name="i18n.bt146" select="'Unit price (net)'"/>
|
<xsl:variable name="i18n.bt130" select="'Unit'"/>
|
||||||
<xsl:variable name="i18n.bt131" select="'Total price (net)'"/>
|
<xsl:variable name="i18n.bt146" select="'Unit price (net)'"/>
|
||||||
<xsl:variable name="i18n.bt147" select="'Discount (net)'"/>
|
<xsl:variable name="i18n.bt131" select="'Total price (net)'"/>
|
||||||
<xsl:variable name="i18n.bt148" select="'Net list price'"/>
|
<xsl:variable name="i18n.bt147" select="'Discount (net)'"/>
|
||||||
<xsl:variable name="i18n.bt149" select="'Number of units'"/>
|
<xsl:variable name="i18n.bt148" select="'Net list price'"/>
|
||||||
<xsl:variable name="i18n.bt150" select="'Unit of measure code'"/>
|
<xsl:variable name="i18n.bt149" select="'Number of units'"/>
|
||||||
<xsl:variable name="i18n.bt151" select="'VAT'"/>
|
<xsl:variable name="i18n.bt150" select="'Unit of measure code'"/>
|
||||||
<xsl:variable name="i18n.bt152" select="'VAT rate in percent'"/>
|
<xsl:variable name="i18n.bt151" select="'VAT'"/>
|
||||||
<xsl:variable name="i18n.bg27" select="'Allowances at line level'"/>
|
<xsl:variable name="i18n.bt152" select="'VAT rate in percent'"/>
|
||||||
<xsl:variable name="i18n.bt137" select="'Basic amount (net)'"/>
|
<xsl:variable name="i18n.bg27" select="'Allowances at line level'"/>
|
||||||
<xsl:variable name="i18n.bt138" select="'Percentage'"/>
|
<xsl:variable name="i18n.bt137" select="'Basic amount (net)'"/>
|
||||||
<xsl:variable name="i18n.bt136" select="'Allowance (net)'"/>
|
<xsl:variable name="i18n.bt138" select="'Percentage'"/>
|
||||||
<xsl:variable name="i18n.bt139" select="'Reason for allowance'"/>
|
<xsl:variable name="i18n.bt136" select="'Allowance (net)'"/>
|
||||||
<xsl:variable name="i18n.bt140" select="'Code for the reason for the estate'"/>
|
<xsl:variable name="i18n.bt139" select="'Reason for allowance'"/>
|
||||||
<xsl:variable name="i18n.bg28" select="'Charges at invoice line level'"/>
|
<xsl:variable name="i18n.bt140" select="'Code for the reason for the estate'"/>
|
||||||
<xsl:variable name="i18n.bt142" select="'Basic amount (net)'"/>
|
<xsl:variable name="i18n.bg28" select="'Charges at invoice line level'"/>
|
||||||
<xsl:variable name="i18n.bt143" select="'percentage'"/>
|
<xsl:variable name="i18n.bt142" select="'Basic amount (net)'"/>
|
||||||
<xsl:variable name="i18n.bt141" select="'Charge amount (net)'"/>
|
<xsl:variable name="i18n.bt143" select="'percentage'"/>
|
||||||
<xsl:variable name="i18n.bt144" select="'Reason for the allowance'"/>
|
<xsl:variable name="i18n.bt141" select="'Charge amount (net)'"/>
|
||||||
<xsl:variable name="i18n.bt145" select="'Reason code'"/>
|
<xsl:variable name="i18n.bt144" select="'Reason for the allowance'"/>
|
||||||
<xsl:variable name="i18n.bg31" select="'Item Information'"/>
|
<xsl:variable name="i18n.bt145" select="'Reason code'"/>
|
||||||
<xsl:variable name="i18n.bt153" select="'Name'"/>
|
<xsl:variable name="i18n.bg31" select="'Item Information'"/>
|
||||||
<xsl:variable name="i18n.bt154" select="'Description'"/>
|
<xsl:variable name="i18n.bt153" select="'Name'"/>
|
||||||
<xsl:variable name="i18n.bt155" select="'Part number'"/>
|
<xsl:variable name="i18n.bt154" select="'Description'"/>
|
||||||
<xsl:variable name="i18n.bt156" select="'Customer''s material number'"/>
|
<xsl:variable name="i18n.bt155" select="'Part number'"/>
|
||||||
<xsl:variable name="i18n.bg32" select="'Article properties'"/>
|
<xsl:variable name="i18n.bt156" select="'Customer''s material number'"/>
|
||||||
<xsl:variable name="i18n.bt157" select="'Item ID'"/>
|
<xsl:variable name="i18n.bg32" select="'Article properties'"/>
|
||||||
<xsl:variable name="i18n.bt157-id" select="'Item ID schema'"/>
|
<xsl:variable name="i18n.bt157" select="'Item ID'"/>
|
||||||
<xsl:variable name="i18n.bt158" select="'Item classification code'"/>
|
<xsl:variable name="i18n.bt157-id" select="'Item ID schema'"/>
|
||||||
<xsl:variable name="i18n.bt158-id" select="'Identifier to form the schema'"/>
|
<xsl:variable name="i18n.bt158" select="'Item classification code'"/>
|
||||||
<xsl:variable name="i18n.bt157-vers-id" select="'Version for creating the schema'"/>
|
<xsl:variable name="i18n.bt158-id" select="'Identifier to form the schema'"/>
|
||||||
<xsl:variable name="i18n.bt159" select="'Country of origin code'"/>
|
<xsl:variable name="i18n.bt157-vers-id" select="'Version for creating the schema'"/>
|
||||||
<xsl:variable name="i18n.bg4" select="'Seller Information'"/>
|
<xsl:variable name="i18n.bt159" select="'Country of origin code'"/>
|
||||||
<xsl:variable name="i18n.bt28" select="'Differing trade name'"/>
|
<xsl:variable name="i18n.bg4" select="'Seller Information'"/>
|
||||||
<xsl:variable name="i18n.bt34" select="'Electronic address'"/>
|
<xsl:variable name="i18n.bt28" select="'Differing trade name'"/>
|
||||||
<xsl:variable name="i18n.bt34-id" select="'Electronic address scheme'"/>
|
<xsl:variable name="i18n.bt34" select="'Electronic address'"/>
|
||||||
<xsl:variable name="i18n.bt30" select="'Register number'"/>
|
<xsl:variable name="i18n.bt34-id" select="'Electronic address scheme'"/>
|
||||||
<xsl:variable name="i18n.bt31" select="'VAT ID'"/>
|
<xsl:variable name="i18n.bt30" select="'Register number'"/>
|
||||||
<xsl:variable name="i18n.bt32" select="'Tax ID'"/>
|
<xsl:variable name="i18n.bt31" select="'VAT ID'"/>
|
||||||
<xsl:variable name="i18n.bt32-schema" select="'Tax ID scheme'"/>
|
<xsl:variable name="i18n.bt32" select="'Tax ID'"/>
|
||||||
<xsl:variable name="i18n.bt33" select="'Further legal information'"/>
|
<xsl:variable name="i18n.bt32-schema" select="'Tax ID scheme'"/>
|
||||||
<xsl:variable name="i18n.bt6" select="'VAT currency code'"/>
|
<xsl:variable name="i18n.bt33" select="'Further legal information'"/>
|
||||||
<xsl:variable name="i18n.bg11" select="'seller''s tax representative'"/>
|
<xsl:variable name="i18n.bt6" select="'VAT currency code'"/>
|
||||||
<xsl:variable name="i18n.bt62" select="'Name'"/>
|
<xsl:variable name="i18n.bg11" select="'seller''s tax representative'"/>
|
||||||
<xsl:variable name="i18n.bt64" select="'Street / house number'"/>
|
<xsl:variable name="i18n.bt62" select="'Name'"/>
|
||||||
<xsl:variable name="i18n.bt65" select="'PO Box'"/>
|
<xsl:variable name="i18n.bt64" select="'Street / house number'"/>
|
||||||
<xsl:variable name="i18n.bt164" select="'Address Addition'"/>
|
<xsl:variable name="i18n.bt65" select="'PO Box'"/>
|
||||||
<xsl:variable name="i18n.bt67" select="'Postcode'"/>
|
<xsl:variable name="i18n.bt164" select="'Address Addition'"/>
|
||||||
<xsl:variable name="i18n.bt66" select="'Place'"/>
|
<xsl:variable name="i18n.bt67" select="'Postcode'"/>
|
||||||
<xsl:variable name="i18n.bt68" select="'State/Province'"/>
|
<xsl:variable name="i18n.bt66" select="'Place'"/>
|
||||||
<xsl:variable name="i18n.bt69" select="'Country code'"/>
|
<xsl:variable name="i18n.bt68" select="'State/Province'"/>
|
||||||
<xsl:variable name="i18n.bt63" select="'VAT ID'"/>
|
<xsl:variable name="i18n.bt69" select="'Country code'"/>
|
||||||
<xsl:variable name="i18n.bg7" select="'Buyer Information'"/>
|
<xsl:variable name="i18n.bt63" select="'VAT ID'"/>
|
||||||
<xsl:variable name="i18n.bt45" select="'Differing trade name'"/>
|
<xsl:variable name="i18n.bg7" select="'Buyer Information'"/>
|
||||||
<xsl:variable name="i18n.bt49" select="'E-mail address'"/>
|
<xsl:variable name="i18n.bt45" select="'Differing trade name'"/>
|
||||||
<xsl:variable name="i18n.bt49-id" select="'Electronic address scheme'"/>
|
<xsl:variable name="i18n.bt49" select="'E-mail address'"/>
|
||||||
<xsl:variable name="i18n.bt47" select="'Register number'"/>
|
<xsl:variable name="i18n.bt49-id" select="'Electronic address scheme'"/>
|
||||||
<xsl:variable name="i18n.bt47-id" select="'Scheme of register/register number'"/>
|
<xsl:variable name="i18n.bt47" select="'Register number'"/>
|
||||||
<xsl:variable name="i18n.bt48" select="'VAT ID'"/>
|
<xsl:variable name="i18n.bt47-id" select="'Scheme of register/register number'"/>
|
||||||
<xsl:variable name="i18n.bt7" select="'VAT payday date'"/>
|
<xsl:variable name="i18n.bt48" select="'VAT ID'"/>
|
||||||
<xsl:variable name="i18n.bt8" select="'VAT Statement Date Code'"/>
|
<xsl:variable name="i18n.bt7" select="'VAT payday date'"/>
|
||||||
<xsl:variable name="i18n.bt19" select="'Account assignment information'"/>
|
<xsl:variable name="i18n.bt8" select="'VAT Statement Date Code'"/>
|
||||||
<xsl:variable name="i18n.bg13" select="'Shipping information'"/>
|
<xsl:variable name="i18n.bt19" select="'Account assignment information'"/>
|
||||||
<xsl:variable name="i18n.bt71" select="'Identification of the place of delivery'"/>
|
<xsl:variable name="i18n.bg13" select="'Shipping information'"/>
|
||||||
<xsl:variable name="i18n.bt71-id" select="'ID scheme'"/>
|
<xsl:variable name="i18n.bt71" select="'Identification of the place of delivery'"/>
|
||||||
<xsl:variable name="i18n.bt72" select="'Date of delivery'"/>
|
<xsl:variable name="i18n.bt71-id" select="'ID scheme'"/>
|
||||||
<xsl:variable name="i18n.bt70" select="'Recipient name'"/>
|
<xsl:variable name="i18n.bt72" select="'Date of delivery'"/>
|
||||||
<xsl:variable name="i18n.bt75" select="'Street / house number'"/>
|
<xsl:variable name="i18n.bt70" select="'Recipient name'"/>
|
||||||
<xsl:variable name="i18n.bt76" select="'PO Box'"/>
|
<xsl:variable name="i18n.bt75" select="'Street / house number'"/>
|
||||||
<xsl:variable name="i18n.bt165" select="'Address Addition'"/>
|
<xsl:variable name="i18n.bt76" select="'PO Box'"/>
|
||||||
<xsl:variable name="i18n.bt78" select="'Code postal'"/>
|
<xsl:variable name="i18n.bt165" select="'Address Addition'"/>
|
||||||
<xsl:variable name="i18n.bt77" select="'Place'"/>
|
<xsl:variable name="i18n.bt78" select="'Code postal'"/>
|
||||||
<xsl:variable name="i18n.bt79" select="'State/Province'"/>
|
<xsl:variable name="i18n.bt77" select="'Place'"/>
|
||||||
<xsl:variable name="i18n.bt80" select="'Country'"/>
|
<xsl:variable name="i18n.bt79" select="'State/Province'"/>
|
||||||
<xsl:variable name="i18n.bt17" select="'Assignment number'"/>
|
<xsl:variable name="i18n.bt80" select="'Country'"/>
|
||||||
<xsl:variable name="i18n.bt15" select="'Receipt confirmation ID'"/>
|
<xsl:variable name="i18n.bt17" select="'Assignment number'"/>
|
||||||
<xsl:variable name="i18n.bt16" select="'Dispatch note ID'"/>
|
<xsl:variable name="i18n.bt15" select="'Receipt confirmation ID'"/>
|
||||||
<xsl:variable name="i18n.bt23" select="'Process ID'"/>
|
<xsl:variable name="i18n.bt16" select="'Dispatch note ID'"/>
|
||||||
<xsl:variable name="i18n.bt24" select="'Specification ID'"/>
|
<xsl:variable name="i18n.btx202" select="'Delivery note ID'"/>
|
||||||
<xsl:variable name="i18n.bt18" select="'Object ID'"/>
|
<xsl:variable name="i18n.bt23" select="'Process ID'"/>
|
||||||
<xsl:variable name="i18n.bt18-id" select="'Object ID schema'"/>
|
<xsl:variable name="i18n.bt24" select="'Specification ID'"/>
|
||||||
<xsl:variable name="i18n.bg10" select="'Payee other than Seller'"/>
|
<xsl:variable name="i18n.bt18" select="'Object ID'"/>
|
||||||
<xsl:variable name="i18n.bt59" select="'Name'"/>
|
<xsl:variable name="i18n.bt18-id" select="'Object ID schema'"/>
|
||||||
<xsl:variable name="i18n.bt60" select="'ID'"/>
|
<xsl:variable name="i18n.bg10" select="'Payee other than Seller'"/>
|
||||||
<xsl:variable name="i18n.bt60-id" select="'ID scheme'"/>
|
<xsl:variable name="i18n.bt59" select="'Name'"/>
|
||||||
<xsl:variable name="i18n.bt61" select="'Register number'"/>
|
<xsl:variable name="i18n.bt60" select="'ID'"/>
|
||||||
<xsl:variable name="i18n.bt61-id" select="'Scheme of register/register number'"/>
|
<xsl:variable name="i18n.bt60-id" select="'ID scheme'"/>
|
||||||
<xsl:variable name="i18n.bg24" select="'Documents justifying the invoice'"/>
|
<xsl:variable name="i18n.bt61" select="'Register number'"/>
|
||||||
<xsl:variable name="i18n.bt122" select="'ID'"/>
|
<xsl:variable name="i18n.bt61-id" select="'Scheme of register/register number'"/>
|
||||||
<xsl:variable name="i18n.bt123" select="'Description'"/>
|
<xsl:variable name="i18n.bg24" select="'Documents justifying the invoice'"/>
|
||||||
<xsl:variable name="i18n.bt124" select="'Reference (e.g. Internet address)'"/>
|
<xsl:variable name="i18n.bt122" select="'ID'"/>
|
||||||
<xsl:variable name="i18n.bt125" select="'Attachment'"/>
|
<xsl:variable name="i18n.bt123" select="'Description'"/>
|
||||||
<xsl:variable name="i18n.bt125-format" select="'Format of attachment'"/>
|
<xsl:variable name="i18n.bt124" select="'Reference (e.g. Internet address)'"/>
|
||||||
<xsl:variable name="i18n.bt125-name" select="'Name of attachment'"/>
|
<xsl:variable name="i18n.bt125" select="'Attachment'"/>
|
||||||
<xsl:variable name="i18n.historyDate" select="'Date/time'"/>
|
<xsl:variable name="i18n.bt125-format" select="'Format of attachment'"/>
|
||||||
<xsl:variable name="i18n.historySubject" select="'Subject'"/>
|
<xsl:variable name="i18n.bt125-name" select="'Name of attachment'"/>
|
||||||
<xsl:variable name="i18n.historyText" select="'Text'"/>
|
<xsl:variable name="i18n.historyDate" select="'Date/time'"/>
|
||||||
<xsl:variable name="i18n.historyDetails" select="'Details:'"/>
|
<xsl:variable name="i18n.historySubject" select="'Subject'"/>
|
||||||
<xsl:variable name="i18n.payment" select="'Payment details'"/>
|
<xsl:variable name="i18n.historyText" select="'Text'"/>
|
||||||
<xsl:variable name="i18n.contract_information" select="'Contract Information'"/>
|
<xsl:variable name="i18n.historyDetails" select="'Details:'"/>
|
||||||
<xsl:variable name="i18n.preceding_invoice_reference" select="'Previous invoices'"/>
|
<xsl:variable name="i18n.payment" select="'Payment details'"/>
|
||||||
|
<xsl:variable name="i18n.contract_information" select="'Contract Information'"/>
|
||||||
<xsl:include href="xrechnung-html.univ.xsl"/>
|
<xsl:variable name="i18n.preceding_invoice_reference" select="'Previous invoices'"/>
|
||||||
|
|
||||||
</xsl:stylesheet>
|
<xsl:include href="xrechnung-html.univ.xsl"/>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
|
|||||||
@@ -1,227 +1,229 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
|
||||||
|
|
||||||
<xsl:variable name="i18n.bt10" select="'Identifiant d''itinéraire'"/>
|
<xsl:variable name="i18n.bt10" select="'Identifiant d''itinéraire'"/>
|
||||||
<xsl:variable name="i18n.bt44" select="'Nom'"/>
|
<xsl:variable name="i18n.bt44" select="'Nom'"/>
|
||||||
<xsl:variable name="i18n.title" select="'XRechnung'"/>
|
<xsl:variable name="i18n.title" select="'XRechnung'"/>
|
||||||
<xsl:variable name="i18n.overview" select="'Aperçu'"/>
|
<xsl:variable name="i18n.overview" select="'Aperçu'"/>
|
||||||
<xsl:variable name="i18n.items" select="'Détails'"/>
|
<xsl:variable name="i18n.items" select="'Détails'"/>
|
||||||
<xsl:variable name="i18n.information" select="'Additif'"/>
|
<xsl:variable name="i18n.information" select="'Additif'"/>
|
||||||
<xsl:variable name="i18n.attachments" select="'Pièces jointes'"/>
|
<xsl:variable name="i18n.attachments" select="'Pièces jointes'"/>
|
||||||
<xsl:variable name="i18n.history" select="'Historique de traitement'"/>
|
<xsl:variable name="i18n.history" select="'Historique de traitement'"/>
|
||||||
<xsl:variable name="i18n.disclaimer" select="'Nous n''assumons aucune responsabilité quant à l''exactitude des données.'"/>
|
<xsl:variable name="i18n.disclaimer" select="'Nous n''assumons aucune responsabilité quant à l''exactitude des données.'"/>
|
||||||
<xsl:variable name="i18n.recipientInfo" select="'Informations sur l''acheteur'"/>
|
<xsl:variable name="i18n.recipientInfo" select="'Informations sur l''acheteur'"/>
|
||||||
<xsl:variable name="i18n.bt50" select="'Rue / Numéro de maison'"/>
|
<xsl:variable name="i18n.dateOf" select="' du '"/>
|
||||||
<xsl:variable name="i18n.bt51" select="'Boîte postale'"/>
|
<xsl:variable name="i18n.bt50" select="'Rue / Numéro de maison'"/>
|
||||||
<xsl:variable name="i18n.bt163" select="'Supplément d''adresse'"/>
|
<xsl:variable name="i18n.bt51" select="'Boîte postale'"/>
|
||||||
<xsl:variable name="i18n.bt53" select="'Code postal'"/>
|
<xsl:variable name="i18n.bt163" select="'Supplément d''adresse'"/>
|
||||||
<xsl:variable name="i18n.bt52" select="'Lieu'"/>
|
<xsl:variable name="i18n.bt53" select="'Code postal'"/>
|
||||||
<xsl:variable name="i18n.bt54" select="'Région'"/>
|
<xsl:variable name="i18n.bt52" select="'Lieu'"/>
|
||||||
<xsl:variable name="i18n.bt55" select="'Pays'"/>
|
<xsl:variable name="i18n.bt54" select="'Région'"/>
|
||||||
<xsl:variable name="i18n.bt46" select="'Identifiant'"/>
|
<xsl:variable name="i18n.bt55" select="'Pays'"/>
|
||||||
<xsl:variable name="i18n.bt46-id" select="'Schéma de l''Identifiant'"/>
|
<xsl:variable name="i18n.bt46" select="'Identifiant'"/>
|
||||||
<xsl:variable name="i18n.bt56" select="'Nom'"/>
|
<xsl:variable name="i18n.bt46-id" select="'Schéma de l''Identifiant'"/>
|
||||||
<xsl:variable name="i18n.bt57" select="'Téléphone'"/>
|
<xsl:variable name="i18n.bt56" select="'Nom'"/>
|
||||||
<xsl:variable name="i18n.bt58" select="'Adresse électronique'"/>
|
<xsl:variable name="i18n.bt57" select="'Téléphone'"/>
|
||||||
<xsl:variable name="i18n.bt27" select="'Nom de la société'"/>
|
<xsl:variable name="i18n.bt58" select="'Adresse électronique'"/>
|
||||||
<xsl:variable name="i18n.bt35" select="'Rue / Numéro de maison'"/>
|
<xsl:variable name="i18n.bt27" select="'Nom de la société'"/>
|
||||||
<xsl:variable name="i18n.bt36" select="'Boîte postale'"/>
|
<xsl:variable name="i18n.bt35" select="'Rue / Numéro de maison'"/>
|
||||||
<xsl:variable name="i18n.bt162" select="'Supplément d''adresse'"/>
|
<xsl:variable name="i18n.bt36" select="'Boîte postale'"/>
|
||||||
<xsl:variable name="i18n.bt38" select="'Code postal'"/>
|
<xsl:variable name="i18n.bt162" select="'Supplément d''adresse'"/>
|
||||||
<xsl:variable name="i18n.bt37" select="'Lieu'"/>
|
<xsl:variable name="i18n.bt38" select="'Code postal'"/>
|
||||||
<xsl:variable name="i18n.bt39" select="'Région'"/>
|
<xsl:variable name="i18n.bt37" select="'Lieu'"/>
|
||||||
<xsl:variable name="i18n.bt40" select="'Code pays'"/>
|
<xsl:variable name="i18n.bt39" select="'Région'"/>
|
||||||
<xsl:variable name="i18n.bt29" select="'Identifiant'"/>
|
<xsl:variable name="i18n.bt40" select="'Code pays'"/>
|
||||||
<xsl:variable name="i18n.bt29-id" select="'Schéma de l''Identifiant'"/>
|
<xsl:variable name="i18n.bt29" select="'Identifiant'"/>
|
||||||
<xsl:variable name="i18n.bt41" select="'Nom'"/>
|
<xsl:variable name="i18n.bt29-id" select="'Schéma de l''Identifiant'"/>
|
||||||
<xsl:variable name="i18n.bt42" select="'Téléphone'"/>
|
<xsl:variable name="i18n.bt41" select="'Nom'"/>
|
||||||
<xsl:variable name="i18n.bt43" select="'Adresse électronique'"/>
|
<xsl:variable name="i18n.bt42" select="'Téléphone'"/>
|
||||||
<xsl:variable name="i18n.bt1" select="'Informations sur le vendeur'"/>
|
<xsl:variable name="i18n.bt43" select="'Adresse électronique'"/>
|
||||||
<xsl:variable name="i18n.bt2" select="'Date de facture'"/>
|
<xsl:variable name="i18n.bt1" select="'Informations sur le vendeur'"/>
|
||||||
<xsl:variable name="i18n.details" select="'Détails de la facturation'"/>
|
<xsl:variable name="i18n.bt2" select="'Date de facture'"/>
|
||||||
<xsl:variable name="i18n.period" select="'Période de facturation'"/>
|
<xsl:variable name="i18n.details" select="'Détails de la facturation'"/>
|
||||||
<xsl:variable name="i18n.bt3" select="'Type de facture'"/>
|
<xsl:variable name="i18n.period" select="'Période de facturation'"/>
|
||||||
<xsl:variable name="i18n.bt5" select="'Devise'"/>
|
<xsl:variable name="i18n.bt3" select="'Type de facture'"/>
|
||||||
<xsl:variable name="i18n.bt73" select="'de'"/>
|
<xsl:variable name="i18n.bt5" select="'Devise'"/>
|
||||||
<xsl:variable name="i18n.bt74" select="'jusqu''à'"/>
|
<xsl:variable name="i18n.bt73" select="'de'"/>
|
||||||
<xsl:variable name="i18n.bt11" select="'Numéro du projet'"/>
|
<xsl:variable name="i18n.bt74" select="'jusqu''à'"/>
|
||||||
<xsl:variable name="i18n.bt12" select="'Numéro du contrat'"/>
|
<xsl:variable name="i18n.bt11" select="'Numéro du projet'"/>
|
||||||
<xsl:variable name="i18n.bt13" select="'Numéro de commande'"/>
|
<xsl:variable name="i18n.bt12" select="'Numéro du contrat'"/>
|
||||||
<xsl:variable name="i18n.bt14" select="'Numéro de commande'"/>
|
<xsl:variable name="i18n.bt13" select="'Numéro de commande'"/>
|
||||||
<xsl:variable name="i18n.bt25" select="'Numéro de facture'"/>
|
<xsl:variable name="i18n.bt14" select="'Numéro de commande'"/>
|
||||||
<xsl:variable name="i18n.bt26" select="'Date de facture'"/>
|
<xsl:variable name="i18n.bt25" select="'Numéro de facture'"/>
|
||||||
<xsl:variable name="i18n.bg22" select="'Montants totaux de la facture'"/>
|
<xsl:variable name="i18n.bt26" select="'Date de facture'"/>
|
||||||
<xsl:variable name="i18n.bt106" select="'Total de toutes les lignes'"/>
|
<xsl:variable name="i18n.bg22" select="'Montants totaux de la facture'"/>
|
||||||
<xsl:variable name="i18n.bt107" select="'Total de remises'"/>
|
<xsl:variable name="i18n.bt106" select="'Total de toutes les lignes'"/>
|
||||||
<xsl:variable name="i18n.bt108" select="'Total de suppléments'"/>
|
<xsl:variable name="i18n.bt107" select="'Total de remises'"/>
|
||||||
<xsl:variable name="i18n.bt109" select="'Montant total'"/>
|
<xsl:variable name="i18n.bt108" select="'Total de suppléments'"/>
|
||||||
<xsl:variable name="i18n.bt110" select="'montant de la TVA'"/>
|
<xsl:variable name="i18n.bt109" select="'Montant total'"/>
|
||||||
<xsl:variable name="i18n.bt111" select="'Montant total de TVA'"/>
|
<xsl:variable name="i18n.bt110" select="'montant de la TVA'"/>
|
||||||
<xsl:variable name="i18n.bt112" select="'Montant total'"/>
|
<xsl:variable name="i18n.bt111" select="'Montant total de TVA'"/>
|
||||||
<xsl:variable name="i18n.bt113" select="'Montant payé'"/>
|
<xsl:variable name="i18n.bt112" select="'Montant total'"/>
|
||||||
<xsl:variable name="i18n.bt114" select="'Montant arrondi'"/>
|
<xsl:variable name="i18n.bt113" select="'Montant payé'"/>
|
||||||
<xsl:variable name="i18n.bt115" select="'Montant dû'"/>
|
<xsl:variable name="i18n.bt114" select="'Montant arrondi'"/>
|
||||||
<xsl:variable name="i18n.bg23" select="'Ventilation de la TVA au niveau de la facture'"/>
|
<xsl:variable name="i18n.bt115" select="'Montant dû'"/>
|
||||||
<xsl:variable name="i18n.bt118" select="'Catégorie de TVA'"/>
|
<xsl:variable name="i18n.bg23" select="'Ventilation de la TVA au niveau de la facture'"/>
|
||||||
<xsl:variable name="i18n.bt116" select="'Montant total'"/>
|
<xsl:variable name="i18n.bt118" select="'Catégorie de TVA'"/>
|
||||||
<xsl:variable name="i18n.bt119" select="'taux TVA'"/>
|
<xsl:variable name="i18n.bt116" select="'Montant total'"/>
|
||||||
<xsl:variable name="i18n.bt117" select="'montant de la TVA'"/>
|
<xsl:variable name="i18n.bt119" select="'taux TVA'"/>
|
||||||
<xsl:variable name="i18n.bt120" select="'Motif d''exemption'"/>
|
<xsl:variable name="i18n.bt117" select="'montant de la TVA'"/>
|
||||||
<xsl:variable name="i18n.bt121" select="'Identifiant pour motif d''exemption'"/>
|
<xsl:variable name="i18n.bt120" select="'Motif d''exemption'"/>
|
||||||
<xsl:variable name="i18n.bg20" select="'Allocation au niveau de la facture'"/>
|
<xsl:variable name="i18n.bt121" select="'Identifiant pour motif d''exemption'"/>
|
||||||
<xsl:variable name="i18n.bt95" select="'Catégorie de TVA de la remise'"/>
|
<xsl:variable name="i18n.bg20" select="'Allocation au niveau de la facture'"/>
|
||||||
<xsl:variable name="i18n.bt93" select="'Montant de base'"/>
|
<xsl:variable name="i18n.bt95" select="'Catégorie de TVA de la remise'"/>
|
||||||
<xsl:variable name="i18n.bt94" select="'Pourcentage'"/>
|
<xsl:variable name="i18n.bt93" select="'Montant de base'"/>
|
||||||
<xsl:variable name="i18n.bt92" select="'Allocation'"/>
|
<xsl:variable name="i18n.bt94" select="'Pourcentage'"/>
|
||||||
<xsl:variable name="i18n.bt96" select="'Taux de TVA de la allocation'"/>
|
<xsl:variable name="i18n.bt92" select="'Allocation'"/>
|
||||||
<xsl:variable name="i18n.bt97" select="'Motif de la remise'"/>
|
<xsl:variable name="i18n.bt96" select="'Taux de TVA de la allocation'"/>
|
||||||
<xsl:variable name="i18n.bt98" select="'Document level allowance reason code'"/>
|
<xsl:variable name="i18n.bt97" select="'Motif de la remise'"/>
|
||||||
<xsl:variable name="i18n.bg21" select="'Supplément au niveau de la facture'"/>
|
<xsl:variable name="i18n.bt98" select="'Document level allowance reason code'"/>
|
||||||
<xsl:variable name="i18n.bt102" select="'Catégorie de TVA du supplément'"/>
|
<xsl:variable name="i18n.bg21" select="'Supplément au niveau de la facture'"/>
|
||||||
<xsl:variable name="i18n.bt100" select="'Montant de base'"/>
|
<xsl:variable name="i18n.bt102" select="'Catégorie de TVA du supplément'"/>
|
||||||
<xsl:variable name="i18n.bt101" select="'Pourcentage'"/>
|
<xsl:variable name="i18n.bt100" select="'Montant de base'"/>
|
||||||
<xsl:variable name="i18n.bt99" select="'Supplément'"/>
|
<xsl:variable name="i18n.bt101" select="'Pourcentage'"/>
|
||||||
<xsl:variable name="i18n.bt103" select="'Taux de TVA du supplément'"/>
|
<xsl:variable name="i18n.bt99" select="'Supplément'"/>
|
||||||
<xsl:variable name="i18n.bt104" select="'Raison du supplément'"/>
|
<xsl:variable name="i18n.bt103" select="'Taux de TVA du supplément'"/>
|
||||||
<xsl:variable name="i18n.bt105" select="'Document level charge reason code'"/>
|
<xsl:variable name="i18n.bt104" select="'Raison du supplément'"/>
|
||||||
<xsl:variable name="i18n.bgx42" select="'Frais d''expédition'"/>
|
<xsl:variable name="i18n.bt105" select="'Document level charge reason code'"/>
|
||||||
<xsl:variable name="i18n.btx274" select="'Catégorie de TVA des frais de port'"/>
|
<xsl:variable name="i18n.bgx42" select="'Frais d''expédition'"/>
|
||||||
<xsl:variable name="i18n.btx272" select="'Montant'"/>
|
<xsl:variable name="i18n.btx274" select="'Catégorie de TVA des frais de port'"/>
|
||||||
<xsl:variable name="i18n.btx273" select="'VAT rate of the shipping cost'"/>
|
<xsl:variable name="i18n.btx272" select="'Montant'"/>
|
||||||
<xsl:variable name="i18n.btx271" select="'Taux de TVA des frais de port'"/>
|
<xsl:variable name="i18n.btx273" select="'VAT rate of the shipping cost'"/>
|
||||||
<xsl:variable name="i18n.bt20" select="'Rabais; autres conditions de paiement'"/>
|
<xsl:variable name="i18n.btx271" select="'Taux de TVA des frais de port'"/>
|
||||||
<xsl:variable name="i18n.bt9" select="'Date d''échéance'"/>
|
<xsl:variable name="i18n.bt20" select="'Rabais; autres conditions de paiement'"/>
|
||||||
<xsl:variable name="i18n.bt81" select="'Code du moyen de paiement'"/>
|
<xsl:variable name="i18n.bt9" select="'Date d''échéance'"/>
|
||||||
<xsl:variable name="i18n.bt82" select="'Moyens de paiement'"/>
|
<xsl:variable name="i18n.bt81" select="'Code du moyen de paiement'"/>
|
||||||
<xsl:variable name="i18n.bt83" select="'Utilisation'"/>
|
<xsl:variable name="i18n.bt82" select="'Moyens de paiement'"/>
|
||||||
<xsl:variable name="i18n.bg18" select="'Information de la carte'"/>
|
<xsl:variable name="i18n.bt83" select="'Utilisation'"/>
|
||||||
<xsl:variable name="i18n.bt87" select="'Numéro de carte'"/>
|
<xsl:variable name="i18n.bg18" select="'Information de la carte'"/>
|
||||||
<xsl:variable name="i18n.bt88" select="'Titulaire de la carte'"/>
|
<xsl:variable name="i18n.bt87" select="'Numéro de carte'"/>
|
||||||
<xsl:variable name="i18n.bg19" select="'Prélèvement automatique'"/>
|
<xsl:variable name="i18n.bt88" select="'Titulaire de la carte'"/>
|
||||||
<xsl:variable name="i18n.bt89" select="'Numéro de référence du mandat'"/>
|
<xsl:variable name="i18n.bg19" select="'Prélèvement automatique'"/>
|
||||||
<xsl:variable name="i18n.bt91" select="'IBAN'"/>
|
<xsl:variable name="i18n.bt89" select="'Numéro de référence du mandat'"/>
|
||||||
<xsl:variable name="i18n.bt90" select="'Identifiant du créancier'"/>
|
<xsl:variable name="i18n.bt91" select="'IBAN'"/>
|
||||||
<xsl:variable name="i18n.bg17" select="'Transfert'"/>
|
<xsl:variable name="i18n.bt90" select="'Identifiant du créancier'"/>
|
||||||
<xsl:variable name="i18n.bt85" select="'Titulaire du compte'"/>
|
<xsl:variable name="i18n.bg17" select="'Transfert'"/>
|
||||||
<xsl:variable name="i18n.bt84" select="'IBAN'"/>
|
<xsl:variable name="i18n.bt85" select="'Titulaire du compte'"/>
|
||||||
<xsl:variable name="i18n.bt86" select="'BIC'"/>
|
<xsl:variable name="i18n.bt84" select="'IBAN'"/>
|
||||||
<xsl:variable name="i18n.bg1" select="'Commentaire sur la facture'"/>
|
<xsl:variable name="i18n.bt86" select="'BIC'"/>
|
||||||
<xsl:variable name="i18n.bt21" select="'Objet'"/>
|
<xsl:variable name="i18n.bg1" select="'Commentaire sur la facture'"/>
|
||||||
<xsl:variable name="i18n.bt22" select="'Commentaire'"/>
|
<xsl:variable name="i18n.bt21" select="'Objet'"/>
|
||||||
<xsl:variable name="i18n.bt126" select="'Position'"/>
|
<xsl:variable name="i18n.bt22" select="'Commentaire'"/>
|
||||||
<xsl:variable name="i18n.bt127" select="'Texte libre'"/>
|
<xsl:variable name="i18n.bt126" select="'Position'"/>
|
||||||
<xsl:variable name="i18n.bt128" select="'Identifiant d''objet'"/>
|
<xsl:variable name="i18n.bt127" select="'Texte libre'"/>
|
||||||
<xsl:variable name="i18n.bt128-id" select="'Schéma de l''Identifiant objet'"/>
|
<xsl:variable name="i18n.bt128" select="'Identifiant d''objet'"/>
|
||||||
<xsl:variable name="i18n.bt132" select="'Numéro de ligne de commande'"/>
|
<xsl:variable name="i18n.bt128-id" select="'Schéma de l''Identifiant objet'"/>
|
||||||
<xsl:variable name="i18n.bt133" select="'Information sur l''attribution de compte'"/>
|
<xsl:variable name="i18n.bt132" select="'Numéro de ligne de commande'"/>
|
||||||
<xsl:variable name="i18n.bg26" select="'Période de facturation'"/>
|
<xsl:variable name="i18n.bt133" select="'Information sur l''attribution de compte'"/>
|
||||||
<xsl:variable name="i18n.bt134" select="'de'"/>
|
<xsl:variable name="i18n.bg26" select="'Période de facturation'"/>
|
||||||
<xsl:variable name="i18n.bt135" select="'jusqu''à'"/>
|
<xsl:variable name="i18n.bt134" select="'de'"/>
|
||||||
<xsl:variable name="i18n.bg29" select="'Détails de prix'"/>
|
<xsl:variable name="i18n.bt135" select="'jusqu''à'"/>
|
||||||
<xsl:variable name="i18n.bt129" select="'Quantité'"/>
|
<xsl:variable name="i18n.bg29" select="'Détails de prix'"/>
|
||||||
<xsl:variable name="i18n.bt130" select="'Unité'"/>
|
<xsl:variable name="i18n.bt129" select="'Quantité'"/>
|
||||||
<xsl:variable name="i18n.bt146" select="'Prix unitaire net'"/>
|
<xsl:variable name="i18n.bt130" select="'Unité'"/>
|
||||||
<xsl:variable name="i18n.bt131" select="'Prix total net'"/>
|
<xsl:variable name="i18n.bt146" select="'Prix unitaire net'"/>
|
||||||
<xsl:variable name="i18n.bt147" select="'Remise nette'"/>
|
<xsl:variable name="i18n.bt131" select="'Prix total net'"/>
|
||||||
<xsl:variable name="i18n.bt148" select="'Prix catalogue (net)'"/>
|
<xsl:variable name="i18n.bt147" select="'Remise nette'"/>
|
||||||
<xsl:variable name="i18n.bt149" select="'Nombre d''unités'"/>
|
<xsl:variable name="i18n.bt148" select="'Prix catalogue (net)'"/>
|
||||||
<xsl:variable name="i18n.bt150" select="'Code de l''unité de mesure '"/>
|
<xsl:variable name="i18n.bt149" select="'Nombre d''unités'"/>
|
||||||
<xsl:variable name="i18n.bt151" select="'TVA'"/>
|
<xsl:variable name="i18n.bt150" select="'Code de l''unité de mesure '"/>
|
||||||
<xsl:variable name="i18n.bt152" select="'Pourcentage de TVA'"/>
|
<xsl:variable name="i18n.bt151" select="'TVA'"/>
|
||||||
<xsl:variable name="i18n.bg27" select="'Allocations au niveau de la ligne de facture'"/>
|
<xsl:variable name="i18n.bt152" select="'Pourcentage de TVA'"/>
|
||||||
<xsl:variable name="i18n.bt137" select="'Montant de base net'"/>
|
<xsl:variable name="i18n.bg27" select="'Allocations au niveau de la ligne de facture'"/>
|
||||||
<xsl:variable name="i18n.bt138" select="'Pourcentage'"/>
|
<xsl:variable name="i18n.bt137" select="'Montant de base net'"/>
|
||||||
<xsl:variable name="i18n.bt136" select="'Allocation nette'"/>
|
<xsl:variable name="i18n.bt138" select="'Pourcentage'"/>
|
||||||
<xsl:variable name="i18n.bt139" select="'Raison pour l''allocation '"/>
|
<xsl:variable name="i18n.bt136" select="'Allocation nette'"/>
|
||||||
<xsl:variable name="i18n.bt140" select="'Code de la raison pour l''allocation'"/>
|
<xsl:variable name="i18n.bt139" select="'Raison pour l''allocation '"/>
|
||||||
<xsl:variable name="i18n.bg28" select="'Supplément au niveau de la ligne de facture'"/>
|
<xsl:variable name="i18n.bt140" select="'Code de la raison pour l''allocation'"/>
|
||||||
<xsl:variable name="i18n.bt142" select="'Montant de base net'"/>
|
<xsl:variable name="i18n.bg28" select="'Supplément au niveau de la ligne de facture'"/>
|
||||||
<xsl:variable name="i18n.bt143" select="'Pourcentage'"/>
|
<xsl:variable name="i18n.bt142" select="'Montant de base net'"/>
|
||||||
<xsl:variable name="i18n.bt141" select="'Supplément net'"/>
|
<xsl:variable name="i18n.bt143" select="'Pourcentage'"/>
|
||||||
<xsl:variable name="i18n.bt144" select="'Raison du supplément'"/>
|
<xsl:variable name="i18n.bt141" select="'Supplément net'"/>
|
||||||
<xsl:variable name="i18n.bt145" select="'Code de la raison du supplément'"/>
|
<xsl:variable name="i18n.bt144" select="'Raison du supplément'"/>
|
||||||
<xsl:variable name="i18n.bg31" select="'Informations sur l''article'"/>
|
<xsl:variable name="i18n.bt145" select="'Code de la raison du supplément'"/>
|
||||||
<xsl:variable name="i18n.bt153" select="'Nom'"/>
|
<xsl:variable name="i18n.bg31" select="'Informations sur l''article'"/>
|
||||||
<xsl:variable name="i18n.bt154" select="'Description'"/>
|
<xsl:variable name="i18n.bt153" select="'Nom'"/>
|
||||||
<xsl:variable name="i18n.bt155" select="'Numéro d''article'"/>
|
<xsl:variable name="i18n.bt154" select="'Description'"/>
|
||||||
<xsl:variable name="i18n.bt156" select="'N° client / matériel'"/>
|
<xsl:variable name="i18n.bt155" select="'Numéro d''article'"/>
|
||||||
<xsl:variable name="i18n.bg32" select="'Propriétés de l''article'"/>
|
<xsl:variable name="i18n.bt156" select="'N° client / matériel'"/>
|
||||||
<xsl:variable name="i18n.bt157" select="'Identifiant article'"/>
|
<xsl:variable name="i18n.bg32" select="'Propriétés de l''article'"/>
|
||||||
<xsl:variable name="i18n.bt157-id" select="'Schéma de l''Identifiant article'"/>
|
<xsl:variable name="i18n.bt157" select="'Identifiant article'"/>
|
||||||
<xsl:variable name="i18n.bt158" select="'Code de classification des articles'"/>
|
<xsl:variable name="i18n.bt157-id" select="'Schéma de l''Identifiant article'"/>
|
||||||
<xsl:variable name="i18n.bt158-id" select="'Identifiant pour la création du schéma'"/>
|
<xsl:variable name="i18n.bt158" select="'Code de classification des articles'"/>
|
||||||
<xsl:variable name="i18n.bt157-vers-id" select="'Version de création du schéma'"/>
|
<xsl:variable name="i18n.bt158-id" select="'Identifiant pour la création du schéma'"/>
|
||||||
<xsl:variable name="i18n.bt159" select="'Code du pays d''origine'"/>
|
<xsl:variable name="i18n.bt157-vers-id" select="'Version de création du schéma'"/>
|
||||||
<xsl:variable name="i18n.bg4" select="'Informations sur le vendeur'"/>
|
<xsl:variable name="i18n.bt159" select="'Code du pays d''origine'"/>
|
||||||
<xsl:variable name="i18n.bt28" select="'Nom commercial différent'"/>
|
<xsl:variable name="i18n.bg4" select="'Informations sur le vendeur'"/>
|
||||||
<xsl:variable name="i18n.bt34" select="'Adresse électronique'"/>
|
<xsl:variable name="i18n.bt28" select="'Nom commercial différent'"/>
|
||||||
<xsl:variable name="i18n.bt34-id" select="'Schéma de l''adresse électronique'"/>
|
<xsl:variable name="i18n.bt34" select="'Adresse électronique'"/>
|
||||||
<xsl:variable name="i18n.bt30" select="'Numéro d''enregistrement'"/>
|
<xsl:variable name="i18n.bt34-id" select="'Schéma de l''adresse électronique'"/>
|
||||||
<xsl:variable name="i18n.bt31" select="'Identifiant TVA'"/>
|
<xsl:variable name="i18n.bt30" select="'Numéro d''enregistrement'"/>
|
||||||
<xsl:variable name="i18n.bt32" select="'Numéro fiscale'"/>
|
<xsl:variable name="i18n.bt31" select="'Identifiant TVA'"/>
|
||||||
<xsl:variable name="i18n.bt32-schema" select="'Schéma du numéro fiscal'"/>
|
<xsl:variable name="i18n.bt32" select="'Numéro fiscale'"/>
|
||||||
<xsl:variable name="i18n.bt33" select="'Autres informations légales'"/>
|
<xsl:variable name="i18n.bt32-schema" select="'Schéma du numéro fiscal'"/>
|
||||||
<xsl:variable name="i18n.bt6" select="'Code devise de la TVA'"/>
|
<xsl:variable name="i18n.bt33" select="'Autres informations légales'"/>
|
||||||
<xsl:variable name="i18n.bg11" select="'Représentant fiscal du vendeur'"/>
|
<xsl:variable name="i18n.bt6" select="'Code devise de la TVA'"/>
|
||||||
<xsl:variable name="i18n.bt62" select="'Nom'"/>
|
<xsl:variable name="i18n.bg11" select="'Représentant fiscal du vendeur'"/>
|
||||||
<xsl:variable name="i18n.bt64" select="'Rue / Numéro de maison'"/>
|
<xsl:variable name="i18n.bt62" select="'Nom'"/>
|
||||||
<xsl:variable name="i18n.bt65" select="'Boîte postale'"/>
|
<xsl:variable name="i18n.bt64" select="'Rue / Numéro de maison'"/>
|
||||||
<xsl:variable name="i18n.bt164" select="'Supplément d''adresse'"/>
|
<xsl:variable name="i18n.bt65" select="'Boîte postale'"/>
|
||||||
<xsl:variable name="i18n.bt67" select="'Code postal'"/>
|
<xsl:variable name="i18n.bt164" select="'Supplément d''adresse'"/>
|
||||||
<xsl:variable name="i18n.bt66" select="'Lieu'"/>
|
<xsl:variable name="i18n.bt67" select="'Code postal'"/>
|
||||||
<xsl:variable name="i18n.bt68" select="'Région'"/>
|
<xsl:variable name="i18n.bt66" select="'Lieu'"/>
|
||||||
<xsl:variable name="i18n.bt69" select="'Code pays'"/>
|
<xsl:variable name="i18n.bt68" select="'Région'"/>
|
||||||
<xsl:variable name="i18n.bt63" select="'Identifiant TVA'"/>
|
<xsl:variable name="i18n.bt69" select="'Code pays'"/>
|
||||||
<xsl:variable name="i18n.bg7" select="'Informations sur l''acheteur'"/>
|
<xsl:variable name="i18n.bt63" select="'Identifiant TVA'"/>
|
||||||
<xsl:variable name="i18n.bt45" select="'Nom commercial différent '"/>
|
<xsl:variable name="i18n.bg7" select="'Informations sur l''acheteur'"/>
|
||||||
<xsl:variable name="i18n.bt49" select="'Adresse électronique'"/>
|
<xsl:variable name="i18n.bt45" select="'Nom commercial différent '"/>
|
||||||
<xsl:variable name="i18n.bt49-id" select="'Schéma de l''adresse électronique'"/>
|
<xsl:variable name="i18n.bt49" select="'Adresse électronique'"/>
|
||||||
<xsl:variable name="i18n.bt47" select="'Numéro d''enregistrement'"/>
|
<xsl:variable name="i18n.bt49-id" select="'Schéma de l''adresse électronique'"/>
|
||||||
<xsl:variable name="i18n.bt47-id" select="'Schéma du numéro d''enregistrement'"/>
|
<xsl:variable name="i18n.bt47" select="'Numéro d''enregistrement'"/>
|
||||||
<xsl:variable name="i18n.bt48" select="'Identifiant TVA'"/>
|
<xsl:variable name="i18n.bt47-id" select="'Schéma du numéro d''enregistrement'"/>
|
||||||
<xsl:variable name="i18n.bt7" select="'Date de facturation de la TVA'"/>
|
<xsl:variable name="i18n.bt48" select="'Identifiant TVA'"/>
|
||||||
<xsl:variable name="i18n.bt8" select="'Code de date de règlement de la TVA'"/>
|
<xsl:variable name="i18n.bt7" select="'Date de facturation de la TVA'"/>
|
||||||
<xsl:variable name="i18n.bt19" select="'Informations sur l''attribution de compte'"/>
|
<xsl:variable name="i18n.bt8" select="'Code de date de règlement de la TVA'"/>
|
||||||
<xsl:variable name="i18n.bg13" select="'Informations de livraison'"/>
|
<xsl:variable name="i18n.bt19" select="'Informations sur l''attribution de compte'"/>
|
||||||
<xsl:variable name="i18n.bt71" select="'Identification du lieu de livraison'"/>
|
<xsl:variable name="i18n.bg13" select="'Informations de livraison'"/>
|
||||||
<xsl:variable name="i18n.bt71-id" select="'Schéma de l''Identifiant'"/>
|
<xsl:variable name="i18n.bt71" select="'Identification du lieu de livraison'"/>
|
||||||
<xsl:variable name="i18n.bt72" select="'Date de livraison'"/>
|
<xsl:variable name="i18n.bt71-id" select="'Schéma de l''Identifiant'"/>
|
||||||
<xsl:variable name="i18n.bt70" select="'Nom du destinataire'"/>
|
<xsl:variable name="i18n.bt72" select="'Date de livraison'"/>
|
||||||
<xsl:variable name="i18n.bt75" select="'Rue / Numéro de maison'"/>
|
<xsl:variable name="i18n.bt70" select="'Nom du destinataire'"/>
|
||||||
<xsl:variable name="i18n.bt76" select="'Boîte postale'"/>
|
<xsl:variable name="i18n.bt75" select="'Rue / Numéro de maison'"/>
|
||||||
<xsl:variable name="i18n.bt165" select="'Supplément d''adresse'"/>
|
<xsl:variable name="i18n.bt76" select="'Boîte postale'"/>
|
||||||
<xsl:variable name="i18n.bt78" select="'Code postal'"/>
|
<xsl:variable name="i18n.bt165" select="'Supplément d''adresse'"/>
|
||||||
<xsl:variable name="i18n.bt77" select="'Lieu'"/>
|
<xsl:variable name="i18n.bt78" select="'Code postal'"/>
|
||||||
<xsl:variable name="i18n.bt79" select="'Région'"/>
|
<xsl:variable name="i18n.bt77" select="'Lieu'"/>
|
||||||
<xsl:variable name="i18n.bt80" select="'Pays'"/>
|
<xsl:variable name="i18n.bt79" select="'Région'"/>
|
||||||
<xsl:variable name="i18n.bt17" select="'Numéro d''attribution'"/>
|
<xsl:variable name="i18n.bt80" select="'Pays'"/>
|
||||||
<xsl:variable name="i18n.bt15" select="'Identifiant de l''accusé de réception'"/>
|
<xsl:variable name="i18n.bt17" select="'Numéro d''attribution'"/>
|
||||||
<xsl:variable name="i18n.bt16" select="'Identifiant du bordereau d''expédition'"/>
|
<xsl:variable name="i18n.bt15" select="'Identifiant de l''accusé de réception'"/>
|
||||||
<xsl:variable name="i18n.bt23" select="'Identifiant processus'"/>
|
<xsl:variable name="i18n.bt16" select="'Identifiant du bordereau d''expédition'"/>
|
||||||
<xsl:variable name="i18n.bt24" select="'Identifiant spécification'"/>
|
<xsl:variable name="i18n.btx202" select="'Identifiant du bon de livraison'"/>
|
||||||
<xsl:variable name="i18n.bt18" select="'Identifiant objet'"/>
|
<xsl:variable name="i18n.bt23" select="'Identifiant processus'"/>
|
||||||
<xsl:variable name="i18n.bt18-id" select="'Schéma de l''Identifiant objet'"/>
|
<xsl:variable name="i18n.bt24" select="'Identifiant spécification'"/>
|
||||||
<xsl:variable name="i18n.bg10" select="'bénéficiaire autre que le vendeur'"/>
|
<xsl:variable name="i18n.bt18" select="'Identifiant objet'"/>
|
||||||
<xsl:variable name="i18n.bt59" select="'Nom'"/>
|
<xsl:variable name="i18n.bt18-id" select="'Schéma de l''Identifiant objet'"/>
|
||||||
<xsl:variable name="i18n.bt60" select="'Identifiant'"/>
|
<xsl:variable name="i18n.bg10" select="'bénéficiaire autre que le vendeur'"/>
|
||||||
<xsl:variable name="i18n.bt60-id" select="'Schéma de l''Identifiant'"/>
|
<xsl:variable name="i18n.bt59" select="'Nom'"/>
|
||||||
<xsl:variable name="i18n.bt61" select="'Numéro d''enregistrement'"/>
|
<xsl:variable name="i18n.bt60" select="'Identifiant'"/>
|
||||||
<xsl:variable name="i18n.bt61-id" select="'Schéma du numéro d''enregistrement'"/>
|
<xsl:variable name="i18n.bt60-id" select="'Schéma de l''Identifiant'"/>
|
||||||
<xsl:variable name="i18n.bg24" select="'Documents justificatifs'"/>
|
<xsl:variable name="i18n.bt61" select="'Numéro d''enregistrement'"/>
|
||||||
<xsl:variable name="i18n.bt122" select="'Identifiant'"/>
|
<xsl:variable name="i18n.bt61-id" select="'Schéma du numéro d''enregistrement'"/>
|
||||||
<xsl:variable name="i18n.bt123" select="'Description'"/>
|
<xsl:variable name="i18n.bg24" select="'Documents justificatifs'"/>
|
||||||
<xsl:variable name="i18n.bt124" select="'Référence (par exemple l''adresse Internet)'"/>
|
<xsl:variable name="i18n.bt122" select="'Identifiant'"/>
|
||||||
<xsl:variable name="i18n.bt125" select="'Document joint'"/>
|
<xsl:variable name="i18n.bt123" select="'Description'"/>
|
||||||
<xsl:variable name="i18n.bt125-format" select="'Format du document joint'"/>
|
<xsl:variable name="i18n.bt124" select="'Référence (par exemple l''adresse Internet)'"/>
|
||||||
<xsl:variable name="i18n.bt125-name" select="'Nom du document joint '"/>
|
<xsl:variable name="i18n.bt125" select="'Document joint'"/>
|
||||||
<xsl:variable name="i18n.historyDate" select="'Date/heure'"/>
|
<xsl:variable name="i18n.bt125-format" select="'Format du document joint'"/>
|
||||||
<xsl:variable name="i18n.historySubject" select="'Objet'"/>
|
<xsl:variable name="i18n.bt125-name" select="'Nom du document joint '"/>
|
||||||
<xsl:variable name="i18n.historyText" select="'Texte'"/>
|
<xsl:variable name="i18n.historyDate" select="'Date/heure'"/>
|
||||||
<xsl:variable name="i18n.historyDetails" select="'Détails'"/>
|
<xsl:variable name="i18n.historySubject" select="'Objet'"/>
|
||||||
<xsl:variable name="i18n.payment" select="'Détails de paiement'"/>
|
<xsl:variable name="i18n.historyText" select="'Texte'"/>
|
||||||
<xsl:variable name="i18n.contract_information" select="'Informations sur le contrat'"/>
|
<xsl:variable name="i18n.historyDetails" select="'Détails'"/>
|
||||||
<xsl:variable name="i18n.preceding_invoice_reference" select="'Factures précédentes'"/>
|
<xsl:variable name="i18n.payment" select="'Détails de paiement'"/>
|
||||||
|
<xsl:variable name="i18n.contract_information" select="'Informations sur le contrat'"/>
|
||||||
<xsl:include href="xrechnung-html.univ.xsl"/>
|
<xsl:variable name="i18n.preceding_invoice_reference" select="'Factures précédentes'"/>
|
||||||
|
|
||||||
</xsl:stylesheet>
|
<xsl:include href="xrechnung-html.univ.xsl"/>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
|
|||||||
@@ -1144,17 +1144,29 @@ function downloadData (element_id) {
|
|||||||
<xsl:apply-templates select="./xr:VAT_BREAKDOWN"/>
|
<xsl:apply-templates select="./xr:VAT_BREAKDOWN"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig">
|
<xsl:choose>
|
||||||
<xsl:apply-templates select="./xr:DOCUMENT_LEVEL_ALLOWANCES"/>
|
<xsl:when test="./xr:DOCUMENT_LEVEL_ALLOWANCES">
|
||||||
</div>
|
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig">
|
||||||
|
<xsl:apply-templates select="./xr:DOCUMENT_LEVEL_ALLOWANCES"/>
|
||||||
|
</div>
|
||||||
|
</xsl:when>
|
||||||
|
</xsl:choose>
|
||||||
|
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig">
|
<xsl:choose>
|
||||||
<xsl:apply-templates select="./xr:DOCUMENT_LEVEL_CHARGES"/>
|
<xsl:when test="./xr:DOCUMENT_LEVEL_CHARGES">
|
||||||
</div>
|
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig">
|
||||||
|
<xsl:apply-templates select="./xr:DOCUMENT_LEVEL_CHARGES"/>
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig">
|
</div>
|
||||||
<xsl:apply-templates select="./xr:LOGISTICS_SERVICE_CHARGES"/>
|
</xsl:when>
|
||||||
</div>
|
</xsl:choose>
|
||||||
|
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="./xr:LOGISTICS_SERVICE_CHARGES">
|
||||||
|
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig">
|
||||||
|
<xsl:apply-templates select="./xr:LOGISTICS_SERVICE_CHARGES"/>
|
||||||
|
</div>
|
||||||
|
</xsl:when>
|
||||||
|
</xsl:choose>
|
||||||
|
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig first">
|
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig first">
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
@@ -2182,11 +2194,24 @@ function downloadData (element_id) {
|
|||||||
</div>
|
</div>
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div class="boxdaten legende"><xsl:value-of select="$i18n.bt15"/>:</div>
|
<div class="boxdaten legende"><xsl:value-of select="$i18n.bt15"/>:</div>
|
||||||
<div id="BT-15" title="BT-15" class="boxdaten wert"><xsl:value-of select="xr:Receiving_advice_reference"/></div>
|
<div id="BT-15" title="BT-15" class="boxdaten wert">
|
||||||
|
<xsl:value-of select="xr:Receiving_advice_reference"/>
|
||||||
|
<xsl:if test="xr:Receiving_advice_reference/@bt-x-201"><xsl:value-of select="concat($i18n.dateOf, format-date(xr:Receiving_advice_reference/@bt-x-201,'[D].[M].[Y]'))"/></xsl:if>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div class="boxdaten legende"><xsl:value-of select="$i18n.bt16"/>:</div>
|
<div class="boxdaten legende"><xsl:value-of select="$i18n.bt16"/>:</div>
|
||||||
<div id="BT-16" title="BT-16" class="boxdaten wert"><xsl:value-of select="xr:Despatch_advice_reference"/></div>
|
<div id="BT-16" title="BT-16" class="boxdaten wert">
|
||||||
|
<xsl:value-of select="xr:Despatch_advice_reference"/>
|
||||||
|
<xsl:if test="xr:Despatch_advice_reference/@bt-x-200"><xsl:value-of select="concat($i18n.dateOf, format-date(xr:Despatch_advice_reference/@bt-x-200,'[D].[M].[Y]'))"/></xsl:if>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="boxzeile">
|
||||||
|
<div class="boxdaten legende"><xsl:value-of select="$i18n.btx202"/>:</div>
|
||||||
|
<div id="BT-X-202" title="BT-X-202" class="boxdaten wert">
|
||||||
|
<xsl:value-of select="xr:Delivery_note_reference"/>
|
||||||
|
<xsl:if test="xr:Delivery_note_reference/@bt-x-203"><xsl:value-of select="concat($i18n.dateOf, format-date(xr:Delivery_note_reference/@bt-x-203,'[D].[M].[Y]'))"/></xsl:if>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div class="boxdaten legende"><xsl:value-of select="$i18n.bt23"/>:</div>
|
<div class="boxdaten legende"><xsl:value-of select="$i18n.bt23"/>:</div>
|
||||||
|
|||||||
@@ -22,10 +22,9 @@ package org.mustangproject.ZUGFeRD;
|
|||||||
|
|
||||||
import org.junit.FixMethodOrder;
|
import org.junit.FixMethodOrder;
|
||||||
import org.junit.runners.MethodSorters;
|
import org.junit.runners.MethodSorters;
|
||||||
|
import org.mustangproject.ZUGFeRD.ZUGFeRDVisualizer.Language;
|
||||||
import org.mustangproject.util.ByteArraySearcher;
|
import org.mustangproject.util.ByteArraySearcher;
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
|
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
|
||||||
import javax.xml.transform.TransformerException;
|
import javax.xml.transform.TransformerException;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -40,179 +39,34 @@ public class VisualizationTest extends ResourceCase {
|
|||||||
final String TARGET_PDF_UBL = "./target/testout-Visualization-cii.pdf";
|
final String TARGET_PDF_UBL = "./target/testout-Visualization-cii.pdf";
|
||||||
|
|
||||||
public void testCIIVisualizationBasic() {
|
public void testCIIVisualizationBasic() {
|
||||||
|
this.runZUGFeRDVisualization("factur-x.xml", "factur-x-vis.fr.html", Language.FR);
|
||||||
// the writing part
|
|
||||||
String sourceFilename = "factur-x.xml";
|
|
||||||
File CIIinputFile = getResourceAsFile(sourceFilename);
|
|
||||||
|
|
||||||
String expected = null;
|
|
||||||
String result = null;
|
|
||||||
try {
|
|
||||||
ZUGFeRDVisualizer zvi = new ZUGFeRDVisualizer();
|
|
||||||
/* remove file endings so that tests can also pass after checking
|
|
||||||
out from git with arbitrary options (which may include CSRF changes)
|
|
||||||
*/
|
|
||||||
result = zvi.visualize(CIIinputFile.getAbsolutePath(), ZUGFeRDVisualizer.Language.FR);
|
|
||||||
Files.write(Paths.get("./target/testout-factur-x-vis.fr.html"), result.getBytes(StandardCharsets.UTF_8));
|
|
||||||
result = result
|
|
||||||
.replace("\r", "")
|
|
||||||
.replace("\n", "")
|
|
||||||
.replace("\t", "")
|
|
||||||
.replace(" ", "");
|
|
||||||
|
|
||||||
File expectedResult = getResourceAsFile("factur-x-vis.fr.html");
|
|
||||||
expected = new String(Files.readAllBytes(expectedResult.toPath()), StandardCharsets.UTF_8)
|
|
||||||
.replace("\r", "")
|
|
||||||
.replace("\n", "")
|
|
||||||
.replace("\t", "")
|
|
||||||
.replace(" ", "");
|
|
||||||
// remove linebreaks as well...
|
|
||||||
|
|
||||||
} catch (UnsupportedOperationException e) {
|
|
||||||
fail("UnsupportedOperationException should not happen: " + e.getMessage());
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
fail("IllegalArgumentException should not happen: " + e.getMessage());
|
|
||||||
} catch (TransformerException e) {
|
|
||||||
fail("TransformerException should not happen: " + e.getMessage());
|
|
||||||
} catch (IOException e) {
|
|
||||||
fail("IOException should not happen: " + e.getMessage());
|
|
||||||
} catch (ParserConfigurationException e) {
|
|
||||||
fail("ParserConfigurationException should not happen: " + e.getMessage());
|
|
||||||
} catch (SAXException e) {
|
|
||||||
fail("SAXException should not happen: " + e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
assertNotNull(result);
|
|
||||||
// Reading ZUGFeRD
|
|
||||||
assertEquals(expected, result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testCIIVisualizationExtended() {
|
public void testCIIVisualizationExtended() {
|
||||||
|
this.runZUGFeRDVisualization("factur-x-extended.xml", "factur-x-vis-extended.de.html", Language.DE);
|
||||||
// the writing part
|
|
||||||
String sourceFilename = "factur-x-extended.xml";
|
|
||||||
File CIIinputFile = getResourceAsFile(sourceFilename);
|
|
||||||
|
|
||||||
String expected = null;
|
|
||||||
String result = null;
|
|
||||||
try {
|
|
||||||
ZUGFeRDVisualizer zvi = new ZUGFeRDVisualizer();
|
|
||||||
/* remove file endings so that tests can also pass after checking
|
|
||||||
out from git with arbitrary options (which may include CSRF changes)
|
|
||||||
*/
|
|
||||||
result = zvi.visualize(CIIinputFile.getAbsolutePath(), ZUGFeRDVisualizer.Language.DE);
|
|
||||||
Files.write(Paths.get("./target/testout-factur-x-vis-extended.de.html"), result.getBytes(StandardCharsets.UTF_8));
|
|
||||||
result = result
|
|
||||||
.replace("\r", "")
|
|
||||||
.replace("\n", "")
|
|
||||||
.replace("\t", "")
|
|
||||||
.replace(" ", "");
|
|
||||||
|
|
||||||
File expectedResult = getResourceAsFile("factur-x-vis-extended.de.html");
|
|
||||||
expected = new String(Files.readAllBytes(expectedResult.toPath()), StandardCharsets.UTF_8)
|
|
||||||
.replace("\r", "")
|
|
||||||
.replace("\n", "")
|
|
||||||
.replace("\t", "")
|
|
||||||
.replace(" ", "");
|
|
||||||
// remove linebreaks as well...
|
|
||||||
|
|
||||||
} catch (UnsupportedOperationException e) {
|
|
||||||
fail("UnsupportedOperationException should not happen: " + e.getMessage());
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
fail("IllegalArgumentException should not happen: " + e.getMessage());
|
|
||||||
} catch (TransformerException e) {
|
|
||||||
fail("TransformerException should not happen: " + e.getMessage());
|
|
||||||
} catch (IOException e) {
|
|
||||||
fail("IOException should not happen: " + e.getMessage());
|
|
||||||
} catch (ParserConfigurationException e) {
|
|
||||||
fail("ParserConfigurationException should not happen: " + e.getMessage());
|
|
||||||
} catch (SAXException e) {
|
|
||||||
fail("SAXException should not happen: " + e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
assertNotNull(result);
|
|
||||||
// Reading ZUGFeRD
|
|
||||||
assertEquals(expected, result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testUBLCreditNoteVisualizationBasic() {
|
public void testUBLCreditNoteVisualizationBasic() {
|
||||||
|
this.runZUGFeRDVisualization("ubl-creditnote.xml", "factur-x-vis-ubl-creditnote.en.html", Language.EN);
|
||||||
// the writing part
|
|
||||||
File UBLinputFile = getResourceAsFile("ubl-creditnote.xml");
|
|
||||||
|
|
||||||
String expected = null;
|
|
||||||
String result = null;
|
|
||||||
try {
|
|
||||||
ZUGFeRDVisualizer zvi = new ZUGFeRDVisualizer();
|
|
||||||
/* remove file endings so that tests can also pass after checking
|
|
||||||
out from git with arbitrary options (which may include CSRF changes)
|
|
||||||
*/
|
|
||||||
result = zvi.visualize(UBLinputFile.getAbsolutePath(), ZUGFeRDVisualizer.Language.EN);
|
|
||||||
Files.write(Paths.get("./target/testout-factur-x-vis-ubl-creditnote.en.html"), result.getBytes(StandardCharsets.UTF_8));
|
|
||||||
result = result
|
|
||||||
.replace("\r", "")
|
|
||||||
.replace("\n", "")
|
|
||||||
.replace("\t", "")
|
|
||||||
.replace(" ", "");
|
|
||||||
|
|
||||||
File expectedResult = getResourceAsFile("factur-x-vis-ubl-creditnote.en.html");
|
|
||||||
expected = new String(Files.readAllBytes(expectedResult.toPath()), StandardCharsets.UTF_8)
|
|
||||||
.replace("\r", "")
|
|
||||||
.replace("\n", "")
|
|
||||||
.replace("\t", "")
|
|
||||||
.replace(" ", "");
|
|
||||||
// remove linebreaks as well...
|
|
||||||
|
|
||||||
} catch (UnsupportedOperationException e) {
|
|
||||||
fail("UnsupportedOperationException should not happen: " + e.getMessage());
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
fail("IllegalArgumentException should not happen: " + e.getMessage());
|
|
||||||
} catch (TransformerException e) {
|
|
||||||
fail("TransformerException should not happen: " + e.getMessage());
|
|
||||||
} catch (IOException e) {
|
|
||||||
fail("IOException should not happen: " + e.getMessage());
|
|
||||||
} catch (ParserConfigurationException e) {
|
|
||||||
fail("ParserConfigurationException should not happen: " + e.getMessage());
|
|
||||||
} catch (SAXException e) {
|
|
||||||
fail("SAXException should not happen: " + e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
assertNotNull(result);
|
|
||||||
// Reading ZUGFeRD
|
|
||||||
assertEquals(expected, result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void testUBLVisualizationBasic() {
|
public void testUBLVisualizationBasic() {
|
||||||
|
this.runZUGFeRDVisualization("ubl/01.01a-INVOICE.ubl.xml", "factur-x-vis-ubl.en.html", Language.EN);
|
||||||
|
}
|
||||||
|
|
||||||
// the writing part
|
private void runZUGFeRDVisualization(String inputFilename, String resultFileName, Language lang) {
|
||||||
File UBLinputFile = getResourceAsFile("ubl/01.01a-INVOICE.ubl.xml");
|
File CIIinputFile = getResourceAsFile(inputFilename);
|
||||||
|
|
||||||
String expected = null;
|
String expected = null;
|
||||||
String result = null;
|
String result = null;
|
||||||
try {
|
try {
|
||||||
ZUGFeRDVisualizer zvi = new ZUGFeRDVisualizer();
|
ZUGFeRDVisualizer zvi = new ZUGFeRDVisualizer();
|
||||||
/* remove file endings so that tests can also pass after checking
|
result = zvi.visualize(CIIinputFile.getAbsolutePath(), lang);
|
||||||
out from git with arbitrary options (which may include CSRF changes)
|
Files.write(Paths.get("./target/testout-" + resultFileName), result.getBytes(StandardCharsets.UTF_8));
|
||||||
*/
|
|
||||||
result = zvi.visualize(UBLinputFile.getAbsolutePath(), ZUGFeRDVisualizer.Language.EN);
|
|
||||||
Files.write(Paths.get("./target/testout-factur-x-vis-ubl.en.html"), result.getBytes(StandardCharsets.UTF_8));
|
|
||||||
result = result
|
|
||||||
.replace("\r", "")
|
|
||||||
.replace("\n", "")
|
|
||||||
.replace("\t", "")
|
|
||||||
.replace(" ", "");
|
|
||||||
|
|
||||||
File expectedResult = getResourceAsFile("factur-x-vis-ubl.en.html");
|
File expectedResult = getResourceAsFile(resultFileName);
|
||||||
expected = new String(Files.readAllBytes(expectedResult.toPath()), StandardCharsets.UTF_8)
|
expected = new String(Files.readAllBytes(expectedResult.toPath()), StandardCharsets.UTF_8)
|
||||||
.replace("\r", "")
|
;
|
||||||
.replace("\n", "")
|
|
||||||
.replace("\t", "")
|
|
||||||
.replace(" ", "");
|
|
||||||
// remove linebreaks as well...
|
|
||||||
|
|
||||||
} catch (UnsupportedOperationException e) {
|
} catch (UnsupportedOperationException e) {
|
||||||
fail("UnsupportedOperationException should not happen: " + e.getMessage());
|
fail("UnsupportedOperationException should not happen: " + e.getMessage());
|
||||||
@@ -222,16 +76,20 @@ public class VisualizationTest extends ResourceCase {
|
|||||||
fail("TransformerException should not happen: " + e.getMessage());
|
fail("TransformerException should not happen: " + e.getMessage());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
fail("IOException should not happen: " + e.getMessage());
|
fail("IOException should not happen: " + e.getMessage());
|
||||||
} catch (ParserConfigurationException e) {
|
|
||||||
fail("ParserConfigurationException should not happen: " + e.getMessage());
|
|
||||||
} catch (SAXException e) {
|
|
||||||
fail("SAXException should not happen: " + e.getMessage());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
assertNotNull(result);
|
assertNotNull(result);
|
||||||
// Reading ZUGFeRD
|
/* remove file endings so that tests can also pass after checking
|
||||||
assertEquals(expected, result);
|
out from git with arbitrary options (which may include CSRF changes)
|
||||||
|
*/
|
||||||
|
assertEquals(expected.replace("\r", "")
|
||||||
|
.replace("\n", "")
|
||||||
|
.replace("\t", "")
|
||||||
|
.replace(" ", ""), result.replace("\r", "")
|
||||||
|
.replace("\n", "")
|
||||||
|
.replace("\t", "")
|
||||||
|
.replace(" ", ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testPDFVisualizationCII() {
|
public void testPDFVisualizationCII() {
|
||||||
|
|||||||
@@ -542,7 +542,7 @@ public class ZF2PushTest extends TestCase {
|
|||||||
.addAllowance(new Allowance(new BigDecimal(0.2)).setReason("discount").setTaxPercent(new BigDecimal(16)))
|
.addAllowance(new Allowance(new BigDecimal(0.2)).setReason("discount").setTaxPercent(new BigDecimal(16)))
|
||||||
.addCashDiscount(new CashDiscount(new BigDecimal(2), 14))
|
.addCashDiscount(new CashDiscount(new BigDecimal(2), 14))
|
||||||
.setDeliveryDate(sdf.parse("2020-11-02")).setNumber(number).setVATDueDateTypeCode(EventTimeCodeTypeConstants.PAYMENT_DATE)
|
.setDeliveryDate(sdf.parse("2020-11-02")).setNumber(number).setVATDueDateTypeCode(EventTimeCodeTypeConstants.PAYMENT_DATE)
|
||||||
.setInvoiceReferencedDocumentID("abc123")
|
.setInvoiceReferencedDocumentID("abc123").addInvoiceReferencedDocument(new ReferencedDocument("abcd1234"))
|
||||||
);
|
);
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -587,6 +587,8 @@ public class ZF2PushTest extends TestCase {
|
|||||||
Invoice i = zii.extractInvoice();
|
Invoice i = zii.extractInvoice();
|
||||||
|
|
||||||
assertEquals("abc123", i.getInvoiceReferencedDocumentID());
|
assertEquals("abc123", i.getInvoiceReferencedDocumentID());
|
||||||
|
assertEquals(1, i.getInvoiceReferencedDocuments().size());
|
||||||
|
assertEquals("abcd1234", i.getInvoiceReferencedDocuments().get(0).getIssuerAssignedID());
|
||||||
assertEquals("4304171000002", i.getRecipient().getGlobalID());
|
assertEquals("4304171000002", i.getRecipient().getGlobalID());
|
||||||
assertEquals("2001015001325", i.getZFItems()[0].getProduct().getGlobalID());
|
assertEquals("2001015001325", i.getZFItems()[0].getProduct().getGlobalID());
|
||||||
assertEquals(orgID, i.getSender().getID());
|
assertEquals(orgID, i.getSender().getID());
|
||||||
|
|||||||
@@ -466,4 +466,12 @@ public class ZF2ZInvoiceImporterTest extends ResourceCase {
|
|||||||
assertFalse(invoice.getZFItems()[0].getNotes() == null);
|
assertFalse(invoice.getZFItems()[0].getNotes() == null);
|
||||||
assertEquals(1, invoice.getZFItems()[0].getNotes().length);
|
assertEquals(1, invoice.getZFItems()[0].getNotes().length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testImportXRechnungWithoutCalculationErrors() throws FileNotFoundException, XPathExpressionException, ParseException {
|
||||||
|
File inputFile = getResourceAsFile("cii/02.03a-INVOICE_uncefact.xml");
|
||||||
|
ZUGFeRDInvoiceImporter zii = new ZUGFeRDInvoiceImporter(new FileInputStream(inputFile));
|
||||||
|
|
||||||
|
assertEquals("0", zii.importedInvoice.getDuePayable().toPlainString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
309
library/src/test/resources/cii/02.03a-INVOICE_uncefact.xml
Normal file
309
library/src/test/resources/cii/02.03a-INVOICE_uncefact.xml
Normal file
File diff suppressed because one or more lines are too long
@@ -1,427 +1,430 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!-- English disclaimer below.-->
|
<!-- English disclaimer below.-->
|
||||||
<!--Nutzungsrechte
|
<!--Nutzungsrechte
|
||||||
ZUGFeRD Datenformat Version 2.3.0, 18.09.2024
|
ZUGFeRD Datenformat Version 2.3.0, 18.09.2024
|
||||||
Beispiel Version 18.09.2024
|
Beispiel Version 18.09.2024
|
||||||
|
|
||||||
Zweck des Forums elektronisch Rechnung Deutschland, welches am 31. März 2010 unter der Arbeitsgemeinschaft für
|
Zweck des Forums elektronisch Rechnung Deutschland, welches am 31. März 2010 unter der Arbeitsgemeinschaft für
|
||||||
wirtschaftliche Verwaltung e. V. gegründet wurde, ist u. a. die Schaffung und Spezifizierung eines offenen Datenformats
|
wirtschaftliche Verwaltung e. V. gegründet wurde, ist u. a. die Schaffung und Spezifizierung eines offenen Datenformats
|
||||||
für strukturierten elektronischen Datenaustausch auf der Grundlage offener und nicht diskriminierender, standardisierter
|
für strukturierten elektronischen Datenaustausch auf der Grundlage offener und nicht diskriminierender, standardisierter
|
||||||
Technologien („ZUGFeRD Datenformat“).
|
Technologien („ZUGFeRD Datenformat“).
|
||||||
|
|
||||||
Das ZUGFeRD Datenformat wird nach Maßgabe des FeRD sowohl Unternehmen als auch der öffentlichen Verwaltung
|
Das ZUGFeRD Datenformat wird nach Maßgabe des FeRD sowohl Unternehmen als auch der öffentlichen Verwaltung
|
||||||
frei zugänglich gemacht. Hierfür bietet FeRD allen Unternehmen und Organisationen der öffentlichen Verwaltung eine
|
frei zugänglich gemacht. Hierfür bietet FeRD allen Unternehmen und Organisationen der öffentlichen Verwaltung eine
|
||||||
Lizenz für die Nutzung des urheberrechtlich geschützten ZUGFeRD-Datenformats zu fairen, sachgerechten und nicht
|
Lizenz für die Nutzung des urheberrechtlich geschützten ZUGFeRD-Datenformats zu fairen, sachgerechten und nicht
|
||||||
diskriminierenden Bedingungen an.
|
diskriminierenden Bedingungen an.
|
||||||
|
|
||||||
Die Spezifikation des FeRD zur Implementierung des ZUGFeRD Datenformats ist in ihrer jeweils geltenden Fassung
|
Die Spezifikation des FeRD zur Implementierung des ZUGFeRD Datenformats ist in ihrer jeweils geltenden Fassung
|
||||||
abrufbar unter www.ferd-net.de.
|
abrufbar unter www.ferd-net.de.
|
||||||
|
|
||||||
Im Einzelnen schließt die Nutzungsgewährung ein:
|
Im Einzelnen schließt die Nutzungsgewährung ein:
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
FeRD räumt eine Lizenz für die Nutzung des urheberrechtlich geschützten ZUGFeRD Datenformats in der jeweils
|
FeRD räumt eine Lizenz für die Nutzung des urheberrechtlich geschützten ZUGFeRD Datenformats in der jeweils
|
||||||
geltenden und akzeptierten Fassung (www.ferd-net.de) ein.
|
geltenden und akzeptierten Fassung (www.ferd-net.de) ein.
|
||||||
Die Lizenz beinhaltet ein unwiderrufliches Nutzungsrecht einschließlich des Rechts der Weiterentwicklung,
|
Die Lizenz beinhaltet ein unwiderrufliches Nutzungsrecht einschließlich des Rechts der Weiterentwicklung,
|
||||||
Weiterbearbeitung und Verbindung mit anderen Produkten.
|
Weiterbearbeitung und Verbindung mit anderen Produkten.
|
||||||
Die Lizenz gilt insbesondere für die Entwicklung, die Gestaltung, die Herstellung, den Verkauf, die Nutzung oder
|
Die Lizenz gilt insbesondere für die Entwicklung, die Gestaltung, die Herstellung, den Verkauf, die Nutzung oder
|
||||||
anderweitige Verwendung des ZUGFeRD Datenformats für Hardware- und/oder Softwareprodukte sowie sonstige
|
anderweitige Verwendung des ZUGFeRD Datenformats für Hardware- und/oder Softwareprodukte sowie sonstige
|
||||||
Anwendungen und Dienste.
|
Anwendungen und Dienste.
|
||||||
Diese Lizenz schließt nicht die wesentlichen Patente der Mitglieder von FeRD ein. Als wesentliche Patente sind Patente
|
Diese Lizenz schließt nicht die wesentlichen Patente der Mitglieder von FeRD ein. Als wesentliche Patente sind Patente
|
||||||
und Patentanmeldungen weltweit zu verstehen, die einen oder mehrere Patentansprüche beinhalten, bei denen es sich um
|
und Patentanmeldungen weltweit zu verstehen, die einen oder mehrere Patentansprüche beinhalten, bei denen es sich um
|
||||||
notwendige Ansprüche handelt. Notwendige Ansprüche sind lediglich jene Ansprüche der Wesentlichen Patente, die durch
|
notwendige Ansprüche handelt. Notwendige Ansprüche sind lediglich jene Ansprüche der Wesentlichen Patente, die durch
|
||||||
die Implementierung des ZUGFeRD Datenformats notwendigerweise verletzt würden.
|
die Implementierung des ZUGFeRD Datenformats notwendigerweise verletzt würden.
|
||||||
Der Lizenznehmer ist berechtigt, seinen jeweiligen Konzerngesellschaften ein unbefristetes, weltweites, nicht übertragbares,
|
Der Lizenznehmer ist berechtigt, seinen jeweiligen Konzerngesellschaften ein unbefristetes, weltweites, nicht übertragbares,
|
||||||
unwiderrufliches Nutzungsrecht einschließlich des Rechts der Weiterentwicklung, Weiterbearbeitung und Verbindung mit
|
unwiderrufliches Nutzungsrecht einschließlich des Rechts der Weiterentwicklung, Weiterbearbeitung und Verbindung mit
|
||||||
anderen Produkten einzuräumen.
|
anderen Produkten einzuräumen.
|
||||||
|
|
||||||
Die Lizenz wird kostenfrei zur Verfügung gestellt.
|
Die Lizenz wird kostenfrei zur Verfügung gestellt.
|
||||||
|
|
||||||
Außer im Falle vorsätzlichen Verschuldens oder grober Fahrlässigkeit haftet FeRD weder für Nutzungsausfall, entgangenen
|
Außer im Falle vorsätzlichen Verschuldens oder grober Fahrlässigkeit haftet FeRD weder für Nutzungsausfall, entgangenen
|
||||||
Gewinn, Datenverlust, Kommunikationsverlust, Einnahmeausfall, Vertragseinbußen, Geschäftsausfall oder für Kosten,
|
Gewinn, Datenverlust, Kommunikationsverlust, Einnahmeausfall, Vertragseinbußen, Geschäftsausfall oder für Kosten,
|
||||||
Schäden, Verluste oder Haftpflichten im Zusammenhang mit einer Unterbrechung der Geschäftstätigkeit, noch für konkrete,
|
Schäden, Verluste oder Haftpflichten im Zusammenhang mit einer Unterbrechung der Geschäftstätigkeit, noch für konkrete,
|
||||||
beiläufig entstandene, mittelbare Schäden, Straf- oder Folgeschäden und zwar auch dann nicht, wenn die Möglichkeit der
|
beiläufig entstandene, mittelbare Schäden, Straf- oder Folgeschäden und zwar auch dann nicht, wenn die Möglichkeit der
|
||||||
Kosten, Verluste bzw. Schäden hätte normalerweise vorhergesehen werden können.-->
|
Kosten, Verluste bzw. Schäden hätte normalerweise vorhergesehen werden können.-->
|
||||||
|
|
||||||
<!--Right of use
|
<!--Right of use
|
||||||
ZUGFeRD Data format version 2.3.0, September 18th, 2024
|
ZUGFeRD Data format version 2.3.0, September 18th, 2024
|
||||||
|
|
||||||
The purpose of the Forum elektronische Rechnung Deutschland (FeRD), which was founded on March 31, 2010 under the
|
The purpose of the Forum elektronische Rechnung Deutschland (FeRD), which was founded on March 31, 2010 under the
|
||||||
umbrella of Arbeitsgemeinschaft für wirtschaftliche Verwaltung e. V., is, among other things, to create and specify an
|
umbrella of Arbeitsgemeinschaft für wirtschaftliche Verwaltung e. V., is, among other things, to create and specify an
|
||||||
open data format for structured electronic data exchange on the basis of open and non discriminatory, standardised
|
open data format for structured electronic data exchange on the basis of open and non discriminatory, standardised
|
||||||
technologies ("ZUGFeRD data format").
|
technologies ("ZUGFeRD data format").
|
||||||
|
|
||||||
The ZUGFeRD data format is used by both companies and public administration according to the FeRD
|
The ZUGFeRD data format is used by both companies and public administration according to the FeRD
|
||||||
made freely accessible. For this purpose FeRD offers all companies and organisations of the public administration a
|
made freely accessible. For this purpose FeRD offers all companies and organisations of the public administration a
|
||||||
License to use the copyrighted ZUGFeRD data format in a fair, appropriate and non
|
License to use the copyrighted ZUGFeRD data format in a fair, appropriate and non
|
||||||
discriminatory conditions.
|
discriminatory conditions.
|
||||||
|
|
||||||
The specification of the FeRD for the implementation of the ZUGFeRD data format is, in its currently valid version
|
The specification of the FeRD for the implementation of the ZUGFeRD data format is, in its currently valid version
|
||||||
available at www.ferd-net.de.
|
available at www.ferd-net.de.
|
||||||
|
|
||||||
In detail, the grant of use includes
|
In detail, the grant of use includes
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
FeRD grants a license for the use of the copyrighted ZUGFeRD data format in the respective
|
FeRD grants a license for the use of the copyrighted ZUGFeRD data format in the respective
|
||||||
valid and accepted version (www.ferd-net.de).
|
valid and accepted version (www.ferd-net.de).
|
||||||
The license includes an irrevocable right of use including the right of further development,
|
The license includes an irrevocable right of use including the right of further development,
|
||||||
Further processing and connection with other products.
|
Further processing and connection with other products.
|
||||||
The license applies in particular to the development, design, production, sale, use or
|
The license applies in particular to the development, design, production, sale, use or
|
||||||
other use of the ZUGFeRD data format for hardware and/or software products and other
|
other use of the ZUGFeRD data format for hardware and/or software products and other
|
||||||
applications and services.
|
applications and services.
|
||||||
This license does not include the essential patents of the members of FeRD. The essential patents are patents
|
This license does not include the essential patents of the members of FeRD. The essential patents are patents
|
||||||
and patent applications worldwide which contain one or more claims that are
|
and patent applications worldwide which contain one or more claims that are
|
||||||
necessary claims. Necessary claims are only those claims of the essential patents which are
|
necessary claims. Necessary claims are only those claims of the essential patents which are
|
||||||
the implementation of the ZUGFeRD data format would necessarily be violated.
|
the implementation of the ZUGFeRD data format would necessarily be violated.
|
||||||
The Licensee is entitled to provide its respective group companies with an unlimited, worldwide, non-transferable,
|
The Licensee is entitled to provide its respective group companies with an unlimited, worldwide, non-transferable,
|
||||||
irrevocable right of use including the right of further development, further processing and connection with
|
irrevocable right of use including the right of further development, further processing and connection with
|
||||||
other products.
|
other products.
|
||||||
|
|
||||||
The license is provided free of charge.
|
The license is provided free of charge.
|
||||||
|
|
||||||
Except in the case of intentional fault or gross negligence, FeRD is not liable for loss of use, loss of
|
Except in the case of intentional fault or gross negligence, FeRD is not liable for loss of use, loss of
|
||||||
Profit, loss of data, loss of communication, loss of revenue, loss of contracts, loss of business or for costs
|
Profit, loss of data, loss of communication, loss of revenue, loss of contracts, loss of business or for costs
|
||||||
damages, losses or liabilities in connection with an interruption of business, nor for concrete,
|
damages, losses or liabilities in connection with an interruption of business, nor for concrete,
|
||||||
incidental, indirect, punitive or consequential damages, even if the possibility of
|
incidental, indirect, punitive or consequential damages, even if the possibility of
|
||||||
costs, losses or damages could normally have been foreseen.-->
|
costs, losses or damages could normally have been foreseen.-->
|
||||||
|
|
||||||
<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
|
<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
|
||||||
<rsm:ExchangedDocumentContext>
|
<rsm:ExchangedDocumentContext>
|
||||||
<ram:TestIndicator>
|
<ram:TestIndicator>
|
||||||
<udt:Indicator>true</udt:Indicator>
|
<udt:Indicator>true</udt:Indicator>
|
||||||
</ram:TestIndicator>
|
</ram:TestIndicator>
|
||||||
<ram:GuidelineSpecifiedDocumentContextParameter>
|
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
<ram:ID>urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended</ram:ID>
|
<ram:ID>urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended</ram:ID>
|
||||||
</ram:GuidelineSpecifiedDocumentContextParameter>
|
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||||
</rsm:ExchangedDocumentContext>
|
</rsm:ExchangedDocumentContext>
|
||||||
<rsm:ExchangedDocument>
|
<rsm:ExchangedDocument>
|
||||||
<ram:ID>KR87654321012</ram:ID>
|
<ram:ID>KR87654321012</ram:ID>
|
||||||
<ram:Name>KOSTENRECHNUNG</ram:Name>
|
<ram:Name>KOSTENRECHNUNG</ram:Name>
|
||||||
<ram:TypeCode>380</ram:TypeCode>
|
<ram:TypeCode>380</ram:TypeCode>
|
||||||
<ram:IssueDateTime>
|
<ram:IssueDateTime>
|
||||||
<udt:DateTimeString format="102">20241115</udt:DateTimeString>
|
<udt:DateTimeString format="102">20241115</udt:DateTimeString>
|
||||||
</ram:IssueDateTime>
|
</ram:IssueDateTime>
|
||||||
<ram:IncludedNote>
|
<ram:IncludedNote>
|
||||||
<ram:ContentCode>ST3</ram:ContentCode>
|
<ram:ContentCode>ST3</ram:ContentCode>
|
||||||
<ram:Content>Es bestehen Rabatt- oder Bonusvereinbarungen.</ram:Content>
|
<ram:Content>Es bestehen Rabatt- oder Bonusvereinbarungen.</ram:Content>
|
||||||
<ram:SubjectCode>AAK</ram:SubjectCode>
|
<ram:SubjectCode>AAK</ram:SubjectCode>
|
||||||
</ram:IncludedNote>
|
</ram:IncludedNote>
|
||||||
<ram:IncludedNote>
|
<ram:IncludedNote>
|
||||||
<ram:ContentCode>EEV</ram:ContentCode>
|
<ram:ContentCode>EEV</ram:ContentCode>
|
||||||
<ram:Content>Der Verkäufer bleibt Eigentümer der Waren bis zur vollständigen Erfüllung der Kaufpreisforderung.</ram:Content>
|
<ram:Content>Der Verkäufer bleibt Eigentümer der Waren bis zur vollständigen Erfüllung der Kaufpreisforderung.</ram:Content>
|
||||||
<ram:SubjectCode>AAJ</ram:SubjectCode>
|
<ram:SubjectCode>AAJ</ram:SubjectCode>
|
||||||
</ram:IncludedNote>
|
</ram:IncludedNote>
|
||||||
<ram:IncludedNote>
|
<ram:IncludedNote>
|
||||||
<ram:Content>MUSTERLIEFERANT GMBH
|
<ram:Content>MUSTERLIEFERANT GMBH
|
||||||
BAHNHOFSTRASSE 99
|
BAHNHOFSTRASSE 99
|
||||||
99199 MUSTERHAUSEN
|
99199 MUSTERHAUSEN
|
||||||
Geschäftsführung:
|
Geschäftsführung:
|
||||||
Max Mustermann
|
Max Mustermann
|
||||||
USt-IdNr: DE123456789
|
USt-IdNr: DE123456789
|
||||||
Telefon: +49 932 431 0
|
Telefon: +49 932 431 0
|
||||||
www.musterlieferant.de
|
www.musterlieferant.de
|
||||||
HRB Nr. 372876
|
HRB Nr. 372876
|
||||||
Amtsgericht Musterstadt
|
Amtsgericht Musterstadt
|
||||||
GLN 4304171000002
|
GLN 4304171000002
|
||||||
</ram:Content>
|
</ram:Content>
|
||||||
<ram:SubjectCode>REG</ram:SubjectCode>
|
<ram:SubjectCode>REG</ram:SubjectCode>
|
||||||
</ram:IncludedNote>
|
</ram:IncludedNote>
|
||||||
</rsm:ExchangedDocument>
|
</rsm:ExchangedDocument>
|
||||||
<rsm:SupplyChainTradeTransaction>
|
<rsm:SupplyChainTradeTransaction>
|
||||||
<ram:IncludedSupplyChainTradeLineItem>
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
<ram:AssociatedDocumentLineDocument>
|
<ram:AssociatedDocumentLineDocument>
|
||||||
<ram:LineID>1</ram:LineID>
|
<ram:LineID>1</ram:LineID>
|
||||||
</ram:AssociatedDocumentLineDocument>
|
</ram:AssociatedDocumentLineDocument>
|
||||||
<ram:SpecifiedTradeProduct>
|
<ram:SpecifiedTradeProduct>
|
||||||
<ram:GlobalID schemeID="0088">4123456000014</ram:GlobalID>
|
<ram:GlobalID schemeID="0088">4123456000014</ram:GlobalID>
|
||||||
<ram:SellerAssignedID>WA997</ram:SellerAssignedID>
|
<ram:SellerAssignedID>WA997</ram:SellerAssignedID>
|
||||||
<ram:Name>Wirkarbeit HT</ram:Name>
|
<ram:Name>Wirkarbeit HT</ram:Name>
|
||||||
<ram:ApplicableProductCharacteristic>
|
<ram:ApplicableProductCharacteristic>
|
||||||
<ram:Description>Zählpunkt</ram:Description>
|
<ram:Description>Zählpunkt</ram:Description>
|
||||||
<ram:Value>DE0001346484600000000000000100038</ram:Value>
|
<ram:Value>DE0001346484600000000000000100038</ram:Value>
|
||||||
</ram:ApplicableProductCharacteristic>
|
</ram:ApplicableProductCharacteristic>
|
||||||
</ram:SpecifiedTradeProduct>
|
</ram:SpecifiedTradeProduct>
|
||||||
<ram:SpecifiedLineTradeAgreement>
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
<ram:GrossPriceProductTradePrice>
|
<ram:GrossPriceProductTradePrice>
|
||||||
<ram:ChargeAmount>0.0520</ram:ChargeAmount>
|
<ram:ChargeAmount>0.0520</ram:ChargeAmount>
|
||||||
</ram:GrossPriceProductTradePrice>
|
</ram:GrossPriceProductTradePrice>
|
||||||
<ram:NetPriceProductTradePrice>
|
<ram:NetPriceProductTradePrice>
|
||||||
<ram:ChargeAmount>0.0520</ram:ChargeAmount>
|
<ram:ChargeAmount>0.0520</ram:ChargeAmount>
|
||||||
</ram:NetPriceProductTradePrice>
|
</ram:NetPriceProductTradePrice>
|
||||||
</ram:SpecifiedLineTradeAgreement>
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
<ram:SpecifiedLineTradeDelivery>
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
<ram:BilledQuantity unitCode="KWH">1000.0000</ram:BilledQuantity>
|
<ram:BilledQuantity unitCode="KWH">1000.0000</ram:BilledQuantity>
|
||||||
</ram:SpecifiedLineTradeDelivery>
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
<ram:SpecifiedLineTradeSettlement>
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
<ram:ApplicableTradeTax>
|
<ram:ApplicableTradeTax>
|
||||||
<ram:TypeCode>VAT</ram:TypeCode>
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
<ram:CategoryCode>S</ram:CategoryCode>
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
||||||
</ram:ApplicableTradeTax>
|
</ram:ApplicableTradeTax>
|
||||||
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
<ram:LineTotalAmount>52.00</ram:LineTotalAmount>
|
<ram:LineTotalAmount>52.00</ram:LineTotalAmount>
|
||||||
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
</ram:SpecifiedLineTradeSettlement>
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
</ram:IncludedSupplyChainTradeLineItem>
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
<ram:IncludedSupplyChainTradeLineItem>
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
<ram:AssociatedDocumentLineDocument>
|
<ram:AssociatedDocumentLineDocument>
|
||||||
<ram:LineID>2</ram:LineID>
|
<ram:LineID>2</ram:LineID>
|
||||||
</ram:AssociatedDocumentLineDocument>
|
</ram:AssociatedDocumentLineDocument>
|
||||||
<ram:SpecifiedTradeProduct>
|
<ram:SpecifiedTradeProduct>
|
||||||
<ram:GlobalID schemeID="0088">4123456000021</ram:GlobalID>
|
<ram:GlobalID schemeID="0088">4123456000021</ram:GlobalID>
|
||||||
<ram:SellerAssignedID>ÖST250</ram:SellerAssignedID>
|
<ram:SellerAssignedID>ÖST250</ram:SellerAssignedID>
|
||||||
<ram:Name>Ökosteuer Lieferant</ram:Name>
|
<ram:Name>Ökosteuer Lieferant</ram:Name>
|
||||||
</ram:SpecifiedTradeProduct>
|
</ram:SpecifiedTradeProduct>
|
||||||
<ram:SpecifiedLineTradeAgreement>
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
<ram:GrossPriceProductTradePrice>
|
<ram:GrossPriceProductTradePrice>
|
||||||
<ram:ChargeAmount>0.0205</ram:ChargeAmount>
|
<ram:ChargeAmount>0.0205</ram:ChargeAmount>
|
||||||
</ram:GrossPriceProductTradePrice>
|
</ram:GrossPriceProductTradePrice>
|
||||||
<ram:NetPriceProductTradePrice>
|
<ram:NetPriceProductTradePrice>
|
||||||
<ram:ChargeAmount>0.0205</ram:ChargeAmount>
|
<ram:ChargeAmount>0.0205</ram:ChargeAmount>
|
||||||
</ram:NetPriceProductTradePrice>
|
</ram:NetPriceProductTradePrice>
|
||||||
</ram:SpecifiedLineTradeAgreement>
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
<ram:SpecifiedLineTradeDelivery>
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
<ram:BilledQuantity unitCode="KWH">1000.0000</ram:BilledQuantity>
|
<ram:BilledQuantity unitCode="KWH">1000.0000</ram:BilledQuantity>
|
||||||
</ram:SpecifiedLineTradeDelivery>
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
<ram:SpecifiedLineTradeSettlement>
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
<ram:ApplicableTradeTax>
|
<ram:ApplicableTradeTax>
|
||||||
<ram:TypeCode>VAT</ram:TypeCode>
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
<ram:CategoryCode>S</ram:CategoryCode>
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
||||||
</ram:ApplicableTradeTax>
|
</ram:ApplicableTradeTax>
|
||||||
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
<ram:LineTotalAmount>20.50</ram:LineTotalAmount>
|
<ram:LineTotalAmount>20.50</ram:LineTotalAmount>
|
||||||
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
</ram:SpecifiedLineTradeSettlement>
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
</ram:IncludedSupplyChainTradeLineItem>
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
<ram:IncludedSupplyChainTradeLineItem>
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
<ram:AssociatedDocumentLineDocument>
|
<ram:AssociatedDocumentLineDocument>
|
||||||
<ram:LineID>3</ram:LineID>
|
<ram:LineID>3</ram:LineID>
|
||||||
</ram:AssociatedDocumentLineDocument>
|
</ram:AssociatedDocumentLineDocument>
|
||||||
<ram:SpecifiedTradeProduct>
|
<ram:SpecifiedTradeProduct>
|
||||||
<ram:GlobalID schemeID="0088">4260331811362</ram:GlobalID>
|
<ram:GlobalID schemeID="0088">4260331811362</ram:GlobalID>
|
||||||
<ram:Name>Kommissionierer 1250032 D. Muster</ram:Name>
|
<ram:Name>Kommissionierer 1250032 D. Muster</ram:Name>
|
||||||
<ram:Description>Besteller: Hr. Mayer, Personalnr. 4488</ram:Description>
|
<ram:Description>Besteller: Hr. Mayer, Personalnr. 4488</ram:Description>
|
||||||
</ram:SpecifiedTradeProduct>
|
</ram:SpecifiedTradeProduct>
|
||||||
<ram:SpecifiedLineTradeAgreement>
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
<ram:GrossPriceProductTradePrice>
|
<ram:GrossPriceProductTradePrice>
|
||||||
<ram:ChargeAmount>15.0000</ram:ChargeAmount>
|
<ram:ChargeAmount>15.0000</ram:ChargeAmount>
|
||||||
<ram:AppliedTradeAllowanceCharge>
|
<ram:AppliedTradeAllowanceCharge>
|
||||||
<ram:ChargeIndicator>
|
<ram:ChargeIndicator>
|
||||||
<udt:Indicator>false</udt:Indicator>
|
<udt:Indicator>false</udt:Indicator>
|
||||||
</ram:ChargeIndicator>
|
</ram:ChargeIndicator>
|
||||||
<ram:ActualAmount>4.50</ram:ActualAmount>
|
<ram:ActualAmount>4.50</ram:ActualAmount>
|
||||||
<ram:Reason>Artikelrabatt 1</ram:Reason>
|
<ram:Reason>Artikelrabatt 1</ram:Reason>
|
||||||
</ram:AppliedTradeAllowanceCharge>
|
</ram:AppliedTradeAllowanceCharge>
|
||||||
</ram:GrossPriceProductTradePrice>
|
</ram:GrossPriceProductTradePrice>
|
||||||
<ram:NetPriceProductTradePrice>
|
<ram:NetPriceProductTradePrice>
|
||||||
<ram:ChargeAmount>10.5000</ram:ChargeAmount>
|
<ram:ChargeAmount>10.5000</ram:ChargeAmount>
|
||||||
</ram:NetPriceProductTradePrice>
|
</ram:NetPriceProductTradePrice>
|
||||||
</ram:SpecifiedLineTradeAgreement>
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
<ram:SpecifiedLineTradeDelivery>
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
<ram:BilledQuantity unitCode="HUR">27.5000</ram:BilledQuantity>
|
<ram:BilledQuantity unitCode="HUR">27.5000</ram:BilledQuantity>
|
||||||
</ram:SpecifiedLineTradeDelivery>
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
<ram:SpecifiedLineTradeSettlement>
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
<ram:ApplicableTradeTax>
|
<ram:ApplicableTradeTax>
|
||||||
<ram:TypeCode>VAT</ram:TypeCode>
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
<ram:CategoryCode>S</ram:CategoryCode>
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
||||||
</ram:ApplicableTradeTax>
|
</ram:ApplicableTradeTax>
|
||||||
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
<ram:LineTotalAmount>288.75</ram:LineTotalAmount>
|
<ram:LineTotalAmount>288.75</ram:LineTotalAmount>
|
||||||
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
</ram:SpecifiedLineTradeSettlement>
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
</ram:IncludedSupplyChainTradeLineItem>
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
<ram:IncludedSupplyChainTradeLineItem>
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
<ram:AssociatedDocumentLineDocument>
|
<ram:AssociatedDocumentLineDocument>
|
||||||
<ram:LineID>4</ram:LineID>
|
<ram:LineID>4</ram:LineID>
|
||||||
</ram:AssociatedDocumentLineDocument>
|
</ram:AssociatedDocumentLineDocument>
|
||||||
<ram:SpecifiedTradeProduct>
|
<ram:SpecifiedTradeProduct>
|
||||||
<ram:GlobalID schemeID="0088">2001015001325</ram:GlobalID>
|
<ram:GlobalID schemeID="0088">2001015001325</ram:GlobalID>
|
||||||
<ram:SellerAssignedID>FB05</ram:SellerAssignedID>
|
<ram:SellerAssignedID>FB05</ram:SellerAssignedID>
|
||||||
<ram:Name>FALTENBEUTEL 16x6x28 CM</ram:Name>
|
<ram:Name>FALTENBEUTEL 16x6x28 CM</ram:Name>
|
||||||
</ram:SpecifiedTradeProduct>
|
</ram:SpecifiedTradeProduct>
|
||||||
<ram:SpecifiedLineTradeAgreement>
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
<ram:GrossPriceProductTradePrice>
|
<ram:GrossPriceProductTradePrice>
|
||||||
<ram:ChargeAmount>0.0105</ram:ChargeAmount>
|
<ram:ChargeAmount>0.0105</ram:ChargeAmount>
|
||||||
</ram:GrossPriceProductTradePrice>
|
</ram:GrossPriceProductTradePrice>
|
||||||
<ram:NetPriceProductTradePrice>
|
<ram:NetPriceProductTradePrice>
|
||||||
<ram:ChargeAmount>0.0105</ram:ChargeAmount>
|
<ram:ChargeAmount>0.0105</ram:ChargeAmount>
|
||||||
</ram:NetPriceProductTradePrice>
|
</ram:NetPriceProductTradePrice>
|
||||||
</ram:SpecifiedLineTradeAgreement>
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
<ram:SpecifiedLineTradeDelivery>
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
<ram:BilledQuantity unitCode="H87">3500.0000</ram:BilledQuantity>
|
<ram:BilledQuantity unitCode="H87">3500.0000</ram:BilledQuantity>
|
||||||
</ram:SpecifiedLineTradeDelivery>
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
<ram:SpecifiedLineTradeSettlement>
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
<ram:ApplicableTradeTax>
|
<ram:ApplicableTradeTax>
|
||||||
<ram:TypeCode>VAT</ram:TypeCode>
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
<ram:CategoryCode>S</ram:CategoryCode>
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
||||||
</ram:ApplicableTradeTax>
|
</ram:ApplicableTradeTax>
|
||||||
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
<ram:LineTotalAmount>36.75</ram:LineTotalAmount>
|
<ram:LineTotalAmount>36.75</ram:LineTotalAmount>
|
||||||
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
</ram:SpecifiedLineTradeSettlement>
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
</ram:IncludedSupplyChainTradeLineItem>
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
<ram:IncludedSupplyChainTradeLineItem>
|
<ram:IncludedSupplyChainTradeLineItem>
|
||||||
<ram:AssociatedDocumentLineDocument>
|
<ram:AssociatedDocumentLineDocument>
|
||||||
<ram:LineID>5</ram:LineID>
|
<ram:LineID>5</ram:LineID>
|
||||||
</ram:AssociatedDocumentLineDocument>
|
</ram:AssociatedDocumentLineDocument>
|
||||||
<ram:SpecifiedTradeProduct>
|
<ram:SpecifiedTradeProduct>
|
||||||
<ram:GlobalID schemeID="0088">4123456000038</ram:GlobalID>
|
<ram:GlobalID schemeID="0088">4123456000038</ram:GlobalID>
|
||||||
<ram:SellerAssignedID>KOP05</ram:SellerAssignedID>
|
<ram:SellerAssignedID>KOP05</ram:SellerAssignedID>
|
||||||
<ram:Name>Kopierpapier A4</ram:Name>
|
<ram:Name>Kopierpapier A4</ram:Name>
|
||||||
<ram:Description>Zählerstand von-bis: 543210 - 544420</ram:Description>
|
<ram:Description>Zählerstand von-bis: 543210 - 544420</ram:Description>
|
||||||
<ram:ApplicableProductCharacteristic>
|
<ram:ApplicableProductCharacteristic>
|
||||||
<ram:Description>Zähler-Nr.</ram:Description>
|
<ram:Description>Zähler-Nr.</ram:Description>
|
||||||
<ram:Value>MG-X79318</ram:Value>
|
<ram:Value>MG-X79318</ram:Value>
|
||||||
</ram:ApplicableProductCharacteristic>
|
</ram:ApplicableProductCharacteristic>
|
||||||
</ram:SpecifiedTradeProduct>
|
</ram:SpecifiedTradeProduct>
|
||||||
<ram:SpecifiedLineTradeAgreement>
|
<ram:SpecifiedLineTradeAgreement>
|
||||||
<ram:GrossPriceProductTradePrice>
|
<ram:GrossPriceProductTradePrice>
|
||||||
<ram:ChargeAmount>0.0100</ram:ChargeAmount>
|
<ram:ChargeAmount>0.0100</ram:ChargeAmount>
|
||||||
</ram:GrossPriceProductTradePrice>
|
</ram:GrossPriceProductTradePrice>
|
||||||
<ram:NetPriceProductTradePrice>
|
<ram:NetPriceProductTradePrice>
|
||||||
<ram:ChargeAmount>0.0100</ram:ChargeAmount>
|
<ram:ChargeAmount>0.0100</ram:ChargeAmount>
|
||||||
</ram:NetPriceProductTradePrice>
|
</ram:NetPriceProductTradePrice>
|
||||||
</ram:SpecifiedLineTradeAgreement>
|
</ram:SpecifiedLineTradeAgreement>
|
||||||
<ram:SpecifiedLineTradeDelivery>
|
<ram:SpecifiedLineTradeDelivery>
|
||||||
<ram:BilledQuantity unitCode="H87">1210.0000</ram:BilledQuantity>
|
<ram:BilledQuantity unitCode="H87">1210.0000</ram:BilledQuantity>
|
||||||
</ram:SpecifiedLineTradeDelivery>
|
</ram:SpecifiedLineTradeDelivery>
|
||||||
<ram:SpecifiedLineTradeSettlement>
|
<ram:SpecifiedLineTradeSettlement>
|
||||||
<ram:ApplicableTradeTax>
|
<ram:ApplicableTradeTax>
|
||||||
<ram:TypeCode>VAT</ram:TypeCode>
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
<ram:CategoryCode>S</ram:CategoryCode>
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
||||||
</ram:ApplicableTradeTax>
|
</ram:ApplicableTradeTax>
|
||||||
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
<ram:LineTotalAmount>12.10</ram:LineTotalAmount>
|
<ram:LineTotalAmount>12.10</ram:LineTotalAmount>
|
||||||
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||||
</ram:SpecifiedLineTradeSettlement>
|
</ram:SpecifiedLineTradeSettlement>
|
||||||
</ram:IncludedSupplyChainTradeLineItem>
|
</ram:IncludedSupplyChainTradeLineItem>
|
||||||
<ram:ApplicableHeaderTradeAgreement>
|
<ram:ApplicableHeaderTradeAgreement>
|
||||||
<ram:SellerTradeParty>
|
<ram:SellerTradeParty>
|
||||||
<ram:ID>549910</ram:ID>
|
<ram:ID>549910</ram:ID>
|
||||||
<ram:GlobalID schemeID="0088">4333741000005</ram:GlobalID>
|
<ram:GlobalID schemeID="0088">4333741000005</ram:GlobalID>
|
||||||
<ram:Name>MUSTERLIEFERANT GMBH</ram:Name>
|
<ram:Name>MUSTERLIEFERANT GMBH</ram:Name>
|
||||||
<ram:DefinedTradeContact>
|
<ram:DefinedTradeContact>
|
||||||
<ram:TelephoneUniversalCommunication>
|
<ram:TelephoneUniversalCommunication>
|
||||||
<ram:CompleteNumber>+49 932 431 500</ram:CompleteNumber>
|
<ram:CompleteNumber>+49 932 431 500</ram:CompleteNumber>
|
||||||
</ram:TelephoneUniversalCommunication>
|
</ram:TelephoneUniversalCommunication>
|
||||||
<ram:EmailURIUniversalCommunication>
|
<ram:EmailURIUniversalCommunication>
|
||||||
<ram:URIID>max.mustermann@musterlieferant.de</ram:URIID>
|
<ram:URIID>max.mustermann@musterlieferant.de</ram:URIID>
|
||||||
</ram:EmailURIUniversalCommunication>
|
</ram:EmailURIUniversalCommunication>
|
||||||
</ram:DefinedTradeContact>
|
</ram:DefinedTradeContact>
|
||||||
<ram:PostalTradeAddress>
|
<ram:PostalTradeAddress>
|
||||||
<ram:PostcodeCode>99199</ram:PostcodeCode>
|
<ram:PostcodeCode>99199</ram:PostcodeCode>
|
||||||
<ram:LineOne>BAHNHOFSTRASSE 99</ram:LineOne>
|
<ram:LineOne>BAHNHOFSTRASSE 99</ram:LineOne>
|
||||||
<ram:CityName>MUSTERHAUSEN</ram:CityName>
|
<ram:CityName>MUSTERHAUSEN</ram:CityName>
|
||||||
<ram:CountryID>DE</ram:CountryID>
|
<ram:CountryID>DE</ram:CountryID>
|
||||||
</ram:PostalTradeAddress>
|
</ram:PostalTradeAddress>
|
||||||
<ram:SpecifiedTaxRegistration>
|
<ram:SpecifiedTaxRegistration>
|
||||||
<ram:ID schemeID="FC">201/113/40209</ram:ID>
|
<ram:ID schemeID="FC">201/113/40209</ram:ID>
|
||||||
</ram:SpecifiedTaxRegistration>
|
</ram:SpecifiedTaxRegistration>
|
||||||
</ram:SellerTradeParty>
|
</ram:SellerTradeParty>
|
||||||
<ram:BuyerTradeParty>
|
<ram:BuyerTradeParty>
|
||||||
<ram:ID>339420</ram:ID>
|
<ram:ID>339420</ram:ID>
|
||||||
<ram:GlobalID schemeID="0088">4304171000002</ram:GlobalID>
|
<ram:GlobalID schemeID="0088">4304171000002</ram:GlobalID>
|
||||||
<ram:Name>MUSTER-KUNDE GMBH</ram:Name>
|
<ram:Name>MUSTER-KUNDE GMBH</ram:Name>
|
||||||
<ram:PostalTradeAddress>
|
<ram:PostalTradeAddress>
|
||||||
<ram:PostcodeCode>40235</ram:PostcodeCode>
|
<ram:PostcodeCode>40235</ram:PostcodeCode>
|
||||||
<ram:LineOne>KUNDENWEG 88</ram:LineOne>
|
<ram:LineOne>KUNDENWEG 88</ram:LineOne>
|
||||||
<ram:CityName>DUESSELDORF</ram:CityName>
|
<ram:CityName>DUESSELDORF</ram:CityName>
|
||||||
<ram:CountryID>DE</ram:CountryID>
|
<ram:CountryID>DE</ram:CountryID>
|
||||||
</ram:PostalTradeAddress>
|
</ram:PostalTradeAddress>
|
||||||
</ram:BuyerTradeParty>
|
</ram:BuyerTradeParty>
|
||||||
<ram:AdditionalReferencedDocument>
|
<ram:AdditionalReferencedDocument>
|
||||||
<ram:IssuerAssignedID>A777123</ram:IssuerAssignedID>
|
<ram:IssuerAssignedID>A777123</ram:IssuerAssignedID>
|
||||||
<ram:TypeCode>130</ram:TypeCode>
|
<ram:TypeCode>130</ram:TypeCode>
|
||||||
</ram:AdditionalReferencedDocument>
|
</ram:AdditionalReferencedDocument>
|
||||||
</ram:ApplicableHeaderTradeAgreement>
|
</ram:ApplicableHeaderTradeAgreement>
|
||||||
<ram:ApplicableHeaderTradeDelivery>
|
<ram:ApplicableHeaderTradeDelivery>
|
||||||
<ram:ShipToTradeParty>
|
<ram:ShipToTradeParty>
|
||||||
<ram:GlobalID schemeID="0088">4304171088093</ram:GlobalID>
|
<ram:GlobalID schemeID="0088">4304171088093</ram:GlobalID>
|
||||||
<ram:Name>MUSTER-MARKT</ram:Name>
|
<ram:Name>MUSTER-MARKT</ram:Name>
|
||||||
<ram:DefinedTradeContact>
|
<ram:DefinedTradeContact>
|
||||||
<ram:DepartmentName>7322</ram:DepartmentName>
|
<ram:DepartmentName>7322</ram:DepartmentName>
|
||||||
</ram:DefinedTradeContact>
|
</ram:DefinedTradeContact>
|
||||||
<ram:PostalTradeAddress>
|
<ram:PostalTradeAddress>
|
||||||
<ram:PostcodeCode>31157</ram:PostcodeCode>
|
<ram:PostcodeCode>31157</ram:PostcodeCode>
|
||||||
<ram:LineOne>HAUPTSTRASSE 44</ram:LineOne>
|
<ram:LineOne>HAUPTSTRASSE 44</ram:LineOne>
|
||||||
<ram:CityName>SARSTEDT</ram:CityName>
|
<ram:CityName>SARSTEDT</ram:CityName>
|
||||||
<ram:CountryID>DE</ram:CountryID>
|
<ram:CountryID>DE</ram:CountryID>
|
||||||
</ram:PostalTradeAddress>
|
</ram:PostalTradeAddress>
|
||||||
</ram:ShipToTradeParty>
|
</ram:ShipToTradeParty>
|
||||||
<ram:ActualDeliverySupplyChainEvent>
|
<ram:ActualDeliverySupplyChainEvent>
|
||||||
<ram:OccurrenceDateTime>
|
<ram:OccurrenceDateTime>
|
||||||
<udt:DateTimeString format="102">20241030</udt:DateTimeString>
|
<udt:DateTimeString format="102">20241030</udt:DateTimeString>
|
||||||
</ram:OccurrenceDateTime>
|
</ram:OccurrenceDateTime>
|
||||||
</ram:ActualDeliverySupplyChainEvent>
|
</ram:ActualDeliverySupplyChainEvent>
|
||||||
<ram:DeliveryNoteReferencedDocument>
|
<ram:DeliveryNoteReferencedDocument>
|
||||||
<ram:IssuerAssignedID>L87654321012</ram:IssuerAssignedID>
|
<ram:IssuerAssignedID>L87654321012</ram:IssuerAssignedID>
|
||||||
</ram:DeliveryNoteReferencedDocument>
|
<ram:FormattedIssueDateTime>
|
||||||
</ram:ApplicableHeaderTradeDelivery>
|
<qdt:DateTimeString format="102">20241031</qdt:DateTimeString>
|
||||||
<ram:ApplicableHeaderTradeSettlement>
|
</ram:FormattedIssueDateTime>
|
||||||
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
|
</ram:DeliveryNoteReferencedDocument>
|
||||||
<ram:InvoiceeTradeParty>
|
</ram:ApplicableHeaderTradeDelivery>
|
||||||
<ram:ID>339420</ram:ID>
|
<ram:ApplicableHeaderTradeSettlement>
|
||||||
<ram:GlobalID schemeID="0088">4304171000002</ram:GlobalID>
|
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
|
||||||
<ram:Name>MUSTER-KUNDE GMBH</ram:Name>
|
<ram:InvoiceeTradeParty>
|
||||||
<ram:PostalTradeAddress>
|
<ram:ID>339420</ram:ID>
|
||||||
<ram:PostcodeCode>40235</ram:PostcodeCode>
|
<ram:GlobalID schemeID="0088">4304171000002</ram:GlobalID>
|
||||||
<ram:LineOne>KUNDENWEG 88</ram:LineOne>
|
<ram:Name>MUSTER-KUNDE GMBH</ram:Name>
|
||||||
<ram:CityName>DUESSELDORF</ram:CityName>
|
<ram:PostalTradeAddress>
|
||||||
<ram:CountryID>DE</ram:CountryID>
|
<ram:PostcodeCode>40235</ram:PostcodeCode>
|
||||||
</ram:PostalTradeAddress>
|
<ram:LineOne>KUNDENWEG 88</ram:LineOne>
|
||||||
</ram:InvoiceeTradeParty>
|
<ram:CityName>DUESSELDORF</ram:CityName>
|
||||||
<ram:ApplicableTradeTax>
|
<ram:CountryID>DE</ram:CountryID>
|
||||||
<ram:CalculatedAmount>76.67</ram:CalculatedAmount>
|
</ram:PostalTradeAddress>
|
||||||
<ram:TypeCode>VAT</ram:TypeCode>
|
</ram:InvoiceeTradeParty>
|
||||||
<ram:BasisAmount>403.55</ram:BasisAmount>
|
<ram:ApplicableTradeTax>
|
||||||
<ram:LineTotalBasisAmount>410.10</ram:LineTotalBasisAmount>
|
<ram:CalculatedAmount>76.67</ram:CalculatedAmount>
|
||||||
<ram:AllowanceChargeBasisAmount>-6.55</ram:AllowanceChargeBasisAmount>
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
<ram:CategoryCode>S</ram:CategoryCode>
|
<ram:BasisAmount>403.55</ram:BasisAmount>
|
||||||
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
<ram:LineTotalBasisAmount>410.10</ram:LineTotalBasisAmount>
|
||||||
</ram:ApplicableTradeTax>
|
<ram:AllowanceChargeBasisAmount>-6.55</ram:AllowanceChargeBasisAmount>
|
||||||
<ram:SpecifiedTradeAllowanceCharge>
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
<ram:ChargeIndicator>
|
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
||||||
<udt:Indicator>false</udt:Indicator>
|
</ram:ApplicableTradeTax>
|
||||||
</ram:ChargeIndicator>
|
<ram:SpecifiedTradeAllowanceCharge>
|
||||||
<ram:BasisAmount>410.10</ram:BasisAmount>
|
<ram:ChargeIndicator>
|
||||||
<ram:ActualAmount>21.55</ram:ActualAmount>
|
<udt:Indicator>false</udt:Indicator>
|
||||||
<ram:Reason>Sonderrabatt</ram:Reason>
|
</ram:ChargeIndicator>
|
||||||
<ram:CategoryTradeTax>
|
<ram:BasisAmount>410.10</ram:BasisAmount>
|
||||||
<ram:TypeCode>VAT</ram:TypeCode>
|
<ram:ActualAmount>21.55</ram:ActualAmount>
|
||||||
<ram:CategoryCode>S</ram:CategoryCode>
|
<ram:Reason>Sonderrabatt</ram:Reason>
|
||||||
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
<ram:CategoryTradeTax>
|
||||||
</ram:CategoryTradeTax>
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
</ram:SpecifiedTradeAllowanceCharge>
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
<ram:SpecifiedLogisticsServiceCharge>
|
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
||||||
<ram:Description>Transportkosten: Frachbetrag</ram:Description>
|
</ram:CategoryTradeTax>
|
||||||
<ram:AppliedAmount>15.00</ram:AppliedAmount>
|
</ram:SpecifiedTradeAllowanceCharge>
|
||||||
<ram:AppliedTradeTax>
|
<ram:SpecifiedLogisticsServiceCharge>
|
||||||
<ram:TypeCode>VAT</ram:TypeCode>
|
<ram:Description>Transportkosten: Frachbetrag</ram:Description>
|
||||||
<ram:CategoryCode>S</ram:CategoryCode>
|
<ram:AppliedAmount>15.00</ram:AppliedAmount>
|
||||||
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
<ram:AppliedTradeTax>
|
||||||
</ram:AppliedTradeTax>
|
<ram:TypeCode>VAT</ram:TypeCode>
|
||||||
</ram:SpecifiedLogisticsServiceCharge>
|
<ram:CategoryCode>S</ram:CategoryCode>
|
||||||
<ram:SpecifiedTradePaymentTerms>
|
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
|
||||||
<ram:Description>Skontovereinbarung: 2% bei Zahlung innerhalb 10 Tagen nach Rechnungsdatum</ram:Description>
|
</ram:AppliedTradeTax>
|
||||||
<ram:ApplicableTradePaymentDiscountTerms>
|
</ram:SpecifiedLogisticsServiceCharge>
|
||||||
<ram:BasisPeriodMeasure unitCode="DAY">10</ram:BasisPeriodMeasure>
|
<ram:SpecifiedTradePaymentTerms>
|
||||||
<ram:CalculationPercent>2.00</ram:CalculationPercent>
|
<ram:Description>Skontovereinbarung: 2% bei Zahlung innerhalb 10 Tagen nach Rechnungsdatum</ram:Description>
|
||||||
</ram:ApplicableTradePaymentDiscountTerms>
|
<ram:ApplicableTradePaymentDiscountTerms>
|
||||||
</ram:SpecifiedTradePaymentTerms>
|
<ram:BasisPeriodMeasure unitCode="DAY">10</ram:BasisPeriodMeasure>
|
||||||
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
<ram:CalculationPercent>2.00</ram:CalculationPercent>
|
||||||
<ram:LineTotalAmount>410.10</ram:LineTotalAmount>
|
</ram:ApplicableTradePaymentDiscountTerms>
|
||||||
<ram:ChargeTotalAmount>15.00</ram:ChargeTotalAmount>
|
</ram:SpecifiedTradePaymentTerms>
|
||||||
<ram:AllowanceTotalAmount>21.55</ram:AllowanceTotalAmount>
|
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
<ram:TaxBasisTotalAmount>403.55</ram:TaxBasisTotalAmount>
|
<ram:LineTotalAmount>410.10</ram:LineTotalAmount>
|
||||||
<ram:TaxTotalAmount currencyID="EUR">76.67</ram:TaxTotalAmount>
|
<ram:ChargeTotalAmount>15.00</ram:ChargeTotalAmount>
|
||||||
<ram:GrandTotalAmount>480.22</ram:GrandTotalAmount>
|
<ram:AllowanceTotalAmount>21.55</ram:AllowanceTotalAmount>
|
||||||
<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
|
<ram:TaxBasisTotalAmount>403.55</ram:TaxBasisTotalAmount>
|
||||||
<ram:DuePayableAmount>480.22</ram:DuePayableAmount>
|
<ram:TaxTotalAmount currencyID="EUR">76.67</ram:TaxTotalAmount>
|
||||||
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
<ram:GrandTotalAmount>480.22</ram:GrandTotalAmount>
|
||||||
</ram:ApplicableHeaderTradeSettlement>
|
<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
|
||||||
</rsm:SupplyChainTradeTransaction>
|
<ram:DuePayableAmount>480.22</ram:DuePayableAmount>
|
||||||
</rsm:CrossIndustryInvoice>
|
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||||
|
</ram:ApplicableHeaderTradeSettlement>
|
||||||
|
</rsm:SupplyChainTradeTransaction>
|
||||||
|
</rsm:CrossIndustryInvoice>
|
||||||
|
|||||||
@@ -1085,7 +1085,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="boxabstand"></div>
|
<div class="boxabstand"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig"></div>
|
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig">
|
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig">
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div id="uebersichtVersandkosten" class="box">
|
<div id="uebersichtVersandkosten" class="box">
|
||||||
@@ -2248,6 +2247,10 @@
|
|||||||
<div class="boxdaten legende">Kennung der Versandanzeige:</div>
|
<div class="boxdaten legende">Kennung der Versandanzeige:</div>
|
||||||
<div id="BT-16" title="BT-16" class="boxdaten wert"></div>
|
<div id="BT-16" title="BT-16" class="boxdaten wert"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="boxzeile">
|
||||||
|
<div class="boxdaten legende">Kennung des Lieferscheins:</div>
|
||||||
|
<div id="BT-X-202" title="BT-X-202" class="boxdaten wert">L87654321012 vom 31.10.2024</div>
|
||||||
|
</div>
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div class="boxdaten legende">Prozesskennung:</div>
|
<div class="boxdaten legende">Prozesskennung:</div>
|
||||||
<div id="BT-23" title="BT-23" class="boxdaten wert"></div>
|
<div id="BT-23" title="BT-23" class="boxdaten wert"></div>
|
||||||
|
|||||||
@@ -1359,7 +1359,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="boxabstand"></div>
|
<div class="boxabstand"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig"></div>
|
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig first">
|
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig first">
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div id="uebersichtZahlungsinformationen" class="box subBox">
|
<div id="uebersichtZahlungsinformationen" class="box subBox">
|
||||||
@@ -1556,7 +1555,7 @@
|
|||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div class="boxdaten legende ">Description:</div>
|
<div class="boxdaten legende ">Description:</div>
|
||||||
<div id="BT-154" title="BT-154" class="boxdaten wert">Processor: Intel Core 2 Duo SU9400 LV (1.4GHz). RAM:
|
<div id="BT-154" title="BT-154" class="boxdaten wert">Processor: Intel Core 2 Duo SU9400 LV (1.4GHz). RAM:
|
||||||
3MB. Screen 1440x900</div>
|
3MB. Screen 1440x900</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div class="boxdaten legende ">Part number:</div>
|
<div class="boxdaten legende ">Part number:</div>
|
||||||
@@ -2355,6 +2354,10 @@
|
|||||||
<div class="boxdaten legende">Dispatch note ID:</div>
|
<div class="boxdaten legende">Dispatch note ID:</div>
|
||||||
<div id="BT-16" title="BT-16" class="boxdaten wert"></div>
|
<div id="BT-16" title="BT-16" class="boxdaten wert"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="boxzeile">
|
||||||
|
<div class="boxdaten legende">Delivery note ID:</div>
|
||||||
|
<div id="BT-X-202" title="BT-X-202" class="boxdaten wert"></div>
|
||||||
|
</div>
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div class="boxdaten legende">Process ID:</div>
|
<div class="boxdaten legende">Process ID:</div>
|
||||||
<div id="BT-23" title="BT-23" class="boxdaten wert"></div>
|
<div id="BT-23" title="BT-23" class="boxdaten wert"></div>
|
||||||
|
|||||||
@@ -1219,9 +1219,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig"></div>
|
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig"></div>
|
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig"></div>
|
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig first">
|
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig first">
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div id="uebersichtZahlungsinformationen" class="box subBox">
|
<div id="uebersichtZahlungsinformationen" class="box subBox">
|
||||||
@@ -1755,6 +1752,10 @@
|
|||||||
<div class="boxdaten legende">Dispatch note ID:</div>
|
<div class="boxdaten legende">Dispatch note ID:</div>
|
||||||
<div id="BT-16" title="BT-16" class="boxdaten wert"></div>
|
<div id="BT-16" title="BT-16" class="boxdaten wert"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="boxzeile">
|
||||||
|
<div class="boxdaten legende">Delivery note ID:</div>
|
||||||
|
<div id="BT-X-202" title="BT-X-202" class="boxdaten wert"></div>
|
||||||
|
</div>
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div class="boxdaten legende">Process ID:</div>
|
<div class="boxdaten legende">Process ID:</div>
|
||||||
<div id="BT-23" title="BT-23" class="boxdaten wert"></div>
|
<div id="BT-23" title="BT-23" class="boxdaten wert"></div>
|
||||||
|
|||||||
@@ -1250,9 +1250,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig"></div>
|
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig"></div>
|
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig"></div>
|
|
||||||
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig first">
|
<div class="boxtabelle boxabstandtop boxtabelleZweispaltig first">
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div id="uebersichtZahlungsinformationen" class="box subBox">
|
<div id="uebersichtZahlungsinformationen" class="box subBox">
|
||||||
@@ -1927,6 +1924,10 @@
|
|||||||
<div class="boxdaten legende">Identifiant du bordereau d'expédition:</div>
|
<div class="boxdaten legende">Identifiant du bordereau d'expédition:</div>
|
||||||
<div id="BT-16" title="BT-16" class="boxdaten wert"></div>
|
<div id="BT-16" title="BT-16" class="boxdaten wert"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="boxzeile">
|
||||||
|
<div class="boxdaten legende">Identifiant du bon de livraison:</div>
|
||||||
|
<div id="BT-X-202" title="BT-X-202" class="boxdaten wert"></div>
|
||||||
|
</div>
|
||||||
<div class="boxzeile">
|
<div class="boxzeile">
|
||||||
<div class="boxdaten legende">Identifiant processus:</div>
|
<div class="boxdaten legende">Identifiant processus:</div>
|
||||||
<div id="BT-23" title="BT-23" class="boxdaten wert"></div>
|
<div id="BT-23" title="BT-23" class="boxdaten wert"></div>
|
||||||
|
|||||||
Reference in New Issue
Block a user