From 5ace39936534e311dc279e3ec279e55a2ac1b126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jochen=20Sta=CC=88rk?= Date: Sat, 6 Jul 2019 13:42:24 +0200 Subject: [PATCH] no message --- History.md | 3 + pom.xml | 4 +- .../ZUGFeRD/ZUGFeRDImporter.java | 14 +- .../ZUGFeRD/ZUGFeRDVisualizer.java | 134 + .../org/mustangproject/toecount/Toecount.java | 51 +- .../stylesheets/ZUGFeRD_1p0_c1p0_s1p0.xslt | 3008 +++++++++++++++++ src/main/resources/stylesheets/cii-xr.xsl | 2202 ++++++++++++ .../resources/stylesheets/xrechnung-html.xsl | 1188 +++++++ ...ccountingBeispielRE-20190610_507blanko.pdf | Bin 0 -> 87968 bytes 9 files changed, 6596 insertions(+), 8 deletions(-) create mode 100644 src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDVisualizer.java create mode 100644 src/main/resources/stylesheets/ZUGFeRD_1p0_c1p0_s1p0.xslt create mode 100644 src/main/resources/stylesheets/cii-xr.xsl create mode 100644 src/main/resources/stylesheets/xrechnung-html.xsl create mode 100644 src/test/resources/MustangGnuaccountingBeispielRE-20190610_507blanko.pdf diff --git a/History.md b/History.md index 615a200c..f24355a2 100644 --- a/History.md +++ b/History.md @@ -5,6 +5,9 @@ Support BuyerReference (r+w), as well as SpecifiedLegalOrganization (w) and DefinedTradeContact (w) use dom4j to format output xml document corrected some exception logging glitches +upgrade PDFBox to 2.0.15+ +extraction to use proper filename instead of alias #98 +NullPointerException in ZUGFeRDImporter.extractLowLevel #96 1.7.1 diff --git a/pom.xml b/pom.xml index e8b226d1..67a0bb2a 100644 --- a/pom.xml +++ b/pom.xml @@ -69,12 +69,12 @@ org.apache.pdfbox preflight - 2.0.12 + [2.0.15,) org.apache.pdfbox pdfbox - 2.0.12 + [2.0.15,) org.dom4j diff --git a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java index 35ce8717..c9004873 100644 --- a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java +++ b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java @@ -46,6 +46,9 @@ import javax.xml.xpath.XPath; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; @@ -67,14 +70,13 @@ public class ZUGFeRDImporter { private String xmpString = null; // XMP metadata public ZUGFeRDImporter(String pdfFilename) { - try { - BufferedInputStream bis = new BufferedInputStream(new FileInputStream(pdfFilename)); + + try (InputStream bis = Files.newInputStream(Paths.get(pdfFilename), StandardOpenOption.READ)) { extractLowLevel(bis); - bis.close(); } catch (IOException e) { Logger.getLogger(ZUGFeRDImporter.class.getName()).log(Level.SEVERE, null, e); throw new ZUGFeRDExportException(e); - } + } } public ZUGFeRDImporter(InputStream pdfStream) { @@ -125,7 +127,9 @@ public class ZUGFeRDImporter { private void extractFiles(Map names) throws IOException { - for (String filename : names.keySet()) { + for (String alias : names.keySet()) { + String filename=names.get(alias).getFilename(); + /** * currently (in the release candidate of version 1) only one attached file with * the name ZUGFeRD-invoice.xml is allowed diff --git a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDVisualizer.java b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDVisualizer.java new file mode 100644 index 00000000..03b820b3 --- /dev/null +++ b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDVisualizer.java @@ -0,0 +1,134 @@ +/** ********************************************************************** + * + * Copyright 2018 Jochen Staerk + * + * Use is subject to license terms. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * + * See the License for the specific language governing permissions and + * limitations under the License. + * + *********************************************************************** */ +package org.mustangproject.ZUGFeRD; + +import javax.xml.transform.*; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; +import java.io.*; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class ZUGFeRDVisualizer { + + static final ClassLoader CLASS_LOADER = ZUGFeRDVisualizer.class.getClassLoader(); + private static final String RESOURCE_PATH = ""; //$NON-NLS-1$ + private static final Logger LOG = Logger.getLogger(ZUGFeRDVisualizer.class.getName()); + // private static File createTempFileResult(final Transformer transformer, final StreamSource toTransform, +// final String suffix) throws TransformerException, IOException { +// File result = File.createTempFile("ZUV_", suffix); //$NON-NLS-1$ +// result.deleteOnExit(); +// +// try (FileOutputStream fos = new FileOutputStream(result)) { +// transformer.transform(toTransform, new StreamResult(fos)); +// } +// return result; +// } + private TransformerFactory mFactory = null; + private Templates mXsltXRTemplate = null; + private Templates mXsltHTMLTemplate = null; + + public ZUGFeRDVisualizer() { + mFactory = new net.sf.saxon.TransformerFactoryImpl(); + //fact = TransformerFactory.newInstance(); + mFactory.setURIResolver(new ClasspathResourceURIResolver()); + try { + mXsltXRTemplate = mFactory.newTemplates(new StreamSource(CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/cii-xr.xsl"))); + mXsltHTMLTemplate = mFactory.newTemplates(new StreamSource(CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/xrechnung-html.xsl"))); + } catch (TransformerConfigurationException ex) { + LOG.log(Level.SEVERE, null, ex); + } + } + + public String visualize(String xmlFilename) throws FileNotFoundException, TransformerException, UnsupportedEncodingException { + /** + * * + * 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 + */ + ByteArrayOutputStream iaos = new ByteArrayOutputStream(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + applySchematronXsl(new FileInputStream(xmlFilename), iaos); + // take the copy of the stream and re-write it to an InputStream + PipedInputStream in = new PipedInputStream(); + PipedOutputStream out; + 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) { + // logging and exception handling should go here + } + finally { + // close the PipedOutputStream here because we're done writing data + // once this thread has completed its run + if (out != null) { + // close the PipedOutputStream cleanly + try { + out.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + } + }).start(); + applySchematronXsl2(in, baos); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + return baos.toString("UTF-8"); + } + + public void applySchematronXsl(final InputStream xmlFile, + final OutputStream HTMLOutstream) throws TransformerException { + Transformer transformer = mXsltXRTemplate.newTransformer(); + + transformer.transform(new StreamSource(xmlFile), new StreamResult(HTMLOutstream)); + } + + public void applySchematronXsl2(final InputStream xmlFile, + final OutputStream HTMLOutstream) throws TransformerException { + Transformer transformer = mXsltHTMLTemplate.newTransformer(); + + transformer.transform(new StreamSource(xmlFile), new StreamResult(HTMLOutstream)); + } + + private static class ClasspathResourceURIResolver implements URIResolver { + ClasspathResourceURIResolver() { + // Do nothing, just prevents synthetic access warning. + } + + @Override + public Source resolve(String href, String base) throws TransformerException { + return new StreamSource(CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + href)); + } + } +} diff --git a/src/main/java/org/mustangproject/toecount/Toecount.java b/src/main/java/org/mustangproject/toecount/Toecount.java index d45a26ce..06843a4c 100755 --- a/src/main/java/org/mustangproject/toecount/Toecount.java +++ b/src/main/java/org/mustangproject/toecount/Toecount.java @@ -30,8 +30,10 @@ import org.mustangproject.ZUGFeRD.*; import javax.xml.transform.TransformerException; import java.io.BufferedReader; import java.io.File; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; +import java.io.UnsupportedEncodingException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -235,6 +237,8 @@ public class Toecount { // Option: Help Option helpOption = parser.addBooleanOption('h', "help"); + // Option: Action + Option actionOption = parser.addStringOption('a', "action"); // Generic options available for multiple command // --source: input file @@ -304,6 +308,7 @@ public class Toecount { String sourceXMLName = parser.getOptionValue(sourceXmlOption); String outName = parser.getOptionValue(outOption); String format = parser.getOptionValue(formatOption); + String action = parser.getOptionValue(actionOption); String zugferdVersion = parser.getOptionValue(zugferdVersionOption); String zugferdProfile = parser.getOptionValue(zugferdProfileOption); @@ -319,6 +324,8 @@ public class Toecount { performConvert(sourceName, outName); } else if (upgradeRequested) { performUpgrade(sourceName, outName); + } else if (action.equals("convertToHTML")) { + performVisualization(sourceName, outName); } else { // no argument or argument unknown printUsage(); @@ -332,6 +339,48 @@ public class Toecount { } + private static void performVisualization(String sourceName, String outName) { + // Get params from user if not already defined + if (sourceName == null) { + sourceName = getFilenameFromUser("ZUGFeRD XML source", "zugferd-invoice.xml", "xml", true, false); + } else { + System.out.println("ZUGFeRD XML source set to " + sourceName); + } + if (outName == null) { + outName = getFilenameFromUser("ZUGFeRD 2.0 XML target", "factur-x.html", "html", false, true); + } else { + System.out.println("ZUGFeRD 1.0 XML source set to " + outName); + } + + // Verify params + try { + ensureFileExists(sourceName); + ensureFileNotExists(outName); + + //stylesheets/ZUGFeRD_1p0_c1p0_s1p0.xslt + } catch (IOException e) { + Logger.getLogger(Toecount.class.getName()).log(Level.SEVERE, null, e); + } + + ZUGFeRDVisualizer zvi = new ZUGFeRDVisualizer(); + String xml = null; + try { + xml = zvi.visualize(sourceName); + Files.write(Paths.get(outName), xml.getBytes()); + } catch (FileNotFoundException e) { + Logger.getLogger(Toecount.class.getName()).log(Level.SEVERE, null, e); + } catch (UnsupportedEncodingException e) { + Logger.getLogger(Toecount.class.getName()).log(Level.SEVERE, null, e); + } catch (TransformerException e) { + Logger.getLogger(Toecount.class.getName()).log(Level.SEVERE, null, e); + } catch (IOException e) { + Logger.getLogger(Toecount.class.getName()).log(Level.SEVERE, null, e); + } + System.out.println("Written to " + outName); + + + } + private static void performUpgrade(String xmlName, String outName) throws IOException, TransformerException { // Get params from user if not already defined @@ -341,7 +390,7 @@ public class Toecount { System.out.println("ZUGFeRD 1.0 XML source set to " + xmlName); } if (outName == null) { - outName = getFilenameFromUser("ZUGFeRD 2.0 XML target", "factur-x.xml", "xml", false, true); + outName = getFilenameFromUser("ZUGFeRD 2.0 XML target", "zugferd-invoice.xml", "xml", false, true); } else { System.out.println("ZUGFeRD 1.0 XML source set to " + outName); } diff --git a/src/main/resources/stylesheets/ZUGFeRD_1p0_c1p0_s1p0.xslt b/src/main/resources/stylesheets/ZUGFeRD_1p0_c1p0_s1p0.xslt new file mode 100644 index 00000000..97f444fe --- /dev/null +++ b/src/main/resources/stylesheets/ZUGFeRD_1p0_c1p0_s1p0.xslt @@ -0,0 +1,3008 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + <meta http-equiv="X-UA-Compatible" content="IE=9"/> + <xsl:comment>[if IE]><STYLE type="text/css">.altova-rotate-left-textbox{filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3)} .altova-rotate-right-textbox{filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1)} </STYLE><![endif]</xsl:comment> + <xsl:comment>[if !IE]><!</xsl:comment> + <style type="text/css">.altova-rotate-left-textbox{-webkit-transform: rotate(-90deg) translate(-100%, 0%); -webkit-transform-origin: 0% 0%;-moz-transform: rotate(-90deg) translate(-100%, 0%); -moz-transform-origin: 0% 0%;-ms-transform: rotate(-90deg) translate(-100%, 0%); -ms-transform-origin: 0% 0%;}.altova-rotate-right-textbox{-webkit-transform: rotate(90deg) translate(0%, -100%); -webkit-transform-origin: 0% 0%;-moz-transform: rotate(90deg) translate(0%, -100%); -moz-transform-origin: 0% 0%;-ms-transform: rotate(90deg) translate(0%, -100%); -ms-transform-origin: 0% 0%;}</style> + <xsl:comment><![endif]</xsl:comment> + <style type="text/css">@page { margin-left:0.60in; margin-right:0.60in; margin-top:0.79in; margin-bottom:0.79in } @media print { br.altova-page-break { page-break-before: always; } }</style> + </head> + <body style="font-family:Courier; font-size:small; "> + <xsl:for-each select="$XML"> + <xsl:for-each select="rsm:CrossIndustryDocument"> + <span> + <xsl:text>Stylesheet Lesbarmachung der XML-Daten von ZUGFeRD-Rechnungen</xsl:text> + </span> + <br/> + <span> + <xsl:text>ZUGFeRD-Version   : 1.0 vom 25.06.2014 </xsl:text> + </span> + <br/> + <span> + <xsl:text>Stylesheet-Version: 1.0 vom 25.06.2014</xsl:text> + </span> + <br/> + <span> + <xsl:text>Codelisten-Version: 1.0 vom 25.06.2014</xsl:text> + </span> + <br/> + <span> + <xsl:text>(c) AWV e.V. 2014</xsl:text> + </span> + <xsl:variable name="altova:table"> + <table style="border-collapse:collapse; " border="1" width="100%"> + <xsl:variable name="altova:CurrContextGrid_0" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <tr> + <td> + <br/> + <h2> + <xsl:for-each select="rsm:HeaderExchangedDocument"> + <xsl:for-each select="ram:Name"> + <span style="font-weight:bold; "> + <xsl:apply-templates/> + </span> + </xsl:for-each> + <span style="empty-cells:hide; font-weight:bold; "> + <xsl:text>(</xsl:text> + </span> + <xsl:for-each select="ram:TypeCode"> + <xsl:apply-templates/> + </xsl:for-each> + <span style="empty-cells:hide; font-weight:bold; "> + <xsl:text>) Nr. </xsl:text> + </span> + <xsl:for-each select="ram:ID"> + <span style="font-weight:bold; "> + <xsl:apply-templates/> + </span> + </xsl:for-each> + <span style="empty-cells:hide; font-weight:bold; "> + <xsl:text> vom </xsl:text> + </span> + <xsl:for-each select="ram:IssueDateTime"> + <xsl:for-each select="udt:DateTimeString"> + <xsl:call-template name="ram:Datum"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </h2> + <xsl:for-each select="rsm:SpecifiedExchangedDocumentContext"> + <br/> + <xsl:for-each select="ram:TestIndicator"> + <xsl:for-each select="udt:Indicator"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Testkennzeichen      : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:BusinessProcessSpecifiedDocumentContextParameter"> + <xsl:for-each select="ram:ID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Geschäftsprozess     : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedExchangedDocumentContext"> + <xsl:for-each select="ram:GuidelineSpecifiedDocumentContextParameter"> + <xsl:for-each select="ram:ID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Anwendungsempfehlung : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:HeaderExchangedDocument"> + <xsl:for-each select="ram:CopyIndicator"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Kopie                : </xsl:text> + </span> + <xsl:for-each select="udt:Indicator"> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:HeaderExchangedDocument"> + <xsl:for-each select="ram:LanguageID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Sprache              : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement"> + <xsl:for-each select="ram:InvoiceCurrencyCode"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Währung              : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <br/> + </td> + </tr> + <tr> + <td> + <xsl:for-each select="rsm:HeaderExchangedDocument"> + <xsl:for-each select="ram:EffectiveSpecifiedPeriod"> + <xsl:for-each select="ram:CompleteDateTime"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Vertragliches Fälligkeitsdatum: </xsl:text> + </span> + <xsl:for-each select="udt:DateTimeString"> + <xsl:call-template name="ram:Datum"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeDelivery"> + <xsl:for-each select="ram:ActualDeliverySupplyChainEvent"> + <xsl:for-each select="ram:OccurrenceDateTime"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Liefer- und Leistungsdatum    : </xsl:text> + </span> + <xsl:for-each select="udt:DateTimeString"> + <xsl:call-template name="ram:Datum"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement"> + <xsl:for-each select="ram:BillingSpecifiedPeriod"> + <xsl:for-each select="ram:StartDateTime"> + <br/> + <span> + <xsl:text>Abrechnungszeitraum           : </xsl:text> + </span> + <xsl:for-each select="udt:DateTimeString"> + <xsl:call-template name="ram:Datum"/> + </xsl:for-each> + </xsl:for-each> + <span> + <xsl:text> bis </xsl:text> + </span> + <xsl:for-each select="ram:EndDateTime"> + <xsl:for-each select="udt:DateTimeString"> + <xsl:call-template name="ram:Datum"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <br/> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeAgreement"> + <xsl:for-each select="ram:BuyerReference"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Referenz des Käufers          : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement"> + <xsl:for-each select="ram:PaymentReference"> + <br/> + <span style="empty-cells:hide; font-weight:bold; "> + <xsl:text>Zahlungsreferenz              : </xsl:text> + </span> + <span style="font-weight:bold; "> + <xsl:apply-templates/> + </span> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement"> + <xsl:for-each select="ram:ReceivableSpecifiedTradeAccountingAccount"> + <xsl:for-each select="ram:ID"> + <br/> + <span> + <xsl:text>Buchungsreferenz              : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeAgreement"> + <xsl:for-each select="ram:ApplicableTradeDeliveryTerms"> + <xsl:for-each select="ram:DeliveryTypeCode"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Lieferbedingung (codiert)     : </xsl:text> + </span> + <xsl:call-template name="DeliveryTypeCode"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeDelivery"> + <xsl:for-each select="ram:RelatedSupplyChainConsignment"> + <xsl:for-each select="ram:SpecifiedLogisticsTransportMovement"> + <xsl:for-each select="ram:ModeCode"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Versandart (codiert)          : </xsl:text> + </span> + <xsl:call-template name="ram:VersandMode"/> + </xsl:for-each> + <xsl:for-each select="ram:ID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Versand-ID                    : </xsl:text> + </span> + <xsl:apply-templates/> + <xsl:for-each select="@schemeID"> + <span style="empty-cells:hide; "> + <xsl:text>, Art: </xsl:text> + </span> + <xsl:call-template name="ram:Versand_Identifer"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <br/> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeAgreement"> + <xsl:for-each select="ram:BuyerOrderReferencedDocument"> + <xsl:for-each select="ram:ID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Bestellung                    : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <span style="empty-cells:hide; "> + <xsl:text> vom </xsl:text> + </span> + <xsl:for-each select="ram:IssueDateTime"> + <span> + <xsl:variable name="altova:seqContentStrings_1"> + <xsl:value-of select="format-number(number(substring(string(string(.)), 9, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(.)), 6, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(string(.))), 1, 4)), '0000', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_1" select="string($altova:seqContentStrings_1)"/> + <xsl:value-of select="$altova:sContent_1"/> + </span> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeDelivery"> + <xsl:for-each select="ram:DespatchAdviceReferencedDocument"> + <xsl:for-each select="ram:ID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Lieferavis                    : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <span style="empty-cells:hide; "> + <xsl:text> vom </xsl:text> + </span> + <xsl:for-each select="ram:IssueDateTime"> + <span> + <xsl:variable name="altova:seqContentStrings_2"> + <xsl:value-of select="format-number(number(substring(string(string(.)), 9, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(.)), 6, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(string(.))), 1, 4)), '0000', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_2" select="string($altova:seqContentStrings_2)"/> + <xsl:value-of select="$altova:sContent_2"/> + </span> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeDelivery"> + <xsl:for-each select="ram:DeliveryNoteReferencedDocument"> + <xsl:for-each select="ram:ID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Lieferschein                  : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <span style="empty-cells:hide; "> + <xsl:text> vom </xsl:text> + </span> + <xsl:for-each select="ram:IssueDateTime"> + <span> + <xsl:variable name="altova:seqContentStrings_3"> + <xsl:value-of select="format-number(number(substring(string(string(.)), 9, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(.)), 6, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(string(.))), 1, 4)), '0000', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_3" select="string($altova:seqContentStrings_3)"/> + <xsl:value-of select="$altova:sContent_3"/> + </span> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeAgreement"> + <xsl:for-each select="ram:ContractReferencedDocument"> + <xsl:for-each select="ram:ID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Vertrag                       : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <span style="empty-cells:hide; "> + <xsl:text> vom </xsl:text> + </span> + <xsl:for-each select="ram:IssueDateTime"> + <span> + <xsl:variable name="altova:seqContentStrings_4"> + <xsl:value-of select="format-number(number(substring(string(string(.)), 9, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(.)), 6, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(string(.))), 1, 4)), '0000', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_4" select="string($altova:seqContentStrings_4)"/> + <xsl:value-of select="$altova:sContent_4"/> + </span> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeAgreement"> + <xsl:for-each select="ram:CustomerOrderReferencedDocument"> + <xsl:for-each select="ram:ID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Kundenbestellung              : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <span style="empty-cells:hide; "> + <xsl:text> vom </xsl:text> + </span> + <xsl:for-each select="ram:IssueDateTime"> + <span> + <xsl:variable name="altova:seqContentStrings_5"> + <xsl:value-of select="format-number(number(substring(string(string(.)), 9, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(.)), 6, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(string(.))), 1, 4)), '0000', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_5" select="string($altova:seqContentStrings_5)"/> + <xsl:value-of select="$altova:sContent_5"/> + </span> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeAgreement"> + <xsl:for-each select="ram:AdditionalReferencedDocument"> + <xsl:for-each select="ram:ID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Weitere Referenz              : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <span style="empty-cells:hide; "> + <xsl:text> vom </xsl:text> + </span> + <xsl:for-each select="ram:IssueDateTime"> + <span> + <xsl:variable name="altova:seqContentStrings_6"> + <xsl:value-of select="format-number(number(substring(string(string(.)), 9, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(.)), 6, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(string(.))), 1, 4)), '0000', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_6" select="string($altova:seqContentStrings_6)"/> + <xsl:value-of select="$altova:sContent_6"/> + </span> + </xsl:for-each> + <xsl:for-each select="ram:TypeCode"> + <span style="empty-cells:hide; "> + <xsl:text>, Art der Referenz: </xsl:text> + </span> + <xsl:call-template name="ram:Referenz"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <br/> + <span style="empty-cells:hide; "> + <xsl:text> </xsl:text> + </span> + </td> + </tr> + <tr> + <td> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeAgreement"> + <xsl:for-each select="ram:SellerTradeParty"> + <br/> + <span style="empty-cells:hide; font-weight:bold; text-decoration:underline; "> + <xsl:text>Verkäufer:</xsl:text> + </span> + <br/> + <xsl:call-template name="ram:Party"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeAgreement"> + <xsl:for-each select="ram:BuyerTradeParty"> + <br/> + <span style="empty-cells:hide; font-weight:bold; text-decoration:underline; "> + <xsl:text>Käufer:</xsl:text> + </span> + <br/> + <xsl:call-template name="ram:Party"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeAgreement"> + <xsl:for-each select="ram:ProductEndUserTradeParty"> + <br/> + <span style="empty-cells:hide; font-weight:bold; text-decoration:underline; "> + <xsl:text>Endverbraucher:</xsl:text> + </span> + <br/> + <xsl:call-template name="ram:Party"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeDelivery"> + <xsl:for-each select="ram:ShipToTradeParty"> + <br/> + <span style="empty-cells:hide; font-weight:bold; text-decoration:underline; "> + <xsl:text>Abweichender Warenempfänger:</xsl:text> + </span> + <br/> + <xsl:call-template name="ram:Party"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeDelivery"> + <xsl:for-each select="ram:UltimateShipToTradeParty"> + <br/> + <span style="empty-cells:hide; font-weight:bold; text-decoration:underline; "> + <xsl:text>Abweichender Endempfänger:</xsl:text> + </span> + <br/> + <xsl:call-template name="ram:Party"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeDelivery"> + <xsl:for-each select="ram:ShipFromTradeParty"> + <br/> + <span style="empty-cells:hide; font-weight:bold; text-decoration:underline; "> + <xsl:text>Abweichender Versender:</xsl:text> + </span> + <br/> + <xsl:call-template name="ram:Party"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement"> + <xsl:for-each select="ram:InvoiceeTradeParty"> + <br/> + <span style="empty-cells:hide; font-weight:bold; text-decoration:underline; "> + <xsl:text>Abweichender Rechnungsempfänger:</xsl:text> + </span> + <br/> + <xsl:call-template name="ram:Party"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement"> + <xsl:for-each select="ram:PayeeTradeParty"> + <br/> + <span style="empty-cells:hide; font-weight:bold; text-decoration:underline; "> + <xsl:text>Abweichender Zahlungsempfänger:</xsl:text> + </span> + <br/> + <xsl:call-template name="ram:Party"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </td> + </tr> + <tr> + <td> + <xsl:for-each select="rsm:HeaderExchangedDocument"> + <br/> + <xsl:for-each select="ram:IncludedNote"> + <xsl:for-each select="ram:SubjectCode"> + <span style="color:gray; empty-cells:hide; "> + <xsl:text>Qualifizierung der Textart: </xsl:text> + </span> + <span style="font-weight:bold; "> + <xsl:apply-templates/> + </span> + </xsl:for-each> + <xsl:for-each select="ram:ContentCode"> + <span style="color:gray; empty-cells:hide; "> + <xsl:text>, Qualifizierung des Textes: </xsl:text> + </span> + <span style="font-weight:bold; "> + <xsl:apply-templates/> + </span> + </xsl:for-each> + <xsl:for-each select="ram:Content"> + <br/> + <span style="font-weight:bold; white-space:pre-wrap; "> + <xsl:apply-templates/> + </span> + <br/> + <br/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </td> + </tr> + <tr> + <td style="border-bottom-style:none; "> + <xsl:variable name="altova:table"> + <table style="border:0px; border-collapse:collapse; border-spacing:0px; padding:0px; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_7" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <tr style="text-align:center; vertical-align:middle; "> + <td style="border-bottom-style:solid; border-collapse:collapse; border-left-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:center; width:30px; "> + <span style="font-weight:bold; "> + <xsl:text>Pos</xsl:text> + </span> + </td> + <td style="border-bottom-style:solid; border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:left; width:110px; "> + <span style="font-weight:bold; "> + <xsl:text>Art-Nr-Kunde</xsl:text> + </span> + <br/> + <span style="font-weight:bold; "> + <xsl:text>Art-Nr-Lief.</xsl:text> + </span> + <br/> + <span style="font-weight:bold; "> + <xsl:text>Art-Nr</xsl:text> + </span> + <br/> + <span style="font-weight:bold; "> + <xsl:text>(Art)</xsl:text> + </span> + </td> + <td style="border-bottom-style:solid; border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; "> + <span style="font-weight:bold; "> + <xsl:text>Beschreibung</xsl:text> + </span> + </td> + <td style="border-bottom-style:solid; border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; width:110px; "> + <span style="font-weight:bold; "> + <xsl:text>E-Preis</xsl:text> + </span> + </td> + <td style="border-bottom-style:solid; border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; width:120px; "> + <span style="font-weight:bold; "> + <xsl:text>Menge</xsl:text> + </span> + </td> + <td style="border-bottom-style:solid; border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; width:110px; "> + <span style="font-weight:bold; "> + <xsl:text>Steuer</xsl:text> + </span> + </td> + <td style="border-bottom-style:solid; border-collapse:collapse; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; width:110px; "> + <span style="font-weight:bold; "> + <xsl:text>Entgelt</xsl:text> + </span> + </td> + </tr> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:IncludedSupplyChainTradeLineItem"> + <xsl:if test="fn:not( fn:empty(ram:SpecifiedTradeProduct))"> + <xsl:variable name="altova:table"> + <table style="border:0px; border-collapse:collapse; border-spacing:0px; padding:0px; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_8" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <tr style="vertical-align:top; "> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:center; width:30px; "> + <xsl:for-each select="ram:AssociatedDocumentLineDocument"> + <xsl:if test="fn:empty(ram:IncludedNote)"> + <xsl:for-each select="ram:LineID"> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:if> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; width:110px; "> + <xsl:for-each select="ram:SpecifiedTradeProduct"> + <xsl:for-each select="ram:BuyerAssignedID"> + <xsl:apply-templates/> + </xsl:for-each> + <br/> + <xsl:for-each select="ram:SellerAssignedID"> + <xsl:apply-templates/> + </xsl:for-each> + <br/> + <xsl:for-each select="ram:GlobalID"> + <xsl:apply-templates/> + <br/> + <xsl:for-each select="@schemeID"> + <xsl:call-template name="ram:Global_Identifier"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; "> + <xsl:for-each select="ram:SpecifiedTradeProduct"> + <xsl:for-each select="ram:Name"> + <span style="white-space:pre-wrap; "> + <xsl:apply-templates/> + </span> + <br/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeAgreement"> + <xsl:if test="fn:exists(ram:GrossPriceProductTradePrice)"> + <xsl:for-each select="ram:GrossPriceProductTradePrice"> + <xsl:for-each select="ram:BasisQuantity"> + <span> + <xsl:text>Preisbasismenge: </xsl:text> + </span> + <xsl:call-template name="ram:Menge"/> + </xsl:for-each> + </xsl:for-each> + </xsl:if> + <xsl:if test="fn:not(fn:exists(ram:GrossPriceProductTradePrice))"> + <xsl:for-each select="ram:NetPriceProductTradePrice"> + <xsl:for-each select="ram:BasisQuantity"> + <br/> + <span> + <xsl:text>Preisbasismenge: </xsl:text> + </span> + <xsl:call-template name="ram:Menge"/> + </xsl:for-each> + </xsl:for-each> + </xsl:if> + </xsl:for-each> + </td> + <td style="border-bottom-style:solid; border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; width:110px; "> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeAgreement"> + <xsl:if test="fn:exists(ram:GrossPriceProductTradePrice)"> + <xsl:for-each select="ram:GrossPriceProductTradePrice"> + <xsl:for-each select="ram:ChargeAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_9"> + <xsl:value-of select="format-number(number(string(.)), '##0,0000', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_9" select="string($altova:seqContentStrings_9)"/> + <xsl:value-of select="$altova:sContent_9"/> + </span> + </xsl:for-each> + </xsl:for-each> + </xsl:if> + <xsl:if test="not(fn:exists(ram:GrossPriceProductTradePrice))"> + <xsl:for-each select="ram:NetPriceProductTradePrice"> + <xsl:for-each select="ram:ChargeAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_10"> + <xsl:value-of select="format-number(number(string(.)), '###.##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_10" select="string($altova:seqContentStrings_10)"/> + <xsl:value-of select="$altova:sContent_10"/> + </span> + </xsl:for-each> + </xsl:for-each> + </xsl:if> + </xsl:for-each> + </td> + <td style="border-bottom-style:solid; border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; width:120px; "> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeDelivery"> + <xsl:for-each select="ram:BilledQuantity"> + <xsl:call-template name="ram:Menge"/> + </xsl:for-each> + <xsl:for-each select="ram:ChargeFreeQuantity"> + <br/> + <span> + <xsl:text>kostenfrei:</xsl:text> + </span> + <br/> + <xsl:call-template name="ram:Menge"/> + </xsl:for-each> + </xsl:for-each> + </td> + <td style="border-bottom-style:solid; border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; width:110px; "> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeSettlement"> + <xsl:for-each select="ram:ApplicableTradeTax"> + <xsl:call-template name="ram:TradeTax"/> + </xsl:for-each> + </xsl:for-each> + </td> + <td style="border-bottom-style:solid; border-collapse:collapse; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; width:110px; "> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeSettlement"> + <xsl:for-each select="ram:SpecifiedTradeSettlementMonetarySummation"> + <xsl:for-each select="ram:LineTotalAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_11"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_11" select="string($altova:seqContentStrings_11)"/> + <xsl:value-of select="$altova:sContent_11"/> + </span> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </td> + </tr> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:if> + <xsl:for-each select="ram:AssociatedDocumentLineDocument"> + <xsl:if test="fn:not( fn:empty(ram:IncludedNote))"> + <xsl:variable name="altova:table"> + <table style="border:0px; border-collapse:collapse; border-spacing:0px; border-top-style:none; padding:0px; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_12" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <tr style="empty-cells:hide; vertical-align:top; "> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:center; width:30px; "> + <xsl:for-each select="ram:LineID"> + <xsl:apply-templates/> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; width:110px; "/> + <td style="border-bottom-style:none; border-collapse:collapse; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; "> + <xsl:for-each select="ram:IncludedNote"> + <xsl:for-each select="ram:Content"> + <span style="white-space:pre-wrap; "> + <xsl:apply-templates/> + </span> + </xsl:for-each> + <xsl:for-each select="ram:SubjectCode"> + <br/> + <span style="color:gray; empty-cells:hide; "> + <xsl:text>Qualifizierung der Textart: </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:ContentCode"> + <span style="color:gray; empty-cells:hide; "> + <xsl:text>, Qualifizierung des Textes: </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <br/> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; width:110px; "/> + </tr> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:if> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeAgreement"> + <xsl:for-each select="ram:GrossPriceProductTradePrice"> + <xsl:if test="fn:not( fn:empty(ram:AppliedTradeAllowanceCharge))"> + <xsl:variable name="altova:table"> + <table style="border:0px; border-collapse:collapse; border-spacing:0px; padding:0px; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_13" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <tr style="empty-cells:hide; vertical-align:top; "> + <td style="border-bottom-style:none; border-left-style:none; border-top-style:none; width:30px; "/> + <td style="border-bottom-style:none; border-top-style:none; width:110px; "/> + <td style="border-bottom-style:none; border-right-style:none; border-top-style:none; "> + <xsl:variable name="altova:table"> + <table style="border:0px; border-style:none; padding:0px; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_14" select="."/> + <xsl:variable name="altova:ColumnData"/> + <thead> + <tr> + <th style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; font-weight:normal; text-align:left; width:70px; "> + <span style="font-style:italic; "> + <xsl:text>Art</xsl:text> + </span> + </th> + <th style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; font-weight:normal; text-align:left; "> + <span style="font-style:italic; "> + <xsl:text>Grund</xsl:text> + </span> + </th> + <th style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; font-weight:normal; text-align:right; width:70px; "> + <span style="font-style:italic; "> + <xsl:text>%</xsl:text> + </span> + </th> + <th style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; font-weight:normal; text-align:right; width:110px; "> + <span style="font-style:italic; "> + <xsl:text>Basisbetrag</xsl:text> + </span> + </th> + <th style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; font-weight:normal; text-align:right; width:120px; "> + <span style="font-style:italic; "> + <xsl:text>Basismenge</xsl:text> + </span> + </th> + <th style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; font-weight:normal; text-align:right; width:110px; "> + <span style="font-style:italic; "> + <xsl:text>Betrag</xsl:text> + </span> + </th> + <th style="border-bottom-style:none; border-left-style:none; border-right-style:none; border-top-style:none; width:112px; "/> + </tr> + </thead> + <tbody> + <xsl:for-each select="ram:AppliedTradeAllowanceCharge"> + <xsl:sort select="ram:SequenceNumeric" data-type="text" order="ascending"/> + <tr> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; vertical-align:top; width:70px; "> + <xsl:for-each select="ram:ChargeIndicator"> + <xsl:for-each select="udt:Indicator"> + <span> + <xsl:value-of select="if (. eq fn:true())then 'Zuschlag' else 'Abschlag'"/> + </span> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SequenceNumeric"> + <span> + <xsl:text> Nr. </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; vertical-align:top; "> + <xsl:for-each select="ram:Reason"> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:ReasonCode"> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:call-template name="AllowanceChargeReasonCode"/> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; vertical-align:top; width:70px; "> + <xsl:for-each select="ram:CalculationPercent"> + <span> + <xsl:variable name="altova:seqContentStrings_15"> + <xsl:value-of select="format-number(number(string(.)), '###.##0,####', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_15" select="string($altova:seqContentStrings_15)"/> + <xsl:value-of select="$altova:sContent_15"/> + </span> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; vertical-align:top; width:110px; "> + <xsl:for-each select="ram:BasisAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_16"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_16" select="string($altova:seqContentStrings_16)"/> + <xsl:value-of select="$altova:sContent_16"/> + </span> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; vertical-align:top; width:120px; "> + <xsl:for-each select="ram:BasisQuantity"> + <xsl:call-template name="ram:Menge"/> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; vertical-align:top; width:110px; "> + <xsl:for-each select="ram:ActualAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_17"> + <xsl:value-of select="format-number(number(if(../ram:ChargeIndicator/udt:Indicator = fn:false()) then -1*. else .), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_17" select="string($altova:seqContentStrings_17)"/> + <xsl:value-of select="$altova:sContent_17"/> + </span> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; width:108px; "/> + </tr> + </xsl:for-each> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </td> + </tr> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:if> + <xsl:if test="fn:exists(../../ram:SpecifiedSupplyChainTradeSettlement/ram:SpecifiedTradeSettlementMonetarySummation/ram:TotalAllowanceChargeAmount)"> + <xsl:variable name="altova:table"> + <table style="border:0px; border-collapse:collapse; border-spacing:0px; padding:0px; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_18" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <tr style="empty-cells:hide; vertical-align:top; "> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; width:30px; "/> + <td style="border-bottom-style:none; border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; width:110px; "/> + <td style="border-bottom-style:none; border-collapse:collapse; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; "> + <br/> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; width:110px; "> + <span> + <xsl:text>Summe:</xsl:text> + </span> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-right-style:none; border-spacing:0px; border-top-style:double; empty-cells:hide; text-align:right; width:110px; "> + <xsl:for-each select="$XML"> + <xsl:for-each select="rsm:CrossIndustryDocument"> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:IncludedSupplyChainTradeLineItem"> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeSettlement"> + <xsl:for-each select="ram:SpecifiedTradeSettlementMonetarySummation"> + <xsl:for-each select="ram:TotalAllowanceChargeAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_19"> + <xsl:value-of select="format-number(number(-1*.), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_19" select="string($altova:seqContentStrings_19)"/> + <xsl:value-of select="$altova:sContent_19"/> + </span> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-collapse:collapse; border-left-style:none; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; text-align:right; width:110px; "/> + </tr> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + <xsl:variable name="altova:table"> + <table style="border:0px; border-collapse:collapse; border-spacing:0px; border-top-style:none; padding:0px; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_20" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <tr style="empty-cells:hide; vertical-align:top; "> + <td style="border-collapse:collapse; border-left-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; width:30px; "/> + <td style="border-collapse:collapse; border-spacing:0px; border-top-style:none; empty-cells:hide; width:110px; "/> + <td style="border-collapse:collapse; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; "> + <xsl:for-each select="ram:SpecifiedTradeProduct"> + <xsl:for-each select="ram:Description"> + <br/> + <span style="white-space:pre-wrap; "> + <xsl:apply-templates/> + </span> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeDelivery"> + <xsl:for-each select="ram:ActualDeliverySupplyChainEvent"> + <xsl:for-each select="ram:OccurrenceDateTime"> + <br/> + <span> + <xsl:text>* Leistungsdatum: </xsl:text> + </span> + <xsl:for-each select="udt:DateTimeString"> + <xsl:call-template name="ram:Datum"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeSettlement"> + <xsl:for-each select="ram:BillingSpecifiedPeriod"> + <br/> + <span> + <xsl:text>* Berechnungszeitraum: </xsl:text> + </span> + <xsl:for-each select="ram:StartDateTime"> + <xsl:for-each select="udt:DateTimeString"> + <xsl:call-template name="ram:Datum"/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:EndDateTime"> + <span> + <xsl:text> bis </xsl:text> + </span> + <xsl:for-each select="udt:DateTimeString"> + <xsl:call-template name="ram:Datum"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedTradeProduct"> + <xsl:for-each select="ram:OriginTradeCountry"> + <xsl:for-each select="ram:ID"> + <br/> + <span> + <xsl:text>* Herkunftsland: </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeDelivery"> + <xsl:for-each select="ram:PackageQuantity"> + <br/> + <span> + <xsl:text>* Anzahl Packstücke: </xsl:text> + </span> + <span> + <xsl:variable name="altova:seqContentStrings_21"> + <xsl:value-of select="format-number(number(string(.)), '##0', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_21" select="string($altova:seqContentStrings_21)"/> + <xsl:value-of select="$altova:sContent_21"/> + </span> + </xsl:for-each> + <xsl:call-template name="PackageQuantity"/> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeAgreement"> + <xsl:for-each select="ram:BuyerOrderReferencedDocument"> + <br/> + <span> + <xsl:text>* Bestellung</xsl:text> + </span> + <xsl:call-template name="ram:Positionsreferenz"/> + </xsl:for-each> + <xsl:for-each select="ram:ContractReferencedDocument"> + <br/> + <span> + <xsl:text>* Vertrag</xsl:text> + </span> + <xsl:call-template name="ram:Positionsreferenz"/> + </xsl:for-each> + <xsl:for-each select="ram:AdditionalReferencedDocument"> + <br/> + <span> + <xsl:text>* Dokument (</xsl:text> + </span> + <xsl:for-each select="ram:ReferenceTypeCode"> + <xsl:call-template name="ram:Referenz"/> + </xsl:for-each> + <span> + <xsl:text>)</xsl:text> + </span> + <xsl:call-template name="ram:Positionsreferenz"/> + </xsl:for-each> + <xsl:for-each select="ram:CustomerOrderReferencedDocument"> + <br/> + <span> + <xsl:text>* Kundenbestellung</xsl:text> + </span> + <xsl:call-template name="ram:Positionsreferenz"/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeDelivery"> + <xsl:for-each select="ram:DespatchAdviceReferencedDocument"> + <br/> + <span> + <xsl:text>* Lieferavis</xsl:text> + </span> + <xsl:call-template name="ram:Positionsreferenz"/> + </xsl:for-each> + <xsl:for-each select="ram:ReceivingAdviceReferencedDocument"> + <br/> + <span> + <xsl:text>* Wareneingang </xsl:text> + </span> + <xsl:call-template name="ram:Positionsreferenz"/> + </xsl:for-each> + <xsl:for-each select="ram:DeliveryNoteReferencedDocument"> + <br/> + <span> + <xsl:text>* Lieferschein</xsl:text> + </span> + <xsl:call-template name="ram:Positionsreferenz"/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeSettlement"> + <xsl:for-each select="ram:SpecifiedTradeAccountingAccount"> + <xsl:for-each select="ram:ID"> + <br/> + <span> + <xsl:text>* Buchungsreferenz: </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedTradeProduct"> + <xsl:for-each select="ram:DesignatedProductClassification"> + <br/> + <span> + <xsl:text>* Klassifikation: </xsl:text> + </span> + <xsl:for-each select="ram:ClassCode"> + <span> + <xsl:text>[</xsl:text> + </span> + <xsl:apply-templates/> + <span> + <xsl:text>] </xsl:text> + </span> + </xsl:for-each> + <xsl:for-each select="ram:ClassName"> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:ClassCode"> + <xsl:call-template name="Klassifikationsart"/> + <xsl:for-each select="@listVersionID"> + <span> + <xsl:text>, Version: </xsl:text> + </span> + <span> + <xsl:value-of select="string(.)"/> + </span> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedSupplyChainTradeDelivery"> + <xsl:for-each select="ram:ShipToTradeParty"> + <br/> + <span style="text-decoration:underline; "> + <xsl:text>Abweichender Warenempfänger:</xsl:text> + </span> + <br/> + <xsl:call-template name="ram:Party"/> + </xsl:for-each> + <xsl:for-each select="ram:UltimateShipToTradeParty"> + <br/> + <span style="text-decoration:underline; "> + <xsl:text>Abweichender Endempfänger:</xsl:text> + </span> + <br/> + <xsl:call-template name="ram:Party"/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedTradeProduct"> + <xsl:if test="fn:exists(ram:ApplicableProductCharacteristic)"> + <br/> + <br/> + <span style="text-decoration:underline; "> + <xsl:text>Weitere Eigenschaften:</xsl:text> + </span> + <br/> + </xsl:if> + <xsl:for-each select="ram:ApplicableProductCharacteristic"> + <xsl:for-each select="ram:Description"> + <br/> + <xsl:apply-templates/> + </xsl:for-each> + <span> + <xsl:text>: </xsl:text> + </span> + <xsl:for-each select="ram:TypeCode"> + <xsl:apply-templates/> + </xsl:for-each> + <span> + <xsl:text> = </xsl:text> + </span> + <xsl:for-each select="ram:Value"> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:ValueMeasure"> + <xsl:call-template name="ram:Menge"/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:if test="fn:exists(ram:SpecifiedTradeProduct/ram:IncludedReferencedProduct)"> + <br/> + <br/> + <span style="text-decoration:underline; "> + <xsl:text>Basisartikel:</xsl:text> + </span> + <br/> + </xsl:if> + <xsl:for-each select="ram:SpecifiedTradeProduct"> + <xsl:if test="fn:exists(ram:IncludedReferencedProduct)"> + <xsl:variable name="altova:table"> + <table style="border:0px; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_22" select="."/> + <xsl:variable name="altova:ColumnData"/> + <thead> + <tr> + <th style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; text-align:left; width:110px; "> + <span style="font-weight:bold; "> + <xsl:text>Art-Nr-Kunde</xsl:text> + </span> + <br/> + </th> + <th style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; width:110px; "> + <span style="font-weight:bold; "> + <xsl:text>Art-Nr-Lief.</xsl:text> + </span> + </th> + <th style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; width:110px; "> + <span> + <xsl:text>Art-Nr. (Art)</xsl:text> + </span> + </th> + <th style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; "> + <span> + <xsl:text>Beschreibung</xsl:text> + </span> + </th> + <th style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; text-align:right; width:120px; "> + <span> + <xsl:text>Menge</xsl:text> + </span> + </th> + </tr> + </thead> + <tbody> + <xsl:for-each select="ram:IncludedReferencedProduct"> + <tr> + <td style="border-bottom-style:none; border-left-style:none; border-right-style:none; border-top-style:none; text-align:left; vertical-align:top; width:110px; "> + <xsl:for-each select="ram:BuyerAssignedID"> + <xsl:apply-templates/> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-left-style:none; border-right-style:none; border-top-style:none; vertical-align:top; width:110px; "> + <xsl:for-each select="ram:SellerAssignedID"> + <xsl:apply-templates/> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-left-style:none; border-right-style:none; border-top-style:none; vertical-align:top; width:110px; "> + <xsl:for-each select="ram:GlobalID"> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:GlobalID"> + <xsl:for-each select="@schemeID"> + <xsl:call-template name="ram:Global_Identifier"/> + </xsl:for-each> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-left-style:none; border-right-style:none; border-top-style:none; vertical-align:top; "> + <xsl:for-each select="ram:Name"> + <xsl:apply-templates/> + </xsl:for-each> + <br/> + <xsl:for-each select="ram:Description"> + <xsl:apply-templates/> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-left-style:none; border-right-style:none; border-top-style:none; text-align:right; vertical-align:top; width:120px; "> + <xsl:for-each select="ram:UnitQuantity"> + <xsl:call-template name="ram:Menge"/> + </xsl:for-each> + </td> + </tr> + </xsl:for-each> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:if> + </xsl:for-each> + </td> + <td style="border-collapse:collapse; border-left-style:none; border-right-style:none; border-spacing:0px; border-top-style:none; empty-cells:hide; width:110px; "/> + </tr> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:for-each> + </xsl:for-each> + <br/> + </td> + </tr> + <tr> + <td style="border-bottom-style:none; border-top-style:none; "> + <xsl:if test="fn:exists(rsm:SpecifiedSupplyChainTradeTransaction/ram:ApplicableSupplyChainTradeSettlement/ram:SpecifiedTradePaymentTerms)"> + <br/> + <span style="empty-cells:hide; font-weight:bold; text-decoration:underline; "> + <xsl:text>Zahlungsbedingungen:</xsl:text> + </span> + <br/> + <br/> + <xsl:variable name="altova:table"> + <table style="border:0px; border-collapse:collapse; border-right-style:none; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_23" select="."/> + <xsl:variable name="altova:ColumnData"/> + <thead> + <tr> + <th style="border-left-style:none; "> + <span> + <xsl:text>Beschreibung</xsl:text> + </span> + </th> + <th style="width:110px; "> + <span> + <xsl:text>Fälligkeit</xsl:text> + </span> + </th> + <th style="border-right-style:none; width:110px; "> + <span> + <xsl:text>Teilzahlung</xsl:text> + </span> + </th> + </tr> + </thead> + <tbody> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement"> + <xsl:for-each select="ram:SpecifiedTradePaymentTerms"> + <tr> + <td style="border-bottom-style:none; border-left-style:none; "> + <xsl:for-each select="ram:Description"> + <span style="white-space:pre-wrap; "> + <xsl:apply-templates/> + </span> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; text-align:center; width:110px; "> + <xsl:for-each select="ram:DueDateDateTime"> + <xsl:for-each select="udt:DateTimeString"> + <xsl:call-template name="ram:Datum"/> + </xsl:for-each> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-right-style:none; text-align:right; width:110px; "> + <xsl:for-each select="ram:PartialPaymentAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_24"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_24" select="string($altova:seqContentStrings_24)"/> + <xsl:value-of select="$altova:sContent_24"/> + </span> + </xsl:for-each> + </td> + </tr> + <tr> + <td colspan="3" style="border-left-style:none; border-right-style:none; border-top-style:none; min-height:0px; "> + <xsl:if test="fn:exists(ram:ApplicableTradePaymentPenaltyTerms) or fn:exists(ram:ApplicableTradePaymentDiscountTerms)"> + <xsl:variable name="altova:table"> + <table style="border:0px; border-collapse:collapse; border-left-style:none; border-top-style:none; margin:0px; padding:0px; " border="1" width="100%"> + <xsl:variable name="altova:CurrContextGrid_25" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <tr style="border-bottom-style:none; border-top-style:none; "> + <td style="border-bottom-style:none; border-left-style:none; border-top-style:none; min-height:0px; "/> + <td style="border-bottom-style:none; min-height:0px; text-align:center; width:110px; "> + <span style="font-weight:bold; "> + <xsl:text>Bezug</xsl:text> + </span> + </td> + <td style="border-bottom-style:none; min-height:0px; text-align:center; width:110px; "> + <span style="font-weight:bold; "> + <xsl:text>Innerhalb</xsl:text> + </span> + </td> + <td style="border-bottom-style:none; min-height:0px; text-align:center; width:110px; "> + <span style="font-weight:bold; "> + <xsl:text>Basisbetrag</xsl:text> + </span> + </td> + <td style="border-bottom-style:none; min-height:0px; text-align:center; width:110px; "> + <span style="font-weight:bold; "> + <xsl:text>%</xsl:text> + </span> + </td> + <td style="border-bottom-style:none; border-right-style:none; min-height:0px; text-align:center; width:108px; "> + <span style="font-weight:bold; "> + <xsl:text>Betrag</xsl:text> + </span> + </td> + </tr> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:if> + <xsl:if test="fn:exists(ram:ApplicableTradePaymentPenaltyTerms)"> + <xsl:variable name="altova:table"> + <table style="border:0px; border-bottom-style:none; border-collapse:collapse; margin:0px; padding:0px; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_26" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <xsl:for-each select="ram:ApplicableTradePaymentPenaltyTerms"> + <tr> + <td style="border-bottom-style:none; border-left-style:none; min-height:0px; text-align:right; "> + <span> + <xsl:text>Zuschlag  </xsl:text> + </span> + </td> + <td style="border-bottom-style:none; min-height:0px; text-align:center; width:110px; "> + <xsl:for-each select="ram:BasisDateTime"> + <xsl:for-each select="udt:DateTimeString"> + <xsl:call-template name="ram:Datum"/> + </xsl:for-each> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; min-height:0px; text-align:right; width:110px; "> + <xsl:for-each select="ram:BasisPeriodMeasure"> + <xsl:call-template name="ram:Menge"/> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; min-height:0px; text-align:right; width:110px; "> + <xsl:for-each select="ram:BasisAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_27"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_27" select="string($altova:seqContentStrings_27)"/> + <xsl:value-of select="$altova:sContent_27"/> + </span> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; min-height:0px; text-align:right; width:110px; "> + <xsl:for-each select="ram:CalculationPercent"> + <span> + <xsl:variable name="altova:seqContentStrings_28"> + <xsl:value-of select="format-number(number(string(.)), '###.##0,####', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_28" select="string($altova:seqContentStrings_28)"/> + <xsl:value-of select="$altova:sContent_28"/> + </span> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-right-style:none; min-height:0px; text-align:right; width:108px; "> + <xsl:for-each select="ram:ActualPenaltyAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_29"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_29" select="string($altova:seqContentStrings_29)"/> + <xsl:value-of select="$altova:sContent_29"/> + </span> + </xsl:for-each> + </td> + </tr> + </xsl:for-each> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:if> + <xsl:if test="fn:exists(ram:ApplicableTradePaymentDiscountTerms)"> + <xsl:variable name="altova:table"> + <table style="border:0px; border-collapse:collapse; margin:0px; padding:0px; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_30" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <xsl:for-each select="ram:ApplicableTradePaymentDiscountTerms"> + <tr> + <td style="border-bottom-style:none; border-left-style:none; min-height:0px; text-align:right; "> + <span> + <xsl:text>Skonto  </xsl:text> + </span> + </td> + <td style="border-bottom-style:none; min-height:0px; text-align:center; width:110px; "> + <xsl:for-each select="ram:BasisDateTime"> + <xsl:for-each select="udt:DateTimeString"> + <xsl:call-template name="ram:Datum"/> + </xsl:for-each> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; min-height:0px; text-align:right; width:110px; "> + <xsl:for-each select="ram:BasisPeriodMeasure"> + <xsl:call-template name="ram:Menge"/> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; min-height:0px; text-align:right; width:110px; "> + <xsl:for-each select="ram:BasisAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_31"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_31" select="string($altova:seqContentStrings_31)"/> + <xsl:value-of select="$altova:sContent_31"/> + </span> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; min-height:0px; text-align:right; width:110px; "> + <xsl:for-each select="ram:CalculationPercent"> + <span> + <xsl:variable name="altova:seqContentStrings_32"> + <xsl:value-of select="format-number(number(string(.)), '###.##0,####', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_32" select="string($altova:seqContentStrings_32)"/> + <xsl:value-of select="$altova:sContent_32"/> + </span> + </xsl:for-each> + </td> + <td style="border-bottom-style:none; border-right-style:none; min-height:0px; text-align:right; width:108px; "> + <xsl:for-each select="ram:ActualDiscountAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_33"> + <xsl:value-of select="format-number(number(-1 * .), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_33" select="string($altova:seqContentStrings_33)"/> + <xsl:value-of select="$altova:sContent_33"/> + </span> + </xsl:for-each> + </td> + </tr> + </xsl:for-each> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:if> + </td> + </tr> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:if> + <xsl:if test="fn:exists(rsm:SpecifiedSupplyChainTradeTransaction/ram:ApplicableSupplyChainTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans)"> + <br/> + <span style="font-weight:bold; text-decoration:underline; "> + <xsl:text>Zahlungsart:</xsl:text> + </span> + <br/> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement"> + <xsl:for-each select="ram:SpecifiedTradeSettlementPaymentMeans"> + <xsl:for-each select="ram:Information"> + <br/> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:TypeCode"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Zahlungstyp (codiert): </xsl:text> + </span> + <xsl:call-template name="ram:PaymentType"/> + </xsl:for-each> + <xsl:for-each select="ram:ID"> + <xsl:for-each select="@schemeAgencyID"> + <br/> + <span> + <xsl:text>Gläubiger-ID         : </xsl:text> + </span> + <span> + <xsl:value-of select="string(.)"/> + </span> + </xsl:for-each> + <br/> + <span> + <xsl:text>Mandatsreferenz      : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:PayerPartyDebtorFinancialAccount"> + <xsl:for-each select="ram:IBANID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Käufer-IBAN          : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:ProprietaryID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Käufer-Kontonummer   : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:PayerSpecifiedDebtorFinancialInstitution"> + <xsl:for-each select="ram:BICID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Käufer-BIC           : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:GermanBankleitzahlID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Käufer-Bankleitzahl  : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:Name"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Käufer-Kreditinstitut: </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + <br/> + <xsl:for-each select="ram:PayeePartyCreditorFinancialAccount"> + <xsl:for-each select="ram:AccountName"> + <br/> + <span> + <xsl:text>Verkäufer-Kontoname  : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:IBANID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Verkäufer-IBAN       : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:ProprietaryID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Verkäufer-Kontonummer: </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:PayeeSpecifiedCreditorFinancialInstitution"> + <xsl:for-each select="ram:BICID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Verkäufer-BIC        : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:GermanBankleitzahlID"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Verkäufer-BLZ        : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:Name"> + <br/> + <span style="empty-cells:hide; "> + <xsl:text>Verkäufer-Kreditinst.: </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:if> + </td> + </tr> + <tr> + <td style="border-bottom-style:none; border-right-style:none; border-top-style:none; "> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement"> + <br/> + <xsl:if test="fn:exists(ram:SpecifiedTradeAllowanceCharge) or fn:exists(ram:SpecifiedLogisticsServiceCharge)"> + <span style="font-weight:bold; text-decoration:underline; "> + <xsl:text>Zu- und Abschläge:</xsl:text> + </span> + <br/> + <br/> + <xsl:variable name="altova:table"> + <table style="border:0px; border-collapse:collapse; empty-cells:hide; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_34" select="."/> + <xsl:variable name="altova:ColumnData"/> + <thead> + <tr> + <th colspan="2" style="border-left-style:none; "> + <span> + <xsl:text>Art</xsl:text> + </span> + </th> + <th> + <span> + <xsl:text>%</xsl:text> + </span> + </th> + <th> + <span> + <xsl:text>Basisbetrag</xsl:text> + </span> + </th> + <th style="width:110px; "> + <span> + <xsl:text>Basismenge</xsl:text> + </span> + </th> + <th style="width:110px; "> + <span> + <xsl:text>Steuer</xsl:text> + </span> + </th> + <th style="border-right-style:none; width:110px; "> + <span> + <xsl:text>Betrag</xsl:text> + </span> + </th> + </tr> + </thead> + <tbody> + <xsl:for-each select="ram:SpecifiedTradeAllowanceCharge"> + <xsl:sort select="ram:SequenceNumeric" data-type="text" order="ascending"/> + <tr> + <td style="border-left-style:none; "> + <xsl:for-each select="ram:ChargeIndicator"> + <xsl:for-each select="udt:Indicator"> + <span> + <xsl:value-of select="if (. eq fn:true())then 'Zuschlag' else 'Abschlag'"/> + </span> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SequenceNumeric"> + <span> + <xsl:text> Nr. </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </td> + <td> + <xsl:for-each select="ram:Reason"> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:ReasonCode"> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:call-template name="AllowanceChargeReasonCode"/> + </xsl:for-each> + </td> + <td style="text-align:right; "> + <xsl:for-each select="ram:CalculationPercent"> + <span> + <xsl:variable name="altova:seqContentStrings_35"> + <xsl:value-of select="format-number(number(string(.)), '###.##0,####', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_35" select="string($altova:seqContentStrings_35)"/> + <xsl:value-of select="$altova:sContent_35"/> + </span> + </xsl:for-each> + </td> + <td style="text-align:right; "> + <xsl:for-each select="ram:BasisAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_36"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_36" select="string($altova:seqContentStrings_36)"/> + <xsl:value-of select="$altova:sContent_36"/> + </span> + </xsl:for-each> + </td> + <td style="text-align:right; width:110px; "> + <xsl:for-each select="ram:BasisQuantity"> + <xsl:call-template name="ram:Menge"/> + </xsl:for-each> + </td> + <td style="text-align:right; width:110px; "> + <xsl:for-each select="ram:CategoryTradeTax"> + <xsl:call-template name="ram:TradeTax"/> + </xsl:for-each> + </td> + <td style="border-right-style:none; text-align:right; width:110px; "> + <xsl:for-each select="ram:ActualAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_37"> + <xsl:value-of select="format-number(number(if (../ram:ChargeIndicator/udt:Indicator eq fn:true()) then . else -1 * .), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_37" select="string($altova:seqContentStrings_37)"/> + <xsl:value-of select="$altova:sContent_37"/> + </span> + </xsl:for-each> + </td> + </tr> + </xsl:for-each> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + <xsl:if test="fn:exists(ram:SpecifiedLogisticsServiceCharge)"> + <xsl:if test="fn:not(fn:exists(ram:SpecifiedTradeAllowanceCharge))"> + <xsl:variable name="altova:table"> + <table style="border:0px; border-top-style:none; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_38" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <xsl:for-each select="ram:SpecifiedLogisticsServiceCharge"> + <tr> + <td style="border-left-style:none; border-top-style:solid; text-align:center; "> + <span style="font-weight:bold; "> + <xsl:text>Art</xsl:text> + </span> + </td> + <td style="border-top-style:solid; text-align:center; width:110px; "> + <span style="font-weight:bold; "> + <xsl:text>Steuer</xsl:text> + </span> + </td> + <td style="border-right-style:none; border-top-style:solid; text-align:center; width:110px; "> + <span style="font-weight:bold; "> + <xsl:text>Betrag</xsl:text> + </span> + </td> + </tr> + </xsl:for-each> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:if> + <xsl:variable name="altova:table"> + <table style="border:0px; border-top-style:none; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_39" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <xsl:for-each select="ram:SpecifiedLogisticsServiceCharge"> + <tr> + <td style="border-left-style:none; border-top-style:none; "> + <xsl:for-each select="ram:Description"> + <span style="white-space:pre-wrap; "> + <xsl:apply-templates/> + </span> + </xsl:for-each> + </td> + <td style="border-top-style:none; text-align:right; width:110px; "> + <xsl:for-each select="ram:AppliedTradeTax"> + <xsl:call-template name="ram:TradeTax"/> + </xsl:for-each> + </td> + <td style="border-right-style:none; border-top-style:none; text-align:right; width:110px; "> + <xsl:for-each select="ram:AppliedAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_40"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_40" select="string($altova:seqContentStrings_40)"/> + <xsl:value-of select="$altova:sContent_40"/> + </span> + </xsl:for-each> + </td> + </tr> + </xsl:for-each> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:if> + </xsl:if> + <br/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement"/> + </xsl:for-each> + </td> + </tr> + <tr> + <td style="border-bottom-style:none; border-top-style:none; "> + <xsl:if test="fn:exists(rsm:SpecifiedSupplyChainTradeTransaction/ram:ApplicableSupplyChainTradeSettlement/ram:ApplicableTradeTax)"> + <br/> + <span style="font-weight:bold; text-decoration:underline; "> + <xsl:text>Steuern:</xsl:text> + </span> + <br/> + <br/> + <xsl:variable name="altova:table"> + <table style="border:0px; border-collapse:collapse; border-right-style:none; width:100%; " border="1"> + <xsl:variable name="altova:CurrContextGrid_41" select="."/> + <xsl:variable name="altova:ColumnData"/> + <thead> + <tr> + <th style="border-left-style:none; "> + <span> + <xsl:text>Art (Kategorie)</xsl:text> + </span> + </th> + <th> + <span> + <xsl:text>Warenwert</xsl:text> + </span> + </th> + <th> + <span> + <xsl:text>Zu-/Abschlag</xsl:text> + </span> + </th> + <th style="width:110px; "> + <span> + <xsl:text>Nettobetrag</xsl:text> + </span> + </th> + <th style="width:110px; "> + <span> + <xsl:text>USt. %</xsl:text> + </span> + </th> + <th style="border-right-style:none; width:110px; "> + <span> + <xsl:text>USt.-Betrag</xsl:text> + </span> + </th> + </tr> + </thead> + <tbody> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement"> + <xsl:for-each select="ram:ApplicableTradeTax"> + <tr> + <td style="border-left-style:none; "> + <xsl:for-each select="ram:TypeCode"> + <xsl:apply-templates/> + </xsl:for-each> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:for-each select="ram:CategoryCode"> + <span> + <xsl:text>(</xsl:text> + </span> + <xsl:apply-templates/> + <span> + <xsl:text>)</xsl:text> + </span> + </xsl:for-each> + <xsl:for-each select="ram:ExemptionReason"> + <br/> + <xsl:apply-templates/> + </xsl:for-each> + </td> + <td style="text-align:right; "> + <xsl:for-each select="ram:LineTotalBasisAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_42"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_42" select="string($altova:seqContentStrings_42)"/> + <xsl:value-of select="$altova:sContent_42"/> + </span> + </xsl:for-each> + </td> + <td style="text-align:right; "> + <xsl:for-each select="ram:AllowanceChargeBasisAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_43"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_43" select="string($altova:seqContentStrings_43)"/> + <xsl:value-of select="$altova:sContent_43"/> + </span> + </xsl:for-each> + </td> + <td style="text-align:right; width:110px; "> + <xsl:for-each select="ram:BasisAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_44"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_44" select="string($altova:seqContentStrings_44)"/> + <xsl:value-of select="$altova:sContent_44"/> + </span> + </xsl:for-each> + </td> + <td style="text-align:right; width:110px; "> + <xsl:for-each select="ram:ApplicablePercent"> + <span> + <xsl:variable name="altova:seqContentStrings_45"> + <xsl:value-of select="format-number(number(string(.)), '###.##0,####', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_45" select="string($altova:seqContentStrings_45)"/> + <xsl:value-of select="$altova:sContent_45"/> + </span> + </xsl:for-each> + </td> + <td style="border-right-style:none; text-align:right; width:110px; "> + <xsl:for-each select="ram:CalculatedAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_46"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_46" select="string($altova:seqContentStrings_46)"/> + <xsl:value-of select="$altova:sContent_46"/> + </span> + </xsl:for-each> + </td> + </tr> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:if> + </td> + </tr> + <tr> + <td style="border-bottom-style:none; text-align:left; "> + <br/> + <span style="font-weight:bold; text-decoration:underline; "> + <xsl:text>Belegsummen:</xsl:text> + </span> + <br/> + <xsl:for-each select="rsm:SpecifiedSupplyChainTradeTransaction"> + <xsl:for-each select="ram:ApplicableSupplyChainTradeSettlement"> + <xsl:for-each select="ram:SpecifiedTradeSettlementMonetarySummation"> + <xsl:variable name="altova:table"> + <table style="border:0px; " border="1" width="100%"> + <xsl:variable name="altova:CurrContextGrid_47" select="."/> + <xsl:variable name="altova:ColumnData"/> + <tbody> + <tr> + <td style="border-style:none; "/> + <td style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; padding:1px; text-align:left; width:220px; "> + <span style="font-weight:bold; "> + <xsl:text>Positionssumme</xsl:text> + </span> + </td> + <td style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; padding:1px; text-align:right; width:110px; "> + <xsl:for-each select="ram:LineTotalAmount"> + <span style="font-weight:bold; "> + <xsl:variable name="altova:seqContentStrings_48"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_48" select="string($altova:seqContentStrings_48)"/> + <xsl:value-of select="$altova:sContent_48"/> + </span> + </xsl:for-each> + </td> + </tr> + <tr> + <td style="border-style:none; "/> + <td style="border:0px; border-top-style:double; padding:1px; text-align:left; width:220px; "> + <span> + <xsl:text>Gesamtbetrag der Zuschläge</xsl:text> + </span> + </td> + <td style="border:0px; border-top-style:double; padding:1px; text-align:right; width:110px; "> + <xsl:for-each select="ram:ChargeTotalAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_49"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_49" select="string($altova:seqContentStrings_49)"/> + <xsl:value-of select="$altova:sContent_49"/> + </span> + </xsl:for-each> + </td> + </tr> + <tr> + <td style="border-style:none; "/> + <td style="border:0px; border-top-style:double; padding:1px; text-align:left; width:220px; "> + <span> + <xsl:text>Gesamtbetrag der Abschläge</xsl:text> + </span> + </td> + <td style="border:0px; border-top-style:double; padding:1px; text-align:right; width:110px; "> + <xsl:for-each select="ram:AllowanceTotalAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_50"> + <xsl:value-of select="format-number(number(-1*.), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_50" select="string($altova:seqContentStrings_50)"/> + <xsl:value-of select="$altova:sContent_50"/> + </span> + </xsl:for-each> + </td> + </tr> + <tr> + <td style="border-style:none; "/> + <td style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; padding:1px; text-align:left; width:220px; "> + <span style="font-weight:bold; "> + <xsl:text>Rechnungssumme ohne USt.</xsl:text> + </span> + </td> + <td style="border-bottom-style:solid; border-left-style:none; border-right-style:none; border-top-style:none; padding:1px; text-align:right; width:110px; "> + <xsl:for-each select="ram:TaxBasisTotalAmount"> + <span style="font-weight:bold; "> + <xsl:variable name="altova:seqContentStrings_51"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_51" select="string($altova:seqContentStrings_51)"/> + <xsl:value-of select="$altova:sContent_51"/> + </span> + </xsl:for-each> + </td> + </tr> + <tr> + <td style="border-style:none; "/> + <td style="border:0px; border-top-style:double; padding:1px; text-align:left; width:220px; "> + <span> + <xsl:text>Steuerbetrag</xsl:text> + </span> + </td> + <td style="border:0px; border-top-style:double; padding:1px; text-align:right; width:110px; "> + <xsl:for-each select="ram:TaxTotalAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_52"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_52" select="string($altova:seqContentStrings_52)"/> + <xsl:value-of select="$altova:sContent_52"/> + </span> + </xsl:for-each> + </td> + </tr> + <tr> + <td style="border-style:none; "/> + <td style="border-bottom-style:double; border-bottom-width:medium; border-left-style:none; border-right-style:none; border-top-style:none; padding:1px; text-align:left; width:220px; "> + <span style="font-weight:bold; "> + <xsl:text>Bruttosumme</xsl:text> + </span> + </td> + <td style="border-bottom-style:double; border-bottom-width:medium; border-left-style:none; border-right-style:none; border-top-style:none; padding:1px; text-align:right; width:110px; "> + <xsl:for-each select="ram:GrandTotalAmount"> + <span style="font-weight:bold; "> + <xsl:variable name="altova:seqContentStrings_53"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_53" select="string($altova:seqContentStrings_53)"/> + <xsl:value-of select="$altova:sContent_53"/> + </span> + </xsl:for-each> + </td> + </tr> + <tr> + <td style="border-style:none; "/> + <td style="border:0px; border-top-style:double; padding:1px; text-align:left; width:220px; "> + <xsl:if test="(ram:TotalPrepaidAmount>=0 and fn:exists(ram:TotalPrepaidAmount)) or(fn:not(fn:exists(ram:TotalPrepaidAmount)) and fn:not(ends-with( ../../../rsm:SpecifiedExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID , 'basic' )))"> + <span> + <xsl:text>Erhaltene Anzahlungen</xsl:text> + </span> + <br/> + </xsl:if> + <xsl:if test="ram:TotalPrepaidAmount<0 and fn:exists(ram:TotalPrepaidAmount)"> + <span> + <xsl:text>Offene Zahlungen</xsl:text> + </span> + <br/> + </xsl:if> + </td> + <td style="border:0px; border-top-style:double; padding:1px; text-align:right; width:110px; "> + <xsl:if test="fn:exists(TotalPrepaidAmount) or fn:not(ends-with( ../../../rsm:SpecifiedExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID , 'basic' ))"> + <xsl:for-each select="ram:TotalPrepaidAmount"> + <span> + <xsl:variable name="altova:seqContentStrings_54"> + <xsl:value-of select="format-number(number(-1*.), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_54" select="string($altova:seqContentStrings_54)"/> + <xsl:value-of select="$altova:sContent_54"/> + </span> + </xsl:for-each> + </xsl:if> + </td> + </tr> + <tr> + <td style="border-style:none; "/> + <td style="border:0px; border-top-style:double; padding:1px; text-align:left; width:220px; "> + <xsl:if test="fn:exists(ram:DuePayableAmount) or fn:not(ends-with( ../../../rsm:SpecifiedExchangedDocumentContext/GuidelineSpecifiedDocumentContextParameter/ID , 'basic' ))"> + <span style="font-weight:bold; "> + <xsl:text>Zahlbetrag</xsl:text> + </span> + </xsl:if> + </td> + <td style="border:0px; border-top-style:double; padding:1px; text-align:right; width:110px; "> + <xsl:if test="fn:exists(ram:DuePayableAmount) or fn:not(ends-with( ../../../rsm:SpecifiedExchangedDocumentContext/GuidelineSpecifiedDocumentContextParameter/ID , 'basic' ))"> + <xsl:for-each select="ram:DuePayableAmount"> + <span style="font-weight:bold; "> + <xsl:variable name="altova:seqContentStrings_55"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_55" select="string($altova:seqContentStrings_55)"/> + <xsl:value-of select="$altova:sContent_55"/> + </span> + </xsl:for-each> + </xsl:if> + </td> + </tr> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </td> + </tr> + </tbody> + </table> + </xsl:variable> + <xsl:variable name="altova:col-count" select="sum( for $altova:cell in $altova:table/table/(thead | tbody | tfoot)[ 1 ]/tr[ 1 ]/(th | td) return altova:col-span( $altova:cell ) )"/> + <xsl:variable name="altova:generate-cols" as="xs:boolean*" select="for $altova:pos in 1 to $altova:col-count return true()"/> + <xsl:apply-templates select="$altova:table" mode="altova:generate-table"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + <br/> + </xsl:for-each> + </xsl:for-each> + <br/> + <br/> + </body> + </html> + </xsl:template> + <xsl:template name="ram:Party"> + <xsl:for-each select="ram:ID"> + <span> + <xsl:text>Nummer        : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="@schemeID"> + <xsl:call-template name="local_Identifier"/> + </xsl:for-each> + <xsl:for-each select="ram:GlobalID"> + <br/> + <span> + <xsl:text>Globale Nummer: </xsl:text> + </span> + <xsl:apply-templates/> + <xsl:for-each select="@schemeID"> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:call-template name="ram:Global_Identifier"/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:Name"> + <br/> + <span style="font-weight:bold; white-space:pre-wrap; "> + <xsl:apply-templates/> + </span> + </xsl:for-each> + <xsl:for-each select="ram:DefinedTradeContact"> + <xsl:for-each select="ram:PersonName"> + <br/> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:DepartmentName"> + <br/> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:PostalTradeAddress"> + <xsl:for-each select="ram:LineOne"> + <br/> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:LineTwo"> + <br/> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:CountryID"> + <br/> + <xsl:apply-templates/> + <span> + <xsl:text> </xsl:text> + </span> + </xsl:for-each> + <xsl:for-each select="ram:PostcodeCode"> + <xsl:apply-templates/> + <span> + <xsl:text> </xsl:text> + </span> + </xsl:for-each> + <xsl:for-each select="ram:CityName"> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + <br/> + <xsl:for-each select="ram:DefinedTradeContact"> + <xsl:for-each select="ram:TelephoneUniversalCommunication"> + <xsl:for-each select="ram:CompleteNumber"> + <br/> + <span> + <xsl:text>Telefon      : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:FaxUniversalCommunication"> + <xsl:for-each select="ram:CompleteNumber"> + <br/> + <span> + <xsl:text>Fax          : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:EmailURIUniversalCommunication"> + <xsl:for-each select="ram:URIID"> + <br/> + <span> + <xsl:text>E-Mail       : </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select="ram:SpecifiedTaxRegistration"> + <xsl:for-each select="ram:ID"> + <br/> + <xsl:call-template name="ram:TaxRegistration"/> + </xsl:for-each> + </xsl:for-each> + <br/> + </xsl:template> + <xsl:template name="ram:TradeTax"> + <xsl:for-each select="ram:ApplicablePercent"> + <span> + <xsl:variable name="altova:seqContentStrings_56"> + <xsl:value-of select="format-number(number(string(.)), '###.##0,####', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_56" select="string($altova:seqContentStrings_56)"/> + <xsl:value-of select="$altova:sContent_56"/> + </span> + <span> + <xsl:text> %</xsl:text> + </span> + </xsl:for-each> + <xsl:for-each select="ram:TypeCode"> + <span> + <xsl:text> </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:CategoryCode"> + <span> + <xsl:text> (</xsl:text> + </span> + <xsl:apply-templates/> + <span> + <xsl:text>)</xsl:text> + </span> + </xsl:for-each> + <xsl:for-each select="ram:CalculatedAmount"> + <span> + <xsl:text> entspricht </xsl:text> + </span> + <span> + <xsl:variable name="altova:seqContentStrings_57"> + <xsl:value-of select="format-number(number(string(.)), '##0,00', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_57" select="string($altova:seqContentStrings_57)"/> + <xsl:value-of select="$altova:sContent_57"/> + </span> + </xsl:for-each> + <xsl:for-each select="ram:ExemptionReason"> + <br/> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:template> + <xsl:template name="ram:Positionsreferenz"> + <xsl:for-each select="ram:ID"> + <span> + <xsl:text> Nr. </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + <xsl:for-each select="ram:IssueDateTime"> + <span> + <xsl:text> vom </xsl:text> + </span> + <span> + <xsl:variable name="altova:seqContentStrings_58"> + <xsl:value-of select="format-number(number(substring(string(string(.)), 9, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(.)), 6, 2)), '00', 'format1')"/> + <xsl:variable name="sText" as="xs:string?"> + <xsl:text>. </xsl:text> + </xsl:variable> + <xsl:value-of select="$sText"/> + <xsl:value-of select="format-number(number(substring(string(string(string(.))), 1, 4)), '0000', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_58" select="string($altova:seqContentStrings_58)"/> + <xsl:value-of select="$altova:sContent_58"/> + </span> + </xsl:for-each> + <xsl:for-each select="ram:LineID"> + <span> + <xsl:text> Zeile </xsl:text> + </span> + <xsl:apply-templates/> + </xsl:for-each> + </xsl:template> + <xsl:template name="ram:Datum"> + <span> + <xsl:value-of select="if ( @format = '102') then concat(substring(.,7,2),'.',substring(.,5,2),'.',substring(.,1,4)) else +if ( @format = '610') then concat(substring(.,5,2),'-',substring(.,1,4)) else +if ( @format = '616') then concat('KW ',substring(.,5,2),' ',substring(.,1,4)) else +concat('Ungültiges Datumsformat für: ', .)"/> + </span> + </xsl:template> + <xsl:template name="ram:Versand_Identifer"> + <span> + <xsl:value-of select="if(. eq 'GSIN') then . else +if(. eq 'GINC') then . else +if(. eq 'SSCC') then 'Nummer der Versandeinheit' else +if(. eq 'FLIGHT_NO') then 'Flugnummer' else +if(. eq 'NUMBER_PLATE') then 'Nummernschild' else +if(. eq 'SHIPMENT_REFERENCE') then 'Sendungs-/Ladungsbezugsnummer' else +."/> + </span> + </xsl:template> + <xsl:template name="ram:Global_Identifier"> + <span> + <xsl:text>(</xsl:text> + </span> + <span> + <xsl:value-of select="if (. eq '0021') then 'BIC' else +if (. eq '0060') then 'DUNS' else +if (. eq '0088') then 'GTIN' else +if (. eq '0160') then 'GLN' else +if (. eq '0177') then 'OSCAR' else +."/> + </span> + <span> + <xsl:text>)</xsl:text> + </span> + </xsl:template> + <xsl:template name="ram:Menge"> + <span> + <xsl:variable name="altova:seqContentStrings_59"> + <xsl:value-of select="format-number(number(string(.)), '##0', 'format1')"/> + </xsl:variable> + <xsl:variable name="altova:sContent_59" select="string($altova:seqContentStrings_59)"/> + <xsl:value-of select="$altova:sContent_59"/> + </span> + <xsl:for-each select="@unitCode"> + <span> + <xsl:text> </xsl:text> + </span> + <span> + <xsl:value-of select="if (. eq 'C62') then 'Stk' else +if (. eq 'DAY') then 'Tag(e)' else +if (. eq 'HAR') then 'ha' else +if (. eq 'HUR') then 'Std' else +if (. eq 'KGM') then 'kg' else +if (. eq 'KTM') then 'km' else +if (. eq 'LS') then 'pausch' else +if (. eq 'LTR') then 'l' else +if (. eq 'MIN') then 'min' else +if (. eq 'MMK') then 'mm²' else +if (. eq 'MMT') then 'mm' else +if (. eq 'MTK') then 'm²' else +if (. eq 'MTQ') then 'm³' else +if (. eq 'MTR') then 'm' else +if (. eq 'NAR') then 'Anz' else +if (. eq 'NPR') then 'Paar' else +if (. eq 'P1') then '%' else +if (. eq 'SET') then 'Set' else +if (. eq 'TNE') then 't' else +if (. eq 'WEE') then 'Woche(n)' else +."/> + </span> + </xsl:for-each> + </xsl:template> + <xsl:template name="ram:TaxRegistration"> + <span> + <xsl:value-of select="if ( @schemeID = 'FC') then concat('Steuernummer : ', .) else +if ( @schemeID = 'VA') then concat('USt.-Id.-Nr. : ', .) else +concat('Unbekannte Steuernummer (', @schemeID , '): ', .)"/> + </span> + </xsl:template> + <xsl:template name="ram:VersandMode"> + <span> + <xsl:value-of select="if (. eq '0')then '0 - Nicht spezifiziert' else +if (. eq '1')then '1 - Seefracht' else +if (. eq '2')then '2 - Schiene' else +if (. eq '3')then '3 - Straße' else +if (. eq '4')then '4 - Luftfracht' else +if (. eq '5')then '5 - Post/Paketversand' else +if (. eq '6')then '6 - Multimodaler Transport/kombinierter Verkehr' else +if (. eq '7')then '7 - Feste Transportinstallation' else +if (. eq '8')then '8 - Transport auf Binnengewässern' else +if (. eq '9')then '9 - Nicht anwendbar' else +fn:concat(.,' - unbekannte Transportart')"/> + </span> + </xsl:template> + <xsl:template name="ram:PaymentType"> + <span> + <xsl:value-of select="if(. eq '1') then concat(.,' - nicht definiert') else +if(. eq '3') then concat(.,' - Belastung durch automatisierte Clearingstelle') else +if(. eq '10') then concat(.,' - Barzahlung') else +if(. eq '20') then concat(.,' - per Scheck') else +if(. eq '31') then concat(.,' - per Überweisung (SEPA)') else +if(. eq '42') then concat(.,' - per Überweisung (nicht SEPA)') else +if(. eq '48') then concat(.,' - per Kreditkarte') else +if(. eq '49') then concat(.,' - per Lastschrift') else +if(. eq '97') then concat(.,' - per Ausgleich zwischen Partnern') else +."/> + </span> + </xsl:template> + <xsl:template name="ram:Referenz"> + <span> + <xsl:value-of select="if (. eq 'AAA')then 'Auftragsbestätigung' else +if (. eq 'AAB')then 'Proforma-Rechnung' else +if (. eq 'AAG') then 'Angebot' else +if (. eq 'AAJ') then 'Lieferauftrag' else +if (. eq 'AAL') then 'Zeichnung' else +if (. eq 'AAM') then 'Frachtbrief' else +if (. eq 'AAS') then 'Transportdokument' else +if (. eq 'ABT') then 'Zollerklärung' else +if (. eq 'AER') then 'Projektspezifikation' else +if (. eq 'AGG') then 'Reklamation' else +if (. eq 'AJS') then 'Vereinbarung' else +if (. eq 'ALO') then 'Wareneingang' else +if (. eq 'ALQ') then 'Rücksendungsanzeige' else +if (. eq 'API') then 'Bestandsbericht' else +if (. eq 'ASI') then 'Abliefernachweis' else +if (. eq 'AUD') then 'Inkasso-Referenz' else +if (. eq 'AWR') then 'Ursprungsbeleg' else +if (. eq 'BO') then 'Rahmenauftrag' else +if (. eq 'BC') then 'Vertrag (Käufer)' else +if (. eq 'CD') then 'Gutschrift' else +if (. eq 'DL') then 'Belastungsanzeige' else +if (. eq 'MG') then 'Zählernummer' else +if (. eq 'OI') then 'Vorherige Rechnung' else +if (. eq 'PK') then 'Packliste' else +if (. eq 'PL') then 'Preisliste' else +if (. eq 'POR') then 'Bestellantwort' else +if (. eq 'PP') then 'Bestelländerung' else +if (. eq 'TIN') then 'Transportauftrag' else +if (. eq 'VN') then 'Auftragsnummer (Lieferant)' else +."/> + </span> + </xsl:template> + <xsl:template name="PackageQuantity"> + <xsl:for-each select="ram:PackageQuantity"> + <xsl:for-each select="@unitCode"> + <span> + <xsl:text> </xsl:text> + </span> + <span> + <xsl:value-of select="if (. eq 'BA') then 'Tonne' else +if (. eq 'BC') then 'Getränkekiste' else +if (. eq 'BG') then 'Tüte, Beutel' else +if (. eq 'BO') then 'Flasche' else +if (. eq 'BX') then 'Schachtel' else +if (. eq 'CS') then 'Kiste' else +if (. eq 'CT') then 'Karton' else +if (. eq 'CX') then 'Dose' else +if (. eq 'NE') then 'Unverpackt oder ausgepackt' else +if (. eq 'PX') then 'Palette' else +if (. eq 'RO') then 'Rolle' else +if (. eq 'SA') then 'Sack' +else ."/> + </span> + </xsl:for-each> + </xsl:for-each> + </xsl:template> + <xsl:template name="local_Identifier"> + <span> + <xsl:text>(</xsl:text> + </span> + <xsl:choose> + <xsl:when test=". instance of element()"> + <xsl:apply-templates/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="."/> + </xsl:otherwise> + </xsl:choose> + <span> + <xsl:text>)</xsl:text> + </span> + </xsl:template> + <xsl:template name="Klassifikationsart"> + <xsl:for-each select="@listID"> + <span> + <xsl:text>, Art: </xsl:text> + </span> + <span> + <xsl:value-of select="if (. eq 'GPC') then 'Global Product Classification (GS1)' else +if (. eq 'ECL') then 'eCl@ass' else +if (. eq 'UNSPSC') then 'United Nations Standard Products and Services Code® (UNSPSC®)' else +if (. eq 'HS') then 'Zolltarifnummer (Harmonised System)' else +if (. eq 'CBV') then 'Gemeinsames Vokabular für öffentliche Aufträge (Common Procurement Vocabulary - CPV)' else +if (. eq 'SELLER_ASSIGNED') then 'vom Verkäufer vergeben' else +if (. eq 'BUYER_ASSIGNED') then 'vom Käufer vergeben' else +."/> + </span> + </xsl:for-each> + </xsl:template> + <xsl:template name="DeliveryTypeCode"> + <span> + <xsl:value-of select="if (. eq 'XW') then 'ab Werk' else +if (. eq 'FCA') then 'frei Frachtführer' else +if (. eq 'FAS') then 'frei längsseits Schiff' else +if (. eq 'FOB') then 'frei an Bord' else +if (. eq 'CFR') then 'Kosten und Fracht' else +if (. eq 'CIF') then 'Kosten, Versicherung und Fracht bis zum Bestimmungshafen' else +if (. eq 'DAT') then 'geliefert Terminal' else +if (. eq 'DAP') then 'geliefert benannter Ort' else +if (. eq 'CPT') then 'Fracht bezahlt bis' else +if (. eq 'CIP') then 'Fracht und Versicherung bezahlt' else +if (. eq 'DDP') then 'geliefert Zoll bezahlt' else +."/> + </span> + </xsl:template> + <xsl:template name="AllowanceChargeReasonCode"> + <span> + <xsl:text>(</xsl:text> + </span> + <span> + <xsl:value-of select="if (. eq 'AA') then 'Werbekostenzuschuß' else +if (. eq 'ADR') then 'Andere Dienste' else +if (. eq 'AEO') then 'Sammel- und Recyclingservice' else +if (. eq 'DI') then 'Abzug (Rabatt)' else +if (. eq 'EAB') then 'Skonto' else +if (. eq 'FC') then 'Frachtgebühren' else +if (. eq 'IN') then 'Versicherung' else +if (. eq 'MAC') then 'Mindermengenzuschlag' else +if (. eq 'NAA') then 'Einwegbehälter' else +if (. eq 'PC') then 'Verpacken' else +if (. eq 'RAA') then 'Rückvergütung' else +if (. eq 'SH') then 'Spezielle Handhabungsdienstleistungen' else +."/> + </span> + <span> + <xsl:text>)</xsl:text> + </span> + </xsl:template> + <xsl:function name="altova:is-cell-empty" as="xs:boolean"> + <xsl:param name="altova:cell" as="element()"/> + <xsl:sequence select="altova:is-node-empty( $altova:cell )"/> + </xsl:function> + <xsl:function name="altova:is-node-empty" as="xs:boolean"> + <xsl:param name="altova:node" as="element()"/> + <xsl:sequence select="every $altova:child in $altova:node/child::node() satisfies ( ( boolean( $altova:child/self::text() ) and string-length( $altova:child ) = 0 ) or ( ( boolean( $altova:child/self::div ) or boolean( $altova:child/self::span ) or boolean( $altova:child/self::a ) ) and altova:is-node-empty( $altova:child ) ) )"/> + </xsl:function> + <xsl:function name="altova:col-span" as="xs:integer"> + <xsl:param name="altova:cell" as="element()"/> + <xsl:sequence select="if ( exists( $altova:cell/@colspan ) ) then xs:integer( $altova:cell/@colspan ) else 1"/> + </xsl:function> + <xsl:template match="@* | node()" mode="altova:generate-table"> + <xsl:param name="altova:generate-cols"/> + <xsl:copy> + <xsl:apply-templates select="@* | node()" mode="#current"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:copy> + </xsl:template> + <xsl:template match="tbody" mode="altova:generate-table"> + <xsl:param name="altova:generate-cols"/> + <xsl:choose> + <xsl:when test="empty(tr)"> + <xsl:copy> + <tr> + <td/> + </tr> + </xsl:copy> + </xsl:when> + <xsl:otherwise> + <xsl:copy> + <xsl:apply-templates select="@* | node()" mode="#current"> + <xsl:with-param name="altova:generate-cols" select="$altova:generate-cols"/> + </xsl:apply-templates> + </xsl:copy> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + <xsl:template match="th | td" mode="altova:generate-table"> + <xsl:choose> + <xsl:when test="altova:is-cell-empty( . )"> + <xsl:copy> + <xsl:apply-templates select="@*" mode="#current"/> + <xsl:text> </xsl:text> + </xsl:copy> + </xsl:when> + <xsl:otherwise> + <xsl:copy> + <xsl:apply-templates select="@* | node()" mode="#current"/> + </xsl:copy> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + <xsl:function name="altova:GetChartYValuesForSingleSeries"> + <xsl:param name="seqCategoryLeafPos" as="node()*"/> + <xsl:param name="nodeSeriesLeafPos" as="node()"/> + <xsl:param name="bValuesInCategory" as="xs:boolean"/> + <xsl:for-each select="$seqCategoryLeafPos"> + <xsl:element name="altova:Value"> + <xsl:value-of select="altova:GetChartYValueForSingleSeriesPos($nodeSeriesLeafPos, ., $bValuesInCategory)"/> + </xsl:element> + </xsl:for-each> + </xsl:function> + <xsl:function name="altova:GetChartYValueForSingleSeriesPos"> + <xsl:param name="nodeSeriesLeafPos" as="node()"/> + <xsl:param name="nodeCategoryLeafPos" as="node()"/> + <xsl:param name="bValuesInCategory" as="xs:boolean"/> + <xsl:variable name="altova:seqCategoryContextIds" select="$nodeCategoryLeafPos/altova:Context/@altova:ContextId" as="xs:string*"/> + <xsl:variable name="altova:seqSeriesContextIds" select="$nodeSeriesLeafPos/altova:Context/@altova:ContextId" as="xs:string*"/> + <xsl:variable name="altova:sCommonContextId" select="for $i in $altova:seqCategoryContextIds return if (some $j in $altova:seqSeriesContextIds satisfies $i eq $j) then $i else ()" as="xs:string*"/> + <xsl:choose> + <xsl:when test="count($altova:sCommonContextId) gt 1"> + <xsl:message select="concat('Es wurden mehrere Werte anstatt eines einzigen gefunden (Contexts: ', string-join($altova:sCommonContextId, ', '), ').')" terminate="yes"/> + </xsl:when> + <xsl:when test="count($altova:sCommonContextId) lt 1"> + <xsl:message select="concat('XBRL Chart: Info: No value found for position labeled "', $nodeCategoryLeafPos/@altova:sLabel, '"')" terminate="no"/> + <xsl:sequence select="'altova:no-value'"/> + </xsl:when> + <xsl:when test="$bValuesInCategory"> + <xsl:sequence select="xs:string($nodeCategoryLeafPos/altova:Context[@altova:ContextId eq $altova:sCommonContextId]/@altova:Value)"/> + </xsl:when> + <xsl:otherwise> + <xsl:sequence select="xs:string($nodeSeriesLeafPos/altova:Context[@altova:ContextId eq $altova:sCommonContextId]/@altova:Value)"/> + </xsl:otherwise> + </xsl:choose> + </xsl:function> + <xsl:function name="altova:GetChartLabelForPos" as="xs:string"> + <xsl:param name="nodeParam" as="node()"/> + <xsl:value-of select="string-join($nodeParam/ancestor-or-self::altova:Pos/@altova:sLabel, ' ')"/> + </xsl:function> + <xsl:function name="altova:convert-length-to-pixel" as="xs:decimal"> + <xsl:param name="altova:length"/> + <xsl:variable name="normLength" select="normalize-space($altova:length)"/> + <xsl:choose> + <xsl:when test="ends-with($normLength, 'px')"> + <xsl:value-of select="substring-before($normLength, 'px')"/> + </xsl:when> + <xsl:when test="ends-with($normLength, 'in')"> + <xsl:value-of select="xs:decimal(substring-before($normLength, 'in')) * $altova:nPxPerIn"/> + </xsl:when> + <xsl:when test="ends-with($normLength, 'cm')"> + <xsl:value-of select="xs:decimal(substring-before($normLength, 'cm')) * $altova:nPxPerIn div 2.54"/> + </xsl:when> + <xsl:when test="ends-with($normLength, 'mm')"> + <xsl:value-of select="xs:decimal(substring-before($normLength, 'mm')) * $altova:nPxPerIn div 25.4"/> + </xsl:when> + <xsl:when test="ends-with($normLength, 'pt')"> + <xsl:value-of select="xs:decimal(substring-before($normLength, 'pt')) * $altova:nPxPerIn div 72.0"/> + </xsl:when> + <xsl:when test="ends-with($normLength, 'pc')"> + <xsl:value-of select="xs:decimal(substring-before($normLength, 'pc')) * $altova:nPxPerIn div 6.0"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$normLength"/> + </xsl:otherwise> + </xsl:choose> + </xsl:function> + <xsl:function name="altova:convert-length-to-mm" as="xs:decimal"> + <xsl:param name="altova:length"/> + <xsl:variable name="normLength" select="normalize-space($altova:length)"/> + <xsl:choose> + <xsl:when test="ends-with($normLength, 'px')"> + <xsl:value-of select="xs:decimal(substring-before($normLength, 'px')) div $altova:nPxPerIn * 25.4"/> + </xsl:when> + <xsl:when test="ends-with($normLength, 'in')"> + <xsl:value-of select="xs:decimal(substring-before($normLength, 'in')) * 25.4"/> + </xsl:when> + <xsl:when test="ends-with($normLength, 'cm')"> + <xsl:value-of select="xs:decimal(substring-before($normLength, 'cm')) * 10"/> + </xsl:when> + <xsl:when test="ends-with($normLength, 'mm')"> + <xsl:value-of select="substring-before($normLength, 'mm') "/> + </xsl:when> + <xsl:when test="ends-with($normLength, 'pt')"> + <xsl:value-of select="xs:decimal(substring-before($normLength, 'pt')) * 25.4 div 72.0"/> + </xsl:when> + <xsl:when test="ends-with($normLength, 'pc')"> + <xsl:value-of select="xs:decimal(substring-before($normLength, 'pc')) * 25.4 div 6.0"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="number($normLength) div $altova:nPxPerIn * 25.4"/> + </xsl:otherwise> + </xsl:choose> + </xsl:function> +</xsl:stylesheet> diff --git a/src/main/resources/stylesheets/cii-xr.xsl b/src/main/resources/stylesheets/cii-xr.xsl new file mode 100644 index 00000000..5fca7b9d --- /dev/null +++ b/src/main/resources/stylesheets/cii-xr.xsl @@ -0,0 +1,2202 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xr="urn:ce.eu:en16931:2017:xoev-de:kosit:standard:xrechnung-1" + xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" + xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" + xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" + xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" + xmlns:saxon="http://saxon.sf.net/" + exclude-result-prefixes="#all" + version="2.0"> + <xd:doc scope="stylesheet"> + <xd:desc> + <xd:p> + <xd:b>Author:</xd:b> KoSIT Bremen (kosit@finanzen.bremen.de)</xd:p> + <xd:b>Fassung vom: 2019-03-18+01:00</xd:b> + <xd:p>Überführt eine zur EN 16931 konforme elektronische Rechnung in der konkreten Syntax UNCEFACT.CII.D16B in eine Instanz gemäß des Schemas für den Namensraum urn:ce.eu:en16931:2017:xoev-de:kosit:standard:xrechnung-1.</xd:p> + <xd:p>Das Skript setzt voraus, dass das zu verarbeitende Dokument valide bzgl. des XML Schemas und der Schematron-Regeln der Quelle ist. Für nicht valide Dokumente ist das Ergebnis nicht definiert.</xd:p> + </xd:desc> + </xd:doc> + + <xsl:output method="xml" indent="yes"/> + + <xsl:template match="/rsm:CrossIndustryInvoice"> + <xr:invoice> + <xsl:variable name="current-bg" as="element()" select="."/> + <xsl:apply-templates mode="BT-1" select="./rsm:ExchangedDocument/ram:ID"/> + <xsl:apply-templates mode="BT-2" + select="./rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format = '102']"/> + <xsl:apply-templates mode="BT-3" select="./rsm:ExchangedDocument/ram:TypeCode"/> + <xsl:apply-templates mode="BT-5" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode"/> + <xsl:apply-templates mode="BT-6" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode"/> + <xsl:apply-templates mode="BT-7" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate/udt:DateString[@format = '102']"/> + <xsl:apply-templates mode="BT-8" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode"/> + <xsl:apply-templates mode="BT-9" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString[@format = '102']"/> + <xsl:apply-templates mode="BT-10" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerReference"/> + <xsl:apply-templates mode="BT-11" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SpecifiedProcuringProject/ram:ID"/> + <xsl:apply-templates mode="BT-12" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID"/> + <xsl:apply-templates mode="BT-13" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID"/> + <xsl:apply-templates mode="BT-14" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:IssuerAssignedID"/> + <xsl:apply-templates mode="BT-15" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:IssuerAssignedID"/> + <xsl:apply-templates mode="BT-16" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID"/> + <xsl:apply-templates mode="BT-17" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[following-sibling::ram:TypeCode='50']"/> + <xsl:apply-templates mode="BT-18" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[following-sibling::ram:TypeCode='130']"/> + <xsl:apply-templates mode="BT-19" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID"/> + <xsl:apply-templates mode="BT-20" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:Description"/> + <xsl:apply-templates mode="BG-1" select="./rsm:ExchangedDocument/ram:IncludedNote"/> + <xsl:apply-templates mode="BG-2" select="./rsm:ExchangedDocumentContext"/> + <xsl:apply-templates mode="BG-3" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument"/> + <xsl:apply-templates mode="BG-4" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty"/> + <xsl:apply-templates mode="BG-7" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty"/> + <xsl:apply-templates mode="BG-10" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty"/> + <xsl:apply-templates mode="BG-11" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty"/> + <xsl:apply-templates mode="BG-13" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty"/> + <!--Manuell: angepasst für BG-16--> + <xsl:for-each-group select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans" + group-by="ram:TypeCode"> + <xr:PAYMENT_INSTRUCTIONS> + <xsl:attribute name="xr:id" select="'BG-16'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:apply-templates mode="BT-81" select="current-group()[1]/ram:TypeCode"/> + <xsl:apply-templates mode="BT-82" select="./ram:Information"/> + <xsl:apply-templates mode="BT-83" + select="current-group()[1]/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PaymentReference"/> + <xsl:apply-templates mode="BG-17" + select="current-group()/ram:PayeePartyCreditorFinancialAccount"/> + <xsl:apply-templates mode="BG-18" + select="current-group()/ram:ApplicableTradeSettlementFinancialCard"/> + <xsl:apply-templates mode="BG-19" + select="current-group()/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement"/> + </xr:PAYMENT_INSTRUCTIONS> + </xsl:for-each-group> + <xsl:apply-templates mode="BG-20" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator='false']"/> + <xsl:apply-templates mode="BG-21" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator='true']"/> + <xsl:apply-templates mode="BG-22" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation"/> + <xsl:apply-templates mode="BG-23" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax"/> + <xsl:apply-templates mode="BG-24" + select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument"/> + <xsl:apply-templates mode="BG-25" + select="./rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem"/> + </xr:invoice> + </xsl:template> + <xsl:template mode="BT-1" + match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:ID"> + <xr:Invoice_number> + <xsl:attribute name="xr:id" select="'BT-1'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Invoice_number> + </xsl:template> + <xsl:template mode="BT-2" + match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format = '102']"> + <xr:Invoice_issue_date> + <xsl:attribute name="xr:id" select="'BT-2'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="date"/> + </xr:Invoice_issue_date> + </xsl:template> + <xsl:template mode="BT-3" + match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:TypeCode"> + <xr:Invoice_type_code> + <xsl:attribute name="xr:id" select="'BT-3'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Invoice_type_code> + </xsl:template> + <xsl:template mode="BT-5" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode"> + <xr:Invoice_currency_code> + <xsl:attribute name="xr:id" select="'BT-5'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Invoice_currency_code> + </xsl:template> + <xsl:template mode="BT-6" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode"> + <xr:VAT_accounting_currency_code> + <xsl:attribute name="xr:id" select="'BT-6'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:VAT_accounting_currency_code> + </xsl:template> + <xsl:template mode="BT-7" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate/udt:DateString[@format = '102']"> + <xr:Value_added_tax_point_date> + <xsl:attribute name="xr:id" select="'BT-7'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="date"/> + </xr:Value_added_tax_point_date> + </xsl:template> + <xsl:template mode="BT-8" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode"> + <xr:Value_added_tax_point_date_code> + <xsl:attribute name="xr:id" select="'BT-8'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Value_added_tax_point_date_code> + </xsl:template> + <xsl:template mode="BT-9" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString[@format = '102']"> + <xr:Payment_due_date> + <xsl:attribute name="xr:id" select="'BT-9'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="date"/> + </xr:Payment_due_date> + </xsl:template> + <xsl:template mode="BT-10" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerReference"> + <xr:Buyer_reference> + <xsl:attribute name="xr:id" select="'BT-10'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_reference> + </xsl:template> + <xsl:template mode="BT-11" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SpecifiedProcuringProject/ram:ID"> + <xr:Project_reference> + <xsl:attribute name="xr:id" select="'BT-11'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="document_reference"/> + </xr:Project_reference> + </xsl:template> + <xsl:template mode="BT-12" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID"> + <xr:Contract_reference> + <xsl:attribute name="xr:id" select="'BT-12'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="document_reference"/> + </xr:Contract_reference> + </xsl:template> + <xsl:template mode="BT-13" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID"> + <xr:Purchase_order_reference> + <xsl:attribute name="xr:id" select="'BT-13'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="document_reference"/> + </xr:Purchase_order_reference> + </xsl:template> + <xsl:template mode="BT-14" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:IssuerAssignedID"> + <xr:Sales_order_reference> + <xsl:attribute name="xr:id" select="'BT-14'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="document_reference"/> + </xr:Sales_order_reference> + </xsl:template> + <xsl:template mode="BT-15" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:IssuerAssignedID"> + <xr:Receiving_advice_reference> + <xsl:attribute name="xr:id" select="'BT-15'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="document_reference"/> + </xr:Receiving_advice_reference> + </xsl:template> + <xsl:template mode="BT-16" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID"> + <xr:Despatch_advice_reference> + <xsl:attribute name="xr:id" select="'BT-16'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="document_reference"/> + </xr:Despatch_advice_reference> + </xsl:template> + <xsl:template mode="BT-17" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[following-sibling::ram:TypeCode='50']"> + <xr:Tender_or_lot_reference> + <xsl:attribute name="xr:id" select="'BT-17'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="document_reference"/> + </xr:Tender_or_lot_reference> + </xsl:template> + <xsl:template mode="BT-18" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[following-sibling::ram:TypeCode='130']"> + <xr:Invoiced_object_identifier> + <xsl:attribute name="xr:id" select="'BT-18'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"> + <xsl:with-param name="schemeID" select="following-sibling::ram:ReferenceTypeCode"/> + </xsl:call-template> + </xr:Invoiced_object_identifier> + </xsl:template> + <xsl:template mode="BT-19" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID"> + <xr:Buyer_accounting_reference> + <xsl:attribute name="xr:id" select="'BT-19'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_accounting_reference> + </xsl:template> + <xsl:template mode="BT-20" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:Description"> + <xr:Payment_terms> + <xsl:attribute name="xr:id" select="'BT-20'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Payment_terms> + </xsl:template> + <xsl:template mode="BG-1" + match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote der Instanz in konkreter Syntax wird auf 2 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-21" select="./ram:SubjectCode"/> + <xsl:apply-templates mode="BT-22" select="./ram:Content"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:INVOICE_NOTE> + <xsl:attribute name="xr:id" select="'BG-1'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:INVOICE_NOTE> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-21" + match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode"> + <xr:Invoice_note_subject_code> + <xsl:attribute name="xr:id" select="'BT-21'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Invoice_note_subject_code> + </xsl:template> + <xsl:template mode="BT-22" + match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:Content"> + <xr:Invoice_note> + <xsl:attribute name="xr:id" select="'BT-22'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Invoice_note> + </xsl:template> + <xsl:template mode="BG-2" + match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext der Instanz in konkreter Syntax wird auf 2 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-23" + select="./ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID"/> + <xsl:apply-templates mode="BT-24" + select="./ram:GuidelineSpecifiedDocumentContextParameter/ram:ID"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:PROCESS_CONTROL> + <xsl:attribute name="xr:id" select="'BG-2'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:PROCESS_CONTROL> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-23" + match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID"> + <xr:Business_process_type> + <xsl:attribute name="xr:id" select="'BT-23'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Business_process_type> + </xsl:template> + <xsl:template mode="BT-24" + match="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID"> + <xr:Specification_identifier> + <xsl:attribute name="xr:id" select="'BT-24'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Specification_identifier> + </xsl:template> + <xsl:template mode="BG-3" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument der Instanz in konkreter Syntax wird auf 2 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-25" select="./ram:IssuerAssignedID"/> + <xsl:apply-templates mode="BT-26" + select="./ram:FormattedIssueDateTime/qdt:DateTimeString[@format = '102']"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:PRECEDING_INVOICE_REFERENCE> + <xsl:attribute name="xr:id" select="'BG-3'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:PRECEDING_INVOICE_REFERENCE> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-25" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID"> + <xr:Preceding_Invoice_reference> + <xsl:attribute name="xr:id" select="'BT-25'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="document_reference"/> + </xr:Preceding_Invoice_reference> + </xsl:template> + <xsl:template mode="BT-26" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format = '102']"> + <xr:Preceding_Invoice_issue_date> + <xsl:attribute name="xr:id" select="'BT-26'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="date"/> + </xr:Preceding_Invoice_issue_date> + </xsl:template> + <xsl:template mode="BG-4" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty der Instanz in konkreter Syntax wird auf 10 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-27" select="./ram:Name"/> + <xsl:apply-templates mode="BT-28" + select="./ram:SpecifiedLegalOrganization/ram:TradingBusinessName"/> + <xsl:apply-templates mode="BT-29" select="./ram:GlobalID[exists(@schemeID)]"/> + <xsl:apply-templates mode="BT-29" + select="./ram:ID[empty(following-sibling::ram:GlobalID/@schemeID)]"/> + <xsl:apply-templates mode="BT-30" select="./ram:SpecifiedLegalOrganization/ram:ID"/> + <xsl:apply-templates mode="BT-31" + select="./ram:SpecifiedTaxRegistration/ram:ID[@schemeID=('VA', 'VAT')]"/> + <xsl:apply-templates mode="BT-32" + select="./ram:SpecifiedTaxRegistration/ram:ID[@schemeID='FC']"/> + <xsl:apply-templates mode="BT-33" select="./ram:Description"/> + <xsl:apply-templates mode="BT-34" select="./ram:URIUniversalCommunication/ram:URIID"/> + <xsl:apply-templates mode="BG-5" select="./ram:PostalTradeAddress"/> + <xsl:apply-templates mode="BG-6" select="./ram:DefinedTradeContact"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:SELLER> + <xsl:attribute name="xr:id" select="'BG-4'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:SELLER> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-27" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Name"> + <xr:Seller_name> + <xsl:attribute name="xr:id" select="'BT-27'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_name> + </xsl:template> + <xsl:template mode="BT-28" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName"> + <xr:Seller_trading_name> + <xsl:attribute name="xr:id" select="'BT-28'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_trading_name> + </xsl:template> + <xsl:template mode="BT-29" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID[exists(@schemeID)]"> + <xr:Seller_identifier> + <xsl:attribute name="xr:id" select="'BT-29'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Seller_identifier> + </xsl:template> + <xsl:template mode="BT-29" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:ID[empty(following-sibling::ram:GlobalID/@schemeID)]"> + <xr:Seller_identifier> + <xsl:attribute name="xr:id" select="'BT-29'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Seller_identifier> + </xsl:template> + <xsl:template mode="BT-30" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID"> + <xr:Seller_legal_registration_identifier> + <xsl:attribute name="xr:id" select="'BT-30'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Seller_legal_registration_identifier> + </xsl:template> + <xsl:template mode="BT-31" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID=('VA', 'VAT')]"> + <xr:Seller_VAT_identifier> + <xsl:attribute name="xr:id" select="'BT-31'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Seller_VAT_identifier> + </xsl:template> + <xsl:template mode="BT-32" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID='FC']"> + <xr:Seller_tax_registration_identifier> + <xsl:attribute name="xr:id" select="'BT-32'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Seller_tax_registration_identifier> + </xsl:template> + <xsl:template mode="BT-33" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Description"> + <xr:Seller_additional_legal_information> + <xsl:attribute name="xr:id" select="'BT-33'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_additional_legal_information> + </xsl:template> + <xsl:template mode="BT-34" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID"> + <xr:Seller_electronic_address> + <xsl:attribute name="xr:id" select="'BT-34'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Seller_electronic_address> + </xsl:template> + <xsl:template mode="BG-5" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress der Instanz in konkreter Syntax wird auf 7 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-35" select="./ram:LineOne"/> + <xsl:apply-templates mode="BT-36" select="./ram:LineTwo"/> + <xsl:apply-templates mode="BT-162" select="./ram:LineThree"/> + <xsl:apply-templates mode="BT-37" select="./ram:CityName"/> + <xsl:apply-templates mode="BT-38" select="./ram:PostcodeCode"/> + <xsl:apply-templates mode="BT-39" select="./ram:CountrySubDivisionName"/> + <xsl:apply-templates mode="BT-40" select="./ram:CountryID"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:SELLER_POSTAL_ADDRESS> + <xsl:attribute name="xr:id" select="'BG-5'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:SELLER_POSTAL_ADDRESS> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-35" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:LineOne"> + <xr:Seller_address_line_1> + <xsl:attribute name="xr:id" select="'BT-35'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_address_line_1> + </xsl:template> + <xsl:template mode="BT-36" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:LineTwo"> + <xr:Seller_address_line_2> + <xsl:attribute name="xr:id" select="'BT-36'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_address_line_2> + </xsl:template> + <xsl:template mode="BT-162" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:LineThree"> + <xr:Seller_address_line_3> + <xsl:attribute name="xr:id" select="'BT-162'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_address_line_3> + </xsl:template> + <xsl:template mode="BT-37" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CityName"> + <xr:Seller_city> + <xsl:attribute name="xr:id" select="'BT-37'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_city> + </xsl:template> + <xsl:template mode="BT-38" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode"> + <xr:Seller_post_code> + <xsl:attribute name="xr:id" select="'BT-38'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_post_code> + </xsl:template> + <xsl:template mode="BT-39" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountrySubDivisionName"> + <xr:Seller_country_subdivision> + <xsl:attribute name="xr:id" select="'BT-39'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_country_subdivision> + </xsl:template> + <xsl:template mode="BT-40" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID"> + <xr:Seller_country_code> + <xsl:attribute name="xr:id" select="'BT-40'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Seller_country_code> + </xsl:template> + <xsl:template mode="BG-6" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact der Instanz in konkreter Syntax wird auf 3 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-41" select="./ram:DepartmentName"/> + <xsl:apply-templates mode="BT-41" select="./ram:PersonName"/> + <xsl:apply-templates mode="BT-42" + select="./ram:TelephoneUniversalCommunication/ram:CompleteNumber"/> + <xsl:apply-templates mode="BT-43" select="./ram:EmailURIUniversalCommunication/ram:URIID"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:SELLER_CONTACT> + <xsl:attribute name="xr:id" select="'BG-6'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:SELLER_CONTACT> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-41" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:DepartmentName"> + <xr:Seller_contact_point> + <xsl:attribute name="xr:id" select="'BT-41'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_contact_point> + </xsl:template> + <xsl:template mode="BT-41" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:PersonName"> + <xr:Seller_contact_point> + <xsl:attribute name="xr:id" select="'BT-41'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_contact_point> + </xsl:template> + <xsl:template mode="BT-42" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:CompleteNumber"> + <xr:Seller_contact_telephone_number> + <xsl:attribute name="xr:id" select="'BT-42'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_contact_telephone_number> + </xsl:template> + <xsl:template mode="BT-43" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID"> + <xr:Seller_contact_email_address> + <xsl:attribute name="xr:id" select="'BT-43'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_contact_email_address> + </xsl:template> + <xsl:template mode="BG-7" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty der Instanz in konkreter Syntax wird auf 8 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-44" select="./ram:Name"/> + <xsl:apply-templates mode="BT-45" + select="./ram:SpecifiedLegalOrganization/ram:TradingBusinessName"/> + <xsl:apply-templates mode="BT-46" + select="./ram:ID[empty(following-sibling::ram:GlobalID/@schemeID)]"/> + <xsl:apply-templates mode="BT-46" select="./ram:GlobalID[exists(@schemeID)]"/> + <xsl:apply-templates mode="BT-47" select="./ram:SpecifiedLegalOrganization/ram:ID"/> + <xsl:apply-templates mode="BT-48" + select="./ram:SpecifiedTaxRegistration/ram:ID[@schemeID=('VA', 'VAT')]"/> + <xsl:apply-templates mode="BT-49" select="./ram:URIUniversalCommunication/ram:URIID"/> + <xsl:apply-templates mode="BG-8" select="./ram:PostalTradeAddress"/> + <xsl:apply-templates mode="BG-9" select="./ram:DefinedTradeContact"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:BUYER> + <xsl:attribute name="xr:id" select="'BG-7'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:BUYER> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-44" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Name"> + <xr:Buyer_name> + <xsl:attribute name="xr:id" select="'BT-44'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_name> + </xsl:template> + <xsl:template mode="BT-45" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName"> + <xr:Buyer_trading_name> + <xsl:attribute name="xr:id" select="'BT-45'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_trading_name> + </xsl:template> + <xsl:template mode="BT-46" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:ID[empty(following-sibling::ram:GlobalID/@schemeID)]"> + <xr:Buyer_identifier> + <xsl:attribute name="xr:id" select="'BT-46'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Buyer_identifier> + </xsl:template> + <xsl:template mode="BT-46" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID[exists(@schemeID)]"> + <xr:Buyer_identifier> + <xsl:attribute name="xr:id" select="'BT-46'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Buyer_identifier> + </xsl:template> + <xsl:template mode="BT-47" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID"> + <xr:Buyer_legal_registration_identifier> + <xsl:attribute name="xr:id" select="'BT-47'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Buyer_legal_registration_identifier> + </xsl:template> + <xsl:template mode="BT-48" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID=('VA', 'VAT')]"> + <xr:Buyer_VAT_identifier> + <xsl:attribute name="xr:id" select="'BT-48'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Buyer_VAT_identifier> + </xsl:template> + <xsl:template mode="BT-49" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID"> + <xr:Buyer_electronic_address> + <xsl:attribute name="xr:id" select="'BT-49'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Buyer_electronic_address> + </xsl:template> + <xsl:template mode="BG-8" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress der Instanz in konkreter Syntax wird auf 7 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-50" select="./ram:LineOne"/> + <xsl:apply-templates mode="BT-51" select="./ram:LineTwo"/> + <xsl:apply-templates mode="BT-163" select="./ram:LineThree"/> + <xsl:apply-templates mode="BT-52" select="./ram:CityName"/> + <xsl:apply-templates mode="BT-53" select="./ram:PostcodeCode"/> + <xsl:apply-templates mode="BT-54" select="./ram:CountrySubDivisionName"/> + <xsl:apply-templates mode="BT-55" select="./ram:CountryID"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:BUYER_POSTAL_ADDRESS> + <xsl:attribute name="xr:id" select="'BG-8'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:BUYER_POSTAL_ADDRESS> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-50" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:LineOne"> + <xr:Buyer_address_line_1> + <xsl:attribute name="xr:id" select="'BT-50'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_address_line_1> + </xsl:template> + <xsl:template mode="BT-51" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:LineTwo"> + <xr:Buyer_address_line_2> + <xsl:attribute name="xr:id" select="'BT-51'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_address_line_2> + </xsl:template> + <xsl:template mode="BT-163" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:LineThree"> + <xr:Buyer_address_line_3> + <xsl:attribute name="xr:id" select="'BT-163'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_address_line_3> + </xsl:template> + <xsl:template mode="BT-52" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CityName"> + <xr:Buyer_city> + <xsl:attribute name="xr:id" select="'BT-52'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_city> + </xsl:template> + <xsl:template mode="BT-53" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode"> + <xr:Buyer_post_code> + <xsl:attribute name="xr:id" select="'BT-53'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_post_code> + </xsl:template> + <xsl:template mode="BT-54" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountrySubDivisionName"> + <xr:Buyer_country_subdivision> + <xsl:attribute name="xr:id" select="'BT-54'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_country_subdivision> + </xsl:template> + <xsl:template mode="BT-55" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID"> + <xr:Buyer_country_code> + <xsl:attribute name="xr:id" select="'BT-55'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Buyer_country_code> + </xsl:template> + <xsl:template mode="BG-9" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact der Instanz in konkreter Syntax wird auf 3 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-56" select="./ram:DepartmentName"/> + <xsl:apply-templates mode="BT-56" select="./ram:PersonName"/> + <xsl:apply-templates mode="BT-57" + select="./ram:TelephoneUniversalCommunication/ram:CompleteNumber"/> + <xsl:apply-templates mode="BT-58" select="./ram:EmailURIUniversalCommunication/ram:URIID"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:BUYER_CONTACT> + <xsl:attribute name="xr:id" select="'BG-9'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:BUYER_CONTACT> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-56" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:DepartmentName"> + <xr:Buyer_contact_point> + <xsl:attribute name="xr:id" select="'BT-56'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_contact_point> + </xsl:template> + <xsl:template mode="BT-56" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:PersonName"> + <xr:Buyer_contact_point> + <xsl:attribute name="xr:id" select="'BT-56'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_contact_point> + </xsl:template> + <xsl:template mode="BT-57" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:CompleteNumber"> + <xr:Buyer_contact_telephone_number> + <xsl:attribute name="xr:id" select="'BT-57'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_contact_telephone_number> + </xsl:template> + <xsl:template mode="BT-58" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID"> + <xr:Buyer_contact_email_address> + <xsl:attribute name="xr:id" select="'BT-58'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Buyer_contact_email_address> + </xsl:template> + <xsl:template mode="BG-10" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty der Instanz in konkreter Syntax wird auf 3 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-59" select="./ram:Name"/> + <xsl:apply-templates mode="BT-60" select="./ram:GlobalID[exists(@schemeID)]"/> + <xsl:apply-templates mode="BT-60" + select="./ram:ID[empty(following-sibling::ram:GlobalID/@schemeID)]"/> + <xsl:apply-templates mode="BT-61" select="./ram:SpecifiedLegalOrganization/ram:ID/@schemeID"/> + <xsl:apply-templates mode="BT-61" select="./ram:SpecifiedLegalOrganization/ram:ID"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:PAYEE> + <xsl:attribute name="xr:id" select="'BG-10'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:PAYEE> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-59" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:Name"> + <xr:Payee_name> + <xsl:attribute name="xr:id" select="'BT-59'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Payee_name> + </xsl:template> + <xsl:template mode="BT-60" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID[exists(@schemeID)]"> + <xr:Payee_identifier> + <xsl:attribute name="xr:id" select="'BT-60'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Payee_identifier> + </xsl:template> + <xsl:template mode="BT-60" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:ID[empty(following-sibling::ram:GlobalID/@schemeID)]"> + <xr:Payee_identifier> + <xsl:attribute name="xr:id" select="'BT-60'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Payee_identifier> + </xsl:template> + <xsl:template mode="BT-61" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID/@schemeID"> + <xr:Payee_legal_registration_identifier> + <xsl:attribute name="xr:id" select="'BT-61'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Payee_legal_registration_identifier> + </xsl:template> + <xsl:template mode="BT-61" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID"> + <xr:Payee_legal_registration_identifier> + <xsl:attribute name="xr:id" select="'BT-61'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Payee_legal_registration_identifier> + </xsl:template> + <xsl:template mode="BG-11" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty der Instanz in konkreter Syntax wird auf 3 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-62" select="./ram:Name"/> + <xsl:apply-templates mode="BT-63" select="./ram:SpecifiedTaxRegistration/ram:ID"/> + <xsl:apply-templates mode="BG-12" select="./ram:PostalTradeAddress"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:SELLER_TAX_REPRESENTATIVE_PARTY> + <xsl:attribute name="xr:id" select="'BG-11'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:SELLER_TAX_REPRESENTATIVE_PARTY> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-62" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:Name"> + <xr:Seller_tax_representative_name> + <xsl:attribute name="xr:id" select="'BT-62'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Seller_tax_representative_name> + </xsl:template> + <xsl:template mode="BT-63" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID"> + <xr:Seller_tax_representative_VAT_identifier> + <xsl:attribute name="xr:id" select="'BT-63'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Seller_tax_representative_VAT_identifier> + </xsl:template> + <xsl:template mode="BG-12" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress der Instanz in konkreter Syntax wird auf 7 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-64" select="./ram:LineOne"/> + <xsl:apply-templates mode="BT-65" select="./ram:LineTwo"/> + <xsl:apply-templates mode="BT-164" select="./ram:LineThree"/> + <xsl:apply-templates mode="BT-66" select="./ram:CityName"/> + <xsl:apply-templates mode="BT-67" select="./ram:PostcodeCode"/> + <xsl:apply-templates mode="BT-68" select="./ram:CountrySubDivisionName"/> + <xsl:apply-templates mode="BT-69" select="./ram:CountryID"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:SELLER_TAX_REPRESENTATIVE_POSTAL_ADDRESS> + <xsl:attribute name="xr:id" select="'BG-12'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:SELLER_TAX_REPRESENTATIVE_POSTAL_ADDRESS> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-64" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:LineOne"> + <xr:Tax_representative_address_line_1> + <xsl:attribute name="xr:id" select="'BT-64'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Tax_representative_address_line_1> + </xsl:template> + <xsl:template mode="BT-65" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:LineTwo"> + <xr:Tax_representative_address_line_2> + <xsl:attribute name="xr:id" select="'BT-65'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Tax_representative_address_line_2> + </xsl:template> + <xsl:template mode="BT-164" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:LineThree"> + <xr:Tax_representative_address_line_3> + <xsl:attribute name="xr:id" select="'BT-164'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Tax_representative_address_line_3> + </xsl:template> + <xsl:template mode="BT-66" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CityName"> + <xr:Tax_representative_city> + <xsl:attribute name="xr:id" select="'BT-66'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Tax_representative_city> + </xsl:template> + <xsl:template mode="BT-67" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode"> + <xr:Tax_representative_post_code> + <xsl:attribute name="xr:id" select="'BT-67'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Tax_representative_post_code> + </xsl:template> + <xsl:template mode="BT-68" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountrySubDivisionName"> + <xr:Tax_representative_country_subdivision> + <xsl:attribute name="xr:id" select="'BT-68'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Tax_representative_country_subdivision> + </xsl:template> + <xsl:template mode="BT-69" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountryID"> + <xr:Tax_representative_country_code> + <xsl:attribute name="xr:id" select="'BT-69'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Tax_representative_country_code> + </xsl:template> + <xsl:template mode="BG-13" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty der Instanz in konkreter Syntax wird auf 5 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-70" select="./ram:Name"/> + <xsl:apply-templates mode="BT-71" select="./ram:GlobalID[exists(@schemeID)]"/> + <xsl:apply-templates mode="BT-71" + select="./ram:ID[empty(following-sibling::ram:GlobalID/@schemeID)]"/> + <xsl:apply-templates mode="BT-72" + select="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format = '102']"/> + <xsl:apply-templates mode="BG-14" + select="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod"/> + <xsl:apply-templates mode="BG-15" select="./ram:PostalTradeAddress"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:DELIVERY_INFORMATION> + <xsl:attribute name="xr:id" select="'BG-13'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:DELIVERY_INFORMATION> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-70" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:Name"> + <xr:Deliver_to_party_name> + <xsl:attribute name="xr:id" select="'BT-70'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Deliver_to_party_name> + </xsl:template> + <xsl:template mode="BT-71" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID[exists(@schemeID)]"> + <xr:Deliver_to_location_identifier> + <xsl:attribute name="xr:id" select="'BT-71'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Deliver_to_location_identifier> + </xsl:template> + <xsl:template mode="BT-71" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:ID[empty(following-sibling::ram:GlobalID/@schemeID)]"> + <xr:Deliver_to_location_identifier> + <xsl:attribute name="xr:id" select="'BT-71'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Deliver_to_location_identifier> + </xsl:template> + <xsl:template mode="BT-72" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format = '102']"> + <xr:Actual_delivery_date> + <xsl:attribute name="xr:id" select="'BT-72'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="date"/> + </xr:Actual_delivery_date> + </xsl:template> + <xsl:template mode="BG-14" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod der Instanz in konkreter Syntax wird auf 2 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-73" + select="./ram:StartDateTime/udt:DateTimeString[@format = '102']"/> + <xsl:apply-templates mode="BT-74" + select="./ram:EndDateTime/udt:DateTimeString[@format = '102']"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:INVOICING_PERIOD> + <xsl:attribute name="xr:id" select="'BG-14'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:INVOICING_PERIOD> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-73" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format = '102']"> + <xr:Invoicing_period_start_date> + <xsl:attribute name="xr:id" select="'BT-73'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="date"/> + </xr:Invoicing_period_start_date> + </xsl:template> + <xsl:template mode="BT-74" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format = '102']"> + <xr:Invoicing_period_end_date> + <xsl:attribute name="xr:id" select="'BT-74'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="date"/> + </xr:Invoicing_period_end_date> + </xsl:template> + <xsl:template mode="BG-15" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress der Instanz in konkreter Syntax wird auf 7 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-75" select="./ram:LineOne"/> + <xsl:apply-templates mode="BT-76" select="./ram:LineTwo"/> + <xsl:apply-templates mode="BT-165" select="./ram:LineThree"/> + <xsl:apply-templates mode="BT-77" select="./ram:CityName"/> + <xsl:apply-templates mode="BT-78" select="./ram:PostcodeCode"/> + <xsl:apply-templates mode="BT-79" select="./ram:CountrySubDivisionName"/> + <xsl:apply-templates mode="BT-80" select="./ram:CountryID"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:DELIVER_TO_ADDRESS> + <xsl:attribute name="xr:id" select="'BG-15'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:DELIVER_TO_ADDRESS> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-75" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:LineOne"> + <xr:Deliver_to_address_line_1> + <xsl:attribute name="xr:id" select="'BT-75'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Deliver_to_address_line_1> + </xsl:template> + <xsl:template mode="BT-76" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:LineTwo"> + <xr:Deliver_to_address_line_2> + <xsl:attribute name="xr:id" select="'BT-76'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Deliver_to_address_line_2> + </xsl:template> + <xsl:template mode="BT-165" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:LineThree"> + <xr:Deliver_to_address_line_3> + <xsl:attribute name="xr:id" select="'BT-165'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Deliver_to_address_line_3> + </xsl:template> + <xsl:template mode="BT-77" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CityName"> + <xr:Deliver_to_city> + <xsl:attribute name="xr:id" select="'BT-77'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Deliver_to_city> + </xsl:template> + <xsl:template mode="BT-78" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode"> + <xr:Deliver_to_post_code> + <xsl:attribute name="xr:id" select="'BT-78'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Deliver_to_post_code> + </xsl:template> + <xsl:template mode="BT-79" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountrySubDivisionName"> + <xr:Deliver_to_country_subdivision> + <xsl:attribute name="xr:id" select="'BT-79'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Deliver_to_country_subdivision> + </xsl:template> + <xsl:template mode="BT-80" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID"> + <xr:Deliver_to_country_code> + <xsl:attribute name="xr:id" select="'BT-80'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Deliver_to_country_code> + </xsl:template> + <xsl:template mode="BG-16" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans der Instanz in konkreter Syntax wird auf 6 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-81" select="./ram:TypeCode"/> + <xsl:apply-templates mode="BT-82" select="./ram:Information"/> + <xsl:apply-templates mode="BT-83" + select="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PaymentReference"/> + <xsl:apply-templates mode="BG-17" select="./ram:PayeePartyCreditorFinancialAccount"/> + <xsl:apply-templates mode="BG-18" select="./ram:ApplicableTradeSettlementFinancialCard"/> + <xsl:apply-templates mode="BG-19" + select="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:PAYMENT_INSTRUCTIONS> + <xsl:attribute name="xr:id" select="'BG-16'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:PAYMENT_INSTRUCTIONS> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-81" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode"> + <xr:Payment_means_type_code> + <xsl:attribute name="xr:id" select="'BT-81'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Payment_means_type_code> + </xsl:template> + <xsl:template mode="BT-82" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:Information"> + <xr:Payment_means_text> + <xsl:attribute name="xr:id" select="'BT-82'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Payment_means_text> + </xsl:template> + <xsl:template mode="BT-83" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PaymentReference"> + <xr:Remittance_information> + <xsl:attribute name="xr:id" select="'BT-83'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Remittance_information> + </xsl:template> + <xsl:template mode="BG-17" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount der Instanz in konkreter Syntax wird auf 3 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-84" select="./ram:ProprietaryID"/> + <xsl:apply-templates mode="BT-84" select="./ram:IBANID"/> + <xsl:apply-templates mode="BT-85" select="./ram:AccountName"/> + <xsl:apply-templates mode="BT-86" + select="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution/ram:BICID"/> + <xsl:apply-templates mode="BT-86" + select="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution/ram:BICID"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:CREDIT_TRANSFER> + <xsl:attribute name="xr:id" select="'BG-17'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:CREDIT_TRANSFER> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-84" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID"> + <xr:Payment_account_identifier> + <xsl:attribute name="xr:id" select="'BT-84'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Payment_account_identifier> + </xsl:template> + <xsl:template mode="BT-84" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:IBANID"> + <xr:Payment_account_identifier> + <xsl:attribute name="xr:id" select="'BT-84'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Payment_account_identifier> + </xsl:template> + <xsl:template mode="BT-85" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:AccountName"> + <xr:Payment_account_name> + <xsl:attribute name="xr:id" select="'BT-85'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Payment_account_name> + </xsl:template> + <xsl:template mode="BT-86" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution/ram:BICID"> + <xr:Payment_service_provider_identifier> + <xsl:attribute name="xr:id" select="'BT-86'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Payment_service_provider_identifier> + </xsl:template> + <xsl:template mode="BT-86" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution/ram:BICID"> + <xr:Payment_service_provider_identifier> + <xsl:attribute name="xr:id" select="'BT-86'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Payment_service_provider_identifier> + </xsl:template> + <xsl:template mode="BG-18" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard der Instanz in konkreter Syntax wird auf 2 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-87" select="./ram:ID"/> + <xsl:apply-templates mode="BT-88" select="./ram:CardholderName"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:PAYMENT_CARD_INFORMATION> + <xsl:attribute name="xr:id" select="'BG-18'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:PAYMENT_CARD_INFORMATION> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-87" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard/ram:ID"> + <xr:Payment_card_primary_account_number> + <xsl:attribute name="xr:id" select="'BT-87'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Payment_card_primary_account_number> + </xsl:template> + <xsl:template mode="BT-88" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard/ram:CardholderName"> + <xr:Payment_card_holder_name> + <xsl:attribute name="xr:id" select="'BT-88'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Payment_card_holder_name> + </xsl:template> + <xsl:template mode="BG-19" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement der Instanz in konkreter Syntax wird auf 3 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-89" + select="./ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID"/> + <xsl:apply-templates mode="BT-90" select="./ram:CreditorReferenceID"/> + <xsl:apply-templates mode="BT-91" + select="./ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount/ram:IBANID"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:DIRECT_DEBIT> + <xsl:attribute name="xr:id" select="'BG-19'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:DIRECT_DEBIT> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-89" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID"> + <xr:Mandate_reference_identifier> + <xsl:attribute name="xr:id" select="'BT-89'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Mandate_reference_identifier> + </xsl:template> + <xsl:template mode="BT-90" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:CreditorReferenceID"> + <xr:Bank_assigned_creditor_identifier> + <xsl:attribute name="xr:id" select="'BT-90'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Bank_assigned_creditor_identifier> + </xsl:template> + <xsl:template mode="BT-91" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount/ram:IBANID"> + <xr:Debited_account_identifier> + <xsl:attribute name="xr:id" select="'BT-91'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Debited_account_identifier> + </xsl:template> + <xsl:template mode="BG-20" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator='false']"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator='false'] der Instanz in konkreter Syntax wird auf 7 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-92" select="./ram:ActualAmount"/> + <xsl:apply-templates mode="BT-93" select="./ram:BasisAmount"/> + <xsl:apply-templates mode="BT-94" select="./ram:CalculationPercent"/> + <xsl:apply-templates mode="BT-95" select="./ram:CategoryTradeTax/ram:CategoryCode"/> + <xsl:apply-templates mode="BT-96" select="./ram:CategoryTradeTax/ram:RateApplicablePercent"/> + <xsl:apply-templates mode="BT-97" select="./ram:Reason"/> + <xsl:apply-templates mode="BT-98" select="./ram:ReasonCode"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:DOCUMENT_LEVEL_ALLOWANCES> + <xsl:attribute name="xr:id" select="'BG-20'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:DOCUMENT_LEVEL_ALLOWANCES> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-92" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ActualAmount"> + <xr:Document_level_allowance_amount> + <xsl:attribute name="xr:id" select="'BT-92'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Document_level_allowance_amount> + </xsl:template> + <xsl:template mode="BT-93" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:BasisAmount"> + <xr:Document_level_allowance_base_amount> + <xsl:attribute name="xr:id" select="'BT-93'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Document_level_allowance_base_amount> + </xsl:template> + <xsl:template mode="BT-94" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:CalculationPercent"> + <xr:Document_level_allowance_percentage> + <xsl:attribute name="xr:id" select="'BT-94'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="percentage"/> + </xr:Document_level_allowance_percentage> + </xsl:template> + <xsl:template mode="BT-95" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:CategoryTradeTax/ram:CategoryCode"> + <xr:Document_level_allowance_VAT_category_code> + <xsl:attribute name="xr:id" select="'BT-95'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Document_level_allowance_VAT_category_code> + </xsl:template> + <xsl:template mode="BT-96" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:CategoryTradeTax/ram:RateApplicablePercent"> + <xr:Document_level_allowance_VAT_rate> + <xsl:attribute name="xr:id" select="'BT-96'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="percentage"/> + </xr:Document_level_allowance_VAT_rate> + </xsl:template> + <xsl:template mode="BT-97" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:Reason"> + <xr:Document_level_allowance_reason> + <xsl:attribute name="xr:id" select="'BT-97'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Document_level_allowance_reason> + </xsl:template> + <xsl:template mode="BT-98" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ReasonCode"> + <xr:Document_level_allowance_reason_code> + <xsl:attribute name="xr:id" select="'BT-98'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Document_level_allowance_reason_code> + </xsl:template> + <xsl:template mode="BG-21" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator='true']"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator='true'] der Instanz in konkreter Syntax wird auf 7 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-99" select="./ram:ActualAmount"/> + <xsl:apply-templates mode="BT-100" select="./ram:BasisAmount"/> + <xsl:apply-templates mode="BT-101" select="./ram:CalculationPercent"/> + <xsl:apply-templates mode="BT-102" select="./ram:CategoryTradeTax/ram:CategoryCode"/> + <xsl:apply-templates mode="BT-103" select="./ram:CategoryTradeTax/ram:RateApplicablePercent"/> + <xsl:apply-templates mode="BT-104" select="./ram:Reason"/> + <xsl:apply-templates mode="BT-105" select="./ram:ReasonCode"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:DOCUMENT_LEVEL_CHARGES> + <xsl:attribute name="xr:id" select="'BG-21'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:DOCUMENT_LEVEL_CHARGES> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-99" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ActualAmount"> + <xr:Document_level_charge_amount> + <xsl:attribute name="xr:id" select="'BT-99'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Document_level_charge_amount> + </xsl:template> + <xsl:template mode="BT-100" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:BasisAmount"> + <xr:Document_level_charge_base_amount> + <xsl:attribute name="xr:id" select="'BT-100'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Document_level_charge_base_amount> + </xsl:template> + <xsl:template mode="BT-101" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:CalculationPercent"> + <xr:Document_level_charge_percentage> + <xsl:attribute name="xr:id" select="'BT-101'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="percentage"/> + </xr:Document_level_charge_percentage> + </xsl:template> + <xsl:template mode="BT-102" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:CategoryTradeTax/ram:CategoryCode"> + <xr:Document_level_charge_VAT_category_code> + <xsl:attribute name="xr:id" select="'BT-102'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Document_level_charge_VAT_category_code> + </xsl:template> + <xsl:template mode="BT-103" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:CategoryTradeTax/ram:RateApplicablePercent"> + <xr:Document_level_charge_VAT_rate> + <xsl:attribute name="xr:id" select="'BT-103'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="percentage"/> + </xr:Document_level_charge_VAT_rate> + </xsl:template> + <xsl:template mode="BT-104" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:Reason"> + <xr:Document_level_charge_reason> + <xsl:attribute name="xr:id" select="'BT-104'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Document_level_charge_reason> + </xsl:template> + <xsl:template mode="BT-105" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ReasonCode"> + <xr:Document_level_charge_reason_code> + <xsl:attribute name="xr:id" select="'BT-105'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Document_level_charge_reason_code> + </xsl:template> + <xsl:template mode="BG-22" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation der Instanz in konkreter Syntax wird auf 10 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-106" select="./ram:LineTotalAmount"/> + <xsl:apply-templates mode="BT-107" select="./ram:AllowanceTotalAmount"/> + <xsl:apply-templates mode="BT-108" select="./ram:ChargeTotalAmount"/> + <xsl:apply-templates mode="BT-109" select="./ram:TaxBasisTotalAmount"/> + <xsl:apply-templates mode="BT-110" + select="./ram:TaxTotalAmount[@currencyID = parent::ram:SpecifiedTradeSettlementHeaderMonetarySummation/preceding-sibling::ram:TaxCurrencyCode]"/> + <xsl:apply-templates mode="BT-111" + select="./ram:TaxTotalAmount[@currencyID = parent::ram:SpecifiedTradeSettlementHeaderMonetarySummation/preceding-sibling::ram:InvoiceCurrencyCode]"/> + <xsl:apply-templates mode="BT-112" select="./ram:GrandTotalAmount"/> + <xsl:apply-templates mode="BT-113" select="./ram:TotalPrepaidAmount"/> + <xsl:apply-templates mode="BT-114" select="./ram:RoundingAmount"/> + <xsl:apply-templates mode="BT-115" select="./ram:DuePayableAmount"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:DOCUMENT_TOTALS> + <xsl:attribute name="xr:id" select="'BG-22'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:DOCUMENT_TOTALS> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-106" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount"> + <xr:Sum_of_Invoice_line_net_amount> + <xsl:attribute name="xr:id" select="'BT-106'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Sum_of_Invoice_line_net_amount> + </xsl:template> + <xsl:template mode="BT-107" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:AllowanceTotalAmount"> + <xr:Sum_of_allowances_on_document_level> + <xsl:attribute name="xr:id" select="'BT-107'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Sum_of_allowances_on_document_level> + </xsl:template> + <xsl:template mode="BT-108" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount"> + <xr:Sum_of_charges_on_document_level> + <xsl:attribute name="xr:id" select="'BT-108'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Sum_of_charges_on_document_level> + </xsl:template> + <xsl:template mode="BT-109" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount"> + <xr:Invoice_total_amount_without_VAT> + <xsl:attribute name="xr:id" select="'BT-109'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Invoice_total_amount_without_VAT> + </xsl:template> + <xsl:template mode="BT-110" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = parent::ram:SpecifiedTradeSettlementHeaderMonetarySummation/preceding-sibling::ram:TaxCurrencyCode]"> + <xr:Invoice_total_VAT_amount> + <xsl:attribute name="xr:id" select="'BT-110'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Invoice_total_VAT_amount> + </xsl:template> + <xsl:template mode="BT-111" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = parent::ram:SpecifiedTradeSettlementHeaderMonetarySummation/preceding-sibling::ram:InvoiceCurrencyCode]"> + <xr:Invoice_total_VAT_amount_in_accounting_currency> + <xsl:attribute name="xr:id" select="'BT-111'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Invoice_total_VAT_amount_in_accounting_currency> + </xsl:template> + <xsl:template mode="BT-112" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount"> + <xr:Invoice_total_amount_with_VAT> + <xsl:attribute name="xr:id" select="'BT-112'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Invoice_total_amount_with_VAT> + </xsl:template> + <xsl:template mode="BT-113" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TotalPrepaidAmount"> + <xr:Paid_amount> + <xsl:attribute name="xr:id" select="'BT-113'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Paid_amount> + </xsl:template> + <xsl:template mode="BT-114" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:RoundingAmount"> + <xr:Rounding_amount> + <xsl:attribute name="xr:id" select="'BT-114'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Rounding_amount> + </xsl:template> + <xsl:template mode="BT-115" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount"> + <xr:Amount_due_for_payment> + <xsl:attribute name="xr:id" select="'BT-115'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Amount_due_for_payment> + </xsl:template> + <xsl:template mode="BG-23" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax der Instanz in konkreter Syntax wird auf 6 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-116" select="./ram:BasisAmount"/> + <xsl:apply-templates mode="BT-117" select="./ram:CalculatedAmount"/> + <xsl:apply-templates mode="BT-118" select="./ram:CategoryCode"/> + <xsl:apply-templates mode="BT-119" select="./ram:RateApplicablePercent"/> + <xsl:apply-templates mode="BT-120" select="./ram:ExemptionReason"/> + <xsl:apply-templates mode="BT-121" select="./ram:ExemptionReasonCode"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:VAT_BREAKDOWN> + <xsl:attribute name="xr:id" select="'BG-23'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:VAT_BREAKDOWN> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-116" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount"> + <xr:VAT_category_taxable_amount> + <xsl:attribute name="xr:id" select="'BT-116'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:VAT_category_taxable_amount> + </xsl:template> + <xsl:template mode="BT-117" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount"> + <xr:VAT_category_tax_amount> + <xsl:attribute name="xr:id" select="'BT-117'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:VAT_category_tax_amount> + </xsl:template> + <xsl:template mode="BT-118" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode"> + <xr:VAT_category_code> + <xsl:attribute name="xr:id" select="'BT-118'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:VAT_category_code> + </xsl:template> + <xsl:template mode="BT-119" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:RateApplicablePercent"> + <xr:VAT_category_rate> + <xsl:attribute name="xr:id" select="'BT-119'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="percentage"/> + </xr:VAT_category_rate> + </xsl:template> + <xsl:template mode="BT-120" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReason"> + <xr:VAT_exemption_reason_text> + <xsl:attribute name="xr:id" select="'BT-120'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:VAT_exemption_reason_text> + </xsl:template> + <xsl:template mode="BT-121" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode"> + <xr:VAT_exemption_reason_code> + <xsl:attribute name="xr:id" select="'BT-121'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:VAT_exemption_reason_code> + </xsl:template> + <xsl:template mode="BG-24" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument der Instanz in konkreter Syntax wird auf 4 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-122" + select="./ram:IssuerAssignedID[following-sibling::ram:TypeCode='916']"/> + <xsl:apply-templates mode="BT-123" select="./ram:Name"/> + <xsl:apply-templates mode="BT-124" select="./ram:URIID"/> + <xsl:apply-templates mode="BT-125" select="./ram:AttachmentBinaryObject"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:ADDITIONAL_SUPPORTING_DOCUMENTS> + <xsl:attribute name="xr:id" select="'BG-24'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:ADDITIONAL_SUPPORTING_DOCUMENTS> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-122" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[following-sibling::ram:TypeCode='916']"> + <xr:Supporting_document_reference> + <xsl:attribute name="xr:id" select="'BT-122'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="document_reference"/> + </xr:Supporting_document_reference> + </xsl:template> + <xsl:template mode="BT-123" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:Name"> + <xr:Supporting_document_description> + <xsl:attribute name="xr:id" select="'BT-123'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Supporting_document_description> + </xsl:template> + <xsl:template mode="BT-124" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:URIID"> + <xr:External_document_location> + <xsl:attribute name="xr:id" select="'BT-124'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:External_document_location> + </xsl:template> + <xsl:template mode="BT-125" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject"> + <xr:Attached_document> + <xsl:attribute name="xr:id" select="'BT-125'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="binary_object"/> + </xr:Attached_document> + </xsl:template> + <xsl:template mode="BG-25" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem der Instanz in konkreter Syntax wird auf 14 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-126" select="./ram:AssociatedDocumentLineDocument/ram:LineID"/> + <xsl:apply-templates mode="BT-127" + select="./ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:Content"/> + <xsl:apply-templates mode="BT-128" + select="./ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[following-sibling::ram:TypeCode='130']"/> + <xsl:apply-templates mode="BT-129" + select="./ram:SpecifiedLineTradeDelivery/ram:BilledQuantity"/> + <xsl:apply-templates mode="BT-130" + select="./ram:SpecifiedLineTradeDelivery/ram:BilledQuantity/@unitCode"/> + <xsl:apply-templates mode="BT-131" + select="./ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount"/> + <xsl:apply-templates mode="BT-132" + select="./ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:LineID"/> + <xsl:apply-templates mode="BT-133" + select="./ram:SpecifiedLineTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID"/> + <xsl:apply-templates mode="BG-26" + select="./ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod"/> + <xsl:apply-templates mode="BG-27" + select="./ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator='false']"/> + <xsl:apply-templates mode="BG-28" + select="./ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator='true']"/> + <xsl:apply-templates mode="BG-29" select="./ram:SpecifiedLineTradeAgreement"/> + <xsl:apply-templates mode="BG-30" + select="./ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax"/> + <xsl:apply-templates mode="BG-31" select="./ram:SpecifiedTradeProduct"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:INVOICE_LINE> + <xsl:attribute name="xr:id" select="'BG-25'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:INVOICE_LINE> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-126" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineID"> + <xr:Invoice_line_identifier> + <xsl:attribute name="xr:id" select="'BT-126'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Invoice_line_identifier> + </xsl:template> + <xsl:template mode="BT-127" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:Content"> + <xr:Invoice_line_note> + <xsl:attribute name="xr:id" select="'BT-127'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Invoice_line_note> + </xsl:template> + <xsl:template mode="BT-128" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[following-sibling::ram:TypeCode='130']"> + <xr:Invoice_line_object_identifier> + <xsl:attribute name="xr:id" select="'BT-128'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"> + <xsl:with-param name="schemeID" select="following-sibling::ram:ReferenceTypeCode"/> + </xsl:call-template> + </xr:Invoice_line_object_identifier> + </xsl:template> + <xsl:template mode="BT-129" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity"> + <xr:Invoiced_quantity> + <xsl:attribute name="xr:id" select="'BT-129'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="quantity"/> + </xr:Invoiced_quantity> + </xsl:template> + <xsl:template mode="BT-130" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity/@unitCode"> + <xr:Invoiced_quantity_unit_of_measure_code> + <xsl:attribute name="xr:id" select="'BT-130'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Invoiced_quantity_unit_of_measure_code> + </xsl:template> + <xsl:template mode="BT-131" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount"> + <xr:Invoice_line_net_amount> + <xsl:attribute name="xr:id" select="'BT-131'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Invoice_line_net_amount> + </xsl:template> + <xsl:template mode="BT-132" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:LineID"> + <xr:Referenced_purchase_order_line_reference> + <xsl:attribute name="xr:id" select="'BT-132'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="document_reference"/> + </xr:Referenced_purchase_order_line_reference> + </xsl:template> + <xsl:template mode="BT-133" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID"> + <xr:Invoice_line_Buyer_accounting_reference> + <xsl:attribute name="xr:id" select="'BT-133'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Invoice_line_Buyer_accounting_reference> + </xsl:template> + <xsl:template mode="BG-26" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod der Instanz in konkreter Syntax wird auf 2 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-134" + select="./ram:StartDateTime/udt:DateTimeString[@format='102']"/> + <xsl:apply-templates mode="BT-135" + select="./ram:EndDateTime/udt:DateTimeString[@format='102']"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:INVOICE_LINE_PERIOD> + <xsl:attribute name="xr:id" select="'BG-26'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:INVOICE_LINE_PERIOD> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-134" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format='102']"> + <xr:Invoice_line_period_start_date> + <xsl:attribute name="xr:id" select="'BT-134'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="date"/> + </xr:Invoice_line_period_start_date> + </xsl:template> + <xsl:template mode="BT-135" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format='102']"> + <xr:Invoice_line_period_end_date> + <xsl:attribute name="xr:id" select="'BT-135'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="date"/> + </xr:Invoice_line_period_end_date> + </xsl:template> + <xsl:template mode="BG-27" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator='false']"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator='false'] der Instanz in konkreter Syntax wird auf 5 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-136" select="./ram:ActualAmount"/> + <xsl:apply-templates mode="BT-137" select="./ram:BasisAmount"/> + <xsl:apply-templates mode="BT-138" select="./ram:CalculationPercent"/> + <xsl:apply-templates mode="BT-139" select="./ram:Reason"/> + <xsl:apply-templates mode="BT-140" select="./ram:ReasonCode"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:INVOICE_LINE_ALLOWANCES> + <xsl:attribute name="xr:id" select="'BG-27'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:INVOICE_LINE_ALLOWANCES> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-136" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ActualAmount"> + <xr:Invoice_line_allowance_amount> + <xsl:attribute name="xr:id" select="'BT-136'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Invoice_line_allowance_amount> + </xsl:template> + <xsl:template mode="BT-137" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:BasisAmount"> + <xr:Invoice_line_allowance_base_amount> + <xsl:attribute name="xr:id" select="'BT-137'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Invoice_line_allowance_base_amount> + </xsl:template> + <xsl:template mode="BT-138" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:CalculationPercent"> + <xr:Invoice_line_allowance_percentage> + <xsl:attribute name="xr:id" select="'BT-138'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="percentage"/> + </xr:Invoice_line_allowance_percentage> + </xsl:template> + <xsl:template mode="BT-139" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:Reason"> + <xr:Invoice_line_allowance_reason> + <xsl:attribute name="xr:id" select="'BT-139'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Invoice_line_allowance_reason> + </xsl:template> + <xsl:template mode="BT-140" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ReasonCode"> + <xr:Invoice_line_allowance_reason_code> + <xsl:attribute name="xr:id" select="'BT-140'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Invoice_line_allowance_reason_code> + </xsl:template> + <xsl:template mode="BG-28" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator='true']"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator='true'] der Instanz in konkreter Syntax wird auf 5 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-141" select="./ram:ActualAmount"/> + <xsl:apply-templates mode="BT-142" select="./ram:BasisAmount"/> + <xsl:apply-templates mode="BT-143" select="./ram:CalculationPercent"/> + <xsl:apply-templates mode="BT-144" select="./ram:Reason"/> + <xsl:apply-templates mode="BT-145" select="./ram:ReasonCode"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:INVOICE_LINE_CHARGES> + <xsl:attribute name="xr:id" select="'BG-28'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:INVOICE_LINE_CHARGES> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-141" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ActualAmount"> + <xr:Invoice_line_charge_amount> + <xsl:attribute name="xr:id" select="'BT-141'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Invoice_line_charge_amount> + </xsl:template> + <xsl:template mode="BT-142" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:BasisAmount"> + <xr:Invoice_line_charge_base_amount> + <xsl:attribute name="xr:id" select="'BT-142'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="amount"/> + </xr:Invoice_line_charge_base_amount> + </xsl:template> + <xsl:template mode="BT-143" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:CalculationPercent"> + <xr:Invoice_line_charge_percentage> + <xsl:attribute name="xr:id" select="'BT-143'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="percentage"/> + </xr:Invoice_line_charge_percentage> + </xsl:template> + <xsl:template mode="BT-144" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:Reason"> + <xr:Invoice_line_charge_reason> + <xsl:attribute name="xr:id" select="'BT-144'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Invoice_line_charge_reason> + </xsl:template> + <xsl:template mode="BT-145" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ReasonCode"> + <xr:Invoice_line_charge_reason_code> + <xsl:attribute name="xr:id" select="'BT-145'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Invoice_line_charge_reason_code> + </xsl:template> + <xsl:template mode="BG-29" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement der Instanz in konkreter Syntax wird auf 5 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-146" select="./ram:NetPriceProductTradePrice/ram:ChargeAmount"/> + <xsl:apply-templates mode="BT-147" + select="./ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge/ram:ActualAmount"/> + <xsl:apply-templates mode="BT-148" + select="./ram:GrossPriceProductTradePrice/ram:ChargeAmount"/> + <xsl:apply-templates mode="BT-149" + select="./ram:NetPriceProductTradePrice/ram:BasisQuantity"/> + <xsl:apply-templates mode="BT-149" + select="./ram:GrossPriceProductTradePrice/ram:BasisQuantity"/> + <xsl:apply-templates mode="BT-150" + select="./ram:GrossPriceProductTradePrice/ram:BasisQuantity/@unitCode"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:PRICE_DETAILS> + <xsl:attribute name="xr:id" select="'BG-29'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:PRICE_DETAILS> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-146" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount"> + <xr:Item_net_price> + <xsl:attribute name="xr:id" select="'BT-146'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="unit_price_amount"/> + </xr:Item_net_price> + </xsl:template> + <xsl:template mode="BT-147" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge/ram:ActualAmount"> + <xr:Item_price_discount> + <xsl:attribute name="xr:id" select="'BT-147'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="unit_price_amount"/> + </xr:Item_price_discount> + </xsl:template> + <xsl:template mode="BT-148" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount"> + <xr:Item_gross_price> + <xsl:attribute name="xr:id" select="'BT-148'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="unit_price_amount"/> + </xr:Item_gross_price> + </xsl:template> + <xsl:template mode="BT-149" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity"> + <xr:Item_price_base_quantity> + <xsl:attribute name="xr:id" select="'BT-149'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="quantity"/> + </xr:Item_price_base_quantity> + </xsl:template> + <xsl:template mode="BT-149" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity"> + <xr:Item_price_base_quantity> + <xsl:attribute name="xr:id" select="'BT-149'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="quantity"/> + </xr:Item_price_base_quantity> + </xsl:template> + <xsl:template mode="BT-150" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity/@unitCode"> + <xr:Item_price_base_quantity_unit_of_measure> + <xsl:attribute name="xr:id" select="'BT-150'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Item_price_base_quantity_unit_of_measure> + </xsl:template> + <xsl:template mode="BG-30" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax der Instanz in konkreter Syntax wird auf 2 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-151" select="./ram:CategoryCode"/> + <xsl:apply-templates mode="BT-152" select="./ram:RateApplicablePercent"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:LINE_VAT_INFORMATION> + <xsl:attribute name="xr:id" select="'BG-30'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:LINE_VAT_INFORMATION> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-151" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode"> + <xr:Invoiced_item_VAT_category_code> + <xsl:attribute name="xr:id" select="'BT-151'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Invoiced_item_VAT_category_code> + </xsl:template> + <xsl:template mode="BT-152" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:RateApplicablePercent"> + <xr:Invoiced_item_VAT_rate> + <xsl:attribute name="xr:id" select="'BT-152'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="percentage"/> + </xr:Invoiced_item_VAT_rate> + </xsl:template> + <xsl:template mode="BG-31" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct der Instanz in konkreter Syntax wird auf 8 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-153" select="./ram:Name"/> + <xsl:apply-templates mode="BT-154" select="./ram:Description"/> + <xsl:apply-templates mode="BT-155" select="./ram:SellerAssignedID"/> + <xsl:apply-templates mode="BT-156" select="./ram:BuyerAssignedID"/> + <xsl:apply-templates mode="BT-157" select="./ram:GlobalID"/> + <xsl:apply-templates mode="BT-158" + select="./ram:DesignatedProductClassification/ram:ClassCode"/> + <xsl:apply-templates mode="BT-159" select="./ram:OriginTradeCountry/ram:ID"/> + <xsl:apply-templates mode="BG-32" select="./ram:ApplicableProductCharacteristic"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:ITEM_INFORMATION> + <xsl:attribute name="xr:id" select="'BG-31'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:ITEM_INFORMATION> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-153" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:Name"> + <xr:Item_name> + <xsl:attribute name="xr:id" select="'BT-153'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Item_name> + </xsl:template> + <xsl:template mode="BT-154" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:Description"> + <xr:Item_description> + <xsl:attribute name="xr:id" select="'BT-154'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Item_description> + </xsl:template> + <xsl:template mode="BT-155" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:SellerAssignedID"> + <xr:Item_Sellers_identifier> + <xsl:attribute name="xr:id" select="'BT-155'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Item_Sellers_identifier> + </xsl:template> + <xsl:template mode="BT-156" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:BuyerAssignedID"> + <xr:Item_Buyers_identifier> + <xsl:attribute name="xr:id" select="'BT-156'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier"/> + </xr:Item_Buyers_identifier> + </xsl:template> + <xsl:template mode="BT-157" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID"> + <xr:Item_standard_identifier> + <xsl:attribute name="xr:id" select="'BT-157'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme"/> + </xr:Item_standard_identifier> + </xsl:template> + <xsl:template mode="BT-158" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode"> + <xr:Item_classification_identifier> + <xsl:attribute name="xr:id" select="'BT-158'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="identifier-with-scheme-and-version"/> + </xr:Item_classification_identifier> + </xsl:template> + <xsl:template mode="BT-159" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:OriginTradeCountry/ram:ID"> + <xr:Item_country_of_origin> + <xsl:attribute name="xr:id" select="'BT-159'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="code"/> + </xr:Item_country_of_origin> + </xsl:template> + <xsl:template mode="BG-32" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic"> + <xsl:variable name="bg-contents" as="item()*"><!--Der Pfad /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic der Instanz in konkreter Syntax wird auf 2 Objekte der EN 16931 abgebildet. --> + <xsl:apply-templates mode="BT-160" select="./ram:Description"/> + <xsl:apply-templates mode="BT-161" select="./ram:Value"/> + </xsl:variable> + <xsl:if test="$bg-contents"> + <xr:ITEM_ATTRIBUTES> + <xsl:attribute name="xr:id" select="'BG-32'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:sequence select="$bg-contents"/> + </xr:ITEM_ATTRIBUTES> + </xsl:if> + </xsl:template> + <xsl:template mode="BT-160" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic/ram:Description"> + <xr:Item_attribute_name> + <xsl:attribute name="xr:id" select="'BT-160'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Item_attribute_name> + </xsl:template> + <xsl:template mode="BT-161" + match="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic/ram:Value"> + <xr:Item_attribute_value> + <xsl:attribute name="xr:id" select="'BT-161'"/> + <xsl:attribute name="xr:src" select="xr:src-path(.)"/> + <xsl:call-template name="text"/> + </xr:Item_attribute_value> + </xsl:template> + <xsl:template name="text"> + <xsl:value-of select="."/> + </xsl:template> + <xsl:template name="date"> + <xsl:choose> + <xsl:when test="matches(normalize-space(.), '^[0-9]{8}$')"> + <xsl:value-of select="xs:date( concat(substring(.,1,4), '-', substring(.,5,2), '-', substring(.,7,2) ) )"/> + </xsl:when> + <xsl:otherwise>ILLEGAL DATE FORMAT: <para>Mit diesem Datentyp wird ein kalendarisches Datum abgebildet, wie es in der ISO 8601 Spezifikation <quote>Calendar date complete representation</quote> beschrieben ist (siehe ISO 8601:2004, Abschnitt 5.2.1.1). Das Datum beinhaltet keine Zeitangabe. Das konkret zu verwendende Format ist abhängig von der genutzten Syntax.</para> +<para>Der Datentyp basiert auf dem Typ <quote>Date Time. Type</quote>, wie in ISO 15000-5:2014 Anhang B definiert.</para></xsl:otherwise> + </xsl:choose> + </xsl:template> + <xsl:template name="identifier-with-scheme-and-version"> + <xsl:param name="schemeID" as="element()?"/> + <xsl:if test="@listID | @schemeID"> + <xsl:attribute name="scheme_identifier" select="($schemeID, @listID, @schemeID)[1]"/> + </xsl:if> + <xsl:if test="@schemeVersionID | @listVersionID"> + <xsl:attribute name="scheme_version_identifier" + select="(@listVersionID, @schemeVersionID)[1]"/> + </xsl:if> + <xsl:value-of select="."/> + </xsl:template> + <xsl:template name="identifier-with-scheme"> + <xsl:param name="schemeID" as="element()?"/> + <xsl:if test="@schemeID"> + <xsl:attribute name="scheme_identifier" select="($schemeID, @listID, @schemeID)[1]"/> + </xsl:if> + <xsl:value-of select="."/> + </xsl:template> + <xsl:template name="identifier"> + <xsl:value-of select="."/> + </xsl:template> + <xsl:template name="code"> + <xsl:value-of select="."/> + </xsl:template> + <xsl:template name="amount"> + <xsl:value-of select="."/> + </xsl:template> + <xsl:template name="percentage"> + <xsl:value-of select="."/> + </xsl:template> + <xsl:template name="binary_object"> + <xsl:if test="@mimeCode"> + <xsl:attribute name="mime_code"> + <xsl:value-of select="@mimeCode"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@filename"> + <xsl:attribute name="filename"> + <xsl:value-of select="@filename"/> + </xsl:attribute> + </xsl:if> + <xsl:value-of select="."/> + </xsl:template> + <xsl:template name="unit_price_amount"> + <xsl:value-of select="."/> + </xsl:template> + <xsl:template name="quantity"> + <xsl:value-of select="."/> + </xsl:template> + <xsl:template name="document_reference"> + <xsl:value-of select="."/> + </xsl:template> + <xd:doc> + <xd:desc> Liefert einen XPath-Pfad, welches $n eindeutig identifiziert. </xd:desc> + <xd:param name="n"/> + </xd:doc> + <xsl:function name="xr:src-path" as="xs:string"> + <xsl:param name="n" as="node()"/> + <xsl:variable name="segments" as="xs:string*"> + <xsl:apply-templates select="$n" mode="xr:src-path"/> + </xsl:variable> + <xsl:sequence select="string-join($segments, '')"/> + </xsl:function> + <xd:doc> + <xd:desc> Liefert einen XPath-Pfad, welches $n eindeutig identifiziert. </xd:desc> + <xd:param name="n"/> + </xd:doc> + <xsl:template match="node() | @*" mode="xr:src-path"> + <xsl:for-each select="ancestor-or-self::*"> + <xsl:text>/</xsl:text> + <xsl:value-of select="name(.)"/> + <xsl:if test="preceding-sibling::*[name(.) = name(current())] or following-sibling::*[name(.) = name(current())]"> + <xsl:text>[</xsl:text> + <xsl:value-of select="count(preceding-sibling::*[name(.) = name(current())]) + 1"/> + <xsl:text>]</xsl:text> + </xsl:if> + </xsl:for-each> + <xsl:if test="not(self::*)"> + <xsl:text/>/@<xsl:value-of select="name(.)"/> + </xsl:if> + </xsl:template> +</xsl:stylesheet> diff --git a/src/main/resources/stylesheets/xrechnung-html.xsl b/src/main/resources/stylesheets/xrechnung-html.xsl new file mode 100644 index 00000000..5e15f314 --- /dev/null +++ b/src/main/resources/stylesheets/xrechnung-html.xsl @@ -0,0 +1,1188 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="2.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:xr="urn:ce.eu:en16931:2017:xoev-de:kosit:standard:xrechnung-1" + xmlns:xrv="http://www.example.org/XRechnung-Viewer"> + + <xsl:output indent="yes" method="html" encoding="UTF-8" /> + + <xsl:decimal-format name="decimal" decimal-separator="," grouping-separator="." NaN="" /> + + + <!-- MAIN HTML --> + <xsl:template match="/xr:invoice"> + + <html lang="de"> + <head> + <meta charset="UTF-8"/> + <title>XRechnung + + + + +
+ +
+
+
+ + + + + +
+
+ + + +
+ + + +
+
Wir übernehmen keine Haftung für die Richtigkeit der Daten.
+
+
+ + + +
+ + + +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ +
+
+
+
+ + + +
+
Informationen zum Käufer
+
+
+
Leitweg-ID:
+
+
+
+
Name:
+
+
+
+
Straße / Hausnummer:
+
+
+
+
Postfach:
+
+
+
+
Adresszusatz:
+
+
+
+
PLZ:
+
+
+
+
Ort:
+
+
+
+
Land:
+
+
+
+
Kennung:
+
+
+
+
Schema der Kennung:
+
+
+
+
Name:
+
+
+
+
Telefon:
+
+
+
+
E-Mail-Adresse:
+
+
+
+
+
+ + + +
+
Informationen zum Verkäufer
+
+
+
Firmenname:
+
+
+
+
Straße / Hausnummer:
+
+
+
+
Postfach:
+
+
+
+
Adresszusatz:
+
+
+
+
PLZ:
+
+
+
+
Ort:
+
+
+
+
Bundesland:
+
+
+
+
Ländercode:
+
+
+
+
Kennung:
+
+
+
+
Schema der Kennung:
+
+
+
+
Name:
+
+
+
+
Telefon:
+
+
+
+
E-Mail-Adresse:
+
+
+
+
+
+ + + +
+
+
Rechnungsdaten
+
+
+
+
+
Rechnungsnummer:
+
+
+
+
Rechnungsdatum:
+
+
+
+
Rechnungsart:
+
+
+
+
Währung:
+
+
+
+

Abrechnungszeitraum:

+
+
+
von:
+
+
+
+
bis:
+
+
+
+
+
+
+
+
+
Projektnummer:
+
+
+
+
Vertragsnummer:
+
+
+
+
Bestellnummer:
+
+
+
+
Auftragsnummer:
+
+
+
+

Vorausgegangene Rechnungen:

+ +
+
+
+
+
+ + +
+
+
Rechnungsnummer:
+
+
+
+
Rechnungsdatum:
+
+
+
+
+ + + +
+
+
Gesamtbeträge der Rechnung
+
+
+
Summe aller Positionen
+
netto
+
+
+
+
Summe Nachlässe
+
netto
+
+
+
+
Summe Zuschläge
+
netto
+
+
+
+
Gesamtsumme
+
netto
+
+
+
+
Summe Umsatzsteuer
+
+
+
+
+
Summe Umsatzsteuer in Abrechnungswährung
+
+
+
+
+
Gesamtsumme
+
brutto
+
+
+
+
Gezahlter Betrag
+
brutto
+
+
+
+
Rundungsbetrag
+
brutto
+
+
+
+
Fälliger Betrag
+
brutto
+
+
+
+
+
+
+ + + +
+
+
Aufschlüsselung der Umsatzsteuer auf Ebene der Rechnung
+
+
+
Umsatzsteuerkategorie:
+
+
+
+
+
Gesamtsumme
+
netto
+
+
+
+
Umsatzsteuersatz
+
+
%
+
+
+
Umsatzsteuerbetrag
+
+
+
+
+ +
+
Befreiungsgrund:
+
Kennung für den Befreiungsgrund:
+
+
+
+
+ + + +
+
+
Nachlass auf Ebene der Rechnung
+
+
+
Umsatzsteuerkategorie des Nachlasses:
+
+
+
+
+
Grundbetrag
+
netto
+
+
+
+
Prozentsatz
+
+
%
+
+
+
Nachlass
+
netto
+
+
+
+
Umsatzsteuersatz des Nachlasses
+
+
+
+
+
+
Grund für den Nachlass:
+
Document level allowance reason code:
+
+
+
+
+
+ + + +
+
+
Zuschlag auf Ebene der Rechnung
+
+
+
Umsatzsteuerkategorie des Zuschlages:
+
+
+
+
+
Grundbetrag
+
netto
+
+
+
+
Prozentsatz
+
+
%
+
+
+
Zuschlag
+
netto
+
+
+
+
Umsatzsteuersatz des Zuschlages
+
+
+
+
+
+
Grund für den Zuschlag:
+
Document level charge reason code:
+
+
+
+
+
+ + + +
+
Zahlungsdaten
+
+
+
Skonto; weitere Zahlungsbedingungen:
+
+
+
+
Fälligkeitsdatum:
+
+
+
+
Code für das Zahlungsmittel:
+
+
+
+
Zahlungsmittel:
+
+
+
+
Verwendungszweck:
+
+
+
+
+
+ + + +
+
Karteninformation
+
+
+
Kartennummer:
+
+
+
+
Karteninhaber:
+
+
+
+
+
+ + + +
+
Lastschrift
+
+
+
Mandatsreferenznr.:
+
+
+
+
IBAN:
+
+
+
+
Gläubiger-ID:
+
+
+
+
+
+ + + +
+
Überweisung
+
+
+
Kontoinhaber:
+
+
+
+
IBAN:
+
+
+
+
BIC:
+
+
+
+
+
+ + + +
+
Bemerkung zur Rechnung
+
+
+
Betreff:
+
+
+
+
Bemerkung:
+
+
+
+
+
+ + + +
+
Wir übernehmen keine Haftung für die Richtigkeit der Daten.
+ +
+
+ + + +
+
+
+
Position
+
+
+
Freitext:
+
+
+
+
Objektkennung:
+
+
+
+
Schema der Objektkennung:
+
+
+
+
Nummer der Auftragsposition:
+
+
+
+
Kontierungshinweis:
+
+
+

Abrechnungszeitraum:

+
+
von:
+
+
+
+
bis:
+
+
+
+
+
+
Preiseinzelheiten
+
+
+
Menge
+
+
+
+
Einheit
+
+
+
+
Preis pro Einheit (netto)
+
+
+
+
Gesamtpreis (netto)
+
+
+
+
+
+
Rabatt (netto):
+
+
+
+
Listenpreis (netto):
+
+
+
+
Anzahl der Einheit:
+
+
+
+
Code der Maßeinheit:
+
+
+
+
Umsatzsteuer:
+
+
+
+
Umsatzsteuersatz in Prozent:
+
%
+
+
+
+
+
+
+
+
+
Nachlässe auf Ebene der Rechnungsposition
+
+
+
Grundbetrag (netto)
+
+
+
+
Prozentsatz
+
%
+
+
+
Nachlass (netto)
+
+
+
+
+
Grund des Nachlasses:
+
Code für den Nachlassgrund:
+
+
+
+
Zuschläge auf Ebene der Rechnungsposition
+
+
+
Grundbetrag (netto)
+
+
+
+
Prozentsatz
+
%
+
+
+
Zuschlag (netto)
+
+
+
+
+
Grund des Zuschlags:
+
Code für den Zuschlagsgrund:
+
+
+
+
+
+
+
+
Artikelinformationen
+
+
+
+
+
+
Bezeichnung:
+
+
+
+
Beschreibung:
+
+
+
+
Artikelnummer:
+
+
+
+
Artikelkennung des Käufers:
+
+
+

Eigenschaften des Artikels:

+ +
+
+
+
+
+
+
Artikelkennung:
+
+
+
+
Schema der Artikelkennung:
+
+
+
+
Code der Artikelklassifizierung:
+
+
+
+
Kennung zur Bildung des Schemas:
+
+
+
+
Version zur Bildung des Schemas:
+
+
+
+
Code des Herkunftslandes:
+
+
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+ + + +
+
Wir übernehmen keine Haftung für die Richtigkeit der Daten.
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ + + +
+
Informationen zum Verkäufer
+
+
+
Abweichender Handelsname:
+
+
+
+
Bundesland:
+
+
+
+
Elektronische Adresse:
+
+
+
+
Schema der elektronischen Adresse:
+
+
+
+
Register-/Registriernummer:
+
+
+
+
Umsatzsteuer-ID:
+
+
+
+
Steuernummer:
+
+
+
+
Schema der Steuernummer:
+
+
+
+
Weitere rechtliche Informationen:
+
+
+
+
Code der Umsatzsteuerwährung:
+
+
+
+
+
+ + + +
+
Steuervertreter des Verkäufers
+
+
+
Name:
+
+
+
+
Straße / Hausnummer:
+
+
+
+
Postfach:
+
+
+
+
Adresszusatz:
+
+
+
+
PLZ:
+
+
+
+
Ort:
+
+
+
+
Bundesland:
+
+
+
+
Ländercode:
+
+
+
+
Umsatzsteuer-ID:
+
+
+
+
+
+ + + +
+
Informationen zum Käufer
+
+
+
Abweichender Handelsname:
+
+
+
+
Bundesland:
+
+
+
+
Elektronische Adresse:
+
+
+
+
Schema der elektronischen Adresse:
+
+
+
+
Register-/Registriernummer:
+
+
+
+
Schema der Register-/Registriernummer:
+
+
+
+
Umsatzsteuer-ID:
+
+
+
+
Abrechnungsdatum der Umsatzsteuer:
+
+
+
+
Code des Umsatzsteuer-Abrechnungsdatums:
+
+
+
+
Kontierungsinformation:
+
+
+
+
+
+ + + +
+
Lieferinformationen
+
+
+
Kennung des Lieferorts:
+
+
+
+
Schema der Kennung:
+
+
+
+
Lieferdatum:
+
+
+
+
Name des Empfängers:
+
+
+
+
Straße / Hausnummer:
+
+
+
+
Postfach:
+
+
+
+
Adresszusatz:
+
+
+
+
PLZ:
+
+
+
+
Ort:
+
+
+
+
Bundesland:
+
+
+
+
Land:
+
+
+
+
+
+ + + +
+
Informationen zum Vertrag
+
+
+
Vergabenummer:
+
+
+
+
Kennung der Empfangsbestätigung:
+
+
+
+
Kennung der Versandanzeige:
+
+
+
+
Prozesskennung:
+
+
+
+
Spezifikationskennung:
+
+
+
+
Objektkennung:
+
+
+
+
Schema der Objektkennung:
+
+
+
+
+
+ + + +
+
Vom Verkäufer abweichender Zahlungsempfänger
+
+
+
Name:
+
+
+
+
Kennung:
+
+
+
+
Schema der Kennung:
+
+
+
+
Register-/Registriernummer:
+
+
+
+
Schema der Register-/Registriernummer:
+
+
+
+
+
+ + + +
+
Wir übernehmen keine Haftung für die Richtigkeit der Daten.
+
+
+
+
Rechnungsbegründende Unterlagen
+ +
+
+
+
+
+ + + +
+
+
Kennung:
+
+
+
+
Beschreibung:
+
+
+
+
Verweis (z.B. Internetadresse):
+
+
+
+
Anhangsdokument:
+
+ Öffnen +
+ + +
+
+
Format des Anhangdokuments:
+
+
+
+
Name des Anhangsdokuments:
+
+
+
+
+ + + +
+
+
+
+
Bearbeitungshistorie
+ +
+
+
+
+
+ + + +
+
+
Datum/Uhrzeit:
+
+
+
+
Betreff:
+
+
+
+
Text:
+
+
+
+
Details:
+
+
+
+
+ +
diff --git a/src/test/resources/MustangGnuaccountingBeispielRE-20190610_507blanko.pdf b/src/test/resources/MustangGnuaccountingBeispielRE-20190610_507blanko.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9c4ae5582f811026979dfb671f1f830045eede1f GIT binary patch literal 87968 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 literal 0 HcmV?d00001