mirror of
https://github.com/itplr-kosit/validator.git
synced 2026-05-25 16:55:39 +00:00
transformed
This commit is contained in:
parent
8a968cd73c
commit
b6ff9d0b28
41 changed files with 21560 additions and 0 deletions
|
|
@ -87,7 +87,10 @@ public class Daemon {
|
|||
final DefaultCheck check = new DefaultCheck(processor, config);
|
||||
|
||||
server = HttpServer.create(getSocket(), 0);
|
||||
|
||||
server.createContext("/", createRootHandler(check, processor));
|
||||
server.createContext("/transform", transformRootHandler(check, processor));
|
||||
|
||||
server.createContext("/server/health", new HealthHandler(check.getConfiguration(), healthConverter));
|
||||
server.createContext("/server/config", new ConfigHandler(check.getConfiguration(), converter));
|
||||
server.setExecutor(createExecutor());
|
||||
|
|
@ -99,6 +102,13 @@ public class Daemon {
|
|||
}
|
||||
}
|
||||
|
||||
private HttpHandler transformRootHandler(final DefaultCheck check, final Processor processor) {
|
||||
final TransformHandler checkHandler = new TransformHandler(check, processor);
|
||||
|
||||
final GuiHandler gui = new GuiHandler();
|
||||
return new TransformRoutingHandler(checkHandler);
|
||||
}
|
||||
|
||||
private HttpHandler createRootHandler(final DefaultCheck check, final Processor processor) {
|
||||
final HttpHandler rootHandler;
|
||||
final CheckHandler checkHandler = new CheckHandler(check, processor);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,97 @@
|
|||
/*
|
||||
* Copyright 2017-2022 Koordinierungsstelle für IT-Standards (KoSIT)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package de.kosit.validationtool.daemon;
|
||||
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
import de.kosit.validationtool.api.Check;
|
||||
import de.kosit.validationtool.api.InputFactory;
|
||||
import de.kosit.validationtool.api.Result;
|
||||
import de.kosit.validationtool.impl.DefaultCheck;
|
||||
import de.kosit.validationtool.impl.Printer;
|
||||
import de.kosit.validationtool.impl.input.SourceInput;
|
||||
import de.kosit.validationtool.impl.input.StreamHelper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.sf.saxon.s9api.*;
|
||||
|
||||
import javax.xml.transform.Source;
|
||||
import javax.xml.transform.stream.StreamSource;
|
||||
import java.io.*;
|
||||
import java.net.URI;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class TransformHandler extends BaseHandler {
|
||||
|
||||
private static final AtomicLong counter = new AtomicLong(0);
|
||||
|
||||
private final Check implemenation;
|
||||
|
||||
private final Processor processor;
|
||||
|
||||
@Override
|
||||
public void handle(final HttpExchange httpExchange) throws IOException {
|
||||
try {
|
||||
Printer.writeOut("\nTransformHandler");
|
||||
|
||||
final String requestMethod = httpExchange.getRequestMethod();
|
||||
if (requestMethod.equals("POST")) {
|
||||
final BufferedInputStream buffered = StreamHelper.wrapPeekable(httpExchange.getRequestBody());
|
||||
final SourceInput serverInput = (SourceInput) InputFactory.read(buffered, resolveInputName(httpExchange.getRequestURI()));
|
||||
// final Result result = this.implemenation.checkInput(serverInput);
|
||||
|
||||
write(httpExchange, serializeXR2HTML(serverInput.getSource()), APPLICATION_XML, HttpStatus.SC_OK);
|
||||
}
|
||||
} catch (final Exception e) {
|
||||
Printer.writeOut("Error TransformHandler", e);
|
||||
error(httpExchange, HttpStatus.SC_INTERNAL_SERVER_ERROR, "Internal error: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private static String resolveInputName(final URI requestURI) {
|
||||
final String path = requestURI.getPath();
|
||||
if (path.equalsIgnoreCase("/")) {
|
||||
return "supplied_instance_" + counter.incrementAndGet();
|
||||
}
|
||||
return path.substring((path.lastIndexOf('/') + 1));
|
||||
}
|
||||
|
||||
private static int resolveStatus(final Result result) {
|
||||
if (result.isProcessingSuccessful()) {
|
||||
return result.isAcceptable() ? HttpStatus.SC_OK : HttpStatus.SC_NOT_ACCEPTABLE;
|
||||
}
|
||||
return HttpStatus.SC_UNPROCESSABLE_ENTITY;
|
||||
}
|
||||
|
||||
private byte[] serializeXR2HTML(final Source source) {
|
||||
try ( final ByteArrayOutputStream out = new ByteArrayOutputStream() ) {
|
||||
Processor processor = new Processor(false);
|
||||
XsltCompiler xsltCompiler = processor.newXsltCompiler();
|
||||
XsltExecutable stylesheet = xsltCompiler.compile(new StreamSource(new File("visualization/xsl/ubl-invoice-xr.xsl")));
|
||||
Serializer serializer = processor.newSerializer(out);
|
||||
serializer.setOutputProperty(Serializer.Property.METHOD, "html");
|
||||
serializer.setOutputProperty(Serializer.Property.INDENT, "yes");
|
||||
Xslt30Transformer transformer = stylesheet.load30();
|
||||
transformer.transform(source, serializer);
|
||||
return out.toByteArray();
|
||||
} catch (final IOException | SaxonApiException e) {
|
||||
Printer.writeOut("Error serializeXR2HTML IOException result", e);
|
||||
throw new IllegalStateException("Can not serialize result", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* Copyright 2017-2022 Koordinierungsstelle für IT-Standards (KoSIT)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package de.kosit.validationtool.daemon;
|
||||
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* A simple handler which routes between the {@link CheckHandler} and the {@link GuiHandler} depending on the request.
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
class TransformRoutingHandler extends BaseHandler {
|
||||
|
||||
private final TransformHandler checkHandler;
|
||||
|
||||
@Override
|
||||
public void handle(final HttpExchange exchange) throws IOException {
|
||||
final String requestMethod = exchange.getRequestMethod();
|
||||
if (requestMethod.equals("POST")) {
|
||||
this.checkHandler.handle(exchange);
|
||||
} else {
|
||||
error(exchange, 405, String.format("Method % not supported", requestMethod));
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
272
visualization/CHANGELOG.md
Normal file
272
visualization/CHANGELOG.md
Normal file
|
|
@ -0,0 +1,272 @@
|
|||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
|
||||
|
||||
## v2024-06-20
|
||||
|
||||
This release is compatible with XRechnung 3.0.x
|
||||
|
||||
### Fixed
|
||||
|
||||
* Incorrect German translation for BT-10 (thanks to GitHub user @futurescenario9)
|
||||
* BT-31: scheme identifier 'VAT' removed from templates
|
||||
* condition removed from BT-29 in cii2xr conversion, which prevented display of multiple BT-29 from different bindings
|
||||
* Display of specification identifier in PDF
|
||||
|
||||
## v2023-11-15
|
||||
|
||||
This release is compatible with XRechnung 3.0.x
|
||||
|
||||
### Changed
|
||||
|
||||
* Display of BT-158 in HTML
|
||||
* BG-3 "PRECEDING INVOICE REFERENCE" was added to test files `maxRechnung_ubl.xml` and `maxRechnung_creditnote.xml`
|
||||
* BT-11 "Project reference" with Document Type Code `50` was added to test file `maxRechnung_creditnote.xml`
|
||||
|
||||
## v2023-09-22
|
||||
|
||||
This release is compatible with XRechnung 3.0.x
|
||||
|
||||
### Fixed
|
||||
|
||||
* Cardinalities of BT-23 "Business process type", BT-34 "Seller electronic address", and BT-49 "Buyer electronic address" in `src/xsd/xrechnung-semantic-model.xsd`
|
||||
|
||||
## v2023-07-31
|
||||
|
||||
This release is compatible with XRechnung 3.0.x
|
||||
|
||||
### Changed
|
||||
|
||||
* Test files in accordance with new Schematron rules (see [XRechnung Schematron 2.0.0](https://github.com/itplr-kosit/xrechnung-schematron/releases/tag/release-2.0.0))
|
||||
* Removed references to "Verzugszinsen" from `xrechnung-semantic-model.xsd`
|
||||
|
||||
### Fixed
|
||||
|
||||
* Bug on selection of BT-61 path in `cii-xr.xsl`
|
||||
|
||||
## v2023-05-12
|
||||
|
||||
This release is compatible with XRechnung 2.3.x
|
||||
|
||||
### Added
|
||||
|
||||
* Notification if JavaScript is disabled
|
||||
|
||||
### Changed
|
||||
|
||||
* BT-160 marked as value, not label
|
||||
* Removed id for Third Party Payment Total from translation files and html
|
||||
|
||||
## Fixed
|
||||
|
||||
* Display of elements with unrestricted number of fraction digits (BT-146, BT-147, BT-148) in PDF (thanks to GitHub user @JannickWeisshaupt).
|
||||
* Display of BT-29 and BT-60 in UBL to prevent display of BT-90 as BT-29 or BT-60.
|
||||
* Superfluous display of BT-120 and BT-121 labels for VAT category codes that prohibit BT-120 and BT-121.
|
||||
* Missing output of BT-49 (Buyer electronic address) in HTML.
|
||||
* Misplaced output of BT-30 (Seller legal registration identifier) and BT-31 (Seller VAT identifier) values in Buyer section in HTML.
|
||||
* Bug on dates with years less than 1000 (thanks to GitHub user @JannickWeisshaupt).
|
||||
* Display of multiple BT-29 and BT-158.
|
||||
|
||||
## v2023-01-31
|
||||
|
||||
This release is compatible with XRechnung 2.3.x
|
||||
|
||||
### Added
|
||||
|
||||
* Visualization of third party payment
|
||||
|
||||
### Changed
|
||||
|
||||
* Normalization of newlines in embedded documents
|
||||
* Percentage sign format in PDF and HTML now identical
|
||||
|
||||
### Fixed
|
||||
|
||||
* Missing condition to BT-110 and BT-111 in ubl-creditnote-xr.xsl
|
||||
* Selection of identifier for pdf attachments
|
||||
* Missing percentage sign `%` output in PDF and PDF Tabular
|
||||
|
||||
## v2022-11-15
|
||||
|
||||
This release is compatible with XRechnung 2.2.0
|
||||
|
||||
### Added
|
||||
|
||||
* BG-26 INVOICE LINE PERIOD elements to `maxRechnung_ubl.xml` and `maxRechnung_creditNote.xml` test instances
|
||||
|
||||
### Changed
|
||||
|
||||
* Unified country code labels
|
||||
* Unified translation of BG-1 INVOICE NOTE in PDF and HTML
|
||||
|
||||
### Fixed
|
||||
|
||||
* Missing display of BG-14 INVOICING PERIOD
|
||||
* Missing display of BT-54 "Buyer country subdivision" in PDF
|
||||
* Removed unnecessary xslt messages
|
||||
* Display of BT-128 scheme identifier label in PDF normal
|
||||
* Incorrect elements in UBL test files removed
|
||||
* bug that prevented output of BT-82 in UBL
|
||||
|
||||
|
||||
### Changed
|
||||
|
||||
* Percentage sign format in PDF and HTML now identical
|
||||
|
||||
### Fixed
|
||||
|
||||
* Missing percentage sign `%` output in PDF and PDF Tabular
|
||||
|
||||
## v2022-07-31
|
||||
|
||||
This release is compatible with XRechnung 2.2.0
|
||||
|
||||
### Added
|
||||
|
||||
* Added multiple BG-27 and BG-28 to `maxRechnung_ubl.xml` and `maxRechnung_creditNote.xml` test instances
|
||||
|
||||
### Fixed
|
||||
|
||||
* Bug that prevented display of multiple embedded documents in PDF
|
||||
|
||||
|
||||
## v2022-07-15
|
||||
|
||||
This release is compatible with XRechnung 2.2.0
|
||||
|
||||
### Added
|
||||
|
||||
* BT-128 "Invoice line object identifier" and "Invoice line object identifier/Scheme identifier" to `maxRechnung_ubl.xml` and `maxRechnung_creditNote.xml` test instances
|
||||
* Tests for BT-90 Scheme ID (see [Guide for visual testing Direct Debit](./doc/guide-for-visual-testing.md))
|
||||
|
||||
### Fixed
|
||||
|
||||
* Missing display of BT-107 "Sum of allowances on document level"
|
||||
* Superfluous display of BT-32 scheme identifier
|
||||
|
||||
## v2022-05-31
|
||||
|
||||
### Added
|
||||
|
||||
* Several more test documents
|
||||
* Guide for visual testing
|
||||
|
||||
### Changed
|
||||
|
||||
* Added FileSaver.js for better cross-browser attachment download functionality
|
||||
* Created ubl-common-xr.xsl for common named templates as a single point of change
|
||||
* Handling of calendar date display is now more robust
|
||||
|
||||
### Fixed
|
||||
|
||||
* Missing display of BG-32 (thanks to GitHub user @JannickWeisshaupt)
|
||||
* BT-47 bug in UBL CreditNote
|
||||
* Logic and display of BT-110 and BT-111 in CII
|
||||
* Display of percentage sign for VAT percentage rate
|
||||
* Missing tooltips in HTML
|
||||
|
||||
## v2022-01-31
|
||||
|
||||
### Changed
|
||||
|
||||
* Tests for all Testsuite instances (except for DiGA example codes) are included
|
||||
|
||||
### Fixed
|
||||
|
||||
* HTML errors except "stray start tag script" as VNU The Nu Html Checker (v.Nu) reports
|
||||
* Translation key for BT-126 (Invoice Line Identifier)
|
||||
* Address Labels in HTML for:
|
||||
* Buyer Address (BT-50, BT-51, BT-163),
|
||||
* Seller Address (BT-35, BT-36, BT-162),
|
||||
* Tax representative Address (BT-64, BT-65, BT-164), and
|
||||
* Deliver To Address (BT-75, BT-76, BT-165)
|
||||
* Display of BT-72 (Actual Delivery Date)
|
||||
|
||||
|
||||
## v2021-11-15
|
||||
|
||||
### Added
|
||||
|
||||
* Added documentation about [architecture](doc/architecture.md) and [usage](doc/usage.md)
|
||||
* Added support for localization -- English and German output is supported. This was done for HTML and PDF output.
|
||||
* Added BT-26 to maxRechnung.xml
|
||||
|
||||
### Changed
|
||||
|
||||
* Enhanced accessibility of HTML output
|
||||
* PDF output is now accessible (PDF/UA level), fonts are embedded into PDF
|
||||
* Saxon version is configurable with properties (thanks to GitHub user @knoxyz)
|
||||
* Default saxon version is set to HE-10.6
|
||||
* Rewrote README.md for more details and added links to documentation
|
||||
|
||||
### Fixed
|
||||
|
||||
* Fixed format-date of BT-26 in xrechnung-html.xsl (thanks to GitHub user @knoxyz)
|
||||
* BT-30-Scheme-ID visualized
|
||||
|
||||
## v2021-07-31
|
||||
|
||||
### Added
|
||||
|
||||
* Configuration option for customizable line numbering of invoice lines
|
||||
* Configuration option for tabular display of line items for PDF generation
|
||||
|
||||
### Fixed
|
||||
|
||||
* BT-23 get displayed
|
||||
* BT-7 and BT-8 is now displayed in invoice data section
|
||||
* Correct translation of BT-86 in cii
|
||||
|
||||
## v2020-12-31
|
||||
|
||||
### Changed
|
||||
|
||||
* cii-xr.xsl tolerates dates with hyphens
|
||||
|
||||
### Fixed
|
||||
|
||||
* Fixed german date format of bt-9 in pdf visualization
|
||||
* Fixed visualization of BG-20, BG-21, BG-27, BG-28
|
||||
* Fixed visualization of BT-11 in UBL-CreditNote
|
||||
|
||||
## v2020-07-30
|
||||
|
||||
### Added
|
||||
|
||||
* Sub Invoice Line with recursion in UBL-Invoice
|
||||
* PDF visualization
|
||||
* Ids to html divs
|
||||
|
||||
### Changed
|
||||
|
||||
* Compatible with XRechnung 2.0.0
|
||||
* Xsl scripts are not generated automatically from xrechnung-model anymore
|
||||
* Add scheme-ids and scheme-version-ids to div ids
|
||||
* Show multiple payment terms and payment due days from CII
|
||||
|
||||
### Fixed
|
||||
|
||||
* Issue double generation of BT-47, BT-86
|
||||
* Multiple line allowances and line charges (BG-27, BG-28)
|
||||
* Id of BG-27 fixed in xr-mapping.xsl and xrechnung-html.xsl
|
||||
* Fixed german decimal seperator and missing zero in decimal smaller than 1
|
||||
* Fixed visualization of BT-74 and BT-74
|
||||
* Fixed BT-39 in HTML
|
||||
|
||||
## v2019-06-24
|
||||
|
||||
### Added
|
||||
|
||||
* License
|
||||
|
||||
### Changed
|
||||
|
||||
* compatible with XRechnung 1.2.1
|
||||
* Add CEN license statement
|
||||
|
||||
### Fixed
|
||||
|
||||
* BUG in the creation of `<xsl:template name="identifier-with-scheme-and-version">`
|
||||
21
visualization/README.md
Normal file
21
visualization/README.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# XRechnung Visualization Transformators
|
||||
|
||||
XSL transformators for web rendering of German CIUS XRechnung or EN16931-1:2017.
|
||||
|
||||
The source documents have to be in either UBL Invoice/CreditNote XML and CII XML and have to be conforming to German CIUS XRechnung or EN16931-1:2017.
|
||||
|
||||
The transformations have to happen in two steps:
|
||||
|
||||
1. Either UBL Invoice/CreditNote XML or CII XML have to be transformed to an intermediate XML which has to be valid to a proprietary simple [XML Schema](src/xsd/xrechnung-semantic-model.xsd)
|
||||
2. Then you can use either
|
||||
- [xrechnung-html.xsl](src/xsl/xrechnung-html.xsl) to render an HTML document or
|
||||
- [xr-pdf.xsl](src/xsl/xr-pdf.xsl) to render an PDF document
|
||||
|
||||
See our [architecture documentation](doc/architecture.md) (in German) for a general overview.
|
||||
Here you can find more details on [configuration and usage options](doc/usage.md)
|
||||
|
||||
You can find an example use of these transformations in the [ant build script](build.xml). It also includes some technical tests.
|
||||
|
||||
This GitHub repository is only a mirror of our [GitLab project repository](https://projekte.kosit.org/xrechnung/xrechnung-visualization).
|
||||
|
||||
For questions please contact [KoSIT](https://xeinkauf.de/kontakt/#support).
|
||||
25
visualization/doc/about.md
Normal file
25
visualization/doc/about.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# About
|
||||
|
||||
Die zur Umsetzung des beschriebenen Konzepts benötigten Komponenten beinhalten
|
||||
verschiedene Bestandteile.
|
||||
|
||||
Elektronische Rechnungen, die visualisiert werden sollen, sind XRechnungskonforme XML-Instanzen in den vorgegebenen Syntaxen UBL und CII. Diese können mittels von der KoSIT
|
||||
bereitgestellten Transformationsskripten in das syntaxneutrale Format überführt werden.
|
||||
|
||||
Eine beispielhafte Visualisierung des Kompetenzzentrums für das Kassen- und
|
||||
Rechnungswesen des Bundes (KKR) ist mittels eines weiteren Transformationsskriptes in
|
||||
(X)HTML-Format möglich und kann anhand von CSS-Datei(en) zur Umsetzung von Layout
|
||||
und Labeln gestaltet werden. Diese Visualisierung dient der Veranschaulichung und kann
|
||||
anwendungsspezifisch angepasst werden.
|
||||
|
||||
Die Komponenten zur Visualisierung bestehen aus den folgenden Teilen:
|
||||
|
||||
| # | Komponente - Beschreibung | Verantwortung |
|
||||
| :--- | :---: | :---: |
|
||||
| 1. | Transformationsskripte (XSLTs) zur Überführung von Rechnungen im UBL-Format und CII-Format (konform zu XRechnung) in das syntaxneutrale Format | KoSIT |
|
||||
| 2. | XML Schema-Definition (XSD) zur Validierung der erzeugten Rechnungen im syntaxneutralen Format | KoSIT |
|
||||
| 3. | Transformationsskript (XSLT) zur Überführung von syntaxneutralen Rechnungen in das (X)HTML-Format | KKR |
|
||||
| 4. | CSS-Datei(en) zur Umsetzung von Layout und Labeln | KKR |
|
||||
<caption style="align:center;"><em>Abbildung 2: Bestandteile und Verantwortlichkeiten</em></caption>
|
||||
|
||||
Als Betreiberin des Standards XRechnung stellt die KoSIT die *Bestandteile 1 und 2* bereit, das KKR liefert die *Bestandteile 3 und 4* zur beispielhaften Visualisierung.
|
||||
41
visualization/doc/architecture.md
Normal file
41
visualization/doc/architecture.md
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Architecture
|
||||
|
||||
Der Standard XRechnung basiert auf der Europäischen Norm EN16931. Diese Norm besteht
|
||||
aus einem semantischen Datenmodell und sogenannten Syntax-Bindings zu den
|
||||
vorgegebenen Syntaxen.
|
||||
|
||||
Das semantische Datenmodell spezifiziert in nicht-technischer Form mögliche Bestandteile
|
||||
(Rechnungsnummer, Rechnungsdatum, Rechnungsbetrag, Käufer etc.) elektronischer
|
||||
Rechnungen in Form von Business Terms (BT), Business Groups (BG) und Business Rules
|
||||
(BR). Mit den Syntax-Bindings wird spezifiziert, wie diese Bestandteile in technischer Form
|
||||
abgebildet werden müssen. Grundlage dieser Spezifikation sind die beiden durch die Norm
|
||||
vorgegebenen Syntaxen UBL und CII und die diesen Syntaxen zugrundeliegenden XML
|
||||
Schema-Dateien.
|
||||
|
||||
Im Rahmen der Umsetzung der elektronischen Rechnungsbe- und -verarbeitung wurde in
|
||||
unterschiedlichen Zusammenhängen die Anforderung formuliert, die durch die Norm
|
||||
spezifizierte technische Abbildung einer konkreten Rechnung (= XML-Instanz) in
|
||||
strukturierter Form für menschliche Leser\*innen optimiert lesbar anzuzeigen. Bestandteile
|
||||
dieser Anzeige (Visualisierung) sind zum einen die konkreten Inhalte der elektronischen
|
||||
Rechnung und deren Bezug zu den BTs und BGs der Norm. Zum anderen muss das
|
||||
Konzept der Visualisierung anwendungsspezifische Anforderungen hinsichtlich Position,
|
||||
Reihenfolge und Bezeichnung der Bestandteile einer Rechnung unterstützen.
|
||||
|
||||
*Abbildung 1* zeigt einen konzeptionellen Ansatz zur Erzeugung der Visualisierung von
|
||||
XRechnungen unter Berücksichtigung der genannten Anforderungen.
|
||||
|
||||

|
||||
<figcaption align="center" style="width:80%;"><em>Abbildung 1: Grundkonzept der Visualisierung von XRechnung</em></figcaption>
|
||||
|
||||
*Schritt 1* beinhaltet die Rechnungen im Format der durch die Norm geforderten technischen
|
||||
Syntaxen (XML-Instanzen in UBL bzw. CII).
|
||||
|
||||
*Schritt 2* zeigt die mittels einer bereitgestellten Transformation (XSL-Datei aus den
|
||||
gegebenen XML-Instanzen) in eine „syntaxneutrale“ Abbildung der Rechnung, die um die
|
||||
Information zu den in der Rechnung genutzten BTs und BGs angereichert ist.
|
||||
|
||||
Diese Abbildung ist die Basis für eine zweite Transformation der Rechnung in eine domänen- bzw. anwendungsspezifische Visualisierung im HTML-Format (*Schritt 3*). Die letztendliche
|
||||
Visualisierung dieser HTML-Instanzen erfolgt mittels CSS-Dateien, in denen individuelle
|
||||
Bezeichner, Positionen und Reihenfolgen der BTs/BGs und der zugehörigen
|
||||
Rechnungsinhalte spezifiziert sind. Transformation (XSL-Datei) und zugehörige CSS-Dateien
|
||||
werden durch die jeweiligen Anwendungsbereiche bereitgestellt.
|
||||
112
visualization/doc/development.md
Normal file
112
visualization/doc/development.md
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
# Development of XRechnung Visualization
|
||||
|
||||
|
||||
## Project Structure
|
||||
|
||||
* `src` contains the source files.
|
||||
* `src/test` contains example instances of invoice files.
|
||||
* `src/xsd` contains the schema of the intermediate xml.
|
||||
* `src/xsl` contains the transformation files.
|
||||
|
||||
## Dependencies Overview
|
||||
|
||||
### Compile Time
|
||||
|
||||
That is for creating visualizations.
|
||||
|
||||
* Apache FOP
|
||||
* Saxon HE
|
||||
* XRechnung-Testsuite
|
||||
|
||||
### Testing
|
||||
|
||||
* validator-configuration-xrechnung
|
||||
* VNU HTML Validator
|
||||
|
||||
## The build environment
|
||||
|
||||
This repository contains an ANT `build.xml` for development and test.
|
||||
|
||||
We recommend `Apache Ant` version 1.10.x or newer (but should work with > 1.8.x).
|
||||
|
||||
The main `ant` targets for development are:
|
||||
|
||||
* `clean` deletes all generated folders i.e. foremost the `build` directory.
|
||||
* `transform-to-visualization` generates all visualizations from xrechnung-testsuite and test instances in `src/test`
|
||||
* `test` validates source UBL or CII XML against XRechnung, transforms to XR Sem Model and schema validates results and transforms and test HTML and PDF visualization
|
||||
* and `dist` (creating the distribution artefact)
|
||||
|
||||
However, because of the complex dependencies, you may only expect `transform-to-visualization` target to work without any customizations.
|
||||
|
||||
## Test dependencies on the fly
|
||||
|
||||
If you build own local custom versions of dependencies such as XRechnung Testsuite or Validator Configuration XRechnung, you can customize the ant build at runtime.
|
||||
|
||||
### Test with local Validator Configuration XRechnung
|
||||
|
||||
If you want to test with a local validator configuration xrechnung installation set the ant property `validator.repository.dir` to the directory (full path) like e.g. `validator.repository.dir=/mnt/c/data/git-repos/validator-configuration-xrechnung/build` (Linux).
|
||||
To execute the `test` target, for example, call
|
||||
|
||||
```shell
|
||||
ant -Dvalidator.repository.dir=/home/renzo/projects/validator-configuration-xrechnung/build test
|
||||
```
|
||||
|
||||
For Windows users:
|
||||
|
||||
```shell
|
||||
ant "-Dvalidator.repository.dir=/c:/dev/git/validator-configuration-xrechnung/build" test
|
||||
```
|
||||
|
||||
### Development properties file
|
||||
|
||||
In order to configure more complex adoption to the local development needs, you have to load a set of different properties from a file.
|
||||
|
||||
We provide the `development.build.properties.example` file for the most common properties to be set different than default. It contains some documentation.
|
||||
|
||||
You have to copy the file to e.g. `development.build.properties` and you have to explicitly provide the property file location at CLI for your development (otherwise tests will always fail or not be executed at all).
|
||||
|
||||
|
||||
## Distribution
|
||||
|
||||
The `ant` target `dist` creates the distribution zip Archive for releases.
|
||||
|
||||
## Release
|
||||
|
||||
### Checklist
|
||||
|
||||
* Are all issues scheduled for the release solved?
|
||||
* Is everything merged to master branch?
|
||||
* Make sure that CHANGELOG.md is up to date
|
||||
* Make sure all external contributors are mentioned
|
||||
|
||||
|
||||
### Prepare
|
||||
|
||||
* Make sure you committed and pushed everything
|
||||
* Create the distribution
|
||||
|
||||
* Use the `clean` target to build and test all from scratch
|
||||
|
||||
```
|
||||
ant clean dist
|
||||
```
|
||||
|
||||
* Tag the last commit according to the following naming rule: `v${xr-visu.version.full}` e.g.
|
||||
`git tag v2024-06-20 && git push origin v2024-06-20`
|
||||
|
||||
### Publish
|
||||
|
||||
* Draft a new release at https://github.com/itplr-kosit/xrechnung-visualization/releases/new
|
||||
* Choose the git tag you just created
|
||||
* Add release title of the following scheme: `XRechnung Visualization ${xr-visu.version.full} compatible with XRechnung ${xrechnung.version}`
|
||||
* Copy & paste the high quality changelog entries for this release from CHANGELOG.md.
|
||||
* Upload distribution zip and tick mark this release as a `pre-release`.
|
||||
* If **all** released components are checked to be okay, then uncheck pre-release.
|
||||
|
||||
### Post-Release
|
||||
|
||||
* Change the version of this component in `build.xml` to the next release and commit
|
||||
* bump version
|
||||
* update CHANGELOG.md
|
||||
|
||||
You are done :smile:
|
||||
39
visualization/doc/guide-for-visual-testing.md
Normal file
39
visualization/doc/guide-for-visual-testing.md
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# Guide for Visual Testing
|
||||
|
||||
## Embedded Documents
|
||||
For testing embedded documents' features, use
|
||||
* embedded-documents-bt-125_ubl.xml
|
||||
* embedded-documents-with-newline-and-whitespace_ubl.xml
|
||||
* 01.15
|
||||
|
||||
Expectation:
|
||||
* HTML: should work across all browsers
|
||||
* PDF: default configuration should work:
|
||||
* with Adobe Professional 2017
|
||||
* with PDF-XChange Viewer 2.5
|
||||
* but not in browsers at all
|
||||
|
||||
## Scheme Identifier for various BTs
|
||||
* maxRechnung_ubl.xml
|
||||
* maxRechnung_creditnote.xml
|
||||
|
||||
## "Project reference" (BT-11) in UBL Creditnote
|
||||
* maxRechnung_creditnote.xml
|
||||
|
||||
## Direct Debit (BG-19)
|
||||
|
||||
* direct-debit-bt-90-seller_ubl.xml (BT-29 and BT-60 with @schemeID)
|
||||
* direct-debit-bt-90-payee_ubl.xml (BT-29 and BT-60 without @schemeID)
|
||||
* direct-debit-bt-90-seller_creditnote.xml (BT-29 and BT-60 with @schemeID)
|
||||
* direct-debit-bt-90-payee_creditnote.xml (BT-29 and BT-60 without @schemeID)
|
||||
|
||||
## Item Attributes (BG-32)
|
||||
* itemAttributes_ubl.xml
|
||||
|
||||
## Dates
|
||||
* wrong-date-with-text-uncefact.xml
|
||||
* wrong-date-with-zeros-uncefact.xml
|
||||
|
||||
expectation:
|
||||
* fields should contain "no date defined" or similar
|
||||
* all others should show YYYY-MM-DD without timezone
|
||||
72
visualization/doc/usage.md
Normal file
72
visualization/doc/usage.md
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
# Usage
|
||||
|
||||
There are various configuration options for the XSLT transformations.
|
||||
|
||||
## PDF Transformation
|
||||
|
||||
### Choice of PDF Profile
|
||||
|
||||
There are various profiles for PDF generation. The default uses none with enabled accessibility.
|
||||
In order to use profile PDF/UA-1 and PDF/A-1, you can use another FOP configuration during build time, e.g.
|
||||
```bash
|
||||
ant -Dfop.config=conf/fop-with-ua1-a1.xconf transform-xr-to-pdf
|
||||
```
|
||||
|
||||
Note: PDF/A-1 does not allow embedded files. Use the default profile for display of embedded documents.
|
||||
|
||||
### Choice of FO engine
|
||||
|
||||
The FO engine used can be specified. Engine specific extensions will then be enabled.
|
||||
|
||||
```xml
|
||||
<xsl:param name="foengine"/>
|
||||
```
|
||||
|
||||
Supported values are:
|
||||
* axf - Antenna House XSL Formatter
|
||||
* fop - Apache FOP
|
||||
|
||||
### Layout options
|
||||
|
||||
**Configuration of the general invoice layout **
|
||||
|
||||
```xml
|
||||
<xsl:param name="invoiceline-layout">normal</xsl:param>
|
||||
```
|
||||
Supported values are:
|
||||
* normal - Similar to HTML layout incl. box layout of invoice lines
|
||||
* tabular - Tabular layout of invoice lines
|
||||
|
||||
**Configuration of table column width**
|
||||
|
||||
```xml
|
||||
<xsl:param name="tabular-layout-widths">2 7 2 2 2 2 1.3 2</xsl:param>
|
||||
```
|
||||
|
||||
Change column proportions according to your tabular layout.
|
||||
|
||||
**Configuration of the invoice line numbering scheme**
|
||||
|
||||
```xml
|
||||
<xsl:param name="invoiceline-numbering">normal</xsl:param>
|
||||
```
|
||||
|
||||
Supported values are:
|
||||
* normal - use numbers as in original invoice
|
||||
* 1.1 - use multilevel arabic numbering
|
||||
* 1.i - use mixture of arabic and roman numbering
|
||||
* 00001 - use aligned arabic numbering
|
||||
* *other* - any picture string supported by [xsl:number](https://developer.mozilla.org/en-US/docs/Web/XSLT/Element/number) instruction can be used
|
||||
|
||||
### Choice of Language for HTML and PDF
|
||||
|
||||
Default language is German (de), an English (en) translation is also provided.
|
||||
|
||||
```xml
|
||||
<xsl:param name="lang" select="'de'"/>
|
||||
```
|
||||
|
||||
Translation files are located in the [l10n subdirectory](../src/xsl/l10n/) and can be customized according to specific local needs.
|
||||
|
||||
Translation files are formatted according to Java Properties in XML (see https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Properties.html for details).
|
||||
Additional languages can be included by adding XML Properties files to the [l10n directory](../src/xsl/l10n/). By default, files have to be named according to ISO 639-1 two letter language codes (e.g. `fr.xml` for French).
|
||||
|
|
@ -0,0 +1,352 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ns0:CreditNote
|
||||
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||
xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
|
||||
xmlns:ns0="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2">
|
||||
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
|
||||
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||
<cbc:ID>1234567890</cbc:ID>
|
||||
<cbc:IssueDate>2018-10-15</cbc:IssueDate>
|
||||
<cbc:CreditNoteTypeCode>381</cbc:CreditNoteTypeCode>
|
||||
<cbc:Note>Bemerkung zu der Rechnung gibt es nicht, da dies eine Testrechnung
|
||||
ist.</cbc:Note>
|
||||
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
|
||||
<cbc:BuyerReference>99000000-01514-29</cbc:BuyerReference>
|
||||
<cac:InvoicePeriod>
|
||||
<cbc:StartDate>2018-10-16</cbc:StartDate>
|
||||
<cbc:EndDate>2018-10-23</cbc:EndDate>
|
||||
</cac:InvoicePeriod>
|
||||
<cac:OrderReference>
|
||||
<cbc:ID>2345678901</cbc:ID>
|
||||
<cbc:SalesOrderID>Auftragsreferenz</cbc:SalesOrderID>
|
||||
</cac:OrderReference>
|
||||
<cac:ContractDocumentReference>
|
||||
<cbc:ID>Vertragsreferenz</cbc:ID>
|
||||
</cac:ContractDocumentReference>
|
||||
|
||||
<cac:OriginatorDocumentReference>
|
||||
<cbc:ID>Vergabe-und Losreferenz</cbc:ID>
|
||||
</cac:OriginatorDocumentReference>
|
||||
<!--
|
||||
<cac:ProjectReference>
|
||||
<cbc:ID>Projektreferenz</cbc:ID>
|
||||
</cac:ProjectReference>-->
|
||||
<cac:AccountingSupplierParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">rechnungsausgang@test.com</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<!-- BT-29 -->
|
||||
<cbc:ID>292345678</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>EntServDE</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>Straße Rechnungssteller 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Erweiterte Anschrift
|
||||
Rechnungssteller</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Ort Rechnungssteller</cbc:CityName>
|
||||
<cbc:PostalZone>12345</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Bundesland Rechnungssteller</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>DK</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>ATU13585627</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>456</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>AAA</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>EntServ Deutschland GmbH</cbc:RegistrationName>
|
||||
<cbc:CompanyID schemeID="0198">123456789</cbc:CompanyID>
|
||||
<cbc:CompanyLegalForm>Weitere rechtliche
|
||||
Informationen</cbc:CompanyLegalForm>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>EntServ Deutschland</cbc:Name>
|
||||
<cbc:Telephone>0123 456789</cbc:Telephone>
|
||||
<cbc:ElectronicMail>kontakt@Rechnungssteller.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingSupplierParty>
|
||||
<cac:AccountingCustomerParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">rechnungseingang@test.de</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<cbc:ID schemeID="0094">DPMA-678</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Abweichender Handelsname Rechnungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>Straße Rechnungsempfänger 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Erweitere Adresse
|
||||
Rechnungempfänger</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Ort Rechnungsempfänger</cbc:CityName>
|
||||
<cbc:PostalZone>67890</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Bundesland
|
||||
Rechnungsempfänger</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>CN</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>ATU13585627</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>Deutsches Patent - und
|
||||
Markenamt</cbc:RegistrationName>
|
||||
<cbc:CompanyID schemeID="0094">90000000-03083-12</cbc:CompanyID>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>Kontakt Rechnungsempfänger</cbc:Name>
|
||||
<cbc:Telephone>0987 654321</cbc:Telephone>
|
||||
<cbc:ElectronicMail>tina@tester.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingCustomerParty>
|
||||
<cac:PayeeParty>
|
||||
<cac:PartyIdentification>
|
||||
<!-- BT-60 -->
|
||||
<cbc:ID>601234567</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyIdentification>
|
||||
<!-- BT-90 -->
|
||||
<cbc:ID schemeID="SEPA">DE64500105173922382999</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Abweichender Zahlungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:CompanyID schemeID="0198">AZE-123</cbc:CompanyID>
|
||||
</cac:PartyLegalEntity>
|
||||
</cac:PayeeParty>
|
||||
<cac:Delivery>
|
||||
<cbc:ActualDeliveryDate>2018-10-22</cbc:ActualDeliveryDate>
|
||||
<cac:DeliveryLocation>
|
||||
<cbc:ID schemeID="0088">AL</cbc:ID>
|
||||
<cac:Address>
|
||||
<cbc:StreetName>Anderer Leistungsempfänger Straße 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Anderer Leistungsempfänger erweiterte
|
||||
Adresse</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Anderer Leistungsempfänger Ort</cbc:CityName>
|
||||
<cbc:PostalZone>45678</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Anderer Leistungempfänger
|
||||
Bundesland</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>BS</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:Address>
|
||||
</cac:DeliveryLocation>
|
||||
<cac:DeliveryParty>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Anderer Leistungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
</cac:DeliveryParty>
|
||||
</cac:Delivery>
|
||||
<cac:PaymentMeans>
|
||||
<!-- 59: SEPA Direct debit -->
|
||||
<cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
|
||||
<cac:PaymentMandate>
|
||||
<cbc:ID>12345</cbc:ID>
|
||||
<cac:PayerFinancialAccount>
|
||||
<cbc:ID>DE22500105175263185267</cbc:ID>
|
||||
</cac:PayerFinancialAccount>
|
||||
</cac:PaymentMandate>
|
||||
</cac:PaymentMeans>
|
||||
<cac:PaymentTerms>
|
||||
<cbc:Note>Zahlungsbedingungen gibt es nicht, da dies eine Testrechnung
|
||||
ist.</cbc:Note>
|
||||
</cac:PaymentTerms>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für den Nachlass auf
|
||||
Dokumentenebene</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">1000.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">2000.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für den Zuschlag auf
|
||||
Dokumentenenbene</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">400.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">4000.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>Z</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für Nachlass 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">1500.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">15000.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>E</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:TaxTotal>
|
||||
<cbc:TaxAmount currencyID="EUR">510.00</cbc:TaxAmount>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">400.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>Z</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">10000.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">700.00</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">-1000.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">-190.00</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">-1500.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>E</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cbc:TaxExemptionReason>Grund für die Befreiung</cbc:TaxExemptionReason>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
</cac:TaxTotal>
|
||||
<cac:LegalMonetaryTotal>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">10000.00</cbc:LineExtensionAmount>
|
||||
<cbc:TaxExclusiveAmount currencyID="EUR">7900.00</cbc:TaxExclusiveAmount>
|
||||
<cbc:TaxInclusiveAmount currencyID="EUR">8410.00</cbc:TaxInclusiveAmount>
|
||||
<cbc:AllowanceTotalAmount currencyID="EUR"
|
||||
>2500.00</cbc:AllowanceTotalAmount>
|
||||
<cbc:ChargeTotalAmount currencyID="EUR">400.00</cbc:ChargeTotalAmount>
|
||||
<cbc:PrepaidAmount currencyID="EUR">500.00</cbc:PrepaidAmount>
|
||||
<cbc:PayableRoundingAmount currencyID="EUR"
|
||||
>210.00</cbc:PayableRoundingAmount>
|
||||
<cbc:PayableAmount currencyID="EUR">8120.00</cbc:PayableAmount>
|
||||
</cac:LegalMonetaryTotal>
|
||||
<cac:CreditNoteLine>
|
||||
<cbc:ID>123</cbc:ID>
|
||||
<cbc:CreditedQuantity unitCode="LTR">10.00</cbc:CreditedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">10000.00</cbc:LineExtensionAmount>
|
||||
<cbc:AccountingCost>BRE</cbc:AccountingCost>
|
||||
<cac:OrderLineReference>
|
||||
<cbc:LineID>RPB</cbc:LineID>
|
||||
</cac:OrderLineReference>
|
||||
<cac:DocumentReference>
|
||||
<cbc:ID schemeID="AAD">7362789</cbc:ID>
|
||||
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
|
||||
</cac:DocumentReference>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Nachlass</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Nachlass 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">200.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Zuschlag</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">200.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Zuschlag 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:Item>
|
||||
<cbc:Description>Beschreibung Artikel</cbc:Description>
|
||||
<cbc:Name>Bezeichung Artikel</cbc:Name>
|
||||
<cac:BuyersItemIdentification>
|
||||
<cbc:ID>BB</cbc:ID>
|
||||
</cac:BuyersItemIdentification>
|
||||
<cac:SellersItemIdentification>
|
||||
<cbc:ID>456</cbc:ID>
|
||||
</cac:SellersItemIdentification>
|
||||
<cac:StandardItemIdentification>
|
||||
<cbc:ID schemeID="0088">1234567890128</cbc:ID>
|
||||
</cac:StandardItemIdentification>
|
||||
<cac:CommodityClassification>
|
||||
<cbc:ItemClassificationCode listID="ZZZ" listVersionID="1.0">12344321</cbc:ItemClassificationCode>
|
||||
</cac:CommodityClassification>
|
||||
<cac:ClassifiedTaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:ClassifiedTaxCategory>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Name der Eigenschaft</cbc:Name>
|
||||
<cbc:Value>Wert der Eigenschaft</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Name der Artikeleigenschaft</cbc:Name>
|
||||
<cbc:Value>Wert der Artikeleigenschaft</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
</cac:Item>
|
||||
<cac:Price>
|
||||
<cbc:PriceAmount currencyID="EUR">1000</cbc:PriceAmount>
|
||||
</cac:Price>
|
||||
</cac:CreditNoteLine>
|
||||
</ns0:CreditNote>
|
||||
357
visualization/test/instances/direct-debit-bt-90-payee_ubl.xml
Normal file
357
visualization/test/instances/direct-debit-bt-90-payee_ubl.xml
Normal file
|
|
@ -0,0 +1,357 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- This is just a technical example it does not reflect any busines case and hence might not reflect anything real -->
|
||||
<ns0:Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||
xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
|
||||
xmlns:ns0="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
|
||||
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||
<cbc:ID>1234567890</cbc:ID>
|
||||
<cbc:IssueDate>2018-10-15</cbc:IssueDate>
|
||||
<cbc:DueDate>2018-10-29</cbc:DueDate>
|
||||
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||
<cbc:Note>Bemerkung zu der Rechnung gibt es nicht, da dies eine Testrechnung
|
||||
ist.</cbc:Note>
|
||||
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
|
||||
<cbc:BuyerReference>99000000-01514-29</cbc:BuyerReference>
|
||||
<cac:InvoicePeriod>
|
||||
<cbc:StartDate>2018-10-16</cbc:StartDate>
|
||||
<cbc:EndDate>2018-10-23</cbc:EndDate>
|
||||
</cac:InvoicePeriod>
|
||||
<cac:OrderReference>
|
||||
<cbc:ID>2345678901</cbc:ID>
|
||||
<cbc:SalesOrderID>Auftragsreferenz</cbc:SalesOrderID>
|
||||
</cac:OrderReference>
|
||||
<cac:OriginatorDocumentReference>
|
||||
<cbc:ID>Vergabe-und Losreferenz</cbc:ID>
|
||||
</cac:OriginatorDocumentReference>
|
||||
<cac:ContractDocumentReference>
|
||||
<cbc:ID>Vertragsreferenz</cbc:ID>
|
||||
</cac:ContractDocumentReference>
|
||||
<!-- <cac:BillingReference>
|
||||
<cac:InvoiceDocumentReference>
|
||||
<cbc:ID>PRG1502168</cbc:ID>
|
||||
<cbc:IssueDate>2018-10-23</cbc:IssueDate>
|
||||
</cac:InvoiceDocumentReference>
|
||||
</cac:BillingReference>-->
|
||||
<cac:ProjectReference>
|
||||
<cbc:ID>Projektreferenz</cbc:ID>
|
||||
</cac:ProjectReference>
|
||||
<cac:AccountingSupplierParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">rechnungsausgang@test.com</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<!-- BT-29 -->
|
||||
<cbc:ID>987654321</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>EntServDE</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>Straße Rechnungssteller 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Erweiterte Anschrift
|
||||
Rechnungssteller</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Ort Rechnungssteller</cbc:CityName>
|
||||
<cbc:PostalZone>12345</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Bundesland Rechnungssteller</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>DK</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>ATU13585627</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>456</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>AAA</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>EntServ Deutschland GmbH</cbc:RegistrationName>
|
||||
<cbc:CompanyID schemeID="0198">123456789</cbc:CompanyID>
|
||||
<cbc:CompanyLegalForm>Weitere rechtliche
|
||||
Informationen</cbc:CompanyLegalForm>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>EntServ Deutschland</cbc:Name>
|
||||
<cbc:Telephone>0123 456789</cbc:Telephone>
|
||||
<cbc:ElectronicMail>kontakt@Rechnungssteller.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingSupplierParty>
|
||||
<cac:AccountingCustomerParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">rechnungseingang@test.de</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<cbc:ID schemeID="0094">DPMA-678</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Abweichender Handelsname Rechnungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>Straße Rechnungsempfänger 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Erweitere Adresse
|
||||
Rechnungempfänger</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Ort Rechnungsempfänger</cbc:CityName>
|
||||
<cbc:PostalZone>67890</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Bundesland
|
||||
Rechnungsempfänger</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>CN</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>ATU13585627</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>Deutsches Patent - und
|
||||
Markenamt</cbc:RegistrationName>
|
||||
<cbc:CompanyID schemeID="0094">90000000-03083-12</cbc:CompanyID>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>Kontakt Rechnungsempfänger</cbc:Name>
|
||||
<cbc:Telephone>0987 654321</cbc:Telephone>
|
||||
<cbc:ElectronicMail>tina@tester.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingCustomerParty>
|
||||
<cac:PayeeParty>
|
||||
<cac:PartyIdentification>
|
||||
<!-- BT-60 -->
|
||||
<cbc:ID>601234567</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyIdentification>
|
||||
<!-- BT-90 -->
|
||||
<cbc:ID schemeID="SEPA">DE64500105173922382999</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Abweichender Zahlungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:CompanyID schemeID="0198">AZE-123</cbc:CompanyID>
|
||||
</cac:PartyLegalEntity>
|
||||
</cac:PayeeParty>
|
||||
<cac:Delivery>
|
||||
<cbc:ActualDeliveryDate>2018-10-22</cbc:ActualDeliveryDate>
|
||||
<cac:DeliveryLocation>
|
||||
<cbc:ID schemeID="0088">AL</cbc:ID>
|
||||
<cac:Address>
|
||||
<cbc:StreetName>Anderer Leistungsempfänger Straße 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Anderer Leistungsempfänger erweiterte
|
||||
Adresse</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Anderer Leistungsempfänger Ort</cbc:CityName>
|
||||
<cbc:PostalZone>45678</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Anderer Leistungempfänger
|
||||
Bundesland</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>BS</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:Address>
|
||||
</cac:DeliveryLocation>
|
||||
<cac:DeliveryParty>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Anderer Leistungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
</cac:DeliveryParty>
|
||||
</cac:Delivery>
|
||||
<cac:PaymentMeans>
|
||||
<!-- 59: SEPA Direct debit -->
|
||||
<cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
|
||||
<cac:PaymentMandate>
|
||||
<cbc:ID>12345</cbc:ID>
|
||||
<cac:PayerFinancialAccount>
|
||||
<cbc:ID>DE22500105175263185267</cbc:ID>
|
||||
</cac:PayerFinancialAccount>
|
||||
</cac:PaymentMandate>
|
||||
</cac:PaymentMeans>
|
||||
<cac:PaymentTerms>
|
||||
<cbc:Note>Zahlungsbedingungen gibt es nicht, da dies eine Testrechnung
|
||||
ist.</cbc:Note>
|
||||
</cac:PaymentTerms>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für den Nachlass auf
|
||||
Dokumentenebene</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>40.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">1000.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">2500.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für den Zuschlag auf
|
||||
Dokumentenenbene</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>30.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">400.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">1333.33</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>Z</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für Nachlass 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>80.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">1500.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">1875.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>E</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:TaxTotal>
|
||||
<cbc:TaxAmount currencyID="EUR">510.00</cbc:TaxAmount>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">400.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>Z</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">10000.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">700.00</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">-1000.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">-190.00</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">-1500.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>E</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cbc:TaxExemptionReason>Grund für die Befreiung</cbc:TaxExemptionReason>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
</cac:TaxTotal>
|
||||
<cac:LegalMonetaryTotal>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">10000.00</cbc:LineExtensionAmount>
|
||||
<cbc:TaxExclusiveAmount currencyID="EUR">7900.00</cbc:TaxExclusiveAmount>
|
||||
<cbc:TaxInclusiveAmount currencyID="EUR">8410.00</cbc:TaxInclusiveAmount>
|
||||
<cbc:AllowanceTotalAmount currencyID="EUR">2500.00</cbc:AllowanceTotalAmount>
|
||||
<cbc:ChargeTotalAmount currencyID="EUR">400.00</cbc:ChargeTotalAmount>
|
||||
<cbc:PrepaidAmount currencyID="EUR">500.00</cbc:PrepaidAmount>
|
||||
<cbc:PayableRoundingAmount currencyID="EUR">210.00</cbc:PayableRoundingAmount>
|
||||
<cbc:PayableAmount currencyID="EUR">8120.00</cbc:PayableAmount>
|
||||
</cac:LegalMonetaryTotal>
|
||||
<cac:InvoiceLine>
|
||||
<cbc:ID>123</cbc:ID>
|
||||
<cbc:InvoicedQuantity unitCode="LTR">10.00</cbc:InvoicedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">10000.00</cbc:LineExtensionAmount>
|
||||
<cbc:AccountingCost>BRE</cbc:AccountingCost>
|
||||
<cac:OrderLineReference>
|
||||
<cbc:LineID>RPB</cbc:LineID>
|
||||
</cac:OrderLineReference>
|
||||
<cac:DocumentReference>
|
||||
<cbc:ID schemeID="AAD">7362789</cbc:ID>
|
||||
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
|
||||
</cac:DocumentReference>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Nachlass</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Nachlass 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">200.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Zuschlag</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">200.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Zuschlag 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:Item>
|
||||
<cbc:Description>Beschreibung Artikel</cbc:Description>
|
||||
<cbc:Name>Bezeichung Artikel</cbc:Name>
|
||||
<cac:BuyersItemIdentification>
|
||||
<cbc:ID>BB</cbc:ID>
|
||||
</cac:BuyersItemIdentification>
|
||||
<cac:SellersItemIdentification>
|
||||
<cbc:ID>456</cbc:ID>
|
||||
</cac:SellersItemIdentification>
|
||||
<cac:StandardItemIdentification>
|
||||
<cbc:ID schemeID="0088">1234567890128</cbc:ID>
|
||||
</cac:StandardItemIdentification>
|
||||
<cac:CommodityClassification>
|
||||
<cbc:ItemClassificationCode listID="ZZZ" listVersionID="1.0"
|
||||
>12344321</cbc:ItemClassificationCode>
|
||||
</cac:CommodityClassification>
|
||||
<cac:ClassifiedTaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:ClassifiedTaxCategory>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Name der Eigenschaft</cbc:Name>
|
||||
<cbc:Value>Wert der Eigenschaft</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Name der Artikeleigenschaft</cbc:Name>
|
||||
<cbc:Value>Wert der Artikeleigenschaft</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
</cac:Item>
|
||||
<cac:Price>
|
||||
<cbc:PriceAmount currencyID="EUR">1000</cbc:PriceAmount>
|
||||
</cac:Price>
|
||||
</cac:InvoiceLine>
|
||||
</ns0:Invoice>
|
||||
|
|
@ -0,0 +1,352 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ns0:CreditNote
|
||||
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||
xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
|
||||
xmlns:ns0="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2">
|
||||
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
|
||||
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||
<cbc:ID>1234567890</cbc:ID>
|
||||
<cbc:IssueDate>2018-10-15</cbc:IssueDate>
|
||||
<cbc:CreditNoteTypeCode>381</cbc:CreditNoteTypeCode>
|
||||
<cbc:Note>Bemerkung zu der Rechnung gibt es nicht, da dies eine Testrechnung
|
||||
ist.</cbc:Note>
|
||||
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
|
||||
<cbc:BuyerReference>99000000-01514-29</cbc:BuyerReference>
|
||||
<cac:InvoicePeriod>
|
||||
<cbc:StartDate>2018-10-16</cbc:StartDate>
|
||||
<cbc:EndDate>2018-10-23</cbc:EndDate>
|
||||
</cac:InvoicePeriod>
|
||||
<cac:OrderReference>
|
||||
<cbc:ID>2345678901</cbc:ID>
|
||||
<cbc:SalesOrderID>Auftragsreferenz</cbc:SalesOrderID>
|
||||
</cac:OrderReference>
|
||||
<cac:ContractDocumentReference>
|
||||
<cbc:ID>Vertragsreferenz</cbc:ID>
|
||||
</cac:ContractDocumentReference>
|
||||
|
||||
<cac:OriginatorDocumentReference>
|
||||
<cbc:ID>Vergabe-und Losreferenz</cbc:ID>
|
||||
</cac:OriginatorDocumentReference>
|
||||
<!--
|
||||
<cac:ProjectReference>
|
||||
<cbc:ID>Projektreferenz</cbc:ID>
|
||||
</cac:ProjectReference>-->
|
||||
<cac:AccountingSupplierParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">rechnungsausgang@test.com</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<!-- BT-29 -->
|
||||
<cbc:ID schemeID="0088">291234567</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyIdentification>
|
||||
<!-- BT-90 -->
|
||||
<cbc:ID schemeID="SEPA">DE64500105173922382999</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>EntServDE</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>Straße Rechnungssteller 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Erweiterte Anschrift
|
||||
Rechnungssteller</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Ort Rechnungssteller</cbc:CityName>
|
||||
<cbc:PostalZone>12345</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Bundesland Rechnungssteller</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>DK</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>ATU13585627</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>456</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>AAA</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>EntServ Deutschland GmbH</cbc:RegistrationName>
|
||||
<cbc:CompanyID schemeID="0198">123456789</cbc:CompanyID>
|
||||
<cbc:CompanyLegalForm>Weitere rechtliche
|
||||
Informationen</cbc:CompanyLegalForm>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>EntServ Deutschland</cbc:Name>
|
||||
<cbc:Telephone>0123 456789</cbc:Telephone>
|
||||
<cbc:ElectronicMail>kontakt@Rechnungssteller.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingSupplierParty>
|
||||
<cac:AccountingCustomerParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">rechnungseingang@test.de</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<cbc:ID schemeID="0094">DPMA-678</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Abweichender Handelsname Rechnungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>Straße Rechnungsempfänger 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Erweitere Adresse
|
||||
Rechnungempfänger</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Ort Rechnungsempfänger</cbc:CityName>
|
||||
<cbc:PostalZone>67890</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Bundesland
|
||||
Rechnungsempfänger</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>CN</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>ATU13585627</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>Deutsches Patent - und
|
||||
Markenamt</cbc:RegistrationName>
|
||||
<cbc:CompanyID schemeID="0094">90000000-03083-12</cbc:CompanyID>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>Kontakt Rechnungsempfänger</cbc:Name>
|
||||
<cbc:Telephone>0987 654321</cbc:Telephone>
|
||||
<cbc:ElectronicMail>tina@tester.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingCustomerParty>
|
||||
<cac:PayeeParty>
|
||||
<cac:PartyIdentification>
|
||||
<!-- BT-60 -->
|
||||
<cbc:ID schemeID="0118">AZE</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Abweichender Zahlungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:CompanyID schemeID="0198">AZE-123</cbc:CompanyID>
|
||||
</cac:PartyLegalEntity>
|
||||
</cac:PayeeParty>
|
||||
<cac:Delivery>
|
||||
<cbc:ActualDeliveryDate>2018-10-22</cbc:ActualDeliveryDate>
|
||||
<cac:DeliveryLocation>
|
||||
<cbc:ID schemeID="0088">AL</cbc:ID>
|
||||
<cac:Address>
|
||||
<cbc:StreetName>Anderer Leistungsempfänger Straße 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Anderer Leistungsempfänger erweiterte
|
||||
Adresse</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Anderer Leistungsempfänger Ort</cbc:CityName>
|
||||
<cbc:PostalZone>45678</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Anderer Leistungempfänger
|
||||
Bundesland</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>BS</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:Address>
|
||||
</cac:DeliveryLocation>
|
||||
<cac:DeliveryParty>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Anderer Leistungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
</cac:DeliveryParty>
|
||||
</cac:Delivery>
|
||||
<cac:PaymentMeans>
|
||||
<!-- 59: SEPA Direct debit -->
|
||||
<cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
|
||||
<cac:PaymentMandate>
|
||||
<cbc:ID>12345</cbc:ID>
|
||||
<cac:PayerFinancialAccount>
|
||||
<cbc:ID>DE22500105175263185267</cbc:ID>
|
||||
</cac:PayerFinancialAccount>
|
||||
</cac:PaymentMandate>
|
||||
</cac:PaymentMeans>
|
||||
<cac:PaymentTerms>
|
||||
<cbc:Note>Zahlungsbedingungen gibt es nicht, da dies eine Testrechnung
|
||||
ist.</cbc:Note>
|
||||
</cac:PaymentTerms>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für den Nachlass auf
|
||||
Dokumentenebene</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">1000.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">2000.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für den Zuschlag auf
|
||||
Dokumentenenbene</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">400.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">4000.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>Z</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für Nachlass 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">1500.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">15000.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>E</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:TaxTotal>
|
||||
<cbc:TaxAmount currencyID="EUR">510.00</cbc:TaxAmount>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">400.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>Z</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">10000.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">700.00</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">-1000.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">-190.00</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">-1500.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>E</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cbc:TaxExemptionReason>Grund für die Befreiung</cbc:TaxExemptionReason>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
</cac:TaxTotal>
|
||||
<cac:LegalMonetaryTotal>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">10000.00</cbc:LineExtensionAmount>
|
||||
<cbc:TaxExclusiveAmount currencyID="EUR">7900.00</cbc:TaxExclusiveAmount>
|
||||
<cbc:TaxInclusiveAmount currencyID="EUR">8410.00</cbc:TaxInclusiveAmount>
|
||||
<cbc:AllowanceTotalAmount currencyID="EUR"
|
||||
>2500.00</cbc:AllowanceTotalAmount>
|
||||
<cbc:ChargeTotalAmount currencyID="EUR">400.00</cbc:ChargeTotalAmount>
|
||||
<cbc:PrepaidAmount currencyID="EUR">500.00</cbc:PrepaidAmount>
|
||||
<cbc:PayableRoundingAmount currencyID="EUR"
|
||||
>210.00</cbc:PayableRoundingAmount>
|
||||
<cbc:PayableAmount currencyID="EUR">8120.00</cbc:PayableAmount>
|
||||
</cac:LegalMonetaryTotal>
|
||||
<cac:CreditNoteLine>
|
||||
<cbc:ID>123</cbc:ID>
|
||||
<cbc:CreditedQuantity unitCode="LTR">10.00</cbc:CreditedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">10000.00</cbc:LineExtensionAmount>
|
||||
<cbc:AccountingCost>BRE</cbc:AccountingCost>
|
||||
<cac:OrderLineReference>
|
||||
<cbc:LineID>RPB</cbc:LineID>
|
||||
</cac:OrderLineReference>
|
||||
<cac:DocumentReference>
|
||||
<cbc:ID schemeID="AAD">7362789</cbc:ID>
|
||||
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
|
||||
</cac:DocumentReference>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Nachlass</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Nachlass 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">200.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Zuschlag</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">200.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Zuschlag 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:Item>
|
||||
<cbc:Description>Beschreibung Artikel</cbc:Description>
|
||||
<cbc:Name>Bezeichung Artikel</cbc:Name>
|
||||
<cac:BuyersItemIdentification>
|
||||
<cbc:ID>BB</cbc:ID>
|
||||
</cac:BuyersItemIdentification>
|
||||
<cac:SellersItemIdentification>
|
||||
<cbc:ID>456</cbc:ID>
|
||||
</cac:SellersItemIdentification>
|
||||
<cac:StandardItemIdentification>
|
||||
<cbc:ID schemeID="0088">1234567890128</cbc:ID>
|
||||
</cac:StandardItemIdentification>
|
||||
<cac:CommodityClassification>
|
||||
<cbc:ItemClassificationCode listID="ZZZ" listVersionID="1.0">12344321</cbc:ItemClassificationCode>
|
||||
</cac:CommodityClassification>
|
||||
<cac:ClassifiedTaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:ClassifiedTaxCategory>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Name der Eigenschaft</cbc:Name>
|
||||
<cbc:Value>Wert der Eigenschaft</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Name der Artikeleigenschaft</cbc:Name>
|
||||
<cbc:Value>Wert der Artikeleigenschaft</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
</cac:Item>
|
||||
<cac:Price>
|
||||
<cbc:PriceAmount currencyID="EUR">1000</cbc:PriceAmount>
|
||||
</cac:Price>
|
||||
</cac:CreditNoteLine>
|
||||
</ns0:CreditNote>
|
||||
357
visualization/test/instances/direct-debit-bt-90-seller_ubl.xml
Normal file
357
visualization/test/instances/direct-debit-bt-90-seller_ubl.xml
Normal file
|
|
@ -0,0 +1,357 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- This is just a technical example it does not reflect any busines case and hence might not reflect anything real -->
|
||||
<ns0:Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||
xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
|
||||
xmlns:ns0="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
|
||||
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||
<cbc:ID>1234567890</cbc:ID>
|
||||
<cbc:IssueDate>2018-10-15</cbc:IssueDate>
|
||||
<cbc:DueDate>2018-10-29</cbc:DueDate>
|
||||
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||
<cbc:Note>Bemerkung zu der Rechnung gibt es nicht, da dies eine Testrechnung
|
||||
ist.</cbc:Note>
|
||||
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
|
||||
<cbc:BuyerReference>99000000-01514-29</cbc:BuyerReference>
|
||||
<cac:InvoicePeriod>
|
||||
<cbc:StartDate>2018-10-16</cbc:StartDate>
|
||||
<cbc:EndDate>2018-10-23</cbc:EndDate>
|
||||
</cac:InvoicePeriod>
|
||||
<cac:OrderReference>
|
||||
<cbc:ID>2345678901</cbc:ID>
|
||||
<cbc:SalesOrderID>Auftragsreferenz</cbc:SalesOrderID>
|
||||
</cac:OrderReference>
|
||||
<cac:OriginatorDocumentReference>
|
||||
<cbc:ID>Vergabe-und Losreferenz</cbc:ID>
|
||||
</cac:OriginatorDocumentReference>
|
||||
<cac:ContractDocumentReference>
|
||||
<cbc:ID>Vertragsreferenz</cbc:ID>
|
||||
</cac:ContractDocumentReference>
|
||||
<!-- <cac:BillingReference>
|
||||
<cac:InvoiceDocumentReference>
|
||||
<cbc:ID>PRG1502168</cbc:ID>
|
||||
<cbc:IssueDate>2018-10-23</cbc:IssueDate>
|
||||
</cac:InvoiceDocumentReference>
|
||||
</cac:BillingReference>-->
|
||||
<cac:ProjectReference>
|
||||
<cbc:ID>Projektreferenz</cbc:ID>
|
||||
</cac:ProjectReference>
|
||||
<cac:AccountingSupplierParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">rechnungsausgang@test.com</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<!-- BT-29 -->
|
||||
<cbc:ID schemeID="0088">291234567</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyIdentification>
|
||||
<!-- BT-90 -->
|
||||
<cbc:ID schemeID="SEPA">DE64500105173922382999</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>EntServDE</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>Straße Rechnungssteller 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Erweiterte Anschrift
|
||||
Rechnungssteller</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Ort Rechnungssteller</cbc:CityName>
|
||||
<cbc:PostalZone>12345</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Bundesland Rechnungssteller</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>DK</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>ATU13585627</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>456</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>AAA</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>EntServ Deutschland GmbH</cbc:RegistrationName>
|
||||
<cbc:CompanyID schemeID="0198">123456789</cbc:CompanyID>
|
||||
<cbc:CompanyLegalForm>Weitere rechtliche
|
||||
Informationen</cbc:CompanyLegalForm>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>EntServ Deutschland</cbc:Name>
|
||||
<cbc:Telephone>0123 456789</cbc:Telephone>
|
||||
<cbc:ElectronicMail>kontakt@Rechnungssteller.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingSupplierParty>
|
||||
<cac:AccountingCustomerParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">rechnungseingang@test.de</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<cbc:ID schemeID="0094">DPMA-678</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Abweichender Handelsname Rechnungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>Straße Rechnungsempfänger 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Erweitere Adresse
|
||||
Rechnungempfänger</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Ort Rechnungsempfänger</cbc:CityName>
|
||||
<cbc:PostalZone>67890</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Bundesland
|
||||
Rechnungsempfänger</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>CN</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>ATU13585627</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>Deutsches Patent - und
|
||||
Markenamt</cbc:RegistrationName>
|
||||
<cbc:CompanyID schemeID="0094">90000000-03083-12</cbc:CompanyID>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>Kontakt Rechnungsempfänger</cbc:Name>
|
||||
<cbc:Telephone>0987 654321</cbc:Telephone>
|
||||
<cbc:ElectronicMail>tina@tester.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingCustomerParty>
|
||||
<cac:PayeeParty>
|
||||
<cac:PartyIdentification>
|
||||
<!-- BT-60 -->
|
||||
<cbc:ID schemeID="0118">AZE</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Abweichender Zahlungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:CompanyID schemeID="0198">AZE-123</cbc:CompanyID>
|
||||
</cac:PartyLegalEntity>
|
||||
</cac:PayeeParty>
|
||||
<cac:Delivery>
|
||||
<cbc:ActualDeliveryDate>2018-10-22</cbc:ActualDeliveryDate>
|
||||
<cac:DeliveryLocation>
|
||||
<cbc:ID schemeID="0088">AL</cbc:ID>
|
||||
<cac:Address>
|
||||
<cbc:StreetName>Anderer Leistungsempfänger Straße 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Anderer Leistungsempfänger erweiterte
|
||||
Adresse</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Anderer Leistungsempfänger Ort</cbc:CityName>
|
||||
<cbc:PostalZone>45678</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Anderer Leistungempfänger
|
||||
Bundesland</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>BS</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:Address>
|
||||
</cac:DeliveryLocation>
|
||||
<cac:DeliveryParty>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Anderer Leistungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
</cac:DeliveryParty>
|
||||
</cac:Delivery>
|
||||
<cac:PaymentMeans>
|
||||
<!-- 59: SEPA Direct debit -->
|
||||
<cbc:PaymentMeansCode>59</cbc:PaymentMeansCode>
|
||||
<cac:PaymentMandate>
|
||||
<cbc:ID>12345</cbc:ID>
|
||||
<cac:PayerFinancialAccount>
|
||||
<cbc:ID>DE22500105175263185267</cbc:ID>
|
||||
</cac:PayerFinancialAccount>
|
||||
</cac:PaymentMandate>
|
||||
</cac:PaymentMeans>
|
||||
<cac:PaymentTerms>
|
||||
<cbc:Note>Zahlungsbedingungen gibt es nicht, da dies eine Testrechnung
|
||||
ist.</cbc:Note>
|
||||
</cac:PaymentTerms>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für den Nachlass auf
|
||||
Dokumentenebene</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">1000.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">2000.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für den Zuschlag auf
|
||||
Dokumentenenbene</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">400.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">4000.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>Z</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für Nachlass 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">1500.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">15000.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>E</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:TaxTotal>
|
||||
<cbc:TaxAmount currencyID="EUR">510.00</cbc:TaxAmount>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">400.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>Z</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">10000.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">700.00</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">-1000.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">-190.00</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">-1500.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>E</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cbc:TaxExemptionReason>Grund für die Befreiung</cbc:TaxExemptionReason>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
</cac:TaxTotal>
|
||||
<cac:LegalMonetaryTotal>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">10000.00</cbc:LineExtensionAmount>
|
||||
<cbc:TaxExclusiveAmount currencyID="EUR">7900.00</cbc:TaxExclusiveAmount>
|
||||
<cbc:TaxInclusiveAmount currencyID="EUR">8410.00</cbc:TaxInclusiveAmount>
|
||||
<cbc:AllowanceTotalAmount currencyID="EUR">2500.00</cbc:AllowanceTotalAmount>
|
||||
<cbc:ChargeTotalAmount currencyID="EUR">400.00</cbc:ChargeTotalAmount>
|
||||
<cbc:PrepaidAmount currencyID="EUR">500.00</cbc:PrepaidAmount>
|
||||
<cbc:PayableRoundingAmount currencyID="EUR">210.00</cbc:PayableRoundingAmount>
|
||||
<cbc:PayableAmount currencyID="EUR">8120.00</cbc:PayableAmount>
|
||||
</cac:LegalMonetaryTotal>
|
||||
<cac:InvoiceLine>
|
||||
<cbc:ID>123</cbc:ID>
|
||||
<cbc:InvoicedQuantity unitCode="LTR">10.00</cbc:InvoicedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">10000.00</cbc:LineExtensionAmount>
|
||||
<cbc:AccountingCost>BRE</cbc:AccountingCost>
|
||||
<cac:OrderLineReference>
|
||||
<cbc:LineID>RPB</cbc:LineID>
|
||||
</cac:OrderLineReference>
|
||||
<cac:DocumentReference>
|
||||
<cbc:ID schemeID="AAD">7362789</cbc:ID>
|
||||
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
|
||||
</cac:DocumentReference>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Nachlass</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Nachlass 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">200.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Zuschlag</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">200.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Zuschlag 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:Item>
|
||||
<cbc:Description>Beschreibung Artikel</cbc:Description>
|
||||
<cbc:Name>Bezeichung Artikel</cbc:Name>
|
||||
<cac:BuyersItemIdentification>
|
||||
<cbc:ID>BB</cbc:ID>
|
||||
</cac:BuyersItemIdentification>
|
||||
<cac:SellersItemIdentification>
|
||||
<cbc:ID>456</cbc:ID>
|
||||
</cac:SellersItemIdentification>
|
||||
<cac:StandardItemIdentification>
|
||||
<cbc:ID schemeID="0088">1234567890128</cbc:ID>
|
||||
</cac:StandardItemIdentification>
|
||||
<cac:CommodityClassification>
|
||||
<cbc:ItemClassificationCode listID="ZZZ" listVersionID="1.0"
|
||||
>12344321</cbc:ItemClassificationCode>
|
||||
</cac:CommodityClassification>
|
||||
<cac:ClassifiedTaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:ClassifiedTaxCategory>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Name der Eigenschaft</cbc:Name>
|
||||
<cbc:Value>Wert der Eigenschaft</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Name der Artikeleigenschaft</cbc:Name>
|
||||
<cbc:Value>Wert der Artikeleigenschaft</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
</cac:Item>
|
||||
<cac:Price>
|
||||
<cbc:PriceAmount currencyID="EUR">1000</cbc:PriceAmount>
|
||||
</cac:Price>
|
||||
</cac:InvoiceLine>
|
||||
</ns0:Invoice>
|
||||
213
visualization/test/instances/embedded-documents-bt-125_ubl.xml
Normal file
213
visualization/test/instances/embedded-documents-bt-125_ubl.xml
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
149
visualization/test/instances/itemAttributes_ubl.xml
Normal file
149
visualization/test/instances/itemAttributes_ubl.xml
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
|
||||
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
|
||||
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
|
||||
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||
<cbc:ID>123456XX</cbc:ID>
|
||||
<cbc:IssueDate>2016-04-04</cbc:IssueDate>
|
||||
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||
<cbc:Note>#ADU#Es gelten unsere Allgem. Geschäftsbedingungen, die Sie unter […] finden.</cbc:Note>
|
||||
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
|
||||
<cbc:BuyerReference>04011000-12345-03</cbc:BuyerReference>
|
||||
<cac:AccountingSupplierParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">seller@seller.com</cbc:EndpointID>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>[Seller trading name]</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>[Seller address line 1]</cbc:StreetName>
|
||||
<cbc:CityName>[Seller city]</cbc:CityName>
|
||||
<cbc:PostalZone>12345</cbc:PostalZone>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>DE 123456789</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>[Seller name]</cbc:RegistrationName>
|
||||
<cbc:CompanyID>[HRA-Eintrag]</cbc:CompanyID>
|
||||
<cbc:CompanyLegalForm>123/456/7890, HRA-Eintrag in […]</cbc:CompanyLegalForm>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>nicht vorhanden</cbc:Name>
|
||||
<cbc:Telephone>+49 1234-5678</cbc:Telephone>
|
||||
<cbc:ElectronicMail>seller@email.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingSupplierParty>
|
||||
<cac:AccountingCustomerParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">buyer@buyer.com</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<cbc:ID>[Buyer identifier]</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>[Buyer address line 1]</cbc:StreetName>
|
||||
<cbc:CityName>[Buyer city]</cbc:CityName>
|
||||
<cbc:PostalZone>12345</cbc:PostalZone>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>DE</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>[Buyer name]</cbc:RegistrationName>
|
||||
</cac:PartyLegalEntity>
|
||||
</cac:Party>
|
||||
</cac:AccountingCustomerParty>
|
||||
<cac:PaymentMeans>
|
||||
<cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
|
||||
<cac:PayeeFinancialAccount>
|
||||
<!-- dies ist eine nicht existerende aber valide IBAN als test dummy -->
|
||||
<cbc:ID>DE75512108001245126199</cbc:ID>
|
||||
</cac:PayeeFinancialAccount>
|
||||
</cac:PaymentMeans>
|
||||
<cac:PaymentTerms>
|
||||
<cbc:Note>Zahlbar sofort ohne Abzug.</cbc:Note>
|
||||
</cac:PaymentTerms>
|
||||
<cac:TaxTotal>
|
||||
<cbc:TaxAmount currencyID="EUR">22.04</cbc:TaxAmount>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">314.86</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">22.04</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
</cac:TaxTotal>
|
||||
<cac:LegalMonetaryTotal>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">314.86</cbc:LineExtensionAmount>
|
||||
<cbc:TaxExclusiveAmount currencyID="EUR">314.86</cbc:TaxExclusiveAmount>
|
||||
<cbc:TaxInclusiveAmount currencyID="EUR">336.9</cbc:TaxInclusiveAmount>
|
||||
<cbc:PayableAmount currencyID="EUR">336.9</cbc:PayableAmount>
|
||||
</cac:LegalMonetaryTotal>
|
||||
<cac:InvoiceLine>
|
||||
<cbc:ID>Zeitschrift [...]</cbc:ID>
|
||||
<cbc:Note>Die letzte Lieferung im Rahmen des abgerechneten Abonnements erfolgt in 12/2016 Lieferung erfolgt / erfolgte direkt vom Verlag</cbc:Note>
|
||||
<cbc:InvoicedQuantity unitCode="XPP">1</cbc:InvoicedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">288.79</cbc:LineExtensionAmount>
|
||||
<cac:InvoicePeriod>
|
||||
<cbc:StartDate>2016-01-01</cbc:StartDate>
|
||||
<cbc:EndDate>2016-12-31</cbc:EndDate>
|
||||
</cac:InvoicePeriod>
|
||||
<cac:OrderLineReference>
|
||||
<cbc:LineID>6171175.1</cbc:LineID>
|
||||
</cac:OrderLineReference>
|
||||
<cac:Item>
|
||||
<cbc:Description>Zeitschrift Inland</cbc:Description>
|
||||
<cbc:Name>Zeitschrift [...]</cbc:Name>
|
||||
<cac:SellersItemIdentification>
|
||||
<cbc:ID>246</cbc:ID>
|
||||
</cac:SellersItemIdentification>
|
||||
<cac:CommodityClassification>
|
||||
<cbc:ItemClassificationCode listID="IB">0721-880X</cbc:ItemClassificationCode>
|
||||
</cac:CommodityClassification>
|
||||
<cac:ClassifiedTaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:ClassifiedTaxCategory>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Property Name</cbc:Name>
|
||||
<cbc:Value>Property value</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
</cac:Item>
|
||||
<cac:Price>
|
||||
<cbc:PriceAmount currencyID="EUR">288.79</cbc:PriceAmount>
|
||||
</cac:Price>
|
||||
</cac:InvoiceLine>
|
||||
<cac:InvoiceLine>
|
||||
<cbc:ID>Porto + Versandkosten</cbc:ID>
|
||||
<cbc:InvoicedQuantity unitCode="XPP">1</cbc:InvoicedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">26.07</cbc:LineExtensionAmount>
|
||||
<cac:Item>
|
||||
<cbc:Name>Porto + Versandkosten</cbc:Name>
|
||||
<cac:ClassifiedTaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:ClassifiedTaxCategory>
|
||||
</cac:Item>
|
||||
<cac:Price>
|
||||
<cbc:PriceAmount currencyID="EUR">26.07</cbc:PriceAmount>
|
||||
</cac:Price>
|
||||
</cac:InvoiceLine>
|
||||
</ubl:Invoice>
|
||||
365
visualization/test/instances/maxRechnung_creditnote.xml
Normal file
365
visualization/test/instances/maxRechnung_creditnote.xml
Normal file
|
|
@ -0,0 +1,365 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ns0:CreditNote
|
||||
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||
xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
|
||||
xmlns:ns0="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2">
|
||||
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
|
||||
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||
<cbc:ID>1234567890</cbc:ID>
|
||||
<cbc:IssueDate>2018-10-15</cbc:IssueDate>
|
||||
<cbc:CreditNoteTypeCode>381</cbc:CreditNoteTypeCode>
|
||||
<cbc:Note>Bemerkung zu der Rechnung gibt es nicht, da dies eine Testrechnung
|
||||
ist.</cbc:Note>
|
||||
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
|
||||
<cbc:BuyerReference>99000000-01514-29</cbc:BuyerReference>
|
||||
<cac:InvoicePeriod>
|
||||
<cbc:StartDate>2018-10-01</cbc:StartDate>
|
||||
<cbc:EndDate>2018-10-23</cbc:EndDate>
|
||||
</cac:InvoicePeriod>
|
||||
<cac:OrderReference>
|
||||
<cbc:ID>2345678901</cbc:ID>
|
||||
<cbc:SalesOrderID>Auftragsreferenz</cbc:SalesOrderID>
|
||||
</cac:OrderReference>
|
||||
<cac:BillingReference>
|
||||
<cac:InvoiceDocumentReference>
|
||||
<cbc:ID>PRG1502168</cbc:ID>
|
||||
<cbc:IssueDate>2018-10-13</cbc:IssueDate>
|
||||
</cac:InvoiceDocumentReference>
|
||||
</cac:BillingReference>
|
||||
<cac:ContractDocumentReference>
|
||||
<cbc:ID>Vertragsreferenz</cbc:ID>
|
||||
</cac:ContractDocumentReference>
|
||||
<cac:AdditionalDocumentReference>
|
||||
<cbc:ID>Dokument Referenz</cbc:ID>
|
||||
<cbc:DocumentDescription>Beschreibung der angehängten JPG-Datei</cbc:DocumentDescription>
|
||||
</cac:AdditionalDocumentReference>
|
||||
<cac:AdditionalDocumentReference>
|
||||
<cbc:ID>Kennung des Objekts</cbc:ID>
|
||||
<cbc:DocumentDescription>ATS</cbc:DocumentDescription>
|
||||
</cac:AdditionalDocumentReference>
|
||||
<!-- BT-11 -->
|
||||
<cac:AdditionalDocumentReference>
|
||||
<cbc:ID>Projektreferenz</cbc:ID>
|
||||
<cbc:DocumentTypeCode>50</cbc:DocumentTypeCode>
|
||||
</cac:AdditionalDocumentReference>
|
||||
<cac:OriginatorDocumentReference>
|
||||
<cbc:ID>Vergabe-und Losreferenz</cbc:ID>
|
||||
</cac:OriginatorDocumentReference>
|
||||
<cac:AccountingSupplierParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">rechnungsausgang@test.com</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<cbc:ID schemeID="0013">Kennung des Verkäufers</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>EntServDE</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>Straße Rechnungssteller 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Erweiterte Anschrift
|
||||
Rechnungssteller</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Ort Rechnungssteller</cbc:CityName>
|
||||
<cbc:PostalZone>12345</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Bundesland Rechnungssteller</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>DK</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>ATU13585627</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>456</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>AAA</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>EntServ Deutschland GmbH</cbc:RegistrationName>
|
||||
<cbc:CompanyID schemeID="0198">123456789</cbc:CompanyID>
|
||||
<cbc:CompanyLegalForm>Weitere rechtliche
|
||||
Informationen</cbc:CompanyLegalForm>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>EntServ Deutschland</cbc:Name>
|
||||
<cbc:Telephone>0123 456789</cbc:Telephone>
|
||||
<cbc:ElectronicMail>kontakt@Rechnungssteller.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingSupplierParty>
|
||||
<cac:AccountingCustomerParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">rechnungseingang@test.de</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<cbc:ID schemeID="0094">DPMA-678</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Abweichender Handelsname Rechnungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>Straße Rechnungsempfänger 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Erweitere Adresse
|
||||
Rechnungempfänger</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Ort Rechnungsempfänger</cbc:CityName>
|
||||
<cbc:PostalZone>67890</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Bundesland
|
||||
Rechnungsempfänger</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>CN</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>ATU13585627</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>Deutsches Patent - und
|
||||
Markenamt</cbc:RegistrationName>
|
||||
<cbc:CompanyID schemeID="0094">90000000-03083-12</cbc:CompanyID>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>Kontakt Rechnungsempfänger</cbc:Name>
|
||||
<cbc:Telephone>0987 654321</cbc:Telephone>
|
||||
<cbc:ElectronicMail>tina@tester.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingCustomerParty>
|
||||
<cac:PayeeParty>
|
||||
<cac:PartyIdentification>
|
||||
<cbc:ID schemeID="0118">AZE</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Abweichender Zahlungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:CompanyID schemeID="0198">AZE-123</cbc:CompanyID>
|
||||
</cac:PartyLegalEntity>
|
||||
</cac:PayeeParty>
|
||||
<cac:Delivery>
|
||||
<cbc:ActualDeliveryDate>2018-10-22</cbc:ActualDeliveryDate>
|
||||
<cac:DeliveryLocation>
|
||||
<cbc:ID schemeID="0088">AL</cbc:ID>
|
||||
<cac:Address>
|
||||
<cbc:StreetName>Anderer Leistungsempfänger Straße 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Anderer Leistungsempfänger erweiterte
|
||||
Adresse</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Anderer Leistungsempfänger Ort</cbc:CityName>
|
||||
<cbc:PostalZone>45678</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Anderer Leistungempfänger
|
||||
Bundesland</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>BS</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:Address>
|
||||
</cac:DeliveryLocation>
|
||||
<cac:DeliveryParty>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Anderer Leistungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
</cac:DeliveryParty>
|
||||
</cac:Delivery>
|
||||
<cac:PaymentMeans>
|
||||
<cbc:PaymentMeansCode name="Credit transfer">30</cbc:PaymentMeansCode>
|
||||
<cbc:PaymentID>Verwendungszweck</cbc:PaymentID>
|
||||
<cac:PayeeFinancialAccount>
|
||||
<cbc:ID>DE84 6004 0071 0561 5158 01</cbc:ID>
|
||||
<cbc:Name>EntServ Deutschland GmbH</cbc:Name>
|
||||
<cac:FinancialInstitutionBranch>
|
||||
<cbc:ID>XXX0561515801</cbc:ID>
|
||||
</cac:FinancialInstitutionBranch>
|
||||
</cac:PayeeFinancialAccount>
|
||||
</cac:PaymentMeans>
|
||||
<cac:PaymentTerms>
|
||||
<cbc:Note>Zahlungsbedingungen gibt es nicht, da dies eine Testrechnung
|
||||
ist.</cbc:Note>
|
||||
</cac:PaymentTerms>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für den Nachlass auf
|
||||
Dokumentenebene</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>40.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">1000.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">2500.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für den Zuschlag auf
|
||||
Dokumentenenbene</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>30.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">400.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">1333.33</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>Z</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für Nachlass 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>80.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">1500.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">1875.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>E</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:TaxTotal>
|
||||
<cbc:TaxAmount currencyID="EUR">510.00</cbc:TaxAmount>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">400.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>Z</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">10000.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">700.00</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">-1000.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">-190.00</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">-1500.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>E</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cbc:TaxExemptionReason>Grund für die Befreiung</cbc:TaxExemptionReason>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
</cac:TaxTotal>
|
||||
<cac:LegalMonetaryTotal>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">10000.00</cbc:LineExtensionAmount>
|
||||
<cbc:TaxExclusiveAmount currencyID="EUR">7900.00</cbc:TaxExclusiveAmount>
|
||||
<cbc:TaxInclusiveAmount currencyID="EUR">8410.00</cbc:TaxInclusiveAmount>
|
||||
<cbc:AllowanceTotalAmount currencyID="EUR"
|
||||
>2500.00</cbc:AllowanceTotalAmount>
|
||||
<cbc:ChargeTotalAmount currencyID="EUR">400.00</cbc:ChargeTotalAmount>
|
||||
<cbc:PrepaidAmount currencyID="EUR">500.00</cbc:PrepaidAmount>
|
||||
<cbc:PayableRoundingAmount currencyID="EUR"
|
||||
>210.00</cbc:PayableRoundingAmount>
|
||||
<cbc:PayableAmount currencyID="EUR">8120.00</cbc:PayableAmount>
|
||||
</cac:LegalMonetaryTotal>
|
||||
<cac:CreditNoteLine>
|
||||
<cbc:ID>123</cbc:ID>
|
||||
<cbc:CreditedQuantity unitCode="LTR">10.00</cbc:CreditedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">10000.00</cbc:LineExtensionAmount>
|
||||
<cbc:AccountingCost>BRE</cbc:AccountingCost>
|
||||
<cac:InvoicePeriod>
|
||||
<cbc:StartDate>2018-10-05</cbc:StartDate>
|
||||
<cbc:EndDate>2018-10-07</cbc:EndDate>
|
||||
</cac:InvoicePeriod>
|
||||
<cac:OrderLineReference>
|
||||
<cbc:LineID>RPB</cbc:LineID>
|
||||
</cac:OrderLineReference>
|
||||
<cac:DocumentReference>
|
||||
<cbc:ID schemeID="AAD">7362789</cbc:ID>
|
||||
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
|
||||
</cac:DocumentReference>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Nachlass 1</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">200.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Nachlass 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Zuschlag 1</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Zuschlag 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">200.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:Item>
|
||||
<cbc:Description>Beschreibung Artikel</cbc:Description>
|
||||
<cbc:Name>Bezeichung Artikel</cbc:Name>
|
||||
<cac:BuyersItemIdentification>
|
||||
<cbc:ID>BB</cbc:ID>
|
||||
</cac:BuyersItemIdentification>
|
||||
<cac:SellersItemIdentification>
|
||||
<cbc:ID>456</cbc:ID>
|
||||
</cac:SellersItemIdentification>
|
||||
<cac:StandardItemIdentification>
|
||||
<cbc:ID schemeID="0088">1234567890128</cbc:ID>
|
||||
</cac:StandardItemIdentification>
|
||||
<cac:CommodityClassification>
|
||||
<cbc:ItemClassificationCode listID="ZZZ" listVersionID="1.0">12344321</cbc:ItemClassificationCode>
|
||||
</cac:CommodityClassification>
|
||||
<cac:ClassifiedTaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:ClassifiedTaxCategory>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Farbe</cbc:Name>
|
||||
<cbc:Value>blau</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Größe</cbc:Name>
|
||||
<cbc:Value>XL</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
</cac:Item>
|
||||
<cac:Price>
|
||||
<cbc:PriceAmount currencyID="EUR">1000</cbc:PriceAmount>
|
||||
</cac:Price>
|
||||
</cac:CreditNoteLine>
|
||||
</ns0:CreditNote>
|
||||
368
visualization/test/instances/maxRechnung_ubl.xml
Normal file
368
visualization/test/instances/maxRechnung_ubl.xml
Normal file
|
|
@ -0,0 +1,368 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- This is just a technical example it does not reflect any busines case and hence might not reflect anything real -->
|
||||
<ns0:Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
|
||||
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
|
||||
xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
|
||||
xmlns:ns0="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
|
||||
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
|
||||
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
|
||||
<cbc:ID>1234567890</cbc:ID>
|
||||
<cbc:IssueDate>2018-10-15</cbc:IssueDate>
|
||||
<cbc:DueDate>2018-10-29</cbc:DueDate>
|
||||
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
|
||||
<cbc:Note>Bemerkung zu der Rechnung gibt es nicht, da dies eine Testrechnung
|
||||
ist.</cbc:Note>
|
||||
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
|
||||
<cbc:BuyerReference>99000000-01514-29</cbc:BuyerReference>
|
||||
<cac:InvoicePeriod>
|
||||
<cbc:StartDate>2018-10-01</cbc:StartDate>
|
||||
<cbc:EndDate>2018-10-23</cbc:EndDate>
|
||||
</cac:InvoicePeriod>
|
||||
<cac:OrderReference>
|
||||
<cbc:ID>2345678901</cbc:ID>
|
||||
<cbc:SalesOrderID>Auftragsreferenz</cbc:SalesOrderID>
|
||||
</cac:OrderReference>
|
||||
<cac:BillingReference>
|
||||
<cac:InvoiceDocumentReference>
|
||||
<cbc:ID>PRG1502168</cbc:ID>
|
||||
<cbc:IssueDate>2018-10-13</cbc:IssueDate>
|
||||
</cac:InvoiceDocumentReference>
|
||||
</cac:BillingReference>
|
||||
<cac:OriginatorDocumentReference>
|
||||
<cbc:ID>Vergabe-und Losreferenz</cbc:ID>
|
||||
</cac:OriginatorDocumentReference>
|
||||
<cac:ContractDocumentReference>
|
||||
<cbc:ID>Vertragsreferenz</cbc:ID>
|
||||
</cac:ContractDocumentReference>
|
||||
<cac:AdditionalDocumentReference>
|
||||
<cbc:ID>Dokument Referenz</cbc:ID>
|
||||
<cbc:DocumentDescription>Beschreibung der angehängten JPG-Datei</cbc:DocumentDescription>
|
||||
</cac:AdditionalDocumentReference>
|
||||
<cac:AdditionalDocumentReference>
|
||||
<cbc:ID>Kennung des Objekts</cbc:ID>
|
||||
<cbc:DocumentDescription>ATS</cbc:DocumentDescription>
|
||||
</cac:AdditionalDocumentReference>
|
||||
<!-- BT-11 -->
|
||||
<cac:ProjectReference>
|
||||
<cbc:ID>Projektreferenz</cbc:ID>
|
||||
</cac:ProjectReference>
|
||||
<cac:AccountingSupplierParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">rechnungsausgang@test.com</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<cbc:ID schemeID="0013">987654321</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyIdentification>
|
||||
<cbc:ID schemeID="0013">987654320</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>EntServDE</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>Straße Rechnungssteller 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Erweiterte Anschrift
|
||||
Rechnungssteller</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Ort Rechnungssteller</cbc:CityName>
|
||||
<cbc:PostalZone>12345</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Bundesland Rechnungssteller</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>DK</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>ATU13585627</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>456</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>AAA</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>EntServ Deutschland GmbH</cbc:RegistrationName>
|
||||
<cbc:CompanyID schemeID="0198">123456789</cbc:CompanyID>
|
||||
<cbc:CompanyLegalForm>Weitere rechtliche
|
||||
Informationen</cbc:CompanyLegalForm>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>EntServ Deutschland</cbc:Name>
|
||||
<cbc:Telephone>0123 456789</cbc:Telephone>
|
||||
<cbc:ElectronicMail>kontakt@Rechnungssteller.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingSupplierParty>
|
||||
<cac:AccountingCustomerParty>
|
||||
<cac:Party>
|
||||
<cbc:EndpointID schemeID="EM">rechnungseingang@test.de</cbc:EndpointID>
|
||||
<cac:PartyIdentification>
|
||||
<cbc:ID schemeID="0094">DPMA-678</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Abweichender Handelsname Rechnungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PostalAddress>
|
||||
<cbc:StreetName>Straße Rechnungsempfänger 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Erweitere Adresse
|
||||
Rechnungempfänger</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Ort Rechnungsempfänger</cbc:CityName>
|
||||
<cbc:PostalZone>67890</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Bundesland
|
||||
Rechnungsempfänger</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>CN</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:PostalAddress>
|
||||
<cac:PartyTaxScheme>
|
||||
<cbc:CompanyID>ATU13585627</cbc:CompanyID>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:PartyTaxScheme>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:RegistrationName>Deutsches Patent - und
|
||||
Markenamt</cbc:RegistrationName>
|
||||
<cbc:CompanyID schemeID="0094">90000000-03083-12</cbc:CompanyID>
|
||||
</cac:PartyLegalEntity>
|
||||
<cac:Contact>
|
||||
<cbc:Name>Kontakt Rechnungsempfänger</cbc:Name>
|
||||
<cbc:Telephone>0987 654321</cbc:Telephone>
|
||||
<cbc:ElectronicMail>tina@tester.de</cbc:ElectronicMail>
|
||||
</cac:Contact>
|
||||
</cac:Party>
|
||||
</cac:AccountingCustomerParty>
|
||||
<cac:PayeeParty>
|
||||
<cac:PartyIdentification>
|
||||
<cbc:ID schemeID="0118">AZE</cbc:ID>
|
||||
</cac:PartyIdentification>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Abweichender Zahlungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
<cac:PartyLegalEntity>
|
||||
<cbc:CompanyID schemeID="0198">AZE-123</cbc:CompanyID>
|
||||
</cac:PartyLegalEntity>
|
||||
</cac:PayeeParty>
|
||||
<cac:Delivery>
|
||||
<cbc:ActualDeliveryDate>2018-10-22</cbc:ActualDeliveryDate>
|
||||
<cac:DeliveryLocation>
|
||||
<cbc:ID schemeID="0088">AL</cbc:ID>
|
||||
<cac:Address>
|
||||
<cbc:StreetName>Anderer Leistungsempfänger Straße 1</cbc:StreetName>
|
||||
<cbc:AdditionalStreetName>Anderer Leistungsempfänger erweiterte
|
||||
Adresse</cbc:AdditionalStreetName>
|
||||
<cbc:CityName>Anderer Leistungsempfänger Ort</cbc:CityName>
|
||||
<cbc:PostalZone>45678</cbc:PostalZone>
|
||||
<cbc:CountrySubentity>Anderer Leistungempfänger
|
||||
Bundesland</cbc:CountrySubentity>
|
||||
<cac:Country>
|
||||
<cbc:IdentificationCode>BS</cbc:IdentificationCode>
|
||||
</cac:Country>
|
||||
</cac:Address>
|
||||
</cac:DeliveryLocation>
|
||||
<cac:DeliveryParty>
|
||||
<cac:PartyName>
|
||||
<cbc:Name>Anderer Leistungsempfänger</cbc:Name>
|
||||
</cac:PartyName>
|
||||
</cac:DeliveryParty>
|
||||
</cac:Delivery>
|
||||
<cac:PaymentMeans>
|
||||
<cbc:PaymentMeansCode name="Credit transfer">30</cbc:PaymentMeansCode>
|
||||
<cbc:PaymentID>Verwendungszweck</cbc:PaymentID>
|
||||
<cac:PayeeFinancialAccount>
|
||||
<cbc:ID>DE84 6004 0071 0561 5158 01</cbc:ID>
|
||||
<cbc:Name>EntServ Deutschland GmbH</cbc:Name>
|
||||
<cac:FinancialInstitutionBranch>
|
||||
<cbc:ID>XXX0561515801</cbc:ID>
|
||||
</cac:FinancialInstitutionBranch>
|
||||
</cac:PayeeFinancialAccount>
|
||||
</cac:PaymentMeans>
|
||||
<cac:PaymentTerms>
|
||||
<cbc:Note>Zahlungsbedingungen gibt es nicht, da dies eine Testrechnung
|
||||
ist.</cbc:Note>
|
||||
</cac:PaymentTerms>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für den Nachlass auf
|
||||
Dokumentenebene</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">1000.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">2000.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für den Zuschlag auf
|
||||
Dokumentenenbene</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">400.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">4000.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>Z</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund für Nachlass 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">1500.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">15000.00</cbc:BaseAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>E</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:TaxTotal>
|
||||
<cbc:TaxAmount currencyID="EUR">510.00</cbc:TaxAmount>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">400.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>Z</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">10000.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">700.00</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">-1000.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">-190.00</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">-1500.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">0</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>E</cbc:ID>
|
||||
<cbc:Percent>0</cbc:Percent>
|
||||
<cbc:TaxExemptionReason>Grund für die Befreiung</cbc:TaxExemptionReason>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
</cac:TaxTotal>
|
||||
<cac:LegalMonetaryTotal>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">10000.00</cbc:LineExtensionAmount>
|
||||
<cbc:TaxExclusiveAmount currencyID="EUR">7900.00</cbc:TaxExclusiveAmount>
|
||||
<cbc:TaxInclusiveAmount currencyID="EUR">8410.00</cbc:TaxInclusiveAmount>
|
||||
<cbc:AllowanceTotalAmount currencyID="EUR">2500.00</cbc:AllowanceTotalAmount>
|
||||
<cbc:ChargeTotalAmount currencyID="EUR">400.00</cbc:ChargeTotalAmount>
|
||||
<cbc:PrepaidAmount currencyID="EUR">500.00</cbc:PrepaidAmount>
|
||||
<cbc:PayableRoundingAmount currencyID="EUR">210.00</cbc:PayableRoundingAmount>
|
||||
<cbc:PayableAmount currencyID="EUR">8120.00</cbc:PayableAmount>
|
||||
</cac:LegalMonetaryTotal>
|
||||
<cac:InvoiceLine>
|
||||
<cbc:ID>123</cbc:ID>
|
||||
<cbc:InvoicedQuantity unitCode="LTR">10.00</cbc:InvoicedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">10000.00</cbc:LineExtensionAmount>
|
||||
<cbc:AccountingCost>BRE</cbc:AccountingCost>
|
||||
<cac:InvoicePeriod>
|
||||
<cbc:StartDate>2018-10-05</cbc:StartDate>
|
||||
<cbc:EndDate>2018-10-07</cbc:EndDate>
|
||||
</cac:InvoicePeriod>
|
||||
<cac:OrderLineReference>
|
||||
<cbc:LineID>RPB</cbc:LineID>
|
||||
</cac:OrderLineReference>
|
||||
<cac:DocumentReference>
|
||||
<cbc:ID schemeID="AAD">7362789</cbc:ID>
|
||||
<cbc:DocumentTypeCode>130</cbc:DocumentTypeCode>
|
||||
</cac:DocumentReference>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Nachlass 1</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Nachlass 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">200.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Zuschlag 1</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>50.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">100.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">200.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:AllowanceCharge>
|
||||
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
|
||||
<cbc:AllowanceChargeReason>Grund Zuschlag 2</cbc:AllowanceChargeReason>
|
||||
<cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>
|
||||
<cbc:Amount currencyID="EUR">10.00</cbc:Amount>
|
||||
<cbc:BaseAmount currencyID="EUR">100.00</cbc:BaseAmount>
|
||||
</cac:AllowanceCharge>
|
||||
<cac:Item>
|
||||
<cbc:Description>Beschreibung Artikel</cbc:Description>
|
||||
<cbc:Name>Bezeichung Artikel</cbc:Name>
|
||||
<cac:BuyersItemIdentification>
|
||||
<cbc:ID>BB</cbc:ID>
|
||||
</cac:BuyersItemIdentification>
|
||||
<cac:SellersItemIdentification>
|
||||
<cbc:ID>456</cbc:ID>
|
||||
</cac:SellersItemIdentification>
|
||||
<cac:StandardItemIdentification>
|
||||
<cbc:ID schemeID="0088">1234567890128</cbc:ID>
|
||||
</cac:StandardItemIdentification>
|
||||
<cac:CommodityClassification>
|
||||
<cbc:ItemClassificationCode listID="ZZZ" listVersionID="1.0"
|
||||
>12344321</cbc:ItemClassificationCode>
|
||||
</cac:CommodityClassification>
|
||||
<cac:ClassifiedTaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:ClassifiedTaxCategory>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Farbe</cbc:Name>
|
||||
<cbc:Value>blau</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
<cac:AdditionalItemProperty>
|
||||
<cbc:Name>Größe</cbc:Name>
|
||||
<cbc:Value>XL</cbc:Value>
|
||||
</cac:AdditionalItemProperty>
|
||||
</cac:Item>
|
||||
<cac:Price>
|
||||
<cbc:PriceAmount currencyID="EUR">1000</cbc:PriceAmount>
|
||||
</cac:Price>
|
||||
</cac:InvoiceLine>
|
||||
</ns0:Invoice>
|
||||
171
visualization/test/instances/wrong-date-with-text-uncefact.xml
Normal file
171
visualization/test/instances/wrong-date-with-text-uncefact.xml
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
|
||||
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
|
||||
xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100"
|
||||
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
|
||||
<rsm:ExchangedDocumentContext>
|
||||
<ram:BusinessProcessSpecifiedDocumentContextParameter>
|
||||
<ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>
|
||||
</ram:BusinessProcessSpecifiedDocumentContextParameter>
|
||||
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||
<ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</ram:ID>
|
||||
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||
</rsm:ExchangedDocumentContext>
|
||||
<rsm:ExchangedDocument>
|
||||
<ram:ID>123456XX</ram:ID>
|
||||
<ram:TypeCode>380</ram:TypeCode>
|
||||
<ram:IssueDateTime>
|
||||
<udt:DateTimeString format="102">Dies ist kein Datum</udt:DateTimeString>
|
||||
</ram:IssueDateTime>
|
||||
<ram:IncludedNote>
|
||||
<ram:Content>Es gelten unsere Allgem. Geschäftsbedingungen, die Sie unter […] finden.</ram:Content>
|
||||
<ram:SubjectCode>ADU</ram:SubjectCode>
|
||||
</ram:IncludedNote>
|
||||
</rsm:ExchangedDocument>
|
||||
<rsm:SupplyChainTradeTransaction>
|
||||
<ram:IncludedSupplyChainTradeLineItem>
|
||||
<ram:AssociatedDocumentLineDocument>
|
||||
<ram:LineID>Zeitschrift [...]</ram:LineID>
|
||||
<ram:IncludedNote>
|
||||
<ram:Content>Die letzte Lieferung im Rahmen des abgerechneten Abonnements erfolgt in 12/2016 Lieferung erfolgt / erfolgte direkt vom Verlag</ram:Content>
|
||||
</ram:IncludedNote>
|
||||
</ram:AssociatedDocumentLineDocument>
|
||||
<ram:SpecifiedTradeProduct>
|
||||
<ram:SellerAssignedID>246</ram:SellerAssignedID>
|
||||
<ram:Name>Zeitschrift [...]</ram:Name>
|
||||
<ram:Description>Zeitschrift Inland</ram:Description>
|
||||
<ram:DesignatedProductClassification>
|
||||
<ram:ClassCode listID="IB">0721-880X</ram:ClassCode>
|
||||
</ram:DesignatedProductClassification>
|
||||
</ram:SpecifiedTradeProduct>
|
||||
<ram:SpecifiedLineTradeAgreement>
|
||||
<ram:BuyerOrderReferencedDocument>
|
||||
<ram:LineID>6171175.1</ram:LineID>
|
||||
</ram:BuyerOrderReferencedDocument>
|
||||
<ram:NetPriceProductTradePrice>
|
||||
<ram:ChargeAmount>288.79</ram:ChargeAmount>
|
||||
</ram:NetPriceProductTradePrice>
|
||||
</ram:SpecifiedLineTradeAgreement>
|
||||
<ram:SpecifiedLineTradeDelivery>
|
||||
<ram:BilledQuantity unitCode="XPP">1</ram:BilledQuantity>
|
||||
</ram:SpecifiedLineTradeDelivery>
|
||||
<ram:SpecifiedLineTradeSettlement>
|
||||
<ram:ApplicableTradeTax>
|
||||
<ram:TypeCode>VAT</ram:TypeCode>
|
||||
<ram:CategoryCode>S</ram:CategoryCode>
|
||||
<ram:RateApplicablePercent>7</ram:RateApplicablePercent>
|
||||
</ram:ApplicableTradeTax>
|
||||
<ram:BillingSpecifiedPeriod>
|
||||
<ram:StartDateTime>
|
||||
<udt:DateTimeString format="102">20160101</udt:DateTimeString>
|
||||
</ram:StartDateTime>
|
||||
<ram:EndDateTime>
|
||||
<udt:DateTimeString format="102">20161231</udt:DateTimeString>
|
||||
</ram:EndDateTime>
|
||||
</ram:BillingSpecifiedPeriod>
|
||||
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||
<ram:LineTotalAmount>288.79</ram:LineTotalAmount>
|
||||
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||
</ram:SpecifiedLineTradeSettlement>
|
||||
</ram:IncludedSupplyChainTradeLineItem>
|
||||
<ram:IncludedSupplyChainTradeLineItem>
|
||||
<ram:AssociatedDocumentLineDocument>
|
||||
<ram:LineID>Porto + Versandkosten</ram:LineID>
|
||||
</ram:AssociatedDocumentLineDocument>
|
||||
<ram:SpecifiedTradeProduct>
|
||||
<ram:Name>Porto + Versandkosten</ram:Name>
|
||||
</ram:SpecifiedTradeProduct>
|
||||
<ram:SpecifiedLineTradeAgreement>
|
||||
<ram:NetPriceProductTradePrice>
|
||||
<ram:ChargeAmount>26.07</ram:ChargeAmount>
|
||||
</ram:NetPriceProductTradePrice>
|
||||
</ram:SpecifiedLineTradeAgreement>
|
||||
<ram:SpecifiedLineTradeDelivery>
|
||||
<ram:BilledQuantity unitCode="XPP">1</ram:BilledQuantity>
|
||||
</ram:SpecifiedLineTradeDelivery>
|
||||
<ram:SpecifiedLineTradeSettlement>
|
||||
<ram:ApplicableTradeTax>
|
||||
<ram:TypeCode>VAT</ram:TypeCode>
|
||||
<ram:CategoryCode>S</ram:CategoryCode>
|
||||
<ram:RateApplicablePercent>7</ram:RateApplicablePercent>
|
||||
</ram:ApplicableTradeTax>
|
||||
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||
<ram:LineTotalAmount>26.07</ram:LineTotalAmount>
|
||||
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||
</ram:SpecifiedLineTradeSettlement>
|
||||
</ram:IncludedSupplyChainTradeLineItem>
|
||||
<ram:ApplicableHeaderTradeAgreement>
|
||||
<ram:BuyerReference>04011000-12345-03</ram:BuyerReference>
|
||||
<ram:SellerTradeParty>
|
||||
<ram:Name>[Seller name]</ram:Name>
|
||||
<ram:Description>123/456/7890, HRA-Eintrag in […]</ram:Description>
|
||||
<ram:SpecifiedLegalOrganization>
|
||||
<ram:ID>[HRA-Eintrag]</ram:ID>
|
||||
<ram:TradingBusinessName>[Seller trading name]</ram:TradingBusinessName>
|
||||
</ram:SpecifiedLegalOrganization>
|
||||
<ram:DefinedTradeContact>
|
||||
<ram:PersonName>nicht vorhanden</ram:PersonName>
|
||||
<ram:TelephoneUniversalCommunication>
|
||||
<ram:CompleteNumber>+49 1234-5678</ram:CompleteNumber>
|
||||
</ram:TelephoneUniversalCommunication>
|
||||
<ram:EmailURIUniversalCommunication>
|
||||
<ram:URIID>seller@email.de</ram:URIID>
|
||||
</ram:EmailURIUniversalCommunication>
|
||||
</ram:DefinedTradeContact>
|
||||
<ram:PostalTradeAddress>
|
||||
<ram:PostcodeCode>12345</ram:PostcodeCode>
|
||||
<ram:LineOne>[Seller address line 1]</ram:LineOne>
|
||||
<ram:CityName>[Seller city]</ram:CityName>
|
||||
<ram:CountryID>DE</ram:CountryID>
|
||||
</ram:PostalTradeAddress>
|
||||
<ram:URIUniversalCommunication>
|
||||
<ram:URIID schemeID="EM">seller@seller.com</ram:URIID>
|
||||
</ram:URIUniversalCommunication>
|
||||
<ram:SpecifiedTaxRegistration>
|
||||
<ram:ID schemeID="VA">DE 123456789</ram:ID>
|
||||
</ram:SpecifiedTaxRegistration>
|
||||
</ram:SellerTradeParty>
|
||||
<ram:BuyerTradeParty>
|
||||
<ram:ID>[Buyer identifier]</ram:ID>
|
||||
<ram:Name>[Buyer name]</ram:Name>
|
||||
<ram:PostalTradeAddress>
|
||||
<ram:PostcodeCode>12345</ram:PostcodeCode>
|
||||
<ram:LineOne>[Buyer address line 1]</ram:LineOne>
|
||||
<ram:CityName>[Buyer city]</ram:CityName>
|
||||
<ram:CountryID>DE</ram:CountryID>
|
||||
</ram:PostalTradeAddress>
|
||||
<ram:URIUniversalCommunication>
|
||||
<ram:URIID schemeID="EM">buyer@buyer.com</ram:URIID>
|
||||
</ram:URIUniversalCommunication>
|
||||
</ram:BuyerTradeParty>
|
||||
</ram:ApplicableHeaderTradeAgreement>
|
||||
<ram:ApplicableHeaderTradeDelivery/>
|
||||
<ram:ApplicableHeaderTradeSettlement>
|
||||
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
|
||||
<ram:SpecifiedTradeSettlementPaymentMeans>
|
||||
<ram:TypeCode>58</ram:TypeCode>
|
||||
<ram:PayeePartyCreditorFinancialAccount>
|
||||
<!-- dies ist eine nicht existerende aber valide IBAN als test dummy -->
|
||||
<ram:IBANID>DE75512108001245126199</ram:IBANID>
|
||||
</ram:PayeePartyCreditorFinancialAccount>
|
||||
</ram:SpecifiedTradeSettlementPaymentMeans>
|
||||
<ram:ApplicableTradeTax>
|
||||
<ram:CalculatedAmount>22.04</ram:CalculatedAmount>
|
||||
<ram:TypeCode>VAT</ram:TypeCode>
|
||||
<ram:BasisAmount>314.86</ram:BasisAmount>
|
||||
<ram:CategoryCode>S</ram:CategoryCode>
|
||||
<ram:RateApplicablePercent>7</ram:RateApplicablePercent>
|
||||
</ram:ApplicableTradeTax>
|
||||
<ram:SpecifiedTradePaymentTerms>
|
||||
<ram:Description>Zahlbar sofort ohne Abzug.</ram:Description>
|
||||
</ram:SpecifiedTradePaymentTerms>
|
||||
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||
<ram:LineTotalAmount>314.86</ram:LineTotalAmount>
|
||||
<ram:TaxBasisTotalAmount>314.86</ram:TaxBasisTotalAmount>
|
||||
<ram:TaxTotalAmount currencyID="EUR">22.04</ram:TaxTotalAmount>
|
||||
<ram:GrandTotalAmount>336.9</ram:GrandTotalAmount>
|
||||
<ram:DuePayableAmount>336.9</ram:DuePayableAmount>
|
||||
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||
</ram:ApplicableHeaderTradeSettlement>
|
||||
</rsm:SupplyChainTradeTransaction>
|
||||
</rsm:CrossIndustryInvoice>
|
||||
171
visualization/test/instances/wrong-date-with-zeros-uncefact.xml
Normal file
171
visualization/test/instances/wrong-date-with-zeros-uncefact.xml
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
|
||||
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
|
||||
xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100"
|
||||
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
|
||||
<rsm:ExchangedDocumentContext>
|
||||
<ram:BusinessProcessSpecifiedDocumentContextParameter>
|
||||
<ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID>
|
||||
</ram:BusinessProcessSpecifiedDocumentContextParameter>
|
||||
<ram:GuidelineSpecifiedDocumentContextParameter>
|
||||
<ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0</ram:ID>
|
||||
</ram:GuidelineSpecifiedDocumentContextParameter>
|
||||
</rsm:ExchangedDocumentContext>
|
||||
<rsm:ExchangedDocument>
|
||||
<ram:ID>123456XX</ram:ID>
|
||||
<ram:TypeCode>380</ram:TypeCode>
|
||||
<ram:IssueDateTime>
|
||||
<udt:DateTimeString format="102">00000000</udt:DateTimeString>
|
||||
</ram:IssueDateTime>
|
||||
<ram:IncludedNote>
|
||||
<ram:Content>Es gelten unsere Allgem. Geschäftsbedingungen, die Sie unter […] finden.</ram:Content>
|
||||
<ram:SubjectCode>ADU</ram:SubjectCode>
|
||||
</ram:IncludedNote>
|
||||
</rsm:ExchangedDocument>
|
||||
<rsm:SupplyChainTradeTransaction>
|
||||
<ram:IncludedSupplyChainTradeLineItem>
|
||||
<ram:AssociatedDocumentLineDocument>
|
||||
<ram:LineID>Zeitschrift [...]</ram:LineID>
|
||||
<ram:IncludedNote>
|
||||
<ram:Content>Die letzte Lieferung im Rahmen des abgerechneten Abonnements erfolgt in 12/2016 Lieferung erfolgt / erfolgte direkt vom Verlag</ram:Content>
|
||||
</ram:IncludedNote>
|
||||
</ram:AssociatedDocumentLineDocument>
|
||||
<ram:SpecifiedTradeProduct>
|
||||
<ram:SellerAssignedID>246</ram:SellerAssignedID>
|
||||
<ram:Name>Zeitschrift [...]</ram:Name>
|
||||
<ram:Description>Zeitschrift Inland</ram:Description>
|
||||
<ram:DesignatedProductClassification>
|
||||
<ram:ClassCode listID="IB">0721-880X</ram:ClassCode>
|
||||
</ram:DesignatedProductClassification>
|
||||
</ram:SpecifiedTradeProduct>
|
||||
<ram:SpecifiedLineTradeAgreement>
|
||||
<ram:BuyerOrderReferencedDocument>
|
||||
<ram:LineID>6171175.1</ram:LineID>
|
||||
</ram:BuyerOrderReferencedDocument>
|
||||
<ram:NetPriceProductTradePrice>
|
||||
<ram:ChargeAmount>288.79</ram:ChargeAmount>
|
||||
</ram:NetPriceProductTradePrice>
|
||||
</ram:SpecifiedLineTradeAgreement>
|
||||
<ram:SpecifiedLineTradeDelivery>
|
||||
<ram:BilledQuantity unitCode="XPP">1</ram:BilledQuantity>
|
||||
</ram:SpecifiedLineTradeDelivery>
|
||||
<ram:SpecifiedLineTradeSettlement>
|
||||
<ram:ApplicableTradeTax>
|
||||
<ram:TypeCode>VAT</ram:TypeCode>
|
||||
<ram:CategoryCode>S</ram:CategoryCode>
|
||||
<ram:RateApplicablePercent>7</ram:RateApplicablePercent>
|
||||
</ram:ApplicableTradeTax>
|
||||
<ram:BillingSpecifiedPeriod>
|
||||
<ram:StartDateTime>
|
||||
<udt:DateTimeString format="102">20160101</udt:DateTimeString>
|
||||
</ram:StartDateTime>
|
||||
<ram:EndDateTime>
|
||||
<udt:DateTimeString format="102">20161231</udt:DateTimeString>
|
||||
</ram:EndDateTime>
|
||||
</ram:BillingSpecifiedPeriod>
|
||||
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||
<ram:LineTotalAmount>288.79</ram:LineTotalAmount>
|
||||
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||
</ram:SpecifiedLineTradeSettlement>
|
||||
</ram:IncludedSupplyChainTradeLineItem>
|
||||
<ram:IncludedSupplyChainTradeLineItem>
|
||||
<ram:AssociatedDocumentLineDocument>
|
||||
<ram:LineID>Porto + Versandkosten</ram:LineID>
|
||||
</ram:AssociatedDocumentLineDocument>
|
||||
<ram:SpecifiedTradeProduct>
|
||||
<ram:Name>Porto + Versandkosten</ram:Name>
|
||||
</ram:SpecifiedTradeProduct>
|
||||
<ram:SpecifiedLineTradeAgreement>
|
||||
<ram:NetPriceProductTradePrice>
|
||||
<ram:ChargeAmount>26.07</ram:ChargeAmount>
|
||||
</ram:NetPriceProductTradePrice>
|
||||
</ram:SpecifiedLineTradeAgreement>
|
||||
<ram:SpecifiedLineTradeDelivery>
|
||||
<ram:BilledQuantity unitCode="XPP">1</ram:BilledQuantity>
|
||||
</ram:SpecifiedLineTradeDelivery>
|
||||
<ram:SpecifiedLineTradeSettlement>
|
||||
<ram:ApplicableTradeTax>
|
||||
<ram:TypeCode>VAT</ram:TypeCode>
|
||||
<ram:CategoryCode>S</ram:CategoryCode>
|
||||
<ram:RateApplicablePercent>7</ram:RateApplicablePercent>
|
||||
</ram:ApplicableTradeTax>
|
||||
<ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||
<ram:LineTotalAmount>26.07</ram:LineTotalAmount>
|
||||
</ram:SpecifiedTradeSettlementLineMonetarySummation>
|
||||
</ram:SpecifiedLineTradeSettlement>
|
||||
</ram:IncludedSupplyChainTradeLineItem>
|
||||
<ram:ApplicableHeaderTradeAgreement>
|
||||
<ram:BuyerReference>04011000-12345-03</ram:BuyerReference>
|
||||
<ram:SellerTradeParty>
|
||||
<ram:Name>[Seller name]</ram:Name>
|
||||
<ram:Description>123/456/7890, HRA-Eintrag in […]</ram:Description>
|
||||
<ram:SpecifiedLegalOrganization>
|
||||
<ram:ID>[HRA-Eintrag]</ram:ID>
|
||||
<ram:TradingBusinessName>[Seller trading name]</ram:TradingBusinessName>
|
||||
</ram:SpecifiedLegalOrganization>
|
||||
<ram:DefinedTradeContact>
|
||||
<ram:PersonName>nicht vorhanden</ram:PersonName>
|
||||
<ram:TelephoneUniversalCommunication>
|
||||
<ram:CompleteNumber>+49 1234-5678</ram:CompleteNumber>
|
||||
</ram:TelephoneUniversalCommunication>
|
||||
<ram:EmailURIUniversalCommunication>
|
||||
<ram:URIID>seller@email.de</ram:URIID>
|
||||
</ram:EmailURIUniversalCommunication>
|
||||
</ram:DefinedTradeContact>
|
||||
<ram:PostalTradeAddress>
|
||||
<ram:PostcodeCode>12345</ram:PostcodeCode>
|
||||
<ram:LineOne>[Seller address line 1]</ram:LineOne>
|
||||
<ram:CityName>[Seller city]</ram:CityName>
|
||||
<ram:CountryID>DE</ram:CountryID>
|
||||
</ram:PostalTradeAddress>
|
||||
<ram:URIUniversalCommunication>
|
||||
<ram:URIID schemeID="EM">seller@seller.com</ram:URIID>
|
||||
</ram:URIUniversalCommunication>
|
||||
<ram:SpecifiedTaxRegistration>
|
||||
<ram:ID schemeID="VA">DE 123456789</ram:ID>
|
||||
</ram:SpecifiedTaxRegistration>
|
||||
</ram:SellerTradeParty>
|
||||
<ram:BuyerTradeParty>
|
||||
<ram:ID>[Buyer identifier]</ram:ID>
|
||||
<ram:Name>[Buyer name]</ram:Name>
|
||||
<ram:PostalTradeAddress>
|
||||
<ram:PostcodeCode>12345</ram:PostcodeCode>
|
||||
<ram:LineOne>[Buyer address line 1]</ram:LineOne>
|
||||
<ram:CityName>[Buyer city]</ram:CityName>
|
||||
<ram:CountryID>DE</ram:CountryID>
|
||||
</ram:PostalTradeAddress>
|
||||
<ram:URIUniversalCommunication>
|
||||
<ram:URIID schemeID="EM">buyer@buyer.com</ram:URIID>
|
||||
</ram:URIUniversalCommunication>
|
||||
</ram:BuyerTradeParty>
|
||||
</ram:ApplicableHeaderTradeAgreement>
|
||||
<ram:ApplicableHeaderTradeDelivery/>
|
||||
<ram:ApplicableHeaderTradeSettlement>
|
||||
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
|
||||
<ram:SpecifiedTradeSettlementPaymentMeans>
|
||||
<ram:TypeCode>58</ram:TypeCode>
|
||||
<ram:PayeePartyCreditorFinancialAccount>
|
||||
<!-- dies ist eine nicht existerende aber valide IBAN als test dummy -->
|
||||
<ram:IBANID>DE75512108001245126199</ram:IBANID>
|
||||
</ram:PayeePartyCreditorFinancialAccount>
|
||||
</ram:SpecifiedTradeSettlementPaymentMeans>
|
||||
<ram:ApplicableTradeTax>
|
||||
<ram:CalculatedAmount>22.04</ram:CalculatedAmount>
|
||||
<ram:TypeCode>VAT</ram:TypeCode>
|
||||
<ram:BasisAmount>314.86</ram:BasisAmount>
|
||||
<ram:CategoryCode>S</ram:CategoryCode>
|
||||
<ram:RateApplicablePercent>7</ram:RateApplicablePercent>
|
||||
</ram:ApplicableTradeTax>
|
||||
<ram:SpecifiedTradePaymentTerms>
|
||||
<ram:Description>Zahlbar sofort ohne Abzug.</ram:Description>
|
||||
</ram:SpecifiedTradePaymentTerms>
|
||||
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||
<ram:LineTotalAmount>314.86</ram:LineTotalAmount>
|
||||
<ram:TaxBasisTotalAmount>314.86</ram:TaxBasisTotalAmount>
|
||||
<ram:TaxTotalAmount currencyID="EUR">22.04</ram:TaxTotalAmount>
|
||||
<ram:GrandTotalAmount>336.9</ram:GrandTotalAmount>
|
||||
<ram:DuePayableAmount>336.9</ram:DuePayableAmount>
|
||||
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
|
||||
</ram:ApplicableHeaderTradeSettlement>
|
||||
</rsm:SupplyChainTradeTransaction>
|
||||
</rsm:CrossIndustryInvoice>
|
||||
2550
visualization/xsd/xrechnung-semantic-model.xsd
Normal file
2550
visualization/xsd/xrechnung-semantic-model.xsd
Normal file
File diff suppressed because it is too large
Load diff
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