updated visualization

This commit is contained in:
jstaerk
2023-04-17 11:23:16 +02:00
parent c6d786363d
commit 118ad35279
16 changed files with 5729 additions and 3559 deletions

View File

@@ -71,7 +71,8 @@ public class ZUGFeRDVisualizer {
new StreamSource(CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/cii-xr.xsl")));
}
mXsltHTMLTemplate = mFactory.newTemplates(new StreamSource(
CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/xrechnung-html."+lang.name().toLowerCase()+".xsl")));
CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/xrechnung-pdf.xsl")));
// CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/xrechnung-html."+lang.name().toLowerCase()+".xsl")));
if (mXsltZF1HTMLTemplate==null) {
mXsltZF1HTMLTemplate = mFactory.newTemplates(new StreamSource(
CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/ZUGFeRD_1p0_c1p0_s1p0.xslt")));

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,139 @@
<?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:xr="urn:ce.eu:en16931:2017:xoev-de:kosit:standard:xrechnung-1"
exclude-result-prefixes="xs" version="2.0">
<xsl:include href="functions.xsl"/>
<xsl:variable name="datepattern" as="xs:string" select="'^[0-9]{8}'" />
<xsl:template name="text">
<xsl:value-of select="." />
</xsl:template>
<xsl:template name="date">
<xsl:variable name="normalizeddate" select="normalize-space(replace(., '-', ''))" />
<xsl:variable name="datematch" as="xs:boolean"
select="matches($normalizeddate, $datepattern)" />
<xsl:variable name="year" as="xs:integer">
<xsl:variable name="yearstring" select="substring($normalizeddate, 1, 4)" />
<xsl:value-of select="
if (matches($yearstring, '^[0-9]{4}')
and xs:integer($yearstring) &gt; 0)
then
xs:integer($yearstring)
else
0
" />
</xsl:variable>
<xsl:variable name="month" as="xs:integer">
<xsl:variable name="monthstring" select="substring($normalizeddate, 5, 2)" />
<xsl:value-of select="
if (matches($monthstring, '^[0-9]{2}') and xs:integer($monthstring) &gt; 0 and xs:integer($monthstring) &lt; 13) then
xs:integer($monthstring)
else
0" />
</xsl:variable>
<xsl:variable name="day" as="xs:integer">
<xsl:variable name="daystring" select="substring($normalizeddate, 7, 2)" />
<xsl:value-of select="
if (matches($daystring, '^[0-9]{2}') and xs:integer($daystring) &gt; 0 and xs:integer($daystring) &lt; 32) then
xs:integer($daystring)
else
0" />
</xsl:variable>
<xsl:choose>
<xsl:when test="$year &gt; 0 and $month &gt; 0 and $day &gt; 0">
<xsl:value-of
select="xs:date(concat($year, '-', format-number($month, '00'), '-', format-number($day, '00')))"
/>
</xsl:when>
<xsl:otherwise>ILLEGAL DATE FORMAT of "<xsl:value-of select="." />".</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="identifier">
<xsl:if test="@listID | @schemeID">
<xsl:attribute name="scheme_identifier" select="(@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="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>

View File

@@ -0,0 +1,138 @@
<?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:math="http://www.w3.org/2005/xpath-functions/math"
xmlns:xrf="https://projekte.kosit.org/xrechnung/xrechnung-visualization/functions"
exclude-result-prefixes="xs math xrf"
version="2.0">
<!-- Language of output -->
<xsl:param name="lang" select="'de'"/>
<!-- Enable fallback lookup based on natural string in German -->
<xsl:param name="l10n-nl-lookup" select="false()"/>
<!-- Filename with language file -->
<xsl:variable name="l10n-filename" select="'l10n/' || $lang || '.xml'"/>
<!-- Master localization file is German, it is used when key uses natural text in German to lookup proper key -->
<xsl:variable name="l10n-master-filename" select="'l10n/de.xml'"/>
<!-- Variable holding contents of l10n file -->
<xsl:variable name="l10n-doc">
<xsl:choose>
<xsl:when test="doc-available($l10n-filename)">
<xsl:sequence select="doc($l10n-filename)"/>
</xsl:when>
<xsl:when test="doc-available($l10n-master-filename)">
<xsl:sequence select="doc($l10n-master-filename)"/>
<!--<xsl:message>Unable to find localization for {$lang}. Using default from de.xml.</xsl:message>-->
</xsl:when>
<xsl:otherwise>
<!--<xsl:message>Unable to find localization for {$lang}. Can't load default from de.xml. Using empty localization.</xsl:message>-->
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Variable holding contents of master l10n file -->
<xsl:variable name="l10n-master-doc">
<xsl:choose>
<xsl:when test="doc-available($l10n-master-filename)">
<xsl:sequence select="doc($l10n-master-filename)"/>
<!--<xsl:message>Unable to find localization for {$lang}. Using default from de.xml.</xsl:message>-->
</xsl:when>
<xsl:otherwise>
<!--<xsl:message>Unable to find localization for {$lang}. Can't load default from de.xml. Using empty localization.</xsl:message>-->
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Key for quicker lookups of localized strings -->
<xsl:key name="l10n" match="entry" use="@key"/>
<!-- Key for quicker lookups of key for string -->
<xsl:key name="l10n-key" match="entry" use="normalize-space(.)"/>
<!-- Function returning localized string -->
<xsl:function name="xrf:_" as="xs:string">
<xsl:param name="key" as="xs:string"/>
<xsl:variable name="localized" select="key('l10n', $key, $l10n-doc)"/>
<xsl:choose>
<xsl:when test="$localized">
<xsl:sequence select="string($localized)"/>
</xsl:when>
<xsl:when test="$l10n-nl-lookup">
<!-- Some transformations use natural text in German as translation keys -->
<xsl:variable name="key2" select="(key('l10n-key', $key, $l10n-master-doc)/@key)[1]"/>
<xsl:variable name="localized2" select="key('l10n', $key2, $l10n-doc)"/>
<xsl:choose>
<xsl:when test="$localized2">
<xsl:sequence select="string($localized2)"/>
</xsl:when>
<xsl:otherwise>
<xsl:sequence select="$key"/>
<!--<xsl:message>Unable to find localization for {$key}.</xsl:message>-->
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:sequence select="'???' || $key || '???'"/>
<!--<xsl:message>Unable to find localization for {$key}.</xsl:message>-->
</xsl:otherwise>
</xsl:choose>
</xsl:function>
<!-- Function returning ID of localized string.
ID is holding original BT/BG number from EU norm -->
<xsl:function name="xrf:get-id" as="xs:string">
<xsl:param name="key" as="xs:string"/>
<xsl:variable name="localized" select="key('l10n', $key, $l10n-doc)"/>
<xsl:choose>
<xsl:when test="$localized/@id">
<xsl:sequence select="$localized/@id"/>
</xsl:when>
<xsl:otherwise>
<xsl:sequence select="'???'"/>
<!--<xsl:message>Unable to find BT/BG id for {$key}.</xsl:message>-->
</xsl:otherwise>
</xsl:choose>
</xsl:function>
<!-- We are emulating older template for getting labels in order to maintain backward compatability -->
<xsl:template name="field-mapping">
<xsl:param name="identifier"/>
<label><xsl:value-of select="xrf:_($identifier)"/></label>
<nummer><xsl:value-of select="xrf:get-id($identifier)"/></nummer>
</xsl:template>
<xsl:function name="xrf:field-label" as="xs:string">
<xsl:param name="identifier"/>
<xsl:sequence select="xrf:_($identifier)"></xsl:sequence>
</xsl:function>
<xsl:variable name="amount-picture" select="xrf:_('amount-format')" />
<xsl:variable name="at-least-two-picture" select="xrf:_('at-least-two-format')" />
<xsl:function name="xrf:format-with-at-least-two-digits" as="xs:string">
<xsl:param name="input-number"/>
<xsl:param name="lang"/>
<xsl:choose>
<xsl:when test="string-length(substring-after(xs:string($input-number), '.'))>2">
<xsl:sequence select="format-number($input-number,$at-least-two-picture,$lang)"></xsl:sequence>
</xsl:when>
<xsl:otherwise>
<xsl:sequence select="format-number($input-number,$amount-picture,$lang)"></xsl:sequence>
</xsl:otherwise>
</xsl:choose>
</xsl:function>
</xsl:stylesheet>

View File

@@ -0,0 +1,257 @@
<?xml version="1.0" encoding="UTF-8"?>
<properties>
<entry key="xr:Buyer_reference" id="BT-10">Leitweg-ID</entry>
<entry key="xr:Buyer_name" id="BT-44">Name</entry>
<entry key="xr:Buyer_address_line_1" id="BT-50">Adresszeile 1</entry>
<entry key="xr:Buyer_address_line_2" id="BT-51">Adresszeile 2</entry>
<entry key="xr:Buyer_address_line_3" id="BT-163">Adresszeile 3</entry>
<entry key="xr:Buyer_post_code" id="BT-53">PLZ</entry>
<entry key="xr:Buyer_city" id="BT-52">Ort</entry>
<entry key="xr:Buyer_country_code" id="BT-55">Ländercode</entry>
<entry key="xr:Buyer_identifier" id="BT-46">Kennung</entry>
<entry key="xr:Buyer_identifier/@scheme_identifier" id="BT-46_scheme">Schema der Kennung</entry>
<entry key="xr:Buyer_contact_point" id="BT-56">Name</entry>
<entry key="xr:Buyer_contact_telephone_number" id="BT-57">Telefon</entry>
<entry key="xr:Buyer_contact_email_address" id="BT-58">E-Mail-Adresse</entry>
<entry key="xr:Seller_name" id="BT-27">Firmenname</entry>
<entry key="xr:Seller_address_line_1" id="BT-35">Adresszeile 1</entry>
<entry key="xr:Seller_address_line_2" id="BT-36">Adresszeile 2</entry>
<entry key="xr:Seller_address_line_3" id="BT-162">Adresszeile 3</entry>
<entry key="xr:Seller_post_code" id="BT-38">PLZ</entry>
<entry key="xr:Seller_city" id="BT-37">Ort</entry>
<entry key="xr:Seller_country_subdivision" id="BT-39">Bundesland</entry>
<entry key="xr:Seller_country_code" id="BT-40">Ländercode</entry>
<entry key="xr:Seller_identifier" id="BT-29">Kennung</entry>
<entry key="xr:Seller_identifier/@scheme_identifier" id="BT-29_scheme">Schema der Kennung</entry>
<entry key="xr:Seller_contact_point" id="BT-41">Name</entry>
<entry key="xr:Seller_contact_telephone_number" id="BT-42">Telefon</entry>
<entry key="xr:Seller_contact_email_address" id="BT-43">E-Mail-Adresse</entry>
<entry key="xr:Invoice_number" id="BT-1">Rechnungsnummer</entry>
<entry key="xr:Invoice_issue_date" id="BT-2">Rechnungsdatum</entry>
<entry key="xr:Invoice_type_code" id="BT-3">Rechnungsart</entry>
<entry key="xr:Invoice_currency_code" id="BT-5">Währung</entry>
<entry key="xr:Project_reference" id="BT-11">Projektnummer</entry>
<entry key="xr:Contract_reference" id="BT-12">Vertragsnummer</entry>
<entry key="xr:Purchase_order_reference" id="BT-13">Bestellnummer</entry>
<entry key="xr:Sales_order_reference" id="BT-14">Auftragsnummer</entry>
<!-- Be aware that these are for the whole invoice -->
<entry key="xr:Invoicing_period_start_date" id="BT-73">Von</entry>
<entry key="xr:Invoicing_period_end_date" id="BT-74">Bis</entry>
<entry key="xr:Preceding_Invoice_reference" id="BT-25">Rechnungsnummer</entry>
<entry key="xr:Preceding_Invoice_issue_date" id="BT-26">Rechnungsdatum</entry>
<entry key="xr:Sum_of_Invoice_line_net_amount" id="BT-106">Summe aller Positionen</entry>
<entry key="xr:Sum_of_allowances_on_document_level" id="BT-107">Summe Nachlässe</entry>
<entry key="xr:Sum_of_charges_on_document_level" id="BT-108">Summe Zuschläge</entry>
<entry key="xr:Invoice_total_amount_without_VAT" id="BT-109">Gesamtsumme</entry>
<entry key="xr:Invoice_total_VAT_amount" id="BT-110">Summe Umsatzsteuer</entry>
<entry key="xr:Invoice_total_VAT_amount_in_accounting_currency" id="BT-111">Summe Umsatzsteuer in Abrechnungswährung</entry>
<entry key="xr:Invoice_total_amount_with_VAT" id="BT-112">Gesamtsumme</entry>
<entry key="xr:Paid_amount" id="BT-113">Gezahlter Betrag</entry>
<entry key="xr:Rounding_amount" id="BT-114">Rundungsbetrag</entry>
<entry key="xr:Amount_due_for_payment" id="BT-115">Fälliger Betrag</entry>
<entry key="xr:VAT_category_code" id="BT-118">Umsatzsteuerkategorie</entry>
<entry key="xr:VAT_category_taxable_amount" id="BT-116">Gesamtsumme</entry>
<entry key="xr:VAT_category_rate" id="BT-119">Umsatzsteuersatz</entry>
<entry key="xr:VAT_category_tax_amount" id="BT-117">Umsatzsteuerbetrag</entry>
<entry key="xr:VAT_exemption_reason_text" id="BT-120">Befreiungsgrund</entry>
<entry key="xr:VAT_exemption_reason_code" id="BT-121">Kennung für den Befreiungsgrund</entry>
<!-- Nachlaesse -->
<entry key="xr:Document_level_allowance_VAT_category_code" id="BT-95">Umsatzsteuerkategorie des
Nachlasses</entry>
<entry key="xr:Document_level_allowance_base_amount" id="BT-93">Grundbetrag</entry>
<entry key="xr:Document_level_allowance_percentage" id="BT-94">Prozentsatz</entry>
<entry key="xr:Document_level_allowance_amount" id="BT-92">Nachlass</entry>
<entry key="xr:Document_level_allowance_VAT_rate" id="BT-96">Umsatzsteuersatz des
Nachlasses</entry>
<entry key="xr:Document_level_allowance_reason" id="BT-97">Grund für den Nachlass</entry>
<entry key="xr:Document_level_allowance_reason_code" id="BT-98">Kennung für den Nachlassgrund</entry>
<!-- Zuschlaege -->
<entry key="xr:Document_level_charge_VAT_category_code" id="BT-102">Umsatzsteuerkategorie des
Zuschlages</entry>
<entry key="xr:Document_level_charge_base_amount" id="BT-100">Grundbetrag</entry>
<entry key="xr:Document_level_charge_percentage" id="BT-101">Prozentsatz</entry>
<entry key="xr:Document_level_charge_amount" id="BT-99">Zuschlag</entry>
<entry key="xr:Document_level_charge_VAT_rate" id="BT-103">Umsatzsteuersatz des Zuschlages</entry>
<entry key="xr:Document_level_charge_reason" id="BT-104">Grund für den Zuschlag</entry>
<entry key="xr:Document_level_charge_reason_code" id="BT-105">Kennung für den Zuschlagsgrund</entry>
<entry key="xr:Payment_terms" id="BT-20">Skonto; weitere Zahlungsbedingungen</entry>
<entry key="xr:Payment_due_date" id="BT-9">Fälligkeitsdatum</entry>
<entry key="xr:Payment_means_type_code" id="BT-81">Code für das Zahlungsmittel</entry>
<entry key="xr:Payment_means_text" id="BT-82">Zahlungsmittel</entry>
<entry key="xr:Remittance_information" id="BT-83">Verwendungszweck</entry>
<entry key="xr:Payment_card_primary_account_number" id="BT-87">Kartennummer</entry>
<entry key="xr:Payment_card_holder_name" id="BT-88">Karteninhaber</entry>
<!-- BG-19 Direct Debit -->
<entry key="xr:Mandate_reference_identifier" id="BT-89">Mandatsreferenznr.</entry>
<entry key="xr:Debited_account_identifier" id="BT-91">IBAN</entry>
<entry key="xr:Bank_assigned_creditor_identifier" id="BT-90">Gläubiger-ID</entry>
<!-- BG-17 Credit Transfer-->
<entry key="xr:Payment_account_name" id="BT-85">Kontoinhaber</entry>
<entry key="xr:Payment_account_identifier" id="BT-84">IBAN</entry>
<entry key="xr:Payment_service_provider_identifier" id="BT-86">BIC</entry>
<entry key="xr:Invoice_note_subject_code" id="BT-21">Betreff</entry>
<entry key="xr:Invoice_note" id="BT-22">Bemerkung</entry>
<!-- BG-4 Seller and others -->
<entry key="xr:Seller_trading_name" id="BT-28">Abweichender Handelsname</entry>
<entry key="xr:Seller_electronic_address" id="BT-34">Elektronische Adresse</entry>
<entry key="xr:Seller_electronic_address/@scheme_identifier" id="BT-34_scheme">Schema der elektronischen Adresse</entry>
<entry key="xr:Seller_legal_registration_identifier" id="BT-30">Register-/Registriernummer</entry>
<entry key="xr:Seller_legal_registration_identifier/@scheme_identifier" id="BT-30_scheme">Schema der Registernummer</entry>
<entry key="xr:Seller_VAT_identifier" id="BT-31">Umsatzsteuer-ID</entry>
<entry key="xr:Seller_tax_registration_identifier" id="BT-32">Steuernummer</entry>
<entry key="xr:Seller_additional_legal_information" id="BT-33">Weitere rechtliche Informationen</entry>
<entry key="xr:VAT_accounting_currency_code" id="BT-6">Code der Umsatzsteuerwährung</entry>
<!-- BG 12 and 11 Tax Representative party -->
<entry key="xr:Seller_tax_representative_name" id="BT-62">Name</entry>
<entry key="xr:Tax_representative_address_line_1" id="BT-64">Adresszeile 1</entry>
<entry key="xr:Tax_representative_address_line_2" id="BT-65">Adresszeile 2</entry>
<entry key="xr:Tax_representative_address_line_3" id="BT-164">Adresszeile 3</entry>
<entry key="xr:Tax_representative_post_code" id="BT-67">PLZ</entry>
<entry key="xr:Tax_representative_city" id="BT-66">Ort</entry>
<entry key="xr:Tax_representative_country_subdivision" id="BT-68">Bundesland</entry>
<entry key="xr:Tax_representative_country_code" id="BT-69">Ländercode</entry>
<entry key="xr:Seller_tax_representative_VAT_identifier" id="BT-63">Umsatzsteuer-ID</entry>
<!-- Additional buyer information from different bgs -->
<entry key="xr:Buyer_trading_name" id="BT-45">Abweichender Handelsname</entry>
<entry key="xr:Buyer_country_subdivision" id="BT-54">Bundesland</entry>
<entry key="xr:Buyer_electronic_address" id="BT-49">Elektronische Adresse</entry>
<entry key="xr:Buyer_electronic_address/@scheme_identifier" id="BT-49_scheme">Schema der elektronischen Adresse</entry>
<entry key="xr:Buyer_legal_registration_identifier" id="BT-47">Register-/Registriernummer</entry>
<entry key="xr:Buyer_legal_registration_identifier/@scheme_identifier" id="BT-47_scheme">Schema der Register-/Registriernummer</entry>
<entry key="xr:Buyer_VAT_identifier" id="BT-48">Umsatzsteuer-ID</entry>
<entry key="xr:Value_added_tax_point_date" id="BT-7">Abrechnungsdatum der Umsatzsteuer</entry>
<entry key="xr:Value_added_tax_point_date_code" id="BT-8">Code des Umsatzsteuer-Abrechnungsdatums</entry>
<entry key="xr:Buyer_accounting_reference" id="BT-19">Kontierungsinformation</entry>
<entry key="xr:Deliver_to_location_identifier" id="BT-71">Kennung des Lieferorts</entry>
<entry key="xr:Deliver_to_location_identifier/@scheme_identifier" id="BT-71_scheme">Schema der Kennung</entry>
<entry key="xr:Actual_delivery_date" id="BT-72">Lieferdatum</entry>
<entry key="xr:Deliver_to_party_name" id="BT-70">Name des Empfängers</entry>
<entry key="xr:Deliver_to_address_line_1" id="BT-75">Adresszeile 1</entry>
<entry key="xr:Deliver_to_address_line_2" id="BT-76">Adresszeile 2</entry>
<entry key="xr:Deliver_to_address_line_3" id="BT-165">Adresszeile 3</entry>
<entry key="xr:Deliver_to_post_code" id="BT-78">PLZ</entry>
<entry key="xr:Deliver_to_city" id="BT-77">Ort</entry>
<entry key="xr:Deliver_to_country_subdivision" id="BT-79">Bundesland</entry>
<entry key="xr:Deliver_to_country_code" id="BT-80">Ländercode</entry>
<entry key="xr:Tender_or_lot_reference" id="BT-17">Vergabenummer</entry>
<entry key="xr:Receiving_advice_reference" id="BT-15">Kennung der Empfangsbestätigung</entry>
<entry key="xr:Despatch_advice_reference" id="BT-16">Kennung der Versandanzeige</entry>
<entry key="xr:Business_process_type_identifier" id="BT-23">Prozesskennung</entry>
<entry key="xr:Specification_identifier" id="BT-24">Spezifikationskennung</entry>
<entry key="xr:Invoiced_object_identifier" id="BT-18">Objektkennung</entry>
<entry key="xr:Invoiced_object_identifier/@scheme_identifier" id="BT-18_scheme">Schema der Objektkennung</entry>
<!-- BG 10 -->
<entry key="xr:Payee_name" id="BT-59">Name</entry>
<entry key="xr:Payee_identifier" id="BT-60">Kennung</entry>
<entry key="xr:Payee_identifier/@scheme_identifier" id="BT-60_scheme">Schema der Kennung</entry>
<entry key="xr:Payee_legal_registration_identifier" id="BT-61">Register-/Registriernummer</entry>
<entry key="xr:Payee_legal_registration_identifier/@scheme_identifier" id="BT-61_scheme">Schema der Register-/Registriernummer</entry>
<!-- BG 24 Additonal supporting Documents -->
<entry key="xr:Supporting_document_reference" id="BT-122">Kennung</entry>
<entry key="xr:Supporting_document_description" id="BT-123">Beschreibung</entry>
<entry key="xr:External_document_location" id="BT-124">Verweis (z.B. Internetadresse)</entry>
<entry key="xr:Attached_document" id="BT-125">Anhangsdokument</entry>
<entry key="xr:Attached_document/@mime_code" id="BT-125_mime_code">Format des Anhangdokuments</entry>
<entry key="xr:Attached_document/@filename" id="BT-125_filename">Name des Anhangsdokuments</entry>
<entry key="xrv:zeitstempel">Datum/Uhrzeit</entry>
<entry key="xrv:betreff">Betreff</entry>
<entry key="xrv:text">Text</entry>
<entry key="xrv:details">Details</entry>
<entry key="xr:Invoice_line_identifier" id="BT-126">Position</entry>
<entry key="xr:Invoice_line_note" id="BT-127">Freitext</entry>
<entry key="xr:Invoice_line_object_identifier" id="BT-128_identifier">Objektkennung</entry>
<entry key="xr:Invoice_line_object_identifier/@scheme_identifier" id="BT-128_scheme">Schema der Objektkennung</entry>
<entry key="xr:Referenced_purchase_order_line_reference" id="BT-132">Nummer der Auftragsposition</entry>
<entry key="xr:Invoice_line_Buyer_accounting_reference" id="BT-133">Kontierungshinweis</entry>
<entry key="xr:Invoice_line_period_start_date" id="BT-134">Von</entry>
<entry key="xr:Invoice_line_period_end_date" id="BT-135">Bis</entry>
<entry key="xr:Invoiced_quantity" id="BT-129">Menge</entry>
<entry key="xr:Invoiced_quantity_unit_of_measure_code" id="BT-130">Einheit</entry>
<entry key="xr:Item_net_price" id="BT-146">Preis pro Einheit (netto)</entry>
<entry key="xr:Invoice_line_net_amount" id="BT-131">Gesamtpreis (netto)</entry>
<entry key="xr:Item_price_discount" id="BT-147">Rabatt (netto)</entry>
<entry key="xr:Item_gross_price" id="BT-148">Listenpreis (netto)</entry>
<entry key="xr:Item_price_base_quantity" id="BT-149">Basismenge zum Artikelpreis</entry>
<entry key="xr:Item_price_base_quantity_unit_of_measure" id="BT-150">Code der Maßeinheit</entry>
<entry key="xr:Invoiced_item_VAT_category_code" id="BT-151">Umsatzsteuer</entry>
<entry key="xr:Invoiced_item_VAT_rate" id="BT-152">Umsatzsteuersatz</entry>
<entry key="xr:Item_name" id="BT-153">Bezeichnung</entry>
<entry key="xr:Item_description" id="BT-154">Beschreibung</entry>
<entry key="xr:Item_Sellers_identifier" id="BT-155">Artikelnummer</entry>
<entry key="xr:Item_Buyers_identifier" id="BT-156">Artikelkennung des Käufers</entry>
<entry key="xr:Item_standard_identifier" id="BT-157">Artikelkennung</entry>
<entry key="xr:Item_standard_identifier/@scheme_identifier" class="BT-157_scheme">Schema der Artikelkennung</entry>
<entry key="xr:Item_classification_identifier" id="BT-158">Code der Artikelklassifizierung</entry>
<entry key="xr:Item_classification_identifier/@scheme_identifier" id="BT-158_scheme">Kennung zur Bildung des Schemas</entry>
<entry key="xr:Item_classification_identifier/@scheme_version_identifier" id="BT-158_scheme_version">Version zur Bildung des Schemas</entry>
<entry key="xr:Item_country_of_origin" id="BT-159">Code des Herkunftslandes</entry>
<entry key="xr:Invoice_line_allowance_base_amount" id="BT-137">Grundbetrag (netto)</entry>
<entry key="xr:Invoice_line_allowance_percentage" id="BT-138">Prozentsatz</entry>
<entry key="xr:Invoice_line_allowance_amount" id="BT-136">Nachlass (netto)</entry>
<entry key="xr:Invoice_line_allowance_reason" id="BT-139">Grund des Nachlasses</entry>
<entry key="xr:Invoice_line_allowance_reason_code" id="BT-140">Code für den Nachlassgrund</entry>
<entry key="xr:Invoice_line_charge_base_amount" id="BT-142">Grundbetrag (netto)</entry>
<entry key="xr:Invoice_line_charge_percentage" id="BT-143">Prozentsatz</entry>
<entry key="xr:Invoice_line_charge_amount" id="BT-141">Zuschlag (netto)</entry>
<entry key="xr:Invoice_line_charge_reason" id="BT-144">Grund des Zuschlags</entry>
<entry key="xr:Invoice_line_charge_reason_code" id="BT-145">Code für den Zuschlagsgrund</entry>
<entry key="xr:Third_party_payment_type" id="BT-DEX-001">Art der Fremdforderung</entry>
<entry key="xr:Third_party_payment_amount" id="BT-DEX-002">Betrag der Fremdforderung</entry>
<entry key="xr:Third_party_payment_description" id="BT-DEX-003">Beschreibung der Fremdforderung</entry>
<entry key="uebersicht">Übersicht</entry>
<entry key="uebersichtKaeufer" id="BG-7">Informationen zum Käufer</entry>
<entry key="uebersichtVerkaeufer" id="BG-4">Informationen zum Verkäufer</entry>
<entry key="uebersichtRechnungsInfo" id="invoice-data">Rechnungsdaten</entry>
<entry key="uebersichtRechnungsuebersicht" id="BG-22">Gesamtbeträge der Rechnung</entry>
<entry key="uebersichtFremdleistungen" id="BG-DEX-09">Fremdforderung</entry>
<entry key="uebersichtUmsatzsteuer" id="BG-23">Aufschlüsselung der Umsatzsteuer auf Ebene der Rechnung</entry>
<entry key="uebersichtNachlass" id="BG-20">Nachlass auf Ebene der Rechnung</entry>
<entry key="uebersichtZuschlaege" id="BG-21">Zuschlag auf Ebene der Rechnung</entry>
<entry key="uebersichtRechnungAbrechnungszeitraum">Abrechnungszeitraum</entry>
<entry key="uebersichtRechnungVorausgegangeneRechnungen" id="BG-3">Vorausgegangene Rechnungen</entry>
<entry key="uebersichtZahlungInfo" id="BG-4">Zahlungsdaten</entry>
<entry key="uebersichtZahlungKarte" id="BG-18">Karteninformation</entry>
<entry key="uebersichtZahlungLastschrift" id="BG-19">Lastschrift</entry>
<entry key="uebersichtZahlungUeberweisung" id="BG-17">Überweisung</entry>
<entry key="uebersichtBemerkungen" id="BG-1">Bemerkungen zur Rechnung</entry>
<entry key="details">Details</entry>
<entry key="detailsPositionAbrechnungszeitraum" id="BG-26">Abrechnungszeitraum</entry>
<entry key="detailsPositionPreiseinzelheiten" id="BG-29">Preiseinzelheiten</entry>
<entry key="detailsPositionNachlaesse" id="BG-27">Nachlässe auf Ebene der Rechnungsposition</entry>
<entry key="detailsPositionZuschlaege" id="BG-28">Zuschläge auf Ebene der Rechnungsposition</entry>
<entry key="detailsPositionArtikelinformationen" id="BG-31">Artikelinformationen</entry>
<entry key="detailsPositionArtikeleigenschaften" id="BG-32">Eigenschaften des Artikels</entry>
<entry key="zusaetze">Zusätze</entry>
<entry key="zusaetzeVerkaeufer" id="BG-4">Informationen zum Verkäufer</entry>
<entry key="zusaetzeSteuervertreter" id="BG-11">Steuervertreter des Verkäufers</entry>
<entry key="zusaetzeKaeufer" id="BG-7">Informationen zum Käufer</entry>
<entry key="zusaetzeLieferung" id="BG-13">Lieferinformationen</entry>
<entry key="zusaetzeVertrag">Informationen zum Vertrag</entry>
<entry key="zusaetzeZahlungsempfaenger" id="BG-10">Vom Verkäufer abweichender Zahlungsempfänger</entry>
<entry key="laufzettel">Laufzettel</entry>
<entry key="laufzettelHistorie">Bearbeitungshistorie</entry>
<entry key="anlagen">Anlagen</entry>
<entry key="anlagenListe">Rechnungsbegründende Unterlagen</entry>
<entry key="date-format">[D].[M].[Y]</entry>
<entry key="datetime-format">[D].[M].[Y] [H]:[m]:[s]</entry>
<entry key="amount-format">###.##0,00</entry>
<entry key="percentage-format">##0,00</entry>
<entry key="at-least-two-format">###.##0,#################</entry>
<entry key="sum-of-third-party-payment-amounts" id="BT-DEX-002_sum">Summe Fremdforderungen</entry>
<entry key="_disclaimer">Wir übernehmen keine Haftung für die Richtigkeit der Daten.</entry>
<entry key="_invoice-note-group">Bemerkungen zur Rechnung</entry>
<entry key="_open">Öffnen</entry>
<entry key="no-data">Keine Daten vorhanden</entry>
<entry key="_net">netto</entry>
<entry key="_gross">brutto</entry>
<entry key="_no-content">Bereiche ohne Inhalte werden nicht dargestellt!</entry>
<entry key="_description">Beschreibung</entry>
<entry key="_price">Preis</entry>
<entry key="_price-unit">Preiseinheit</entry>
<entry key="_vat">USt. Satz</entry>
<entry key="_tax-code">St. Code</entry>
<entry key="_total">Gesamt</entry>
<entry key="_page">Seite</entry>
</properties>

View File

@@ -0,0 +1,255 @@
<?xml version = "1.0" encoding = "UTF-8"?>
<properties>
<entry key="xr:Buyer_reference" id="BT-10">Buyer reference</entry>
<entry key="xr:Buyer_name" id="BT-44">Name</entry>
<entry key="xr:Buyer_address_line_1" id="BT-50">Address line 1</entry>
<entry key="xr:Buyer_address_line_2" id="BT-51">Address line 2</entry>
<entry key="xr:Buyer_address_line_3" id="BT-163">Address line 3</entry>
<entry key="xr:Buyer_post_code" id="BT-53">ZIP</entry>
<entry key="xr:Buyer_city" id="BT-52">Location</entry>
<entry key="xr:Buyer_country_code" id="BT-55">Country code</entry>
<entry key="xr:Buyer_identifier" id="BT-46">Identifier</entry>
<entry key="xr:Buyer_identifier/@scheme_identifier" id="BT-46_scheme">Scheme identifier</entry>
<entry key="xr:Buyer_contact_point" id="BT-56">Contact point</entry>
<entry key="xr:Buyer_contact_telephone_number" id="BT-57">Contact point phone</entry>
<entry key="xr:Buyer_contact_email_address" id="BT-58">Contact point email</entry>
<entry key="xr:Seller_name" id="BT-27">Company name</entry>
<entry key="xr:Seller_address_line_1" id="BT-35">Address line 1</entry>
<entry key="xr:Seller_address_line_2" id="BT-36">Address line 2</entry>
<entry key="xr:Seller_address_line_3">Address line 3</entry>
<entry key="xr:Seller_post_code" id="BT-38">ZIP</entry>
<entry key="xr:Seller_city" id="BT-37">Location</entry>
<entry key="xr:Seller_country_subdivision" id="BT-39">State</entry>
<entry key="xr:Seller_country_code" id="BT-40">Country code</entry>
<entry key="xr:Seller_identifier" id="BT-29">Identifier</entry>
<entry key="xr:Seller_identifier/@scheme_identifier" id="BT-29_scheme">Scheme identifier</entry>
<entry key="xr:Seller_contact_point" id="BT-41">Contact point</entry>
<entry key="xr:Seller_contact_telephone_number" id="BT-42">Contact point phone</entry>
<entry key="xr:Seller_contact_email_address" id="BT-43">Contact point email</entry>
<entry key="xr:Invoice_number" id="BT-1">Invoice number</entry>
<entry key="xr:Invoice_issue_date" id="BT-2">Invoice date</entry>
<entry key="xr:Invoice_type_code" id="BT-3">Invoice type</entry>
<entry key="xr:Invoice_currency_code" id="BT-5">Currency</entry>
<entry key="xr:Project_reference" id="BT-11">Project reference</entry>
<entry key="xr:Contract_reference" id="BT-12">Contract reference</entry>
<entry key="xr:Purchase_order_reference" id="BT-13">Purchase order reference</entry>
<entry key="xr:Sales_order_reference" id="BT-14">Sales order reference</entry>
<!-- Be aware that these are for the whole invoice -->
<entry key="xr:Invoicing_period_start_date" id="BT-73">From</entry>
<entry key="xr:Invoicing_period_end_date" id="BT-74">To</entry>
<entry key="xr:Preceding_Invoice_reference" id="BT-25">Invoice number</entry>
<entry key="xr:Preceding_Invoice_issue_date" id="BT-26">Invoice date</entry>
<entry key="xr:Sum_of_Invoice_line_net_amount" id="BT-106">Total invoice line net amount</entry>
<entry key="xr:Sum_of_allowances_on_document_level" id="BT-107">Total allowances</entry>
<entry key="xr:Sum_of_charges_on_document_level" id="BT-108">Total charges</entry>
<entry key="xr:Invoice_total_amount_without_VAT" id="BT-109">Total amount</entry>
<entry key="xr:Invoice_total_VAT_amount" id="BT-110">Total VAT</entry>
<entry key="xr:Invoice_total_VAT_amount_in_accounting_currency" id="BT-111">Total VAT in accounting currency</entry>
<entry key="xr:Invoice_total_amount_with_VAT" id="BT-112">Total</entry>
<entry key="xr:Paid_amount" id="BT-113">Already paid</entry>
<entry key="xr:Rounding_amount" id="BT-114">Rounding amount</entry>
<entry key="xr:Amount_due_for_payment" id="BT-115">Amount due</entry>
<entry key="xr:VAT_category_code" id="BT-118">VAT category</entry>
<entry key="xr:VAT_category_taxable_amount" id="BT-116">Total</entry>
<entry key="xr:VAT_category_rate" id="BT-119">VAT rate</entry>
<entry key="xr:VAT_category_tax_amount" id="BT-117">VAT amount</entry>
<entry key="xr:VAT_exemption_reason_text" id="BT-120">Exemption reason</entry>
<entry key="xr:VAT_exemption_reason_code" id="BT-121">Exemption reason code</entry>
<!-- Allowances -->
<entry key="xr:Document_level_allowance_VAT_category_code" id="BT-95">Allowance VAT category code</entry>
<entry key="xr:Document_level_allowance_base_amount" id="BT-93">Base amount</entry>
<entry key="xr:Document_level_allowance_percentage" id="BT-94">Percentage</entry>
<entry key="xr:Document_level_allowance_amount" id="BT-92">Amount</entry>
<entry key="xr:Document_level_allowance_VAT_rate" id="BT-96">Allowance VAT rate</entry>
<entry key="xr:Document_level_allowance_reason" id="BT-97">Allowance reason</entry>
<entry key="xr:Document_level_allowance_reason_code" id="BT-98">Allowance reason code</entry>
<!-- Charges -->
<entry key="xr:Document_level_charge_VAT_category_code" id="BT-102">Charge VAT category code</entry>
<entry key="xr:Document_level_charge_base_amount" id="BT-100">Base amount</entry>
<entry key="xr:Document_level_charge_percentage" id="BT-101">Percentage</entry>
<entry key="xr:Document_level_charge_amount" id="BT-99">Amount</entry>
<entry key="xr:Document_level_charge_VAT_rate" id="BT-103">VAT rate</entry>
<entry key="xr:Document_level_charge_reason" id="BT-104">Charge Reason</entry>
<entry key="xr:Document_level_charge_reason_code" id="BT-105">Charge reason code</entry>
<entry key="xr:Payment_terms" id="BT-20">Payment terms</entry>
<entry key="xr:Payment_due_date" id="BT-9">Due date</entry>
<entry key="xr:Payment_means_type_code" id="BT-81">Payment means type code</entry>
<entry key="xr:Payment_means_text" id="BT-82">Payment means</entry>
<entry key="xr:Remittance_information" id="BT-83">Remittance information</entry>
<entry key="xr:Payment_card_primary_account_number" id="BT-87">Card number</entry>
<entry key="xr:Payment_card_holder_name" id="BT-88">Card holder</entry>
<!-- BG-19 Direct Debit -->
<entry key="xr:Mandate_reference_identifier" id="BT-89">Mandate reference no.</entry>
<entry key="xr:Debited_account_identifier" id="BT-91">Debited account identifier</entry>
<entry key="xr:Bank_assigned_creditor_identifier" id="BT-90">Creditor ID</entry>
<!-- BG-17 Credit Transfer-->
<entry key="xr:Payment_account_name" id="BT-85">Account holder</entry>
<entry key="xr:Payment_account_identifier" id="BT-84">Account identifier</entry>
<entry key="xr:Payment_service_provider_identifier" id="BT-86">BIC</entry>
<entry key="xr:Invoice_note_subject_code" id="BT-21">Subject code</entry>
<entry key="xr:Invoice_note" id="BT-22">Note</entry>
<!-- BG-4 Seller and others -->
<entry key="xr:Seller_trading_name" id="BT-28">Different trading name</entry>
<entry key="xr:Seller_electronic_address" id="BT-34">Electronic address</entry>
<entry key="xr:Seller_electronic_address/@scheme_identifier" id="BT-34_scheme">Electronic address
scheme</entry>
<entry key="xr:Seller_legal_registration_identifier" id="BT-30">Legal registration identifier</entry>
<entry key="xr:Seller_legal_registration_identifier/@scheme_identifier" id="BT-30_scheme">Legal registration identifier scheme</entry>
<entry key="xr:Seller_VAT_identifier" id="BT-31">VAT ID</entry>
<entry key="xr:Seller_tax_registration_identifier" id="BT-32">Tax number</entry>
<entry key="xr:Seller_additional_legal_information" id="BT-33">Further legal information</entry>
<entry key="xr:VAT_accounting_currency_code" id="BT-6">VAT accounting currency</entry>
<!-- BG 12 and 11 Tax Representative party -->
<entry key="xr:Seller_tax_representative_name" id="BT-62">Name</entry>
<entry key="xr:Tax_representative_address_line_1" id="BT-64">Address line 1</entry>
<entry key="xr:Tax_representative_address_line_2" id="BT-65">Address line 2</entry>
<entry key="xr:Tax_representative_address_line_3" id="BT-164">Address line 3</entry>
<entry key="xr:Tax_representative_post_code" id="BT-67">ZIP</entry>
<entry key="xr:Tax_representative_city" id="BT-66">Location</entry>
<entry key="xr:Tax_representative_country_subdivision" id="BT-68">State</entry>
<entry key="xr:Tax_representative_country_code" id="BT-69">Country code</entry>
<entry key="xr:Seller_tax_representative_VAT_identifier" id="BT-63">VAT ID</entry>
<!-- Additional buyer information from different bgs -->
<entry key="xr:Buyer_trading_name" id="BT-45">Different trading name</entry>
<entry key="xr:Buyer_country_subdivision" id="BT-54">State</entry>
<entry key="xr:Buyer_electronic_address" id="BT-49">Electronic address</entry>
<entry key="xr:Buyer_electronic_address/@scheme_identifier" id="BT-49_scheme">Electronic address scheme</entry>
<entry key="xr:Buyer_legal_registration_identifier" id="BT-47">Legal registration identifier</entry>
<entry key="xr:Buyer_legal_registration_identifier/@scheme_identifier" id="BT-47_scheme">Legal registration identifier scheme</entry>
<entry key="xr:Buyer_VAT_identifier" id="BT-48">VAT ID</entry>
<entry key="xr:Value_added_tax_point_date" id="BT-7">Value added tax point date</entry>
<entry key="xr:Value_added_tax_point_date_code" id="BT-8">Value added tax point date code</entry>
<entry key="xr:Buyer_accounting_reference" id="BT-19">Buyer accounting reference</entry>
<entry key="xr:Deliver_to_location_identifier" id="BT-71">Delivery location identifier</entry>
<entry key="xr:Deliver_to_location_identifier/@scheme_identifier" id="BT-71_scheme">Identification scheme</entry>
<entry key="xr:Actual_delivery_date" id="BT-72">Delivery date</entry>
<entry key="xr:Deliver_to_party_name" id="BT-70">Name of the recipient</entry>
<entry key="xr:Deliver_to_address_line_1" id="BT-75">Address line 1</entry>
<entry key="xr:Deliver_to_address_line_2" id="BT-76">Address line 2</entry>
<entry key="xr:Deliver_to_address_line_3" id="BT-165">Address line 3</entry>
<entry key="xr:Deliver_to_post_code" id="BT-78">ZIP</entry>
<entry key="xr:Deliver_to_city" id="BT-77">Location</entry>
<entry key="xr:Deliver_to_country_subdivision" id="BT-79">State</entry>
<entry key="xr:Deliver_to_country_code" id="BT-80">Country code</entry>
<entry key="xr:Tender_or_lot_reference" id="BT-17">Award reference</entry>
<entry key="xr:Receiving_advice_reference" id="BT-15">Receiving advice reference</entry>
<entry key="xr:Despatch_advice_reference" id="BT-16">Despatch advice reference</entry>
<entry key="xr:Business_process_type" id="BT-23">Process identifier</entry>
<entry key="xr:Specification_identifier" id="BT-24">Specification identifier</entry>
<entry key="xr:Invoiced_object_identifier" id="BT-18">Object identifier</entry>
<entry key="xr:Invoiced_object_identifier/@scheme_identifier" id="BT-18_scheme">Object identifier scheme</entry>
<!-- BG 10 -->
<entry key="xr:Payee_name" id="BT-59">Name</entry>
<entry key="xr:Payee_identifier" id="BT-60">Identifier</entry>
<entry key="xr:Payee_identifier/@scheme_identifier" id="BT-60_scheme">Identification scheme</entry>
<entry key="xr:Payee_legal_registration_identifier" id="BT-61">Legal registration identifier</entry>
<entry key="xr:Payee_legal_registration_identifier/@scheme_identifier" id="BT-61_scheme">Legal registration identifier scheme</entry>
<!-- BG 24 Additonal supporting Documents -->
<entry key="xr:Supporting_document_reference" id="BT-122">Identifier</entry>
<entry key="xr:Supporting_document_description" id="BT-123">Description</entry>
<entry key="xr:External_document_location" id="BT-124">Location (e.g. Internet address )</entry>
<entry key="xr:Attached_document" id="BT-125">Attached document</entry>
<entry key="xr:Attached_document/@mime_code" id="BT-125_mime_code">MIME type of the attached document</entry>
<entry key="xr:Attached_document/@filename" id="BT-125_filename">Name of the attachment document</entry>
<entry key="xrv:timestamp">Date / time</entry>
<entry key="xrv:subject">Subject</entry>
<entry key="xrv:text">Text</entry>
<entry key="xrv:details">Details</entry>
<entry key="xr:Invoice_line_identifier" id="BT-126">Identifier</entry>
<entry key="xr:Invoice_line_note" id="BT-127">Free text</entry>
<entry key="xr:Invoice_line_object_identifier" id="BT-128_identifier">Object identifier</entry>
<entry key="xr:Invoice_line_object_identifier/@scheme_identifier" id="BT-128_scheme">Object identifier scheme</entry>
<entry key="xr:Referenced_purchase_order_line_reference" id="BT-132">Order item number</entry>
<entry key="xr:Invoice_line_Buyer_accounting_reference" id="BT-133">Buyer accounting reference</entry>
<entry key="xr:Invoice_line_period_start_date" id="BT-134">From</entry>
<entry key="xr:Invoice_line_period_end_date" id="BT-135">To</entry>
<entry key="xr:Invoiced_quantity" id="BT-129">Quantity</entry>
<entry key="xr:Invoiced_quantity_unit_of_measure_code" id="BT-130">Unit</entry>
<entry key="xr:Item_net_price" id="BT-146">Price per unit (net)</entry>
<entry key="xr:Invoice_line_net_amount" id="BT-131">Total price (net)</entry>
<entry key="xr:Item_price_discount" id="BT-147">Discount (net)</entry>
<entry key="xr:Item_gross_price" id="BT-148">List price (net)</entry>
<entry key="xr:Item_price_base_quantity" id="BT-149">Item price base quantity</entry>
<entry key="xr:Item_price_base_quantity_unit_of_measure" id="BT-150">Unit code</entry>
<entry key="xr:Invoiced_item_VAT_category_code" id="BT-151">VAT category</entry>
<entry key="xr:Invoiced_item_VAT_rate" id="BT-152">VAT rate</entry>
<entry key="xr:Item_name" id="BT-153">Name</entry>
<entry key="xr:Item_description" id="BT-154">Description</entry>
<entry key="xr:Item_Sellers_identifier" id="BT-155">Item identifier</entry>
<entry key="xr:Item_Buyers_identifier" id="BT-156">Buyer's item identifier</entry>
<entry key="xr:Item_standard_identifier" id="BT-157">Item standard identifier</entry>
<entry key="xr:Item_standard_identifier/@scheme_identifier" id="BT-157_scheme">Item standard identifier scheme</entry>
<entry key="xr:Item_classification_identifier" id="BT-158">Item classification code</entry>
<entry key="xr:Item_classification_identifier/@scheme_identifier" id="BT-158_scheme">Item classification code scheme</entry>
<entry key="xr:Item_classification_identifier/@scheme_version_identifier" id="BT-158_scheme_version">Schema version</entry>
<entry key="xr:Item_country_of_origin" id="BT-159">Country of origin</entry>
<entry key="xr:Invoice_line_allowance_base_amount" id="BT-137">Base amount (net)</entry>
<entry key="xr:Invoice_line_allowance_percentage" id="BT-138">Percentage</entry>
<entry key="xr:Invoice_line_allowance_amount" id="BT-136">Allowance (net)</entry>
<entry key="xr:Invoice_line_allowance_reason" id="BT-139">Allowance reason</entry>
<entry key="xr:Invoice_line_allowance_reason_code" id="BT-140">Allowance reason code</entry>
<entry key="xr:Invoice_line_charge_base_amount" id="BT-142">Base amount (net)</entry>
<entry key="xr:Invoice_line_charge_percentage" id="BT-143">Percentage</entry>
<entry key="xr:Invoice_line_charge_amount" id="BT-141">Charge (net)</entry>
<entry key="xr:Invoice_line_charge_reason" id="BT-144">Reason for the Charge</entry>
<entry key="xr:Invoice_line_charge_reason_code" id="BT-145">Charge reason code</entry>
<entry key="xr:Third_party_payment_type" id="BT-DEX-001">Third party payment type</entry>
<entry key="xr:Third_party_payment_amount" id="BT-DEX-002">Third party payment amount</entry>
<entry key="xr:Third_party_payment_description" id="BT-DEX-003">Third party payment description</entry>
<entry key="uebersicht">Overview</entry>
<entry key="uebersichtKaeufer" id="BG-7">Information about the buyer</entry>
<entry key="uebersichtVerkaeufer" id="BG-4">Information about the seller</entry>
<entry key="uebersichtRechnungsInfo" id="invoice-data">Invoice data</entry>
<entry key="uebersichtRechnungsuebersicht" id="BG-22">Invoice totals</entry>
<entry key="uebersichtFremdleistungen" id="BG-DEX-09">Third party payment</entry>
<entry key="uebersichtUmsatzsteuer" id="BG-23">Sales tax breakdown at invoice level</entry>
<entry key="uebersichtNachlass" id="BG-20">Invoice level discount</entry>
<entry key="uebersichtZuschlaege" id="BG-21">Invoice level surcharge</entry>
<entry key="uebersichtRechnungAbrechnungszeitraum">Billing period</entry>
<entry key="uebersichtRechnungVorausgegangeneRechnungen" id="BG-3">Previous invoices</entry>
<entry key="uebersichtZahlungInfo" id="BG-4">Payment data</entry>
<entry key="uebersichtZahlungKarte" id="BG-18">Card information</entry>
<entry key="uebersichtZahlungLastschrift" id="BG-19">Direct debit</entry>
<entry key="uebersichtZahlungUeberweisung" id="BG-17">Transfer</entry>
<entry key="uebersichtBemerkungen" id="BG-1">Notes on the invoice</entry>
<entry key="details">Details</entry>
<entry key="detailsPositionAbrechnungszeitraum" id="BG-26">Billing period</entry>
<entry key="detailsPositionPreiseinzelheiten" id="BG-29">Price details</entry>
<entry key="detailsPositionNachlaesse" id="BG-27">Allowances on invoice item level</entry>
<entry key="detailsPositionZuschlaege" id="BG-28">Charges at invoice item level</entry>
<entry key="detailsPositionArtikelinformationen" id="BG-31">Item information</entry>
<entry key="detailsPositionArtikeleigenschaften" id="BG-32">Properties of the item</entry>
<entry key="zusaetze">Supplements</entry>
<entry key="zusaetzeVerkaeufer" id="BG-4">Information about the seller</entry>
<entry key="zusaetzeSteuervertreter" id="BG-11">Tax representative of the seller</entry>
<entry key="zusaetzeKaeufer" id="BG-7">Information about the buyer</entry>
<entry key="zusaetzeLieferung" id="BG-13">Delivery information</entry>
<entry key="zusaetzeVertrag">Information about the contract</entry>
<entry key="zusaetzeZahlungsempfaenger" id="BG-10">Payee different from the seller</entry>
<entry key="laufzettel">Routing slip</entry>
<entry key="laufzettelHistorie">Processing history</entry>
<entry key="anlagen">Attachments</entry>
<entry key="anlagenListe">Documents justifying the invoice</entry>
<entry key="date-format">[Y]-[M,2]-[D,2]</entry>
<entry key="datetime-format">[Y]-[M,2]-[D,2] [H]:[m]:[s]</entry>
<entry key="amount-format">###,##0.00</entry>
<entry key="percentage-format">##0.00</entry>
<entry key="at-least-two-format">###,##0.#################</entry>
<entry key="sum-of-third-party-payment-amounts" id="BT-DEX-002_sum">Third party payment total</entry>
<entry key="_disclaimer">We assume no liability for the accuracy of the data.</entry>
<entry key="_invoice-note-group">Notes on the invoice</entry>
<entry key="_open">Open</entry>
<entry key="no-data">No data available</entry>
<entry key="_net">net</entry>
<entry key="_gross">gross</entry>
<entry key="_no-content">Areas without content are not displayed!</entry>
<entry key="_description">Description</entry>
<entry key="_price">Price</entry>
<entry key="_price-unit">Price unit</entry>
<entry key="_vat">VAT</entry>
<entry key="_tax-code">Code</entry>
<entry key="_total">Total</entry>
<entry key="_page">Page</entry>
</properties>

View File

@@ -15,31 +15,14 @@
<xd:p>
<xd:b>Author:</xd:b> KoSIT Bremen (kosit@finanzen.bremen.de)</xd:p>
<xd:b>Fassung vom: 2020-06-30+02:00</xd:b>
<xd:b>modifiziert durch Dr. Jan Thiele am: 2021-02-11+01:00</xd:b>
<xd:p>Überführt eine zur EN 16931 konforme elektronische Rechnung in der konkreten Syntax UBL.2_1.CreditNote 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>
<!-- Begin: Jan Thiele -->
<xsl:import href="1001.xsl" />
<xsl:import href="1153.xsl" />
<xsl:import href="2005.xsl" />
<xsl:import href="3166.xsl" />
<xsl:import href="4217.xsl" />
<xsl:import href="4451.xsl" />
<xsl:import href="4461.xsl" />
<xsl:import href="5189.xsl" />
<xsl:import href="5305.xsl" />
<xsl:import href="6523.xsl" />
<xsl:import href="7143.xsl" />
<xsl:import href="7161.xsl" />
<xsl:import href="UNECE-RE-21.xsl" />
<xsl:import href="EAS.xsl" />
<xsl:import href="VATEX.xsl" />
<!-- End: Jan Thiele -->
<xsl:output method="xml" indent="yes"/>
<xsl:include href="./common-xr.xsl"/>
<xsl:template match="/CreditNote:CreditNote">
<xr:invoice>
@@ -75,16 +58,7 @@
<xr:Invoice_note_subject_code>
<xsl:attribute name="xr:id" select="'BT-21'"/>
<xsl:attribute name="xr:src" select="xr:src-path(current-group()[1])"/>
<!--<xsl:value-of select="current-group()[1]"/>-->
<!-- Begin: Jan Thiele -->
<xsl:variable name="group_l" select="current-group()[1]"/>
<xsl:variable name="group_JT">
<xsl:call-template name="code.UNTDID.4451">
<xsl:with-param name="myparam" select="group_l"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$group_JT"/>
<!-- End: Jan Thiele -->
<xsl:value-of select="current-group()[1]"/>
</xr:Invoice_note_subject_code>
</xsl:if>
<xr:Invoice_note>
@@ -126,6 +100,7 @@
<xsl:attribute name="xr:id" select="'BG-16'"/>
<xsl:attribute name="xr:src" select="xr:src-path($current-bg)"/>
<xsl:apply-templates mode="BT-81" select="current-group()[1]/cbc:PaymentMeansCode"/>
<xsl:apply-templates mode="BT-82" select="current-group()[1]/cbc:PaymentMeansCode/@name"/>
<xsl:for-each-group select="current-group()/cbc:PaymentID" group-by="text()">
<xsl:apply-templates mode="BT-83" select="current-group()[1]"/>
</xsl:for-each-group>
@@ -162,36 +137,21 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.untdid.1001">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Invoice_type_code>
</xsl:template>
<xsl:template mode="BT-5" match="/CreditNote:CreditNote/cbc:DocumentCurrencyCode">
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.Currency-Codes">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Invoice_currency_code>
</xsl:template>
<xsl:template mode="BT-6" match="/CreditNote:CreditNote/cbc: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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.Currency-Codes">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:VAT_accounting_currency_code>
</xsl:template>
<xsl:template mode="BT-7" match="/CreditNote:CreditNote/cbc:TaxPointDate">
@@ -206,12 +166,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.UNTDID.2005">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Value_added_tax_point_date_code>
</xsl:template>
<xsl:template mode="BT-9"
@@ -289,10 +244,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme.1153"/>
<!-- End: Jan Thiele -->
<xsl:call-template name="identifier"/>
</xr:Invoiced_object_identifier>
</xsl:template>
<xsl:template mode="BT-19" match="/CreditNote:CreditNote/cbc:AccountingCost">
@@ -385,10 +337,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme.6523"/>
<!-- End: Jan Thiele -->
<xsl:call-template name="identifier"/>
</xr:Seller_identifier>
</xsl:template>
<xsl:template mode="BT-30"
@@ -396,10 +345,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme.6523"/>
<!-- End: Jan Thiele -->
<xsl:call-template name="identifier"/>
</xr:Seller_legal_registration_identifier>
</xsl:template>
<xsl:template mode="BT-31"
@@ -431,10 +377,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme.EAS"/>
<!-- End: Jan Thiele -->
<xsl:call-template name="identifier"/>
</xr:Seller_electronic_address>
</xsl:template>
<xsl:template mode="BG-5"
@@ -509,12 +452,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.Country-Codes">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Seller_country_code>
</xsl:template>
<xsl:template mode="BG-6"
@@ -563,8 +501,6 @@
<xsl:apply-templates mode="BT-45" select="./cac:Party/cac:PartyName/cbc:Name"/>
<xsl:apply-templates mode="BT-46" select="./cac:Party/cac:PartyIdentification/cbc:ID"/>
<xsl:apply-templates mode="BT-47" select="./cac:Party/cac:PartyLegalEntity/cbc:CompanyID"/>
<xsl:apply-templates mode="BT-47"
select="./cac:Party/cac:PartyLegalEntity/cbc:CompanyID/@schemeID"/>
<xsl:apply-templates mode="BT-48"
select="./cac:Party/cac:PartyTaxScheme/cbc:CompanyID[following-sibling::cac:TaxScheme/cbc:ID = 'VAT']"/>
<xsl:apply-templates mode="BT-49" select="./cac:Party/cbc:EndpointID"/>
@@ -600,25 +536,11 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme.6523"/>
<!-- End: Jan Thiele -->
<xsl:call-template name="identifier"/>
</xr:Buyer_identifier>
</xsl:template>
<xsl:template mode="BT-47"
match="/CreditNote:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID">
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme.6523"/>
<!-- End: Jan Thiele -->
</xr:Buyer_legal_registration_identifier>
</xsl:template>
<xsl:template mode="BT-47"
match="/CreditNote:CreditNote/cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID/@schemeID">
<xr:Buyer_legal_registration_identifier>
<xsl:attribute name="xr:id" select="'BT-47'"/>
<xsl:attribute name="xr:src" select="xr:src-path(.)"/>
@@ -638,10 +560,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme.EAS"/>
<!-- End: Jan Thiele -->
<xsl:call-template name="identifier"/>
</xr:Buyer_electronic_address>
</xsl:template>
<xsl:template mode="BG-8"
@@ -716,12 +635,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.Country-Codes">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Buyer_country_code>
</xsl:template>
<xsl:template mode="BG-9"
@@ -790,10 +704,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme.6523"/>
<!-- End: Jan Thiele -->
<xsl:call-template name="identifier"/>
</xr:Payee_identifier>
</xsl:template>
<xsl:template mode="BT-61"
@@ -801,10 +712,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme.6523"/>
<!-- End: Jan Thiele -->
<xsl:call-template name="identifier"/>
</xr:Payee_legal_registration_identifier>
</xsl:template>
<xsl:template mode="BG-11" match="/CreditNote:CreditNote/cac:TaxRepresentativeParty">
@@ -910,12 +818,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.Country-Codes">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Tax_representative_country_code>
</xsl:template>
<xsl:template mode="BG-13" match="/CreditNote:CreditNote/cac:Delivery">
@@ -947,10 +850,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme.6523"/>
<!-- End: Jan Thiele -->
<xsl:call-template name="identifier"/>
</xr:Deliver_to_location_identifier>
</xsl:template>
<xsl:template mode="BT-72"
@@ -1062,12 +962,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.Country-Codes">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Deliver_to_country_code>
</xsl:template>
<xsl:template mode="BT-81"
@@ -1075,16 +970,11 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.UNTDID.4461">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Payment_means_type_code>
</xsl:template>
<xsl:template mode="BT-82"
match="/CreditNote:CreditNote/cac:PaymentMeans/cbc:PaymentMeansCode/@Name">
match="/CreditNote:CreditNote/cac:PaymentMeans/cbc:PaymentMeansCode/@name">
<xr:Payment_means_text>
<xsl:attribute name="xr:id" select="'BT-82'"/>
<xsl:attribute name="xr:src" select="xr:src-path(.)"/>
@@ -1273,12 +1163,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.UNTDID.5305">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Document_level_allowance_VAT_category_code>
</xsl:template>
<xsl:template mode="BT-96"
@@ -1302,12 +1187,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.UNTDID.5189">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Document_level_allowance_reason_code>
</xsl:template>
<xsl:template mode="BG-21"
@@ -1365,12 +1245,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.UNTDID.5305">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Document_level_charge_VAT_category_code>
</xsl:template>
<xsl:template mode="BT-103"
@@ -1394,12 +1269,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.UNTDID.7161">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Document_level_charge_reason_code>
</xsl:template>
<xsl:template mode="BG-22" match="/CreditNote:CreditNote/cac:LegalMonetaryTotal">
@@ -1409,9 +1279,9 @@
<xsl:apply-templates mode="BT-108" select="./cbc:ChargeTotalAmount"/>
<xsl:apply-templates mode="BT-109" select="./cbc:TaxExclusiveAmount"/>
<xsl:apply-templates mode="BT-110"
select="/CreditNote:CreditNote/cac:TaxTotal/cbc:TaxAmount"/>
select="/CreditNote:CreditNote/cac:TaxTotal/cbc:TaxAmount[/CreditNote:CreditNote/cbc:DocumentCurrencyCode = @currencyID]"/>
<xsl:apply-templates mode="BT-111"
select="/CreditNote:CreditNote/cac:TaxTotal/cbc:TaxAmount"/>
select="/CreditNote:CreditNote/cac:TaxTotal/cbc:TaxAmount[/CreditNote:CreditNote/cbc:TaxCurrencyCode = @currencyID]"/>
<xsl:apply-templates mode="BT-112" select="./cbc:TaxInclusiveAmount"/>
<xsl:apply-templates mode="BT-113" select="./cbc:PrepaidAmount"/>
<xsl:apply-templates mode="BT-114" select="./cbc:PayableRoundingAmount"/>
@@ -1543,12 +1413,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.UNTDID.5305">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:VAT_category_code>
</xsl:template>
<xsl:template mode="BT-119"
@@ -1572,12 +1437,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.VATEX">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:VAT_exemption_reason_code>
</xsl:template>
<xsl:template mode="BG-24"
@@ -1678,10 +1538,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme.1153"/>
<!-- End: Jan Thiele -->
<xsl:call-template name="identifier"/>
</xr:Invoice_line_object_identifier>
</xsl:template>
<xsl:template mode="BT-129"
@@ -1697,12 +1554,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.rec21">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Invoiced_quantity_unit_of_measure_code>
</xsl:template>
<xsl:template mode="BT-131"
@@ -1818,12 +1670,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.UNTDID.5189">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Invoice_line_allowance_reason_code>
</xsl:template>
<xsl:template mode="BG-28"
@@ -1885,12 +1732,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.UNTDID.7161">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Invoice_line_charge_reason_code>
</xsl:template>
<xsl:template mode="BG-29"
@@ -1949,12 +1791,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.rec21">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Item_price_base_quantity_unit_of_measure>
</xsl:template>
<xsl:template mode="BG-30"
@@ -1977,12 +1814,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.UNTDID.5305">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Invoiced_item_VAT_category_code>
</xsl:template>
<xsl:template mode="BT-152"
@@ -2050,10 +1882,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme.6523"/>
<!-- End: Jan Thiele -->
<xsl:call-template name="identifier"/>
</xr:Item_standard_identifier>
</xsl:template>
<xsl:template mode="BT-158"
@@ -2061,10 +1890,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="identifier-with-scheme-and-version.7143"/>
<!-- End: Jan Thiele -->
<xsl:call-template name="identifier"/>
</xr:Item_classification_identifier>
</xsl:template>
<xsl:template mode="BT-159"
@@ -2072,12 +1898,7 @@
<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"/>-->
<!-- Begin: Jan Thiele -->
<xsl:call-template name="code.Country-Codes">
<xsl:with-param name="myparam" select="."/>
</xsl:call-template>
<!-- End: Jan Thiele -->
<xsl:call-template name="code"/>
</xr:Item_country_of_origin>
</xsl:template>
<xsl:template mode="BG-32"
@@ -2282,151 +2103,5 @@
</xr:SUB_INVOICE_PRICE_DETAILS>
</xsl:if>
</xsl:template>
<xsl:template name="text">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template name="date">
<xsl:value-of select="."/>
</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>
<!-- Begin: Jan Thiele -->
<xsl:template name="identifier-with-scheme-and-version.7143">
<xsl:param name="schemeID" as="element()?"/>
<xsl:if test="@listID | @schemeID">
<xsl:variable name="listID_JT">
<xsl:call-template name="code.UNTDID.7143">
<xsl:with-param name="myparam" select="($schemeID, @listID, @schemeID)[1]"/>
</xsl:call-template>
</xsl:variable>
<xsl:attribute name="scheme_identifier" select="($schemeID, $listID_JT, @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>
<!-- End: Jan Thiele -->
<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>
<!-- Begin: Jan Thiele -->
<xsl:template name="identifier-with-scheme.EAS">
<xsl:param name="schemeID" as="element()?"/>
<xsl:if test="@schemeID">
<xsl:variable name="listID_JT">
<xsl:call-template name="code.EAS">
<xsl:with-param name="myparam" select="($schemeID, @listID, @schemeID)[1]"/>
</xsl:call-template>
</xsl:variable>
<xsl:attribute name="scheme_identifier" select="($schemeID, $listID_JT, @schemeID)[1]"/>
</xsl:if>
<xsl:value-of select="."/>
</xsl:template>
<!-- End: Jan Thiele -->
<!-- Begin: Jan Thiele -->
<xsl:template name="identifier-with-scheme.1153">
<xsl:param name="schemeID" as="element()?"/>
<xsl:if test="@schemeID">
<xsl:variable name="listID_JT">
<xsl:call-template name="code.UNTDID.1153">
<xsl:with-param name="myparam" select="($schemeID, @listID, @schemeID)[1]"/>
</xsl:call-template>
</xsl:variable>
<xsl:attribute name="scheme_identifier" select="($schemeID, $listID_JT, @schemeID)[1]"/>
</xsl:if>
<xsl:value-of select="."/>
</xsl:template>
<!-- End: Jan Thiele -->
<!-- Begin: Jan Thiele -->
<xsl:template name="identifier-with-scheme.6523">
<xsl:param name="schemeID" as="element()?"/>
<xsl:if test="@schemeID">
<xsl:variable name="listID_JT">
<xsl:call-template name="code.ICD">
<xsl:with-param name="myparam" select="($schemeID, @listID, @schemeID)[1]"/>
</xsl:call-template>
</xsl:variable>
<xsl:attribute name="scheme_identifier" select="($schemeID, $listID_JT, @schemeID)[1]"/>
</xsl:if>
<xsl:value-of select="."/>
</xsl:template>
<!-- End: Jan Thiele -->
<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>
</xsl:stylesheet>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,935 @@
<?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"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xrf="https://projekte.kosit.org/xrechnung/xrechnung-visualization/functions">
<xsl:decimal-format name="de" decimal-separator="," grouping-separator="." NaN="" />
<xsl:decimal-format name="en" decimal-separator="." grouping-separator="," NaN="" />
<xsl:template name="uebersicht">
<xsl:call-template name="page">
<xsl:with-param name="identifier" select="'uebersicht'"/>
<xsl:with-param name="content">
<xsl:call-template name="uebersicht_Content"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersicht_Content">
<xsl:call-template name="uebersichtKaeufer"/>
<xsl:call-template name="uebersichtVerkaeufer"/>
<xsl:call-template name="uebersichtRechnungsInfo"/>
<xsl:call-template name="uebersichtFremdleistungen"/>
<xsl:call-template name="uebersichtRechnungsuebersicht"/>
<xsl:call-template name="uebersichtUmsatzsteuer"/>
<xsl:call-template name="uebersichtNachlass"/>
<xsl:call-template name="uebersichtZuschlaege"/>
<xsl:call-template name="uebersichtZahlungInfo"/>
<xsl:call-template name="uebersichtBemerkungen"/>
</xsl:template>
<xsl:template name="uebersichtKaeufer">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'uebersichtKaeufer'"/>
<xsl:with-param name="content">
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:Buyer_reference"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:Buyer_name"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:BUYER_POSTAL_ADDRESS/xr:Buyer_address_line_1"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:BUYER_POSTAL_ADDRESS/xr:Buyer_address_line_2"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:BUYER_POSTAL_ADDRESS/xr:Buyer_address_line_3"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:BUYER_POSTAL_ADDRESS/xr:Buyer_post_code"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:BUYER_POSTAL_ADDRESS/xr:Buyer_city"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:BUYER_POSTAL_ADDRESS/xr:Buyer_country_subdivision"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:BUYER_POSTAL_ADDRESS/xr:Buyer_country_code"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:Buyer_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:Buyer_identifier/@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Buyer_identifier/@scheme_identifier'"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:BUYER_CONTACT/xr:Buyer_contact_point"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:BUYER_CONTACT/xr:Buyer_contact_telephone_number"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:BUYER_CONTACT/xr:Buyer_contact_email_address"/>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtVerkaeufer">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'uebersichtVerkaeufer'"/>
<xsl:with-param name="content">
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:Seller_name"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:SELLER_POSTAL_ADDRESS/xr:Seller_address_line_1"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:SELLER_POSTAL_ADDRESS/xr:Seller_address_line_2"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:SELLER_POSTAL_ADDRESS/xr:Seller_address_line_3"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:SELLER_POSTAL_ADDRESS/xr:Seller_post_code"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:SELLER_POSTAL_ADDRESS/xr:Seller_city"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:SELLER_POSTAL_ADDRESS/xr:Seller_country_subdivision"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:SELLER_POSTAL_ADDRESS/xr:Seller_country_code"/>
<xsl:for-each select="xr:SELLER/xr:Seller_identifier">
<xsl:apply-templates mode="list-entry" select="."/>
<xsl:apply-templates mode="list-entry" select="./@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Seller_identifier/@scheme_identifier'"/>
</xsl:apply-templates>
</xsl:for-each>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:SELLER_CONTACT/xr:Seller_contact_point"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:SELLER_CONTACT/xr:Seller_contact_telephone_number"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:SELLER_CONTACT/xr:Seller_contact_email_address"/>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtRechnungsInfo">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'uebersichtRechnungsInfo'"/>
<xsl:with-param name="content">
<xsl:call-template name="uebersichtRechnungsInfo_Content"/>
<xsl:call-template name="uebersichtRechnungAbrechnungszeitraum_Content"/>
<xsl:call-template name="uebersichtRechnungVorausgegangeneRechnungen_Content"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtRechnungsInfo_Content">
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates select="xr:Invoice_number" mode="list-entry"/>
<xsl:apply-templates select="xr:Invoice_issue_date" mode="list-entry">
<xsl:with-param name="value" select="if (matches(
normalize-space(
replace(xr:Invoice_issue_date, '-', '')
),
$datepattern)
)
then
format-date(xr:Invoice_issue_date, xrf:_('date-format'))
else
xr:Invoice_issue_date/text()"/>
</xsl:apply-templates>
<xsl:apply-templates select="xr:Invoice_type_code" mode="list-entry"/>
<xsl:apply-templates select="xr:Invoice_currency_code" mode="list-entry"/>
<xsl:for-each select="tokenize(xr:Value_added_tax_point_date,';')">
<xsl:call-template name="list-entry-bt-7">
<xsl:with-param name="value" select="format-date(xs:date(.),xrf:_('date-format'))"/>
<xsl:with-param name="field-mapping-identifier" select="'xr:Value_added_tax_point_date'"/>
</xsl:call-template>
</xsl:for-each>
<xsl:apply-templates select="xr:Value_added_tax_point_date_code" mode="list-entry"/>
<xsl:apply-templates select="xr:Project_reference" mode="list-entry"/>
<xsl:apply-templates select="xr:Contract_reference" mode="list-entry"/>
<xsl:apply-templates select="xr:Purchase_order_reference" mode="list-entry"/>
<xsl:apply-templates select="xr:Sales_order_reference" mode="list-entry"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtRechnungAbrechnungszeitraum_Content">
<xsl:call-template name="list">
<xsl:with-param name="headingId" select="'uebersichtRechnungAbrechnungszeitraum'"/>
<xsl:with-param name="content">
<xsl:apply-templates select="xr:INVOICING_PERIOD/xr:Invoicing_period_start_date" mode="list-entry">
<xsl:with-param name="value" select="format-date(xr:INVOICING_PERIOD/xr:Invoicing_period_start_date, xrf:_('date-format'))"/>
</xsl:apply-templates>
<xsl:apply-templates select="xr:INVOICING_PERIOD/xr:Invoicing_period_end_date" mode="list-entry">
<xsl:with-param name="value" select="format-date(xr:INVOICING_PERIOD/xr:Invoicing_period_end_date, xrf:_('date-format'))"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtRechnungVorausgegangeneRechnungen_Content">
<xsl:call-template name="list">
<xsl:with-param name="headingId" select="'uebersichtRechnungVorausgegangeneRechnungen'"/>
<xsl:with-param name="content">
<xsl:for-each select="xr:PRECEDING_INVOICE_REFERENCE">
<xsl:call-template name="sub-list">
<xsl:with-param name="content">
<xsl:apply-templates select="xr:Preceding_Invoice_reference" mode="list-entry"/>
<xsl:apply-templates select="xr:Preceding_Invoice_issue_date" mode="list-entry">
<xsl:with-param name="value" select="format-date(xr:Preceding_Invoice_issue_date, xrf:_('date-format'))"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtFremdleistungen">
<xsl:for-each select="xr:THIRD_PARTY_PAYMENT">
<xsl:call-template name="spanned-box">
<xsl:with-param name="identifier" select="'uebersichtFremdleistungen'"/>
<xsl:with-param name="content">
<xsl:call-template name="list">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:Third_party_payment_type"/>
</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="list">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:Third_party_payment_description"/>
</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="value-list">
<xsl:with-param name="content">
<xsl:apply-templates mode="sum-list-entry" select="xr:Third_party_payment_amount">
<xsl:with-param name="value" select="xr:Third_party_payment_amount"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:template>
<xsl:template name="uebersichtRechnungsuebersicht">
<xsl:call-template name="spanned-box">
<xsl:with-param name="identifier" select="'uebersichtRechnungsuebersicht'"/>
<xsl:with-param name="content">
<xsl:call-template name="value-list">
<xsl:with-param name="content">
<xsl:apply-templates mode="value-list-entry" select="xr:DOCUMENT_TOTALS/xr:Sum_of_Invoice_line_net_amount">
<xsl:with-param name="value" select="format-number(xr:DOCUMENT_TOTALS/xr:Sum_of_Invoice_line_net_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:DOCUMENT_TOTALS/xr:Sum_of_allowances_on_document_level">
<xsl:with-param name="value" select="format-number(xr:DOCUMENT_TOTALS/xr:Sum_of_allowances_on_document_level,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:DOCUMENT_TOTALS/xr:Sum_of_charges_on_document_level">
<xsl:with-param name="value" select="format-number(xr:DOCUMENT_TOTALS/xr:Sum_of_charges_on_document_level,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="sum-list-entry" select="xr:DOCUMENT_TOTALS/xr:Invoice_total_amount_without_VAT">
<xsl:with-param name="value" select="format-number(xr:DOCUMENT_TOTALS/xr:Invoice_total_amount_without_VAT,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:DOCUMENT_TOTALS/xr:Invoice_total_VAT_amount">
<xsl:with-param name="value" select="format-number(xr:DOCUMENT_TOTALS/xr:Invoice_total_VAT_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:DOCUMENT_TOTALS/xr:Invoice_total_VAT_amount_in_accounting_currency">
<xsl:with-param name="value" select="format-number(xr:DOCUMENT_TOTALS/xr:Invoice_total_VAT_amount_in_accounting_currency,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="sum-list-entry" select="xr:DOCUMENT_TOTALS/xr:Invoice_total_amount_with_VAT">
<xsl:with-param name="value" select="format-number(xr:DOCUMENT_TOTALS/xr:Invoice_total_amount_with_VAT,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:DOCUMENT_TOTALS/xr:Paid_amount">
<xsl:with-param name="value" select="format-number(xr:DOCUMENT_TOTALS/xr:Paid_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:DOCUMENT_TOTALS/xr:Rounding_amount">
<xsl:with-param name="value" select="format-number(xr:DOCUMENT_TOTALS/xr:Rounding_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="/xr:invoice">
<xsl:with-param name="field-mapping-identifier" select="'sum-of-third-party-payment-amounts'"/>
<xsl:with-param name="value" select="format-number(sum(xr:THIRD_PARTY_PAYMENT/xr:Third_party_payment_amount),$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="sum-list-entry" select="xr:DOCUMENT_TOTALS/xr:Amount_due_for_payment">
<xsl:with-param name="level" select="'final'"/>
<xsl:with-param name="value" select="format-number(xr:DOCUMENT_TOTALS/xr:Amount_due_for_payment,$amount-picture,$lang)"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtUmsatzsteuer">
<xsl:call-template name="spanned-box">
<xsl:with-param name="identifier" select="'uebersichtUmsatzsteuer'"/>
<xsl:with-param name="content">
<xsl:for-each select="xr:VAT_BREAKDOWN">
<xsl:call-template name="value-list">
<xsl:with-param name="headingId" select="'xr:VAT_category_code'"/>
<xsl:with-param name="headingValue" select="xr:VAT_category_code"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="value-list-entry" select="xr:VAT_category_taxable_amount">
<xsl:with-param name="value" select="format-number(xr:VAT_category_taxable_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:VAT_category_rate">
<xsl:with-param name="value" select="concat(format-number(xr:VAT_category_rate,$percentage-picture,$lang), '%')"/>
</xsl:apply-templates>
<xsl:apply-templates mode="sum-list-entry" select="xr:VAT_category_tax_amount">
<xsl:with-param name="value" select="format-number(xr:VAT_category_tax_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:VAT_exemption_reason_text"/>
<xsl:apply-templates mode="list-entry" select="xr:VAT_exemption_reason_code"/>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtNachlass">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'uebersichtNachlass'"/>
<xsl:with-param name="content">
<xsl:for-each select="xr:DOCUMENT_LEVEL_ALLOWANCES">
<xsl:call-template name="section">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:call-template name="value-list">
<xsl:with-param name="headingId" select="'xr:Document_level_allowance_VAT_category_code'"/>
<xsl:with-param name="headingValue" select="xr:Document_level_allowance_VAT_category_code"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="value-list-entry" select="xr:Document_level_allowance_base_amount">
<xsl:with-param name="value" select="format-number(xr:Document_level_allowance_base_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:Document_level_allowance_percentage">
<xsl:with-param name="value" select="concat(format-number(xr:Document_level_allowance_percentage,$percentage-picture,$lang), '%')"/>
</xsl:apply-templates>
<xsl:apply-templates mode="sum-list-entry" select="xr:Document_level_allowance_amount">
<xsl:with-param name="value" select="format-number(xr:Document_level_allowance_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:Document_level_allowance_VAT_rate">
<xsl:with-param name="value" select="concat(format-number(xr:Document_level_allowance_VAT_rate,$percentage-picture,$lang), '%')"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:Document_level_allowance_reason"/>
<xsl:apply-templates mode="list-entry" select="xr:Document_level_allowance_reason_code"/>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtZuschlaege">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'uebersichtZuschlaege'"/>
<xsl:with-param name="content">
<xsl:for-each select="xr:DOCUMENT_LEVEL_CHARGES">
<xsl:call-template name="section">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:call-template name="value-list">
<xsl:with-param name="headingId" select="'xr:Document_level_charge_VAT_category_code'"/>
<xsl:with-param name="headingValue" select="xr:Document_level_charge_VAT_category_code"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="value-list-entry" select="xr:Document_level_charge_base_amount">
<xsl:with-param name="value" select="format-number(xr:Document_level_charge_base_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:Document_level_charge_percentage">
<xsl:with-param name="value" select="concat(format-number(xr:Document_level_charge_percentage,$percentage-picture,$lang), '%')"/>
</xsl:apply-templates>
<xsl:apply-templates mode="sum-list-entry" select="xr:Document_level_charge_amount">
<xsl:with-param name="value" select="format-number(xr:Document_level_charge_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:Document_level_charge_VAT_rate">
<xsl:with-param name="value" select="concat(format-number(xr:Document_level_charge_VAT_rate,$percentage-picture,$lang), '%')"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:Document_level_charge_reason"/>
<xsl:apply-templates mode="list-entry" select="xr:Document_level_charge_reason_code"/>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtZahlungInfo">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'uebersichtZahlungInfo'"/>
<xsl:with-param name="content">
<xsl:call-template name="uebersichtZahlungInfo_Content"/>
<xsl:call-template name="uebersichtZahlungKarte_Content"/>
<xsl:call-template name="uebersichtZahlungLastschrift_Content"/>
<fo:block xsl:use-attribute-sets="separator" span="all" line-height="0pt"/>
<xsl:call-template name="uebersichtZahlungUeberweisung_Content"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtZahlungInfo_Content">
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:Payment_terms"/>
<xsl:apply-templates mode="list-entry" select="xr:Payment_due_date"/>
<xsl:apply-templates mode="list-entry" select="xr:PAYMENT_INSTRUCTIONS/xr:Payment_means_type_code"/>
<xsl:apply-templates mode="list-entry" select="xr:PAYMENT_INSTRUCTIONS/xr:Payment_means_text"/>
<xsl:apply-templates mode="list-entry" select="xr:PAYMENT_INSTRUCTIONS/xr:Remittance_information"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtZahlungKarte_Content">
<xsl:call-template name="list">
<xsl:with-param name="headingId" select="'uebersichtZahlungKarte'"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:PAYMENT_INSTRUCTIONS/xr:PAYMENT_CARD_INFORMATION/xr:Payment_card_primary_account_number"/>
<xsl:apply-templates mode="list-entry" select="xr:PAYMENT_INSTRUCTIONS/xr:PAYMENT_CARD_INFORMATION/xr:Payment_card_holder_name"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtZahlungLastschrift_Content">
<xsl:call-template name="list">
<xsl:with-param name="headingId" select="'uebersichtZahlungLastschrift'"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:PAYMENT_INSTRUCTIONS/xr:DIRECT_DEBIT/xr:Mandate_reference_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:PAYMENT_INSTRUCTIONS/xr:DIRECT_DEBIT/xr:Debited_account_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:PAYMENT_INSTRUCTIONS/xr:DIRECT_DEBIT/xr:Bank_assigned_creditor_identifier"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtZahlungUeberweisung_Content">
<xsl:call-template name="list">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="headingId" select="'uebersichtZahlungUeberweisung'"/>
<xsl:with-param name="content">
<xsl:for-each select="xr:PAYMENT_INSTRUCTIONS/xr:CREDIT_TRANSFER">
<xsl:call-template name="sub-list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:Payment_account_name"/>
<xsl:apply-templates mode="list-entry" select="xr:Payment_account_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:Payment_service_provider_identifier"/>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="uebersichtBemerkungen">
<xsl:call-template name="spanned-box">
<xsl:with-param name="identifier" select="'uebersichtBemerkungen'"/>
<xsl:with-param name="content">
<xsl:for-each select="xr:INVOICE_NOTE">
<xsl:call-template name="list">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:Invoice_note_subject_code"/>
<xsl:apply-templates mode="list-entry" select="xr:Invoice_note"/>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="details">
<xsl:choose>
<xsl:when test="$invoiceline-layout = 'normal'">
<xsl:call-template name="page">
<xsl:with-param name="identifier" select="'details'"/>
<xsl:with-param name="content">
<xsl:apply-templates select="xr:INVOICE_LINE"/>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<fo:block span="all">
<xsl:call-template name="page">
<xsl:with-param name="identifier" select="'details'"/>
<xsl:with-param name="content">
<fo:table xsl:use-attribute-sets="invoicelines-table" span="all">
<xsl:for-each select="tokenize($tabular-layout-widths, '\s+')">
<fo:table-column column-width="proportional-column-width({.})"/>
</xsl:for-each>
<fo:table-header xsl:use-attribute-sets="invoicelines-table-header">
<fo:table-row>
<fo:table-cell>
<fo:block>#</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block><xsl:value-of select="xrf:_('_description')"/></fo:block>
</fo:table-cell>
<fo:table-cell text-align="center">
<fo:block><xsl:value-of select="xrf:_('xr:Invoiced_quantity')"/></fo:block>
</fo:table-cell>
<fo:table-cell text-align="right" padding-right="1em">
<fo:block><xsl:value-of select="xrf:_('_price')"/></fo:block>
</fo:table-cell>
<fo:table-cell text-align="center">
<fo:block><xsl:value-of select="xrf:_('_price-unit')"/></fo:block>
</fo:table-cell>
<fo:table-cell text-align="center">
<fo:block><xsl:value-of select="xrf:_('_vat')"/></fo:block>
</fo:table-cell>
<fo:table-cell text-align="center">
<fo:block><xsl:value-of select="xrf:_('_tax-code')"/></fo:block>
</fo:table-cell>
<fo:table-cell text-align="right">
<fo:block><xsl:value-of select="xrf:_('_total')"/></fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-header>
<fo:table-body>
<xsl:apply-templates select="xr:INVOICE_LINE" mode="invoiceline-tabular"/>
</fo:table-body>
</fo:table>
</xsl:with-param>
</xsl:call-template>
</fo:block>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="detailsPosition">
<xsl:call-template name="detailsPosition_Content"/>
<xsl:call-template name="detailsPositionAbrechnungszeitraum"/>
<xsl:call-template name="detailsPositionPreiseinzelheiten"/>
<xsl:call-template name="detailsPositionNachlaesse"/>
<xsl:call-template name="detailsPositionZuschlaege"/>
<xsl:call-template name="detailsPositionArtikelinformationen"/>
<xsl:call-template name="detailsPositionArtikeleigenschaften"/>
</xsl:template>
<xsl:template name="detailsPosition_Content">
<xsl:variable name="content">
<xsl:apply-templates mode="list-entry" select="xr:Invoice_line_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:Invoice_line_note"/>
<xsl:apply-templates mode="list-entry" select="xr:Invoice_line_object_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:Invoice_line_object_identifier/@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Invoice_line_object_identifier/@scheme_identifier'"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:Referenced_purchase_order_line_reference"/>
<xsl:apply-templates mode="list-entry" select="xr:Invoice_line_Buyer_accounting_reference"/>
</xsl:variable>
<xsl:call-template name="list">
<xsl:with-param name="content" select="$content"/>
</xsl:call-template>
<xsl:if test="normalize-space($content)">
<fo:block xsl:use-attribute-sets="separator" span="all"/>
</xsl:if>
</xsl:template>
<xsl:template name="detailsPositionAbrechnungszeitraum">
<xsl:variable name="content">
<xsl:apply-templates mode="list-entry" select="xr:INVOICE_LINE_PERIOD/xr:Invoice_line_period_start_date">
<xsl:with-param name="value" select="format-date(xr:INVOICE_LINE_PERIOD/xr:Invoice_line_period_start_date, xrf:_('date-format'))"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:INVOICE_LINE_PERIOD/xr:Invoice_line_period_end_date">
<xsl:with-param name="value" select="format-date(xr:INVOICE_LINE_PERIOD/xr:Invoice_line_period_end_date, xrf:_('date-format'))"/>
</xsl:apply-templates>
</xsl:variable>
<xsl:call-template name="list">
<xsl:with-param name="headingId" select="'detailsPositionAbrechnungszeitraum'"/>
<xsl:with-param name="content" select="$content"/>
</xsl:call-template>
<xsl:if test="normalize-space($content)">
<fo:block xsl:use-attribute-sets="separator" span="all"/>
</xsl:if>
</xsl:template>
<xsl:template name="detailsPositionPreiseinzelheiten">
<xsl:call-template name="section">
<xsl:with-param name="headingId" select="'detailsPositionPreiseinzelheiten'"/>
<xsl:with-param name="content">
<xsl:call-template name="value-list">
<xsl:with-param name="content">
<xsl:apply-templates mode="value-list-entry" select="xr:Invoiced_quantity"/>
<xsl:apply-templates mode="value-list-entry" select="xr:Invoiced_quantity_unit_of_measure_code"/>
<xsl:apply-templates mode="value-list-entry" select="xr:PRICE_DETAILS/xr:Item_net_price">
<xsl:with-param name="value" select="format-number(xr:PRICE_DETAILS/xr:Item_net_price,$at-least-two-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="sum-list-entry" select="xr:Invoice_line_net_amount">
<xsl:with-param name="value" select="format-number(xr:Invoice_line_net_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="list">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:PRICE_DETAILS/xr:Item_price_discount">
<xsl:with-param name="value" select="format-number(xr:PRICE_DETAILS/xr:Item_price_discount,$at-least-two-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:PRICE_DETAILS/xr:Item_gross_price">
<xsl:with-param name="value" select="format-number(xr:PRICE_DETAILS/xr:Item_gross_price,$at-least-two-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:PRICE_DETAILS/xr:Item_price_base_quantity"/>
<xsl:apply-templates mode="list-entry" select="xr:PRICE_DETAILS/xr:Item_price_base_quantity_unit_of_measure"/>
<xsl:apply-templates mode="list-entry" select="xr:LINE_VAT_INFORMATION/xr:Invoiced_item_VAT_category_code"/>
<xsl:apply-templates mode="list-entry" select="xr:LINE_VAT_INFORMATION/xr:Invoiced_item_VAT_rate">
<xsl:with-param name="value" select="concat(format-number(xr:LINE_VAT_INFORMATION/xr:Invoiced_item_VAT_rate,$percentage-picture,$lang), '%')"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="detailsPositionNachlaesse">
<xsl:call-template name="section">
<xsl:with-param name="headingId" select="'detailsPositionNachlaesse'"/>
<xsl:with-param name="content">
<xsl:for-each select="xr:INVOICE_LINE_ALLOWANCES">
<xsl:call-template name="section">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:call-template name="value-list">
<xsl:with-param name="content">
<xsl:apply-templates mode="value-list-entry" select="xr:Invoice_line_allowance_base_amount">
<xsl:with-param name="value" select="format-number(xr:Invoice_line_allowance_base_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:Invoice_line_allowance_percentage">
<xsl:with-param name="value" select="concat(format-number(xr:Invoice_line_allowance_percentage,$percentage-picture,$lang), '%')"/>
</xsl:apply-templates>
<xsl:apply-templates mode="sum-list-entry" select="xr:Invoice_line_allowance_amount">
<xsl:with-param name="value" select="format-number(xr:Invoice_line_allowance_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="list">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:Invoice_line_allowance_reason"/>
<xsl:apply-templates mode="list-entry" select="xr:Invoice_line_allowance_reason_code"/>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="detailsPositionZuschlaege">
<xsl:variable name="content">
<xsl:for-each select="xr:INVOICE_LINE_CHARGES">
<xsl:call-template name="section">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:call-template name="value-list">
<xsl:with-param name="content">
<xsl:apply-templates mode="value-list-entry" select="xr:Invoice_line_charge_base_amount">
<xsl:with-param name="value" select="format-number(xr:Invoice_line_charge_base_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
<xsl:apply-templates mode="value-list-entry" select="xr:Invoice_line_charge_percentage">
<xsl:with-param name="value" select="concat(format-number(xr:Invoice_line_charge_percentage,$percentage-picture,$lang), '%')"/>
</xsl:apply-templates>
<xsl:apply-templates mode="sum-list-entry" select="xr:Invoice_line_charge_amount">
<xsl:with-param name="value" select="format-number(xr:Invoice_line_charge_amount,$amount-picture,$lang)"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="list">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:Invoice_line_charge_reason"/>
<xsl:apply-templates mode="list-entry" select="xr:Invoice_line_charge_reason_code"/>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:variable>
<xsl:call-template name="section">
<xsl:with-param name="headingId" select="'detailsPositionZuschlaege'"/>
<xsl:with-param name="content" select="$content"/>
</xsl:call-template>
<xsl:if test="normalize-space($content)">
<fo:block xsl:use-attribute-sets="separator" span="all"/>
</xsl:if>
</xsl:template>
<xsl:template name="detailsPositionArtikelinformationen">
<xsl:call-template name="list">
<xsl:with-param name="headingId" select="'detailsPositionArtikelinformationen'"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:ITEM_INFORMATION/xr:Item_name"/>
<xsl:apply-templates mode="list-entry" select="xr:ITEM_INFORMATION/xr:Item_description"/>
<xsl:apply-templates mode="list-entry" select="xr:ITEM_INFORMATION/xr:Item_Sellers_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:ITEM_INFORMATION/xr:Item_Buyers_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:ITEM_INFORMATION/xr:Item_standard_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:ITEM_INFORMATION/xr:Item_standard_identifier/@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Item_standard_identifier/@scheme_identifier'"/>
</xsl:apply-templates>
<xsl:for-each select="xr:ITEM_INFORMATION/xr:Item_classification_identifier">
<xsl:apply-templates mode="list-entry" select="."/>
<xsl:apply-templates mode="list-entry" select="./@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Item_classification_identifier/@scheme_identifier'"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="./@scheme_version_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Item_classification_identifier/@scheme_version_identifier'"/>
</xsl:apply-templates>
</xsl:for-each>
<xsl:apply-templates mode="list-entry" select="xr:ITEM_INFORMATION/xr:Item_country_of_origin"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="detailsPositionArtikeleigenschaften">
<xsl:call-template name="list">
<xsl:with-param name="headingId" select="'detailsPositionArtikeleigenschaften'"/>
<xsl:with-param name="content">
<xsl:apply-templates select="xr:ITEM_INFORMATION/xr:ITEM_ATTRIBUTES"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="zusaetze">
<xsl:call-template name="page">
<xsl:with-param name="identifier" select="'zusaetze'"/>
<xsl:with-param name="content">
<xsl:call-template name="zusaetze_Content"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="zusaetze_Content">
<xsl:call-template name="zusaetzeVerkaeufer"/>
<xsl:call-template name="zusaetzeSteuervertreter"/>
<xsl:call-template name="zusaetzeKaeufer"/>
<xsl:call-template name="zusaetzeLieferung"/>
<xsl:call-template name="zusaetzeVertrag"/>
<xsl:call-template name="zusaetzeZahlungsempfaenger"/>
</xsl:template>
<xsl:template name="zusaetzeVerkaeufer">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'zusaetzeVerkaeufer'"/>
<xsl:with-param name="content">
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:Seller_trading_name"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:SELLER_POSTAL_ADDRESS/xr:Seller_country_subdivision"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:Seller_electronic_address"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:Seller_electronic_address/@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Seller_electronic_address/@scheme_identifier'"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:Seller_legal_registration_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:Seller_legal_registration_identifier/@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Seller_legal_registration_identifier/@scheme_identifier'"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:Seller_VAT_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:Seller_tax_registration_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER/xr:Seller_additional_legal_information"/>
<xsl:apply-templates mode="list-entry" select="xr:VAT_accounting_currency_code"/>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="zusaetzeSteuervertreter">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'zusaetzeSteuervertreter'"/>
<xsl:with-param name="content">
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:SELLER_TAX_REPRESENTATIVE_PARTY/xr:Seller_tax_representative_name"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER_TAX_REPRESENTATIVE_PARTY/xr:SELLER_TAX_REPRESENTATIVE_POSTAL_ADDRESS/xr:Tax_representative_address_line_1"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER_TAX_REPRESENTATIVE_PARTY/xr:SELLER_TAX_REPRESENTATIVE_POSTAL_ADDRESS/xr:Tax_representative_address_line_2"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER_TAX_REPRESENTATIVE_PARTY/xr:SELLER_TAX_REPRESENTATIVE_POSTAL_ADDRESS/xr:Tax_representative_address_line_3"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER_TAX_REPRESENTATIVE_PARTY/xr:SELLER_TAX_REPRESENTATIVE_POSTAL_ADDRESS/xr:Tax_representative_post_code"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER_TAX_REPRESENTATIVE_PARTY/xr:SELLER_TAX_REPRESENTATIVE_POSTAL_ADDRESS/xr:Tax_representative_city"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER_TAX_REPRESENTATIVE_PARTY/xr:SELLER_TAX_REPRESENTATIVE_POSTAL_ADDRESS/xr:Tax_representative_country_subdivision"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER_TAX_REPRESENTATIVE_PARTY/xr:SELLER_TAX_REPRESENTATIVE_POSTAL_ADDRESS/xr:Tax_representative_country_code"/>
<xsl:apply-templates mode="list-entry" select="xr:SELLER_TAX_REPRESENTATIVE_PARTY/xr:Seller_tax_representative_VAT_identifier"/>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="zusaetzeKaeufer">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'zusaetzeKaeufer'"/>
<xsl:with-param name="content">
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:Buyer_trading_name"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:BUYER_POSTAL_ADDRESS/xr:Buyer_country_subdivision"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:Buyer_electronic_address"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:Buyer_electronic_address/@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Buyer_electronic_address/@scheme_identifier'"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:Buyer_legal_registration_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:Buyer_legal_registration_identifier/@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Buyer_legal_registration_identifier/@scheme_identifier'"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:Buyer_VAT_identifier"/>
<xsl:for-each select="tokenize(xr:Value_added_tax_point_date,';')">
<xsl:call-template name="list-entry-bt-7">
<xsl:with-param name="value" select="format-date(xs:date(.), xrf:_('date-format'))"/>
<xsl:with-param name="field-mapping-identifier" select="'xr:Value_added_tax_point_date'"/>
</xsl:call-template>
</xsl:for-each>
<xsl:apply-templates mode="list-entry" select="xr:BUYER/xr:Value_added_tax_point_date_code"/>
<xsl:apply-templates mode="list-entry" select="xr:Buyer_accounting_reference"/>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="zusaetzeLieferung">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'zusaetzeLieferung'"/>
<xsl:with-param name="content">
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:DELIVERY_INFORMATION/xr:Deliver_to_location_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:DELIVERY_INFORMATION/xr:Deliver_to_location_identifier/@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Deliver_to_location_identifier/@scheme_identifier'"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:DELIVERY_INFORMATION/xr:Actual_delivery_date">
<xsl:with-param name="value" select="format-date(xr:DELIVERY_INFORMATION/xr:Actual_delivery_date, xrf:_('date-format'))"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:DELIVERY_INFORMATION/xr:Deliver_to_party_name"/>
<xsl:apply-templates mode="list-entry" select="xr:DELIVERY_INFORMATION/xr:DELIVER_TO_ADDRESS/xr:Deliver_to_address_line_1"/>
<xsl:apply-templates mode="list-entry" select="xr:DELIVERY_INFORMATION/xr:DELIVER_TO_ADDRESS/xr:Deliver_to_address_line_2"/>
<xsl:apply-templates mode="list-entry" select="xr:DELIVERY_INFORMATION/xr:DELIVER_TO_ADDRESS/xr:Deliver_to_address_line_3"/>
<xsl:apply-templates mode="list-entry" select="xr:DELIVERY_INFORMATION/xr:DELIVER_TO_ADDRESS/xr:Deliver_to_post_code"/>
<xsl:apply-templates mode="list-entry" select="xr:DELIVERY_INFORMATION/xr:DELIVER_TO_ADDRESS/xr:Deliver_to_city"/>
<xsl:apply-templates mode="list-entry" select="xr:DELIVERY_INFORMATION/xr:DELIVER_TO_ADDRESS/xr:Deliver_to_country_subdivision"/>
<xsl:apply-templates mode="list-entry" select="xr:DELIVERY_INFORMATION/xr:DELIVER_TO_ADDRESS/xr:Deliver_to_country_code"/>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="zusaetzeVertrag">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'zusaetzeVertrag'"/>
<xsl:with-param name="content">
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:Tender_or_lot_reference"/>
<xsl:apply-templates mode="list-entry" select="xr:Receiving_advice_reference"/>
<xsl:apply-templates mode="list-entry" select="xr:Despatch_advice_reference"/>
<xsl:apply-templates mode="list-entry" select="xr:PROCESS_CONTROL/xr:Business_process_type"/>
<xsl:apply-templates mode="list-entry" select="xr:PROCESS_CONTROL/xr:Specification_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:PROCESS_CONTROL/xr:Business_process_type_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:Invoiced_object_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:Invoiced_object_identifier/@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Invoiced_object_identifier/@scheme_identifier'"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="zusaetzeZahlungsempfaenger">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'zusaetzeZahlungsempfaenger'"/>
<xsl:with-param name="content">
<xsl:call-template name="list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:PAYEE/xr:Payee_name"/>
<xsl:apply-templates mode="list-entry" select="xr:PAYEE/xr:Payee_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:PAYEE/xr:Payee_identifier/@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Payee_identifier/@scheme_identifier'"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:PAYEE/xr:Payee_legal_registration_identifier"/>
<xsl:apply-templates mode="list-entry" select="xr:PAYEE/xr:Payee_legal_registration_identifier/@scheme_identifier">
<xsl:with-param name="field-mapping-identifier" select="'xr:Payee_legal_registration_identifier/@scheme_identifier'"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="anlagen">
<xsl:call-template name="page">
<xsl:with-param name="identifier" select="'anlagen'"/>
<xsl:with-param name="content">
<xsl:call-template name="anlagen_Content"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="anlagen_Content">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'anlagenListe'"/>
<xsl:with-param name="content">
<xsl:call-template name="list">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:for-each select="xr:ADDITIONAL_SUPPORTING_DOCUMENTS">
<xsl:call-template name="sub-list">
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xr:Supporting_document_reference"/>
<xsl:apply-templates mode="list-entry" select="xr:Supporting_document_description"/>
<xsl:apply-templates mode="list-entry" select="xr:External_document_location">
<xsl:with-param name="value">
<xsl:apply-templates mode="internet-link" select="xr:External_document_location"/>
</xsl:with-param>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:Attached_document">
<xsl:with-param name="value">
<xsl:apply-templates mode="binary" select="xr:Attached_document">
<xsl:with-param name="identifier" select="xr:Attached_document/@filename"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:Attached_document/@mime_code">
<xsl:with-param name="field-mapping-identifier" select="'xr:Attached_document/@mime_code'"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xr:Attached_document/@filename">
<xsl:with-param name="field-mapping-identifier" select="'xr:Attached_document/@filename'"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="laufzettel">
<xsl:call-template name="page">
<xsl:with-param name="identifier" select="'laufzettel'"/>
<xsl:with-param name="content">
<xsl:call-template name="laufzettel_Content"/>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="laufzettel_Content">
<xsl:call-template name="box">
<xsl:with-param name="identifier" select="'laufzettelHistorie'"/>
<xsl:with-param name="content">
<xsl:call-template name="list">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:for-each select="//xrv:laufzettel/xrv:laufzettelEintrag">
<xsl:call-template name="sub-list">
<xsl:with-param name="layout" select="'einspaltig'"/>
<xsl:with-param name="content">
<xsl:apply-templates mode="list-entry" select="xrv:zeitstempel">
<xsl:with-param name="value" select="format-dateTime(xrv:zeitstempel, xrf:_('datetime-format'))"/>
</xsl:apply-templates>
<xsl:apply-templates mode="list-entry" select="xrv:betreff"/>
<xsl:apply-templates mode="list-entry" select="xrv:text"/>
<xsl:apply-templates mode="list-entry" select="xrv:details"/>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
xmlns:xr="urn:ce.eu:en16931:2017:xoev-de:kosit:standard:xrechnung-1"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xrv="http://www.example.org/XRechnung-Viewer"
version="2.0">
<!-- ==========================================================================
== Imports
=========================================================================== -->
<xsl:import href="common-xr.xsl"/>
<xsl:import href="xr-content.xsl"/>
<xsl:import href="xr-pdf/lib/konstanten.xsl"/>
<xsl:import href="xr-pdf/lib/structure/layout-master-set.xsl"/>
<xsl:import href="xr-pdf/lib/structure/content-templates.xsl"/>
<xsl:import href="xr-pdf/lib/structure/page-sequence.xsl"/>
<xsl:output method="xml" version="1.0" encoding="utf-8" />
<!-- FO engine used can be specified. Specific extensions will be then enabled.
Supported values are:
axf - Antenna House XSL Formatter
fop - Apache FOP
-->
<xsl:param name="foengine"/>
<!-- Layout of invoce lines:
normal - default behaviour
tabular - table like
-->
<xsl:param name="invoiceline-layout">normal</xsl:param>
<!-- Numbering of invoice line/sub lines
normal - use numbers from invoice
1.1 - use multilevel arabic numbering
1.i - use mixture of arabic and roman numbering
00001 - use arabic numbering and align them
- any picture string supported by xsl:number instruction can be used
-->
<xsl:param name="invoiceline-numbering">normal</xsl:param>
<!-- This parameter can be used when different proportions of table columns
are needed for tabular layout
-->
<xsl:param name="tabular-layout-widths">2 7 2 2 2 2 1.3 2</xsl:param>
<xsl:param name="axf.extensions" select="if ($foengine eq 'axf') then true() else false()"/>
<xsl:param name="fop.extensions" select="if ($foengine eq 'fop') then true() else false()"/>
<!-- ==========================================================================
== Basic structure
=========================================================================== -->
<xsl:template match="xr:invoice">
<fo:root xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf"
language="{$lang}" font-family="{$fontSans}">
<xsl:call-template name="generiere-layout-master-set"/>
<fo:declarations>
<x:xmpmeta xmlns:x="adobe:ns:meta/">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:title><xsl:value-of select="xr:Invoice_number"/></dc:title>
<!--
<dc:creator></dc:creator>
<dc:description></dc:description>
-->
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<xsl:for-each select="xr:ADDITIONAL_SUPPORTING_DOCUMENTS">
<xsl:apply-templates mode="binary-declaration" select="xr:Attached_document">
<xsl:with-param name="identifier" select="xr:Attached_document/@filename"/>
</xsl:apply-templates>
</xsl:for-each>
</fo:declarations>
<xsl:call-template name="generiere-page-sequence">
<xsl:with-param name="body-content-flow">
<fo:flow flow-name="xrBody"
xsl:use-attribute-sets="fliesstext">
<xsl:call-template name="uebersicht"/>
<xsl:call-template name="details"/>
<xsl:call-template name="zusaetze"/>
<xsl:call-template name="anlagen"/>
<xsl:call-template name="laufzettel"/>
<fo:block id="seitenzahlLetzteSeite"></fo:block>
</fo:flow>
</xsl:with-param>
</xsl:call-template>
</fo:root>
</xsl:template>
<xsl:template name="betragsUebersicht">
<xsl:param name="betraege"/>
<xsl:param name="gruende"/>
<!-- TODO -->
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,235 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
xmlns:xr="urn:ce.eu:en16931:2017:xoev-de:kosit:standard:xrechnung-1"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xrv="http://www.example.org/XRechnung-Viewer"
xmlns:xrf="https://projekte.kosit.org/xrechnung/xrechnung-visualization/functions"
version="2.0">
<!-- ==========================================================================
== Schriften
=========================================================================== -->
<xsl:variable name="fontSans">SourceSerifPro</xsl:variable>
<xsl:variable name="fontSerif">SourceSerifPro</xsl:variable>
<xsl:variable name="amount-picture" select="xrf:_('amount-format')"/>
<xsl:variable name="percentage-picture" select="xrf:_('percentage-format')"/>
<!-- ==========================================================================
== Attribute-Sets
=========================================================================== -->
<!-- Fliesstext -->
<xsl:attribute-set name="fliesstext">
<xsl:attribute name="font-family"><xsl:value-of select="$fontSans"/></xsl:attribute>
<xsl:attribute name="font-size">9pt</xsl:attribute>
<xsl:attribute name="line-height">12pt</xsl:attribute>
<xsl:attribute name="hyphenation-ladder-count">3</xsl:attribute>
<xsl:attribute name="hyphenate">true</xsl:attribute>
<xsl:attribute name="language">de</xsl:attribute>
</xsl:attribute-set>
<!-- H1 Marker -->
<xsl:attribute-set name="marker">
<xsl:attribute name="font-size">18pt</xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="$fontSerif"/></xsl:attribute>
<xsl:attribute name="hyphenate">false</xsl:attribute>
<xsl:attribute name="span">all</xsl:attribute>
</xsl:attribute-set>
<!-- H1 -->
<xsl:attribute-set name="h1">
<xsl:attribute name="font-size">18pt</xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="$fontSerif"/></xsl:attribute>
<xsl:attribute name="font-weight">bold</xsl:attribute>
<xsl:attribute name="margin-bottom">4mm</xsl:attribute>
<xsl:attribute name="hyphenate">false</xsl:attribute>
<xsl:attribute name="span">all</xsl:attribute>
<xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
</xsl:attribute-set>
<!-- H2-Container -->
<xsl:attribute-set name="h2-container">
<xsl:attribute name="border-top">0.5pt solid</xsl:attribute>
<xsl:attribute name="padding-top">2.5pt</xsl:attribute>
<xsl:attribute name="span">all</xsl:attribute>
<xsl:attribute name="margin-bottom">4mm</xsl:attribute>
<xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
</xsl:attribute-set>
<!-- H2 -->
<xsl:attribute-set name="h2">
<xsl:attribute name="font-size">9pt</xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="$fontSans"/></xsl:attribute>
<xsl:attribute name="font-weight">bold</xsl:attribute>
<xsl:attribute name="border">0.5pt solid</xsl:attribute>
<xsl:attribute name="padding">4pt 6pt</xsl:attribute>
<xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
<xsl:attribute name="margin">0</xsl:attribute>
</xsl:attribute-set>
<!-- H3 -->
<xsl:attribute-set name="h3">
<xsl:attribute name="font-size">10pt</xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="$fontSans"/></xsl:attribute>
<xsl:attribute name="font-weight">bold</xsl:attribute>
<xsl:attribute name="margin-bottom">1mm</xsl:attribute>
<xsl:attribute name="margin-left">2mm</xsl:attribute>
<xsl:attribute name="margin-top">2mm</xsl:attribute>
<xsl:attribute name="span">all</xsl:attribute>
<xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
</xsl:attribute-set>
<!-- Separator -->
<xsl:attribute-set name="separator">
<xsl:attribute name="margin-left">2mm</xsl:attribute>
<xsl:attribute name="margin-bottom">3mm</xsl:attribute>
<xsl:attribute name="border-bottom">0.5pt dotted</xsl:attribute>
<xsl:attribute name="color">#999999</xsl:attribute>
<xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
</xsl:attribute-set>
<!-- Wert-Felder -->
<xsl:variable name="wertHG">#eeeeee</xsl:variable>
<xsl:variable name="wert-legende-breite">28</xsl:variable>
<xsl:attribute-set name="wert-legende">
<xsl:attribute name="font-size">7pt</xsl:attribute>
<xsl:attribute name="line-height">10pt</xsl:attribute>
<xsl:attribute name="padding-top">1mm</xsl:attribute>
<xsl:attribute name="padding-bottom">1mm</xsl:attribute>
<xsl:attribute name="margin-left">2mm</xsl:attribute>
<xsl:attribute name="padding-right">1mm</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="wert-ausgabe">
<xsl:attribute name="font-size">9pt</xsl:attribute>
<xsl:attribute name="line-height">10pt</xsl:attribute>
<xsl:attribute name="background-color"><xsl:value-of select="$wertHG"/></xsl:attribute>
<xsl:attribute name="padding-top">1mm</xsl:attribute>
<xsl:attribute name="padding-bottom">1mm</xsl:attribute>
<xsl:attribute name="padding-left">2mm</xsl:attribute>
<xsl:attribute name="padding-right">2mm</xsl:attribute>
<xsl:attribute name="keep-together.within-column">always</xsl:attribute>
</xsl:attribute-set>
<!-- Rechnung-Felder -->
<xsl:attribute-set name="rechnung-legende">
<xsl:attribute name="font-size">9pt</xsl:attribute>
<xsl:attribute name="text-align">left</xsl:attribute>
<xsl:attribute name="padding-top">0.2mm</xsl:attribute>
<xsl:attribute name="padding-bottom">0.2mm</xsl:attribute>
<xsl:attribute name="padding-left">0mm</xsl:attribute>
<xsl:attribute name="padding-right">1mm</xsl:attribute>
<xsl:attribute name="margin-left">0mm</xsl:attribute>
<xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="rechnung-steuer">
<xsl:attribute name="font-size">9pt</xsl:attribute>
<xsl:attribute name="text-align">left</xsl:attribute>
<xsl:attribute name="padding-top">0.2mm</xsl:attribute>
<xsl:attribute name="padding-bottom">0.2mm</xsl:attribute>
<xsl:attribute name="padding-left">0mm</xsl:attribute>
<xsl:attribute name="padding-right">1mm</xsl:attribute>
<xsl:attribute name="margin-left">0mm</xsl:attribute>
<xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="rechnung-wert">
<xsl:attribute name="font-size">9pt</xsl:attribute>
<xsl:attribute name="text-align">right</xsl:attribute>
<xsl:attribute name="padding-top">0.2mm</xsl:attribute>
<xsl:attribute name="padding-bottom">0.2mm</xsl:attribute>
<xsl:attribute name="padding-left">0mm</xsl:attribute>
<xsl:attribute name="padding-right">0mm</xsl:attribute>
<xsl:attribute name="margin-left">0mm</xsl:attribute>
<xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="rechnung-legende-summe">
<xsl:attribute name="font-size">9pt</xsl:attribute>
<xsl:attribute name="text-align">left</xsl:attribute>
<xsl:attribute name="padding-top">0.4mm</xsl:attribute>
<xsl:attribute name="padding-bottom">0.2mm</xsl:attribute>
<xsl:attribute name="padding-left">0mm</xsl:attribute>
<xsl:attribute name="padding-right">1mm</xsl:attribute>
<xsl:attribute name="border-top">0.1pt solid #999999</xsl:attribute>
<xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="rechnung-steuer-summe">
<xsl:attribute name="font-size">9pt</xsl:attribute>
<xsl:attribute name="text-align">left</xsl:attribute>
<xsl:attribute name="padding-top">0.4mm</xsl:attribute>
<xsl:attribute name="padding-bottom">0.2mm</xsl:attribute>
<xsl:attribute name="padding-left">0mm</xsl:attribute>
<xsl:attribute name="padding-right">1mm</xsl:attribute>
<xsl:attribute name="border-top">0.1pt solid #999999</xsl:attribute>
<xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="rechnung-wert-summe">
<xsl:attribute name="font-size">9pt</xsl:attribute>
<xsl:attribute name="font-weight">bold</xsl:attribute>
<xsl:attribute name="text-align">right</xsl:attribute>
<xsl:attribute name="padding-top">0.4mm</xsl:attribute>
<xsl:attribute name="padding-bottom">0.2mm</xsl:attribute>
<xsl:attribute name="padding-left">0mm</xsl:attribute>
<xsl:attribute name="padding-right">0mm</xsl:attribute>
<xsl:attribute name="border-top">0.1pt solid #999999</xsl:attribute>
<xsl:attribute name="keep-with-next.within-page">always</xsl:attribute>
</xsl:attribute-set>
<!-- Box-Container -->
<xsl:attribute-set name="box-container-kapitel">
<xsl:attribute name="margin-bottom">10mm</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="box-container-bereich">
<xsl:attribute name="margin-bottom">2mm</xsl:attribute>
<xsl:attribute name="keep-together.within-page">always</xsl:attribute>
<xsl:attribute name="span">all</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="box-container-inner">
<xsl:attribute name="margin-bottom">2mm</xsl:attribute>
</xsl:attribute-set>
<!-- Tabular invoice lines -->
<xsl:attribute-set name="invoicelines-table">
<xsl:attribute name="padding-left">2pt</xsl:attribute>
<xsl:attribute name="padding-right">2pt</xsl:attribute>
<xsl:attribute name="width">100%</xsl:attribute>
<xsl:attribute name="table-layout">fixed</xsl:attribute>
<xsl:attribute name="margin-bottom">2mm</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="invoicelines-table-header">
<xsl:attribute name="font-weight">bold</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="invoicelines-table-row">
<!-- Nested sub-invoice lines will recursively decrease font-size -->
<xsl:attribute name="font-size" select="if (self::xr:SUB_INVOICE_LINE) then '90%' else '100%'"/>
</xsl:attribute-set>
<xsl:attribute-set name="invoicelines-nested-info">
<xsl:attribute name="font-size">80%</xsl:attribute>
<xsl:attribute name="font-style">italic</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="invoicelines-allowances-table">
<xsl:attribute name="padding-left">2pt</xsl:attribute>
<xsl:attribute name="padding-right">2pt</xsl:attribute>
<xsl:attribute name="width">100%</xsl:attribute>
<xsl:attribute name="table-layout">fixed</xsl:attribute>
<xsl:attribute name="font-size">80%</xsl:attribute>
<xsl:attribute name="font-style">italic</xsl:attribute>
</xsl:attribute-set>
</xsl:stylesheet>

View File

@@ -0,0 +1,972 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
xmlns:xr="urn:ce.eu:en16931:2017:xoev-de:kosit:standard:xrechnung-1"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xrv="http://www.example.org/XRechnung-Viewer"
xmlns:xrf="https://projekte.kosit.org/xrechnung/xrechnung-visualization/functions"
xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf"
version="2.0">
<xsl:template name="betragsUebersicht"/>
<!-- ==========================================================================
== Inhalt eines Kapitels
=========================================================================== -->
<xsl:template name="page">
<xsl:param name="identifier"/>
<xsl:param name="content"/>
<xsl:if test="normalize-space($content)">
<xsl:variable name="heading">
<xsl:call-template name="field-mapping">
<xsl:with-param name="identifier" select="$identifier"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="h1">
<xsl:with-param name="titel" select="$heading/label"/>
</xsl:call-template>
<xsl:copy-of select="$content"/>
</xsl:if>
</xsl:template>
<!-- ==========================================================================
== Inhalt eines Abschnittes
=========================================================================== -->
<xsl:template name="box">
<xsl:param name="identifier"/>
<xsl:param name="content"/>
<xsl:if test="normalize-space($content)">
<xsl:variable name="heading">
<xsl:call-template name="field-mapping">
<xsl:with-param name="identifier" select="$identifier"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="h2">
<xsl:with-param name="titel" select="$heading/label"/>
</xsl:call-template>
<!-- FIXME: keep-together.within-page="always" has been lost during refactor -->
<xsl:for-each select="$content/*">
<xsl:copy-of select="."/>
</xsl:for-each>
<fo:block xsl:use-attribute-sets="box-container-bereich"/>
</xsl:if>
</xsl:template>
<xsl:template name="spanned-box">
<xsl:param name="identifier"/>
<xsl:param name="content"/>
<xsl:if test="normalize-space($content)">
<xsl:variable name="heading">
<xsl:call-template name="field-mapping">
<xsl:with-param name="identifier" select="$identifier"/>
</xsl:call-template>
</xsl:variable>
<fo:block xsl:use-attribute-sets="box-container-bereich" span="all">
<xsl:call-template name="h2">
<xsl:with-param name="titel" select="$heading/label"/>
</xsl:call-template>
<xsl:for-each select="$content/*">
<xsl:copy-of select="."/>
</xsl:for-each>
</fo:block>
</xsl:if>
</xsl:template>
<!-- ==========================================================================
== Inhalt eines Teilbereich eines Abschnittes
=========================================================================== -->
<xsl:template name="section">
<xsl:param name="layout">zweispaltig</xsl:param>
<xsl:param name="headingId"/>
<xsl:param name="content"/>
<xsl:if test="normalize-space($content)">
<xsl:if test="$headingId">
<xsl:variable name="heading">
<xsl:call-template name="field-mapping">
<xsl:with-param name="identifier" select="$headingId"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="h3">
<xsl:with-param name="titel" select="$heading/label"/>
</xsl:call-template>
</xsl:if>
<fo:block>
<xsl:copy-of select="$content"/>
</fo:block>
</xsl:if>
</xsl:template>
<!-- ==========================================================================
== Inhaltseinheit mit optionaler Überschrift
=========================================================================== -->
<xsl:template name="list">
<xsl:param name="layout">zweispaltig</xsl:param>
<xsl:param name="headingId"/>
<xsl:param name="content"/>
<xsl:if test="normalize-space($content)">
<xsl:variable name="boxContent">
<xsl:copy-of select="$content"/>
<!-- Placeholder for spacing after the box -->
<fo:block xsl:use-attribute-sets="box-container-inner" line-height="0pt" span="all"/>
</xsl:variable>
<xsl:if test="$headingId">
<xsl:variable name="heading">
<xsl:call-template name="field-mapping">
<xsl:with-param name="identifier" select="$headingId"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="h3">
<xsl:with-param name="titel" select="$heading/label"/>
</xsl:call-template>
</xsl:if>
<xsl:copy-of select="$boxContent"/>
</xsl:if>
</xsl:template>
<!-- ==========================================================================
==
=========================================================================== -->
<xsl:template name="sub-list">
<xsl:param name="layout">zweispaltig</xsl:param>
<xsl:param name="content"/>
<xsl:if test="normalize-space($content)">
<xsl:call-template name="list">
<xsl:with-param name="layout" select="$layout"/>
<xsl:with-param name="content" select="$content"/>
</xsl:call-template>
<!-- Placeholder for spacing after the box -->
<fo:block xsl:use-attribute-sets="box-container-inner" line-height="0pt" span="all"/>
</xsl:if>
</xsl:template>
<!-- ==========================================================================
== Ausgabe eines Legende/Wert-Paares
=========================================================================== -->
<xsl:template match="@*|*" mode="list-entry">
<xsl:param name="value"/>
<xsl:param name="field-mapping-identifier">
<xsl:value-of select="name()"/>
</xsl:param>
<xsl:if test="normalize-space(.)">
<xsl:variable name="field-mapping">
<xsl:call-template name="field-mapping">
<xsl:with-param name="identifier" select="$field-mapping-identifier"/>
</xsl:call-template>
</xsl:variable>
<fo:list-block margin-bottom="1mm"
provisional-distance-between-starts="{$wert-legende-breite}mm">
<fo:list-item>
<fo:list-item-label end-indent="label-end()">
<fo:block xsl:use-attribute-sets="wert-legende"><xsl:value-of select="$field-mapping/label"/>:</fo:block>
</fo:list-item-label>
<fo:list-item-body start-indent="body-start()">
<fo:block xsl:use-attribute-sets="wert-ausgabe">
<xsl:choose>
<xsl:when test="$value">
<xsl:copy-of select="$value"/>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="$field-mapping-identifier = 'xr:Payment_due_date'"><xsl:value-of select="format-date(xs:date(.), xrf:_('date-format'))"/></xsl:when>
<xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:list-item-body>
</fo:list-item>
</fo:list-block>
</xsl:if>
</xsl:template>
<xsl:template name="list-entry-bt-7">
<xsl:param name="value"/>
<xsl:param name="field-mapping-identifier">
<xsl:value-of select="name()"/>
</xsl:param>
<xsl:if test="normalize-space(.)">
<xsl:variable name="field-mapping">
<xsl:call-template name="field-mapping">
<xsl:with-param name="identifier" select="$field-mapping-identifier"/>
</xsl:call-template>
</xsl:variable>
<fo:list-block margin-bottom="1mm"
provisional-distance-between-starts="{$wert-legende-breite}mm">
<fo:list-item>
<fo:list-item-label end-indent="label-end()">
<fo:block xsl:use-attribute-sets="wert-legende"><xsl:value-of select="$field-mapping/label"/>:</fo:block>
</fo:list-item-label>
<fo:list-item-body start-indent="body-start()">
<fo:block xsl:use-attribute-sets="wert-ausgabe">
<xsl:choose>
<xsl:when test="$value">
<xsl:copy-of select="$value"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:list-item-body>
</fo:list-item>
</fo:list-block>
</xsl:if>
</xsl:template>
<!-- ==========================================================================
== Ausgabe einer Tabelle
=========================================================================== -->
<xsl:template name="value-list">
<xsl:param name="headingId"/>
<xsl:param name="headingValue"/>
<xsl:param name="content"/>
<xsl:if test="normalize-space($content)">
<xsl:variable name="boxContent">
<fo:table xsl:use-attribute-sets="box-container-inner" margin-left="2mm"
keep-together.within-column="always">
<fo:table-column column-number="1" column-width="68%"/>
<fo:table-column column-number="2" column-width="10%"/>
<fo:table-column column-number="3" column-width="22%"/>
<fo:table-header>
<fo:table-row><fo:table-cell><fo:block/></fo:table-cell></fo:table-row>
</fo:table-header>
<fo:table-body start-indent="0"
end-indent="0">
<xsl:copy-of select="$content"/>
</fo:table-body>
</fo:table>
</xsl:variable>
<xsl:choose>
<xsl:when test="$headingId">
<xsl:variable name="heading">
<xsl:call-template name="field-mapping">
<xsl:with-param name="identifier" select="$headingId"/>
</xsl:call-template>
</xsl:variable>
<fo:block margin-left="2mm" font-weight="bold"><fo:inline><xsl:value-of select="$heading/label"/>: </fo:inline><fo:inline><xsl:value-of select="$headingValue"/>
</fo:inline></fo:block>
<xsl:copy-of select="$boxContent"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="$boxContent"/>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<xsl:template match="*|@*" mode="value-list-entry">
<xsl:param name="value"/>
<xsl:param name="field-mapping-identifier">
<xsl:value-of select="name()"/>
</xsl:param>
<xsl:if test="normalize-space(.)">
<xsl:variable name="field-mapping">
<xsl:call-template name="field-mapping">
<xsl:with-param name="identifier" select="$field-mapping-identifier"/>
</xsl:call-template>
</xsl:variable>
<fo:table-row>
<fo:table-cell xsl:use-attribute-sets="rechnung-legende"><fo:block><xsl:value-of select="$field-mapping/label"/></fo:block></fo:table-cell>
<fo:table-cell xsl:use-attribute-sets="rechnung-steuer"><fo:block><xsl:value-of select="$field-mapping/art"/></fo:block></fo:table-cell>
<fo:table-cell xsl:use-attribute-sets="rechnung-wert">
<fo:block>
<xsl:choose>
<xsl:when test="$value">
<xsl:value-of select="$value"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:if>
</xsl:template>
<xsl:template match="*|@*" mode="sum-list-entry">
<xsl:param name="level"/>
<xsl:param name="value"/>
<xsl:param name="field-mapping-identifier">
<xsl:value-of select="name()"/>
</xsl:param>
<xsl:if test="normalize-space(.)">
<xsl:variable name="field-mapping">
<xsl:call-template name="field-mapping">
<xsl:with-param name="identifier" select="$field-mapping-identifier"/>
</xsl:call-template>
</xsl:variable>
<fo:table-row>
<xsl:choose>
<xsl:when test="$level='final'">
<fo:table-cell xsl:use-attribute-sets="rechnung-legende-summe" font-weight="bold"><fo:block><xsl:value-of select="$field-mapping/label"/></fo:block></fo:table-cell>
</xsl:when>
<xsl:otherwise>
<fo:table-cell xsl:use-attribute-sets="rechnung-legende-summe"><fo:block><xsl:value-of select="$field-mapping/label"/></fo:block></fo:table-cell>
</xsl:otherwise>
</xsl:choose>
<fo:table-cell xsl:use-attribute-sets="rechnung-steuer-summe"><fo:block><xsl:value-of select="$field-mapping/art"/></fo:block></fo:table-cell>
<fo:table-cell xsl:use-attribute-sets="rechnung-wert-summe">
<fo:block>
<xsl:choose>
<xsl:when test="$value">
<xsl:value-of select="$value"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:if>
</xsl:template>
<!-- ==========================================================================
== Ausgabe Resourcen / Links
=========================================================================== -->
<xsl:template match="*|@*" mode="internet-link">
<xsl:param name="title" select="." />
<xsl:if test="normalize-space(.)">
<xsl:value-of select="."/>
</xsl:if>
</xsl:template>
<xsl:template match="*|@*" mode="file-link">
<xsl:param name="title" select="'Öffnen'" />
<xsl:if test="normalize-space(.)">
<xsl:value-of select="."/>
</xsl:if>
</xsl:template>
<xsl:template match="*|@*" mode="binary">
<xsl:param name="identifier"/>
<fo:basic-link>
<xsl:attribute name="external-destination">url(embedded-file:<xsl:value-of select="encode-for-uri($identifier)"/>)</xsl:attribute>
<xsl:value-of select="$identifier"/>
</fo:basic-link>
</xsl:template>
<xsl:template match="*|@*" mode="binary-declaration">
<xsl:param name="identifier"/>
<pdf:embedded-file>
<xsl:attribute name="filename"><xsl:value-of select="$identifier"/></xsl:attribute>
<xsl:attribute name="src">data:application/pdf;base64,<xsl:value-of select="normalize-space(.)"/></xsl:attribute>
</pdf:embedded-file>
</xsl:template>
<!-- ==========================================================================
== Detailpositionenen
=========================================================================== -->
<xsl:template match="xr:INVOICE_LINE">
<xsl:variable name="identifier">
<xsl:choose>
<xsl:when test="$invoiceline-numbering = 'normal'">
<xsl:value-of select="xr:Invoice_line_identifier"/>
</xsl:when>
<xsl:otherwise>
<xsl:number format="{$invoiceline-numbering}"
level="multiple"
count="xr:INVOICE_LINE | xr:SUB_INVOICE_LINE"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="h2">
<xsl:with-param name="titel" select="$identifier"/>
</xsl:call-template>
<xsl:variable name="content">
<xsl:call-template name="detailsPosition"/>
</xsl:variable>
<xsl:for-each select="$content/*">
<xsl:copy-of select="."/>
</xsl:for-each>
<xsl:apply-templates select="xr:SUB_INVOICE_LINE"/>
<fo:block xsl:use-attribute-sets="box-container-bereich"/>
</xsl:template>
<xsl:template match="xr:SUB_INVOICE_LINE">
<xsl:variable name="identifier">
<xsl:choose>
<xsl:when test="$invoiceline-numbering = 'normal'">
<xsl:value-of select="xr:Invoice_line_identifier"/>
</xsl:when>
<xsl:otherwise>
<xsl:number format="{$invoiceline-numbering}"
level="multiple"
count="xr:INVOICE_LINE | xr:SUB_INVOICE_LINE"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="h2">
<xsl:with-param name="titel" select="$identifier"/>
</xsl:call-template>
<xsl:variable name="content">
<xsl:call-template name="detailsPosition"/>
</xsl:variable>
<xsl:for-each select="$content/*">
<xsl:copy-of select="."/>
</xsl:for-each>
<xsl:apply-templates select="xr:SUB_INVOICE_LINE"/>
<fo:block xsl:use-attribute-sets="box-container-bereich"/>
</xsl:template>
<!-- ==========================================================================
== Artikeleigenschaften
=========================================================================== -->
<xsl:template match="xr:ITEM_ATTRIBUTES">
<fo:block-container margin-bottom="1mm">
<fo:block-container margin="0mm">
<fo:table margin-bottom="1mm">
<fo:table-column>
<xsl:attribute name="column-width"><xsl:value-of select="$wert-legende-breite"/>mm</xsl:attribute>
</fo:table-column>
<fo:table-column column-width="{86 - $wert-legende-breite}mm"/>
<fo:table-header>
<fo:table-row><fo:table-cell><fo:block/></fo:table-cell></fo:table-row>
</fo:table-header>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:table width="100%">
<fo:table-header>
<fo:table-row><fo:table-cell><fo:block/></fo:table-cell></fo:table-row>
</fo:table-header>
<fo:table-body>
<fo:table-row>
<fo:table-cell xsl:use-attribute-sets="wert-legende">
<fo:block><xsl:value-of select="xr:Item_attribute_name"/>:</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:table-cell>
<fo:table-cell xsl:use-attribute-sets="wert-ausgabe">
<fo:block><xsl:value-of select="xr:Item_attribute_value"/></fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block-container>
</fo:block-container>
</xsl:template>
<!-- ==========================================================================
== Headlines
=========================================================================== -->
<xsl:template name="h1">
<xsl:param name="titel"/>
<!-- Markers are not working with flat blocks approach that must have been used to for two-column layout in FOP -->
<!--
<xsl:if test="not($axf.extensions)">
<fo:block>
<fo:marker marker-class-name="aktueller-bereich-forts"></fo:marker>
<fo:leader/>
</fo:block>
</xsl:if>
-->
<fo:block xsl:use-attribute-sets="h1">
<xsl:if test="$axf.extensions">
<xsl:attribute name="axf:suppress-if-first-on-page">true</xsl:attribute>
<xsl:attribute name="axf:pdftag">h1</xsl:attribute>
</xsl:if>
<!--
<fo:marker marker-class-name="aktueller-bereich-forts">
<fo:inline font-weight="bold"><xsl:value-of select="$titel"/></fo:inline>
<xsl:text> (Fortsetzung)</xsl:text>
</fo:marker>
-->
<xsl:value-of select="$titel"/>
</fo:block>
</xsl:template>
<xsl:template name="h2">
<xsl:param name="titel"/>
<fo:block xsl:use-attribute-sets="h2-container">
<xsl:if test="$axf.extensions">
<xsl:attribute name="axf:pdftag">h2</xsl:attribute>
</xsl:if>
<fo:inline xsl:use-attribute-sets="h2">
<xsl:value-of select="$titel"/>
</fo:inline>
</fo:block>
</xsl:template>
<xsl:template name="h3">
<xsl:param name="titel"/>
<fo:block xsl:use-attribute-sets="h3"><xsl:value-of select="$titel"/></fo:block>
</xsl:template>
<!-- ==========================================================================
== Invoice lines in tabular presentation
=========================================================================== -->
<xsl:template match="xr:INVOICE_LINE | xr:SUB_INVOICE_LINE" mode="invoiceline-tabular">
<!-- Process basic information -->
<fo:table-row xsl:use-attribute-sets="invoicelines-table-row">
<fo:table-cell>
<fo:block>
<xsl:choose>
<xsl:when test="$invoiceline-numbering = 'normal'">
<xsl:value-of select="xr:Invoice_line_identifier"/>
</xsl:when>
<xsl:otherwise>
<xsl:number format="{$invoiceline-numbering}"
level="multiple"
count="xr:INVOICE_LINE | xr:SUB_INVOICE_LINE"/>
</xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
<fo:table-cell padding-left="{count(ancestor-or-self::xr:SUB_INVOICE_LINE)}em">
<fo:block><xsl:value-of select="xr:ITEM_INFORMATION/xr:Item_name"/></fo:block>
</fo:table-cell>
<fo:table-cell text-align="center">
<fo:block>
<xsl:value-of select="xr:Invoiced_quantity"/>
<xsl:text> </xsl:text>
<xsl:value-of select="xr:Invoiced_quantity_unit_of_measure_code"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="right" padding-right="1em">
<fo:block><xsl:value-of select="format-number(xr:PRICE_DETAILS/xr:Item_net_price, $at-least-two-picture, $lang)"/></fo:block>
</fo:table-cell>
<fo:table-cell text-align="center">
<fo:block>
<xsl:value-of select="xr:PRICE_DETAILS/xr:Item_price_base_quantity"/>
<xsl:text> </xsl:text>
<xsl:value-of select="xr:PRICE_DETAILS/xr:Item_price_base_quantity_unit_of_measure"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="center">
<fo:block><xsl:value-of select="concat(format-number(xr:LINE_VAT_INFORMATION/xr:Invoiced_item_VAT_rate, $percentage-picture, $lang), '%')"/></fo:block>
</fo:table-cell>
<fo:table-cell text-align="center">
<fo:block><xsl:value-of select="xr:LINE_VAT_INFORMATION/xr:Invoiced_item_VAT_category_code"/></fo:block>
</fo:table-cell>
<fo:table-cell text-align="right">
<fo:block><xsl:value-of select="format-number(xr:Invoice_line_net_amount, $amount-picture, $lang)"/></fo:block>
</fo:table-cell>
</fo:table-row>
<xsl:if test="xr:ITEM_INFORMATION/xr:Item_description | xr:Invoice_line_note">
<fo:table-row xsl:use-attribute-sets="invoicelines-table-row">
<fo:table-cell>
<fo:block/>
</fo:table-cell>
<fo:table-cell padding-left="{count(ancestor-or-self::xr:SUB_INVOICE_LINE)}em" number-columns-spanned="6">
<xsl:for-each select="xr:ITEM_INFORMATION/xr:Item_description | xr:Invoice_line_note">
<fo:block>
<xsl:value-of select="."/>
</fo:block>
</xsl:for-each>
</fo:table-cell>
<fo:table-cell>
<fo:block/>
</fo:table-cell>
</fo:table-row>
</xsl:if>
<xsl:if test="xr:Referenced_purchase_order_line_reference | xr:Invoice_line_Buyer_accounting_reference">
<xsl:call-template name="invoiceline-tabular-2-col-info">
<xsl:with-param name="col1">
<xsl:if test="xr:Referenced_purchase_order_line_reference">
<xsl:value-of select="xrf:field-label('xr:Referenced_purchase_order_line_reference')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="xr:Referenced_purchase_order_line_reference"/>
</xsl:if>
</xsl:with-param>
<xsl:with-param name="col2">
<xsl:if test="xr:Invoice_line_Buyer_accounting_reference">
<xsl:value-of select="xrf:field-label('xr:Invoice_line_Buyer_accounting_reference')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="xr:Invoice_line_Buyer_accounting_reference"/>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="xr:Invoice_line_object_identifier">
<xsl:call-template name="invoiceline-tabular-2-col-info">
<xsl:with-param name="col1">
<xsl:value-of select="xrf:field-label('xr:Invoice_line_object_identifier')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="xr:Invoice_line_object_identifier"/>
</xsl:with-param>
<xsl:with-param name="col2">
<xsl:if test="xr:Invoice_line_object_identifier/@scheme_identifier">
<xsl:value-of select="xrf:field-label('xr:Invoice_line_object_identifier/@scheme_identifier')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="xr:Invoice_line_object_identifier/@scheme_identifier"/>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="xr:INVOICE_LINE_PERIOD">
<xsl:call-template name="invoiceline-tabular-2-col-info">
<xsl:with-param name="col1">
<xsl:if test="xr:INVOICE_LINE_PERIOD/xr:Invoice_line_period_start_date">
<xsl:value-of select="xrf:field-label('xr:Invoice_line_period_start_date')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="format-date(xr:INVOICE_LINE_PERIOD/xr:Invoice_line_period_start_date, xrf:_('date-format'))"/>
</xsl:if>
</xsl:with-param>
<xsl:with-param name="col2">
<xsl:if test="xr:INVOICE_LINE_PERIOD/xr:Invoice_line_period_end_date">
<xsl:value-of select="xrf:field-label('xr:Invoice_line_period_end_date')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="format-date(xr:INVOICE_LINE_PERIOD/xr:Invoice_line_period_end_date, xrf:_('date-format'))"/>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="xr:PRICE_DETAILS/xr:Item_price_discount | xr:PRICE_DETAILS/xr:Item_gross_price">
<xsl:call-template name="invoiceline-tabular-2-col-info">
<xsl:with-param name="col1">
<xsl:if test="xr:PRICE_DETAILS/xr:Item_price_discount">
<xsl:value-of select="xrf:field-label('xr:Item_price_discount')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="format-number(xr:PRICE_DETAILS/xr:Item_price_discount, $at-least-two-picture, $lang)"/>
</xsl:if>
</xsl:with-param>
<xsl:with-param name="col2">
<xsl:if test="xr:PRICE_DETAILS/xr:Item_gross_price">
<xsl:value-of select="xrf:field-label('xr:Item_gross_price')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="format-number(xr:PRICE_DETAILS/xr:Item_gross_price, $at-least-two-picture, $lang)"/>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="xr:ITEM_INFORMATION/xr:Item_Sellers_identifier | xr:ITEM_INFORMATION/xr:Item_Buyers_identifier">
<xsl:call-template name="invoiceline-tabular-2-col-info">
<xsl:with-param name="col1">
<xsl:if test="xr:ITEM_INFORMATION/xr:Item_Sellers_identifier">
<xsl:value-of select="xrf:field-label('xr:Item_Sellers_identifier')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="xr:ITEM_INFORMATION/xr:Item_Sellers_identifier"/>
</xsl:if>
</xsl:with-param>
<xsl:with-param name="col2">
<xsl:if test="xr:ITEM_INFORMATION/xr:Item_Buyers_identifier">
<xsl:value-of select="xrf:field-label('xr:Item_Buyers_identifier')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="xr:ITEM_INFORMATION/xr:Item_Buyers_identifier"/>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="xr:ITEM_INFORMATION/xr:Item_standard_identifier">
<xsl:call-template name="invoiceline-tabular-2-col-info">
<xsl:with-param name="col1">
<xsl:value-of select="xrf:field-label('xr:Item_standard_identifier')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="xr:ITEM_INFORMATION/xr:Item_standard_identifier"/>
</xsl:with-param>
<xsl:with-param name="col2">
<xsl:if test="xr:ITEM_INFORMATION/xr:Item_standard_identifier/@scheme_identifier">
<xsl:value-of select="xrf:field-label('xr:Item_standard_identifier/@scheme_identifier')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="xr:ITEM_INFORMATION/xr:Item_standard_identifier/@scheme_identifier"/>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="xr:ITEM_INFORMATION/xr:Item_country_of_origin">
<xsl:call-template name="invoiceline-tabular-2-col-info">
<xsl:with-param name="col1">
<xsl:value-of select="xrf:field-label('xr:Item_country_of_origin')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="xr:ITEM_INFORMATION/xr:Item_country_of_origin"/>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="xr:ITEM_INFORMATION/xr:Item_classification_identifier">
<xsl:call-template name="invoiceline-tabular-2-col-info">
<xsl:with-param name="col1">
<xsl:value-of select="xrf:field-label('xr:Item_classification_identifier')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="."/>
</xsl:with-param>
<xsl:with-param name="col2">
<xsl:if test="@scheme_identifier">
<xsl:value-of select="xrf:field-label('xr:Item_classification_identifier/@scheme_identifier')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="@scheme_identifier"/>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="invoiceline-tabular-2-col-info">
<xsl:with-param name="col2">
<xsl:if test="@scheme_version_identifier">
<xsl:value-of select="xrf:field-label('xr:Item_classification_identifier/@scheme_version_identifier')"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="@scheme_version_identifier"/>
</xsl:if>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
<xsl:for-each select="xr:ITEM_INFORMATION/xr:ITEM_ATTRIBUTES">
<xsl:call-template name="invoiceline-tabular-2-col-info">
<xsl:with-param name="col1">
<xsl:value-of select="xr:Item_attribute_name"/>
<xsl:text>: </xsl:text>
<xsl:value-of select="xr:Item_attribute_value"/>
</xsl:with-param>
</xsl:call-template>
</xsl:for-each>
<xsl:if test="xr:INVOICE_LINE_ALLOWANCES">
<fo:table-row xsl:use-attribute-sets="invoicelines-table-row">
<fo:table-cell>
<fo:block/>
</fo:table-cell>
<fo:table-cell padding-left="{count(ancestor-or-self::xr:SUB_INVOICE_LINE)}em" number-columns-spanned="6">
<fo:table xsl:use-attribute-sets="invoicelines-allowances-table">
<fo:table-column column-width="proportional-column-width(6)"/>
<fo:table-column column-width="proportional-column-width(1)"/>
<fo:table-column column-width="proportional-column-width(2)"/>
<fo:table-column column-width="proportional-column-width(1)"/>
<fo:table-column column-width="proportional-column-width(2)"/>
<fo:table-header xsl:use-attribute-sets="invoicelines-table-header">
<fo:table-row>
<fo:table-cell>
<fo:block>
<xsl:value-of select="xrf:field-label('xr:Invoice_line_allowance_reason')"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>
<!-- Standard full description is too long -->
<!--<xsl:value-of select="xrf:field-label('xr:Invoice_line_allowance_reason_code')"/>-->
Code
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="right" padding-right="1em">
<fo:block>
<xsl:value-of select="xrf:field-label('xr:Invoice_line_allowance_base_amount')"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="center">
<fo:block>
<xsl:value-of select="xrf:field-label('xr:Invoice_line_allowance_percentage')"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="right">
<fo:block>
<xsl:value-of select="xrf:field-label('xr:Invoice_line_allowance_amount')"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-header>
<fo:table-body>
<xsl:for-each select="xr:INVOICE_LINE_ALLOWANCES">
<fo:table-row>
<fo:table-cell>
<fo:block>
<xsl:value-of select="xr:Invoice_line_allowance_reason"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>
<xsl:value-of select="xr:Invoice_line_allowance_reason_code"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="right" padding-right="1em">
<fo:block>
<xsl:value-of select="xr:Invoice_line_allowance_base_amount"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="center">
<fo:block>
<xsl:value-of select="concat(format-number(xr:Invoice_line_allowance_percentage, $percentage-picture, $lang), '%')"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="right">
<fo:block>
<xsl:value-of select="xr:Invoice_line_allowance_amount"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
</fo:table-cell>
<fo:table-cell>
<fo:block/>
</fo:table-cell>
</fo:table-row>
</xsl:if>
<xsl:if test="xr:INVOICE_LINE_CHARGES">
<fo:table-row xsl:use-attribute-sets="invoicelines-table-row">
<fo:table-cell>
<fo:block/>
</fo:table-cell>
<fo:table-cell padding-left="{count(ancestor-or-self::xr:SUB_INVOICE_LINE)}em" number-columns-spanned="6">
<fo:table xsl:use-attribute-sets="invoicelines-allowances-table">
<fo:table-column column-width="proportional-column-width(6)"/>
<fo:table-column column-width="proportional-column-width(1)"/>
<fo:table-column column-width="proportional-column-width(2)"/>
<fo:table-column column-width="proportional-column-width(1)"/>
<fo:table-column column-width="proportional-column-width(2)"/>
<fo:table-header xsl:use-attribute-sets="invoicelines-table-header">
<fo:table-row>
<fo:table-cell>
<fo:block>
<xsl:value-of select="xrf:field-label('xr:Invoice_line_charge_reason')"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>
<!-- Standard full description is too long -->
<!--<xsl:value-of select="xrf:field-label('xr:Invoice_line_charge_reason_code')"/>-->
Code
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="right" padding-right="1em">
<fo:block>
<xsl:value-of select="xrf:field-label('xr:Invoice_line_charge_base_amount')"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="center">
<fo:block>
<xsl:value-of select="xrf:field-label('xr:Invoice_line_charge_percentage')"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="right">
<fo:block>
<xsl:value-of select="xrf:field-label('xr:Invoice_line_charge_amount')"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-header>
<fo:table-body>
<xsl:for-each select="xr:INVOICE_LINE_CHARGES">
<fo:table-row>
<fo:table-cell>
<fo:block>
<xsl:value-of select="xr:Invoice_line_charge_reason"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>
<xsl:value-of select="xr:Invoice_line_charge_reason_code"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="right" padding-right="1em">
<fo:block>
<xsl:value-of select="xr:Invoice_line_charge_base_amount"/>
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="center">
<fo:block>
<xsl:value-of select="concat(format-number(xr:Invoice_line_charge_percentage, $percentage-picture, $lang), '%')" />
</fo:block>
</fo:table-cell>
<fo:table-cell text-align="right">
<fo:block>
<xsl:value-of select="xr:Invoice_line_charge_amount"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
</fo:table-cell>
<fo:table-cell>
<fo:block/>
</fo:table-cell>
</fo:table-row>
</xsl:if>
<xsl:apply-templates select="xr:SUB_INVOICE_LINE" mode="invoiceline-tabular"/>
</xsl:template>
<xsl:template name="invoiceline-tabular-2-col-info">
<xsl:param name="col1"/>
<xsl:param name="col2"/>
<fo:table-row xsl:use-attribute-sets="invoicelines-nested-info">
<fo:table-cell>
<fo:block/>
</fo:table-cell>
<fo:table-cell padding-left="{count(ancestor-or-self::xr:SUB_INVOICE_LINE)}em" number-columns-spanned="6">
<fo:list-block>
<fo:list-item provisional-distance-between-starts="50%">
<fo:list-item-label end-indent="label-end()">
<fo:block>
<xsl:copy-of select="$col1"/>
</fo:block>
</fo:list-item-label>
<fo:list-item-body start-indent="body-start()">
<fo:block>
<xsl:copy-of select="$col2"/>
</fo:block>
</fo:list-item-body>
</fo:list-item>
</fo:list-block>
</fo:table-cell>
<fo:table-cell>
<fo:block/>
</fo:table-cell>
</fo:table-row>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
xmlns:xr="urn:ce.eu:en16931:2017:xoev-de:kosit:standard:xrechnung-1"
version="2.0">
<xsl:template name="generiere-layout-master-set">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4Hoch"
page-height="297mm"
page-width="210mm">
<fo:region-body region-name="xrBody"
margin="20mm 10mm 20mm 20mm"
column-count="2"
column-gap="8mm"/>
<fo:region-before region-name="header"
extent="20mm"/>
<fo:region-after region-name="footer"
extent="20mm"/>
<fo:region-start region-name="innen"
extent="20mm"/>
<fo:region-end region-name="aussen"
extent="10mm"/>
</fo:simple-page-master>
<fo:page-sequence-master master-name="xrDokument">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="A4Hoch" />
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</fo:layout-master-set>
</xsl:template>
</xsl:stylesheet>

View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
xmlns:xr="urn:ce.eu:en16931:2017:xoev-de:kosit:standard:xrechnung-1"
xmlns:xrf="https://projekte.kosit.org/xrechnung/xrechnung-visualization/functions"
version="2.0">
<xsl:template name="generiere-page-sequence">
<xsl:param name="body-content-flow" required="yes" as="node()"/>
<fo:page-sequence master-reference="xrDokument">
<!-- Header -->
<fo:static-content flow-name="header">
<fo:block-container height="10mm"
display-align="after">
<fo:block>
<fo:table width="100%"
font-family="{$fontSans}"
font-size="9pt">
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block font-weight="bold">
<xsl:value-of select="xrf:_('_no-content')"/>
</fo:block>
</fo:table-cell>
<fo:table-cell white-space="nowrap"
text-align="end">
<fo:block>
<xsl:value-of select="./xr:SELLER/xr:Seller_VAT_identifier"/>/<xsl:value-of select="xr:Invoice_number"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>
</fo:block-container>
<fo:block-container height="17mm"
display-align="after">
<fo:block xsl:use-attribute-sets="marker">
<fo:inline>
<fo:retrieve-marker retrieve-class-name="aktueller-bereich-forts"
retrieve-position="first-including-carryover"/>
</fo:inline>
</fo:block>
</fo:block-container>
</fo:static-content>
<!-- Footer -->
<fo:static-content flow-name="footer">
<fo:block-container height="12mm"
display-align="after">
<fo:block font-family="{$fontSans}"
font-size="9pt"
text-align="center">
<fo:block><xsl:value-of select="xrf:_('_page')"/><xsl:text> </xsl:text><fo:page-number/> / <fo:page-number-citation ref-id="seitenzahlLetzteSeite"/></fo:block>
</fo:block>
</fo:block-container>
</fo:static-content>
<!-- Content -->
<xsl:copy-of select="$body-content-flow"/>
</fo:page-sequence>
</xsl:template>
</xsl:stylesheet>