mirror of
https://github.com/itplr-kosit/validator.git
synced 2026-05-26 01:05:38 +00:00
transformed
This commit is contained in:
parent
8a968cd73c
commit
b6ff9d0b28
41 changed files with 21560 additions and 0 deletions
188
visualization/xsl/FileSaver-v2.0.5.js
Normal file
188
visualization/xsl/FileSaver-v2.0.5.js
Normal file
|
|
@ -0,0 +1,188 @@
|
|||
(function (global, factory) {
|
||||
if (typeof define === "function" && define.amd) {
|
||||
define([], factory);
|
||||
} else if (typeof exports !== "undefined") {
|
||||
factory();
|
||||
} else {
|
||||
var mod = {
|
||||
exports: {}
|
||||
};
|
||||
factory();
|
||||
global.FileSaver = mod.exports;
|
||||
}
|
||||
})(this, function () {
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
* FileSaver.js
|
||||
* A saveAs() FileSaver implementation.
|
||||
*
|
||||
* By Eli Grey, http://eligrey.com
|
||||
*
|
||||
* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)
|
||||
* source : http://purl.eligrey.com/github/FileSaver.js
|
||||
*/
|
||||
// The one and only way of getting global scope in all environments
|
||||
// https://stackoverflow.com/q/3277182/1008999
|
||||
var _global = typeof window === 'object' && window.window === window ? window : typeof self === 'object' && self.self === self ? self : typeof global === 'object' && global.global === global ? global : void 0;
|
||||
|
||||
function bom(blob, opts) {
|
||||
if (typeof opts === 'undefined') opts = {
|
||||
autoBom: false
|
||||
};else if (typeof opts !== 'object') {
|
||||
console.warn('Deprecated: Expected third argument to be a object');
|
||||
opts = {
|
||||
autoBom: !opts
|
||||
};
|
||||
} // prepend BOM for UTF-8 XML and text/* types (including HTML)
|
||||
// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
|
||||
|
||||
if (opts.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
|
||||
return new Blob([String.fromCharCode(0xFEFF), blob], {
|
||||
type: blob.type
|
||||
});
|
||||
}
|
||||
|
||||
return blob;
|
||||
}
|
||||
|
||||
function download(url, name, opts) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', url);
|
||||
xhr.responseType = 'blob';
|
||||
|
||||
xhr.onload = function () {
|
||||
saveAs(xhr.response, name, opts);
|
||||
};
|
||||
|
||||
xhr.onerror = function () {
|
||||
console.error('could not download file');
|
||||
};
|
||||
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
function corsEnabled(url) {
|
||||
var xhr = new XMLHttpRequest(); // use sync to avoid popup blocker
|
||||
|
||||
xhr.open('HEAD', url, false);
|
||||
|
||||
try {
|
||||
xhr.send();
|
||||
} catch (e) {}
|
||||
|
||||
return xhr.status >= 200 && xhr.status <= 299;
|
||||
} // `a.click()` doesn't work for all browsers (#465)
|
||||
|
||||
|
||||
function click(node) {
|
||||
try {
|
||||
node.dispatchEvent(new MouseEvent('click'));
|
||||
} catch (e) {
|
||||
var evt = document.createEvent('MouseEvents');
|
||||
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);
|
||||
node.dispatchEvent(evt);
|
||||
}
|
||||
} // Detect WebView inside a native macOS app by ruling out all browsers
|
||||
// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too
|
||||
// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos
|
||||
|
||||
|
||||
var isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent);
|
||||
var saveAs = _global.saveAs || ( // probably in some web worker
|
||||
typeof window !== 'object' || window !== _global ? function saveAs() {}
|
||||
/* noop */
|
||||
// Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView
|
||||
: 'download' in HTMLAnchorElement.prototype && !isMacOSWebView ? function saveAs(blob, name, opts) {
|
||||
var URL = _global.URL || _global.webkitURL;
|
||||
var a = document.createElement('a');
|
||||
name = name || blob.name || 'download';
|
||||
a.download = name;
|
||||
a.rel = 'noopener'; // tabnabbing
|
||||
// TODO: detect chrome extensions & packaged apps
|
||||
// a.target = '_blank'
|
||||
|
||||
if (typeof blob === 'string') {
|
||||
// Support regular links
|
||||
a.href = blob;
|
||||
|
||||
if (a.origin !== location.origin) {
|
||||
corsEnabled(a.href) ? download(blob, name, opts) : click(a, a.target = '_blank');
|
||||
} else {
|
||||
click(a);
|
||||
}
|
||||
} else {
|
||||
// Support blobs
|
||||
a.href = URL.createObjectURL(blob);
|
||||
setTimeout(function () {
|
||||
URL.revokeObjectURL(a.href);
|
||||
}, 4E4); // 40s
|
||||
|
||||
setTimeout(function () {
|
||||
click(a);
|
||||
}, 0);
|
||||
}
|
||||
} // Use msSaveOrOpenBlob as a second approach
|
||||
: 'msSaveOrOpenBlob' in navigator ? function saveAs(blob, name, opts) {
|
||||
name = name || blob.name || 'download';
|
||||
|
||||
if (typeof blob === 'string') {
|
||||
if (corsEnabled(blob)) {
|
||||
download(blob, name, opts);
|
||||
} else {
|
||||
var a = document.createElement('a');
|
||||
a.href = blob;
|
||||
a.target = '_blank';
|
||||
setTimeout(function () {
|
||||
click(a);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
navigator.msSaveOrOpenBlob(bom(blob, opts), name);
|
||||
}
|
||||
} // Fallback to using FileReader and a popup
|
||||
: function saveAs(blob, name, opts, popup) {
|
||||
// Open a popup immediately do go around popup blocker
|
||||
// Mostly only available on user interaction and the fileReader is async so...
|
||||
popup = popup || open('', '_blank');
|
||||
|
||||
if (popup) {
|
||||
popup.document.title = popup.document.body.innerText = 'downloading...';
|
||||
}
|
||||
|
||||
if (typeof blob === 'string') return download(blob, name, opts);
|
||||
var force = blob.type === 'application/octet-stream';
|
||||
|
||||
var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari;
|
||||
|
||||
var isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent);
|
||||
|
||||
if ((isChromeIOS || force && isSafari || isMacOSWebView) && typeof FileReader !== 'undefined') {
|
||||
// Safari doesn't allow downloading of blob URLs
|
||||
var reader = new FileReader();
|
||||
|
||||
reader.onloadend = function () {
|
||||
var url = reader.result;
|
||||
url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;');
|
||||
if (popup) popup.location.href = url;else location = url;
|
||||
popup = null; // reverse-tabnabbing #460
|
||||
};
|
||||
|
||||
reader.readAsDataURL(blob);
|
||||
} else {
|
||||
var URL = _global.URL || _global.webkitURL;
|
||||
var url = URL.createObjectURL(blob);
|
||||
if (popup) popup.location = url;else location.href = url;
|
||||
popup = null; // reverse-tabnabbing #460
|
||||
|
||||
setTimeout(function () {
|
||||
URL.revokeObjectURL(url);
|
||||
}, 4E4); // 40s
|
||||
}
|
||||
});
|
||||
_global.saveAs = saveAs.saveAs = saveAs;
|
||||
|
||||
if (typeof module !== 'undefined') {
|
||||
module.exports = saveAs;
|
||||
}
|
||||
});
|
||||
2150
visualization/xsl/cii-xr.xsl
Normal file
2150
visualization/xsl/cii-xr.xsl
Normal file
File diff suppressed because it is too large
Load diff
139
visualization/xsl/common-xr.xsl
Normal file
139
visualization/xsl/common-xr.xsl
Normal 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) > 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) > 0 and xs:integer($monthstring) < 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) > 0 and xs:integer($daystring) < 32) then
|
||||
xs:integer($daystring)
|
||||
else
|
||||
0" />
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:choose>
|
||||
<xsl:when test="$year > 0 and $month > 0 and $day > 0">
|
||||
<xsl:value-of
|
||||
select="xs:date(concat(format-number($year,'0000'), '-', 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>
|
||||
151
visualization/xsl/functions.xsl
Normal file
151
visualization/xsl/functions.xsl
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
<?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>
|
||||
|
||||
<!-- auxiliary function to insert a line break in extension specification identifier -->
|
||||
<xsl:function name="xrf:handle-specification-identifier" as="xs:string">
|
||||
<xsl:param name="specification-identifier"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="matches($specification-identifier, 'xrechnung_[0-9]\.[0-9]#conformant')">
|
||||
<xsl:value-of select="replace($specification-identifier, '(xrechnung_[0-9]\.[0-9])(#conformant)', '$1 $2')"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$specification-identifier"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:function>
|
||||
|
||||
</xsl:stylesheet>
|
||||
259
visualization/xsl/l10n/de.xml
Normal file
259
visualization/xsl/l10n/de.xml
Normal file
|
|
@ -0,0 +1,259 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<properties>
|
||||
<entry key="xr:Buyer_reference" id="BT-10">Käuferreferenz</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="artikelklassifizierung">Artikelklassifizierung</entry>
|
||||
<entry key="date-format">[D].[M].[Y,4]</entry>
|
||||
<entry key="datetime-format">[D].[M].[Y,4] [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">Summe Fremdforderungen</entry>
|
||||
|
||||
<entry key="no-script">Inhalte auf dieser Seite sind ohne JavaScript nur eingeschränkt darstellbar.</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>
|
||||
257
visualization/xsl/l10n/en.xml
Normal file
257
visualization/xsl/l10n/en.xml
Normal file
|
|
@ -0,0 +1,257 @@
|
|||
<?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="artikelklassifizierung">Item classification</entry>
|
||||
<entry key="date-format">[Y,4]-[M,2]-[D,2]</entry>
|
||||
<entry key="datetime-format">[Y,4]-[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">Third party payment total</entry>
|
||||
|
||||
<entry key="no-script">The display of content on this page is limited without JavaScript.</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>
|
||||
36
visualization/xsl/normalization.xsl
Normal file
36
visualization/xsl/normalization.xsl
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<?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:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
|
||||
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
|
||||
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||
xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
|
||||
xmlns:cn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
exclude-result-prefixes="xs xsi"
|
||||
version="2.0">
|
||||
|
||||
<xsl:param name="xr-version"/>
|
||||
|
||||
<xsl:template match="@* | node()">
|
||||
<xsl:copy>
|
||||
<xsl:apply-templates select="@* | node()"></xsl:apply-templates>
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<!-- update XRechnung Version -->
|
||||
<!-- CII -->
|
||||
<xsl:template match="/*:CrossIndustryInvoice/*:ExchangedDocumentContext/*:GuidelineSpecifiedDocumentContextParameter/*:ID/text()">
|
||||
<xsl:value-of select='replace(., "_\d\.\d", $xr-version)'/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- UBL Invoice and CreditNote-->
|
||||
<xsl:template match="/*:Invoice/*:CustomizationID/text() | /*:CreditNote/*:CustomizationID/text()">
|
||||
<xsl:value-of select='replace(., "_\d\.\d", $xr-version)'/>
|
||||
</xsl:template>
|
||||
|
||||
<!-- remove xsi schemaLocation -->
|
||||
|
||||
<xsl:template match="@*:schemaLocation"></xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
2107
visualization/xsl/ubl-creditnote-xr.xsl
Normal file
2107
visualization/xsl/ubl-creditnote-xr.xsl
Normal file
File diff suppressed because it is too large
Load diff
2114
visualization/xsl/ubl-invoice-xr.xsl
Normal file
2114
visualization/xsl/ubl-invoice-xr.xsl
Normal file
File diff suppressed because it is too large
Load diff
939
visualization/xsl/xr-content.xsl
Normal file
939
visualization/xsl/xr-content.xsl
Normal file
|
|
@ -0,0 +1,939 @@
|
|||
<?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:if test="not(xr:VAT_category_code = ('S', 'Z', 'IGIC', 'IPSI' ))">
|
||||
<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:if>
|
||||
</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="spanned-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:with-param name="value" select="xrf:handle-specification-identifier(xr:PROCESS_CONTROL/xr:Specification_identifier)"></xsl:with-param>
|
||||
</xsl:apply-templates>
|
||||
<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>
|
||||
103
visualization/xsl/xr-pdf.xsl
Normal file
103
visualization/xsl/xr-pdf.xsl
Normal 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>
|
||||
235
visualization/xsl/xr-pdf/lib/konstanten.xsl
Normal file
235
visualization/xsl/xr-pdf/lib/konstanten.xsl
Normal 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">30</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>
|
||||
972
visualization/xsl/xr-pdf/lib/structure/content-templates.xsl
Normal file
972
visualization/xsl/xr-pdf/lib/structure/content-templates.xsl
Normal 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-ausgabe">
|
||||
<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>
|
||||
39
visualization/xsl/xr-pdf/lib/structure/layout-master-set.xsl
Normal file
39
visualization/xsl/xr-pdf/lib/structure/layout-master-set.xsl
Normal 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>
|
||||
68
visualization/xsl/xr-pdf/lib/structure/page-sequence.xsl
Normal file
68
visualization/xsl/xr-pdf/lib/structure/page-sequence.xsl
Normal 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>
|
||||
2259
visualization/xsl/xrechnung-html.xsl
Normal file
2259
visualization/xsl/xrechnung-html.xsl
Normal file
File diff suppressed because it is too large
Load diff
932
visualization/xsl/xrechnung-viewer.css
Normal file
932
visualization/xsl/xrechnung-viewer.css
Normal file
|
|
@ -0,0 +1,932 @@
|
|||
/* Grundformatierung ********************************************/
|
||||
|
||||
*,
|
||||
*:after,
|
||||
*:before
|
||||
{
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
}
|
||||
|
||||
.clear:after
|
||||
{
|
||||
content: ".";
|
||||
clear: both;
|
||||
display: block;
|
||||
visibility: hidden;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
html,
|
||||
body
|
||||
{
|
||||
height: 100%;
|
||||
min-width: 320px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #000;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
overflow-y: scroll;
|
||||
background-color: rgba(4, 101, 161, 0.08);
|
||||
}
|
||||
|
||||
h4
|
||||
{
|
||||
color: inherit;
|
||||
font-size: inherit;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
|
||||
/* Grundaufbau *************************************************/
|
||||
|
||||
.menue
|
||||
{
|
||||
position: relative;
|
||||
z-index: 2000;
|
||||
background-color: #000;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.innen
|
||||
{
|
||||
max-width: 1080px;
|
||||
margin: 0 auto;
|
||||
padding: 0 2%;
|
||||
}
|
||||
|
||||
.menue .innen div {
|
||||
display: inline-block;
|
||||
margin: 0 16px;
|
||||
}
|
||||
|
||||
|
||||
/* Formatierungen *************************************************/
|
||||
|
||||
.color2
|
||||
{
|
||||
color: rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.schwarz
|
||||
{
|
||||
color: #555 !important;
|
||||
}
|
||||
|
||||
.normal
|
||||
{
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.bold
|
||||
{
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.abstandUnten
|
||||
{
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.abstandUntenKlein
|
||||
{
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.noPaddingTop
|
||||
{
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
.ausrichtungRechts
|
||||
{
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* Menü ********************************************************/
|
||||
|
||||
button
|
||||
{
|
||||
position: relative;
|
||||
font-family: serif;
|
||||
padding-top: 15px;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
margin-right: 2%;
|
||||
}
|
||||
|
||||
.btnAktiv
|
||||
{
|
||||
font-size: 22px;
|
||||
color: #ffb619;
|
||||
height: 50px;
|
||||
outline: none;
|
||||
border: none;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.btnAktiv:after
|
||||
{
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
left: 50%;
|
||||
z-index: 10;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
height: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
transform: translateX(-50%);
|
||||
border: 15px solid #000;
|
||||
border-right-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
border-left-color: transparent;
|
||||
}
|
||||
|
||||
.btnInaktiv,
|
||||
.tab
|
||||
{
|
||||
font-size: 22px;
|
||||
color: #fff;
|
||||
height: 50px;
|
||||
z-index: 0;
|
||||
outline: none;
|
||||
border: none;
|
||||
background: none;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
.btnInaktiv:hover,
|
||||
.tab:hover
|
||||
{
|
||||
color: #ffb619;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.divHide
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Content *********************************************************************/
|
||||
|
||||
.inhalt
|
||||
{
|
||||
font-family: sans-serif;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.noscript
|
||||
{
|
||||
color: #000;
|
||||
text-align: center;
|
||||
padding: 20px;
|
||||
margin-bottom: 30px;
|
||||
width: 100%;
|
||||
border: 1px solid #ff6347;
|
||||
background-color: #ffd5ce;
|
||||
}
|
||||
|
||||
.haftungausschluss
|
||||
{
|
||||
color: #000;
|
||||
text-align: center;
|
||||
padding: 7px;
|
||||
margin-bottom: 30px;
|
||||
width: 100%;
|
||||
border: 1px solid #ffb619;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.box
|
||||
{
|
||||
position: relative;
|
||||
display: table-cell;
|
||||
padding: 0;
|
||||
border: 1px solid rgba(4, 101, 161, 0.2);
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.subBox
|
||||
{
|
||||
border-top: none;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.subBox:last-child
|
||||
{
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.first > .boxzeile > .subBox
|
||||
{
|
||||
border-top: 1px solid rgba(4, 101, 161, 0.2) !important;
|
||||
}
|
||||
|
||||
.boxtitel
|
||||
{
|
||||
display: inline-block;
|
||||
background-color: #0465A1;
|
||||
padding: 7px 10px;
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.boxBorderTop
|
||||
{
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.boxBorderLeft
|
||||
{
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.boxtitelSub
|
||||
{
|
||||
color: #000;
|
||||
background-color: rgba(4, 101, 161, 0.1);
|
||||
border-right: 1px solid rgba(4, 101, 161, 0.2);
|
||||
border-bottom: 1px solid rgba(4, 101, 161, 0.2);
|
||||
}
|
||||
|
||||
.boxinhalt
|
||||
{
|
||||
padding: 15px 20px;
|
||||
}
|
||||
|
||||
.boxtabelle
|
||||
{
|
||||
display: table;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.borderSpacing
|
||||
{
|
||||
border-spacing: 0 5px;
|
||||
}
|
||||
|
||||
.boxabstandtop
|
||||
{
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.boxzeile
|
||||
{
|
||||
display: table-row;
|
||||
}
|
||||
|
||||
.boxzeile .box:last-child
|
||||
{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.boxdaten
|
||||
{
|
||||
display: table-cell;
|
||||
padding: 5px 0;
|
||||
vertical-align: middle;
|
||||
height: 38px;
|
||||
/*
|
||||
-ms-word-break: break-all;
|
||||
word-break: break-all;
|
||||
word-break: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
-moz-hyphens: auto;
|
||||
hyphens: auto;
|
||||
*/
|
||||
}
|
||||
|
||||
.boxdaten.wert
|
||||
{
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.boxcell
|
||||
{
|
||||
display: table-cell;
|
||||
}
|
||||
|
||||
.boxdatenBlock
|
||||
{
|
||||
display: block;
|
||||
padding: 3px 0;
|
||||
/*
|
||||
-ms-word-break: break-all;
|
||||
word-break: break-all;
|
||||
word-break: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
-moz-hyphens: auto;
|
||||
hyphens: auto;
|
||||
*/
|
||||
}
|
||||
|
||||
.noBreak
|
||||
{
|
||||
-ms-word-break: keep-all;
|
||||
word-break: keep-all;
|
||||
word-break: keep-all;
|
||||
-webkit-hyphens: none;
|
||||
-moz-hyphens: none;
|
||||
hyphens: none;
|
||||
}
|
||||
|
||||
.boxabstand
|
||||
{
|
||||
display: table-cell;
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
.legende
|
||||
{
|
||||
color: rgba(0, 0, 0, 0.6);
|
||||
width: 170px;
|
||||
font-size: 13px;
|
||||
line-height: 16px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.wert
|
||||
{
|
||||
background-color: rgba(4, 101, 161, 0.03);
|
||||
}
|
||||
|
||||
.boxtabelleEinspaltig
|
||||
{
|
||||
width: 49%;
|
||||
}
|
||||
|
||||
.boxtabelleZweispaltig,
|
||||
.boxtabelleDreispaltig
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.box5050
|
||||
{
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.boxEinspaltig
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.boxZweispaltig
|
||||
{
|
||||
width: 48.5%;
|
||||
}
|
||||
|
||||
.boxSpalte1 {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.boxSpalte2 {
|
||||
width: 50%;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.paddingLeft {
|
||||
padding-left: 0.1em;
|
||||
}
|
||||
|
||||
.noPadding {
|
||||
padding-top: 0 !important;
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.rechnungsZeile
|
||||
{
|
||||
display: table-row;
|
||||
}
|
||||
|
||||
.rechnungsZeile .boxdaten
|
||||
{
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.rechnungSp1
|
||||
{
|
||||
width: 65%;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.rechnungSp2
|
||||
{
|
||||
width: 10%;
|
||||
}
|
||||
|
||||
.rechnungSp3
|
||||
{
|
||||
width: 25%;
|
||||
font-size: 16px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.detailSp1,
|
||||
.detailSp2
|
||||
{
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.detailSp2
|
||||
{
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.line1Bottom
|
||||
{
|
||||
border-bottom: 1px solid #000;
|
||||
}
|
||||
|
||||
.line1BottomLight
|
||||
{
|
||||
padding-bottom: 5px;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.line2Bottom
|
||||
{
|
||||
border-bottom: 2px solid #000;
|
||||
}
|
||||
|
||||
.paddingTop
|
||||
{
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.paddingBottom
|
||||
{
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.grund
|
||||
{
|
||||
font-size: 16px;
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 0 20px 15px 20px;
|
||||
}
|
||||
|
||||
.grundDetail
|
||||
{
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 0 20px 15px 20px;
|
||||
}
|
||||
|
||||
/* Übersichtformatierungen */
|
||||
#uebersichtLastschrift.box,
|
||||
#uebersichtUeberweisung.box
|
||||
{
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
#uebersichtUeberweisung.box
|
||||
{
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
|
||||
/* Formatierungen Detailseite */
|
||||
|
||||
.detailsSpalte1,
|
||||
.detailsSpalte2
|
||||
{
|
||||
width: 30%;
|
||||
float: left;
|
||||
font-size: 90%;
|
||||
line-height: 115%;
|
||||
margin-right: 5%;
|
||||
}
|
||||
|
||||
.detailsSpalte3
|
||||
{
|
||||
width: 30%;
|
||||
float: left;
|
||||
font-size: 90%;
|
||||
line-height: 115%;
|
||||
}
|
||||
|
||||
.detailsSpalte1 .legende,
|
||||
.detailsSpalte2 .legende,
|
||||
.detailsSpalte3 .legende
|
||||
{
|
||||
width: 145px;
|
||||
}
|
||||
|
||||
.titelPosition
|
||||
{
|
||||
font-size: 17px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/* Laufzettelformatierungen */
|
||||
#laufzettelHistorie .boxtabelle:not(:nth-child(2))
|
||||
{
|
||||
border-top: 1px solid rgba(4, 101, 161, 0.2);
|
||||
padding-top: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* 1023px und kleiner ************************************************/
|
||||
|
||||
@media screen and (max-width : 1023px) {
|
||||
|
||||
.box
|
||||
{
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.boxabstandtop
|
||||
{
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.subBox:first-child
|
||||
{
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
|
||||
.subBox:last-child
|
||||
{
|
||||
border-left: 1px solid rgba(4, 101, 161, 0.2);
|
||||
}
|
||||
|
||||
.first > .boxzeile > .subBox
|
||||
{
|
||||
border-top: none !important;
|
||||
}
|
||||
|
||||
.first > .boxzeile > .subBox:first-child
|
||||
{
|
||||
border-top: 1px solid rgba(4, 101, 161, 0.2) !important;
|
||||
}
|
||||
|
||||
.first > .boxzeile
|
||||
{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#uebersichtUeberweisung.box
|
||||
{
|
||||
border-left: 1px solid rgba(4, 101, 161, 0.2);
|
||||
}
|
||||
|
||||
#uebersichtLastschrift.box
|
||||
{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.boxzeile
|
||||
{
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.boxzeile:after
|
||||
{
|
||||
visibility: hidden;
|
||||
display: block;
|
||||
font-size: 0;
|
||||
content: " ";
|
||||
clear: both;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
#details > .boxtabelle > .boxzeile
|
||||
{
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.boxcell
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
|
||||
.boxcell:last-child
|
||||
{
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.boxZweispaltig
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.legende
|
||||
{
|
||||
display: block;
|
||||
float: left;
|
||||
width: 170px;
|
||||
padding: 5px 0;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.wert
|
||||
{
|
||||
display: block;
|
||||
float: left;
|
||||
width: calc(100% - 170px);
|
||||
padding: 11px 10px !important;
|
||||
line-height: 1.3;
|
||||
min-height: 38px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.boxdaten .legende
|
||||
{
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.rechnungsZeile .boxdaten
|
||||
{
|
||||
padding: 5px 0;
|
||||
}
|
||||
|
||||
.boxabstand
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.boxtabelleEinspaltig {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.boxSpalte1 {
|
||||
display: block;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.boxSpalte2 {
|
||||
display: block;
|
||||
width: auto;
|
||||
padding-left: 0px;
|
||||
margin-top: 1.2rem;
|
||||
}
|
||||
|
||||
.detailsSpalte1,
|
||||
.detailsSpalte2,
|
||||
.detailsSpalte3
|
||||
{
|
||||
width: 100%;
|
||||
float: none;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
.detailsSpalte2,
|
||||
.detailsSpalte3
|
||||
{
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.detailsSpalte2,
|
||||
.detailsSpalte3
|
||||
{
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.tableNumberAlignRight
|
||||
{
|
||||
display: block;
|
||||
width: 130px;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* 800px und kleiner ************************************************/
|
||||
|
||||
@media screen and (max-width : 800px) {
|
||||
|
||||
button
|
||||
{
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.btnAktiv,
|
||||
.btnInaktiv,
|
||||
.tab
|
||||
{
|
||||
font-size: 20px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.btnAktiv:after
|
||||
{
|
||||
top: 40px;
|
||||
}
|
||||
|
||||
.rechnungSp1
|
||||
{
|
||||
width: 55%;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.rechnungSp2
|
||||
{
|
||||
width: 10%;
|
||||
}
|
||||
|
||||
.rechnungSp3
|
||||
{
|
||||
width: 35%;
|
||||
text-align: right;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.grund
|
||||
{
|
||||
font-size: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
/* 450px und kleiner ************************************************/
|
||||
|
||||
@media screen and (max-width : 450px)
|
||||
{
|
||||
|
||||
html,
|
||||
body
|
||||
{
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.menue
|
||||
{
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
button
|
||||
{
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.btnAktiv,
|
||||
.btnInaktiv,
|
||||
.tab
|
||||
{
|
||||
font-size: 17px;
|
||||
height: 35px;
|
||||
}
|
||||
|
||||
.btnAktiv:after
|
||||
{
|
||||
top: 35px;
|
||||
}
|
||||
|
||||
.legende
|
||||
{
|
||||
font-size: 12px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.wert
|
||||
{
|
||||
font-size: 12px;
|
||||
line-height: 1.3;
|
||||
width: 100%;
|
||||
margin-bottom: 10px
|
||||
}
|
||||
|
||||
.boxzeile
|
||||
{
|
||||
margin-bottom: 0px
|
||||
}
|
||||
|
||||
.boxdaten
|
||||
{
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.haftungausschluss
|
||||
{
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.boxinhalt
|
||||
{
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.boxabstandtop
|
||||
{
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.boxtitel
|
||||
{
|
||||
padding: 7px 8px;
|
||||
}
|
||||
|
||||
.box
|
||||
{
|
||||
margin-bottom: 10px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.boxabstandtop
|
||||
{
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.boxdaten,
|
||||
.boxdatenBlock
|
||||
{
|
||||
padding: 2px 0;
|
||||
}
|
||||
|
||||
.rechnungSp1
|
||||
{
|
||||
width: 50%;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
.rechnungSp2
|
||||
{
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
.rechnungSp3
|
||||
{
|
||||
width: 35%;
|
||||
font-size: inherit;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.grund
|
||||
{
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
.titelPosition
|
||||
{
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.abstandUnten
|
||||
{
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.detailsSpalte1,
|
||||
.detailsSpalte2,
|
||||
.detailsSpalte3
|
||||
{
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
/* 380px und kleiner ************************************************/
|
||||
|
||||
@media screen and (max-width : 380px) {
|
||||
|
||||
html,
|
||||
body
|
||||
{
|
||||
font-size: 11px;
|
||||
line-height: 100%;
|
||||
}
|
||||
|
||||
.btnAktiv,
|
||||
.btnInaktiv,
|
||||
.tab
|
||||
{
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.boxdaten
|
||||
.boxdatenBlock
|
||||
{
|
||||
padding: 2px 0;
|
||||
}
|
||||
|
||||
.boxinhalt
|
||||
{
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.boxtitel
|
||||
{
|
||||
padding: 5px 7px;
|
||||
}
|
||||
}
|
||||
148
visualization/xsl/xrechnung-viewer.js
Normal file
148
visualization/xsl/xrechnung-viewer.js
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
|
||||
/* Tab-Container aufbauen **************************************************/
|
||||
|
||||
var a = new Array("uebersicht", "details", "zusaetze", "anlagen", "laufzettel");
|
||||
var b = new Array("menueUebersicht", "menueDetails", "menueZusaetze", "menueAnlagen", "menueLaufzettel");
|
||||
|
||||
function show(e) {
|
||||
var i = 0;
|
||||
var j = 1;
|
||||
for (var t = 0; t < b.length; t++) {
|
||||
if (b[t] === e.id) {
|
||||
i = t;
|
||||
if (i > 0) {
|
||||
j = 0;
|
||||
} else {
|
||||
j = i + 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
e.setAttribute("class", "btnAktiv");
|
||||
e.setAttribute("aria-selected", "true");
|
||||
for (var k = 0; k < b.length; k++) {
|
||||
if (k === i && (document.getElementById(a[k]) != null)) {
|
||||
document.getElementById(a[k]).style.display = "block";
|
||||
if (i === j)
|
||||
j = i + 1;
|
||||
} else {
|
||||
if (document.getElementById(a[k]) != null) {
|
||||
document.getElementById(a[j]).style.display = "none";
|
||||
document.getElementById(b[j]).setAttribute("class", "btnInaktiv");
|
||||
document.getElementById(b[j]).setAttribute("aria-selected", "false");
|
||||
j += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = function () {
|
||||
document.getElementById(b[0]).setAttribute("class", "btnAktiv");
|
||||
document.getElementById(b[0]).setAttribute("aria-selected", "true");
|
||||
// could be substituted by an xslt solution
|
||||
document.body.querySelectorAll('[data-title]').forEach(function(element, index) {
|
||||
element.setAttribute('title', element.getAttribute('data-title'));
|
||||
});
|
||||
}
|
||||
|
||||
/* Eingebettete Binaerdaten runterladen ************************************/
|
||||
|
||||
|
||||
function base64_to_binary(data) {
|
||||
var chars = atob(data);
|
||||
var bytes = new Array(chars.length);
|
||||
for (var i = 0; i < chars.length; i++) {
|
||||
bytes[i] = chars.charCodeAt(i);
|
||||
}
|
||||
return new Uint8Array(bytes);
|
||||
}
|
||||
|
||||
function downloadData(element_id, mimetype, filename) {
|
||||
var data_element = document.getElementById(element_id);
|
||||
var text = data_element.innerHTML;
|
||||
var binary = base64_to_binary(text);
|
||||
var blob = new Blob([binary], {
|
||||
type: mimetype, size: binary.length
|
||||
});
|
||||
|
||||
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
|
||||
// IE
|
||||
window.navigator.msSaveOrOpenBlob(blob, filename);
|
||||
} else {
|
||||
saveAs(blob, filename);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Polyfill IE atob/btoa ************************************/
|
||||
|
||||
(function (root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define([], function () {
|
||||
factory(root);
|
||||
});
|
||||
} else factory(root);
|
||||
// node.js has always supported base64 conversions, while browsers that support
|
||||
// web workers support base64 too, but you may never know.
|
||||
})(typeof exports !== "undefined" ? exports : this, function (root) {
|
||||
if (root.atob) {
|
||||
// Some browsers' implementation of atob doesn't support whitespaces
|
||||
// in the encoded string (notably, IE). This wraps the native atob
|
||||
// in a function that strips the whitespaces.
|
||||
// The original function can be retrieved in atob.original
|
||||
try {
|
||||
root.atob(" ");
|
||||
} catch (e) {
|
||||
root.atob = (function (atob) {
|
||||
var func = function (string) {
|
||||
return atob(String(string).replace(/[\t\n\f\r ]+/g, ""));
|
||||
};
|
||||
func.original = atob;
|
||||
return func;
|
||||
})(root.atob);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// base64 character set, plus padding character (=)
|
||||
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
|
||||
// Regular expression to check formal correctness of base64 encoded strings
|
||||
b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;
|
||||
|
||||
root.btoa = function (string) {
|
||||
string = String(string);
|
||||
var bitmap, a, b, c,
|
||||
result = "", i = 0,
|
||||
rest = string.length % 3; // To determine the final padding
|
||||
|
||||
for (; i < string.length;) {
|
||||
if ((a = string.charCodeAt(i++)) > 255 || (b = string.charCodeAt(i++)) > 255 || (c = string.charCodeAt(i++)) > 255)
|
||||
throw new TypeError("Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.");
|
||||
|
||||
bitmap = (a << 16) | (b << 8) | c;
|
||||
result += b64.charAt(bitmap >> 18 & 63) + b64.charAt(bitmap >> 12 & 63) + b64.charAt(bitmap >> 6 & 63) + b64.charAt(bitmap & 63);
|
||||
}
|
||||
|
||||
// If there's need of padding, replace the last 'A's with equal signs
|
||||
return rest ? result.slice(0, rest - 3) + "===".substring(rest) : result;
|
||||
};
|
||||
|
||||
root.atob = function (string) {
|
||||
// atob can work with strings with whitespaces, even inside the encoded part,
|
||||
// but only \t, \n, \f, \r and ' ', which can be stripped.
|
||||
string = String(string).replace(/[\t\n\f\r ]+/g, "");
|
||||
if (!b64re.test(string))
|
||||
throw new TypeError("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");
|
||||
|
||||
// Adding the padding if missing, for semplicity
|
||||
string += "==".slice(2 - (string.length & 3));
|
||||
var bitmap, result = "", r1, r2, i = 0;
|
||||
for (; i < string.length;) {
|
||||
bitmap = b64.indexOf(string.charAt(i++)) << 18 | b64.indexOf(string.charAt(i++)) << 12 | (r1 = b64.indexOf(string.charAt(i++))) << 6 | (r2 = b64.indexOf(string.charAt(i++)));
|
||||
|
||||
result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255) : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255) : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue