From 5ee782aa686cdb2e4e206459522f55cb8678d523 Mon Sep 17 00:00:00 2001 From: Sebastian Sieber Date: Tue, 5 Nov 2024 12:32:43 +0100 Subject: [PATCH] Add SpecifiedLogisticsServiceCharge to visualization --- .../src/main/resources/stylesheets/cii-xr.xsl | 53 + .../stylesheets/xrechnung-html.de.xsl | 7 +- .../stylesheets/xrechnung-html.en.xsl | 7 +- .../stylesheets/xrechnung-html.fr.xsl | 7 +- .../stylesheets/xrechnung-html.univ.xsl | 35 + .../ZUGFeRD/VisualizationTest.java | 165 +- .../src/test/resources/factur-x-extended.xml | 427 +++ .../resources/factur-x-vis-extended.de.html | 2419 +++++++++++++++++ .../factur-x-vis-ubl-creditnote.en.html | 3 +- .../test/resources/factur-x-vis-ubl.en.html | 3 +- .../src/test/resources/factur-x-vis.fr.html | 3 +- 11 files changed, 3070 insertions(+), 59 deletions(-) create mode 100644 library/src/test/resources/factur-x-extended.xml create mode 100644 library/src/test/resources/factur-x-vis-extended.de.html diff --git a/library/src/main/resources/stylesheets/cii-xr.xsl b/library/src/main/resources/stylesheets/cii-xr.xsl index a27035b5..421fe673 100644 --- a/library/src/main/resources/stylesheets/cii-xr.xsl +++ b/library/src/main/resources/stylesheets/cii-xr.xsl @@ -154,6 +154,8 @@ select="./rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -216,7 +221,7 @@ - + diff --git a/library/src/main/resources/stylesheets/xrechnung-html.en.xsl b/library/src/main/resources/stylesheets/xrechnung-html.en.xsl index 161c8248..dd251fb7 100644 --- a/library/src/main/resources/stylesheets/xrechnung-html.en.xsl +++ b/library/src/main/resources/stylesheets/xrechnung-html.en.xsl @@ -84,6 +84,11 @@ + + + + + @@ -216,7 +221,7 @@ - + diff --git a/library/src/main/resources/stylesheets/xrechnung-html.fr.xsl b/library/src/main/resources/stylesheets/xrechnung-html.fr.xsl index 3d02ac2b..ccbafdd0 100644 --- a/library/src/main/resources/stylesheets/xrechnung-html.fr.xsl +++ b/library/src/main/resources/stylesheets/xrechnung-html.fr.xsl @@ -84,6 +84,11 @@ + + + + + @@ -216,7 +221,7 @@ - + diff --git a/library/src/main/resources/stylesheets/xrechnung-html.univ.xsl b/library/src/main/resources/stylesheets/xrechnung-html.univ.xsl index d33b1837..21b2883d 100644 --- a/library/src/main/resources/stylesheets/xrechnung-html.univ.xsl +++ b/library/src/main/resources/stylesheets/xrechnung-html.univ.xsl @@ -1151,6 +1151,10 @@ function downloadData (element_id) {
+ +
+ +
@@ -1560,6 +1564,37 @@ function downloadData (element_id) {
+ + + +
+
+
+
+
+
:
+
+
+
+
+
+
netto
+
+
+
+
+
+
+
+
+
+
:
+
+
+
+
+
+
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/VisualizationTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/VisualizationTest.java index 416eed72..a59199f4 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/VisualizationTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/VisualizationTest.java @@ -1,33 +1,34 @@ - -/** ********************************************************************** - * +/** + * ********************************************************************* + *

* Copyright 2019 Jochen Staerk - * + *

* Use is subject to license terms. - * + *

* Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy * of the License at http://www.apache.org/licenses/LICENSE-2.0. - * + *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * + *

* See the License for the specific language governing permissions and * limitations under the License. - * - *********************************************************************** */ + *

+ * ********************************************************************** + */ package org.mustangproject.ZUGFeRD; -import org.apache.commons.io.IOUtils; import org.junit.FixMethodOrder; import org.junit.runners.MethodSorters; import org.mustangproject.util.ByteArraySearcher; import org.xml.sax.SAXException; import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.*; -import java.io.*; +import javax.xml.transform.TransformerException; +import java.io.File; +import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; @@ -51,31 +52,83 @@ public class VisualizationTest extends ResourceCase { /* remove file endings so that tests can also pass after checking out from git with arbitrary options (which may include CSRF changes) */ - result = zvi.visualize(CIIinputFile.getAbsolutePath(),ZUGFeRDVisualizer.Language.FR).replace("\r","").replace("\n",""); + result = zvi.visualize(CIIinputFile.getAbsolutePath(), ZUGFeRDVisualizer.Language.FR) + .replace("\r", "") + .replace("\n", "") + .replace("\t", "") + .replace(" ", ""); - File expectedResult=getResourceAsFile("factur-x-vis.fr.html"); - expected = new String(Files.readAllBytes(expectedResult.toPath()), StandardCharsets.UTF_8).replace("\r","").replace("\n",""); + File expectedResult = getResourceAsFile("factur-x-vis.fr.html"); + expected = new String(Files.readAllBytes(expectedResult.toPath()), StandardCharsets.UTF_8) + .replace("\r", "") + .replace("\n", "") + .replace("\t", "") + .replace(" ", ""); // remove linebreaks as well... } catch (UnsupportedOperationException e) { - fail("UnsupportedOperationException should not happen: "+e.getMessage()); + fail("UnsupportedOperationException should not happen: " + e.getMessage()); } catch (IllegalArgumentException e) { - fail("IllegalArgumentException should not happen: "+e.getMessage()); + fail("IllegalArgumentException should not happen: " + e.getMessage()); } catch (TransformerException e) { - fail("TransformerException should not happen: "+e.getMessage()); + fail("TransformerException should not happen: " + e.getMessage()); } catch (IOException e) { - fail("IOException should not happen: "+e.getMessage()); + fail("IOException should not happen: " + e.getMessage()); } catch (ParserConfigurationException e) { - fail("ParserConfigurationException should not happen: "+e.getMessage()); - } catch (SAXException e) { - fail("SAXException should not happen: "+e.getMessage()); - } + fail("ParserConfigurationException should not happen: " + e.getMessage()); + } catch (SAXException e) { + fail("SAXException should not happen: " + e.getMessage()); + } - assertNotNull(result); + assertNotNull(result); // Reading ZUGFeRD assertEquals(expected, result); } + + public void testCIIVisualizationExtended() { + + // the writing part + String sourceFilename = "factur-x-extended.xml"; + File CIIinputFile = getResourceAsFile(sourceFilename); + + String expected = null; + String result = null; + try { + ZUGFeRDVisualizer zvi = new ZUGFeRDVisualizer(); + /* remove file endings so that tests can also pass after checking + out from git with arbitrary options (which may include CSRF changes) + */ + result = zvi.visualize(CIIinputFile.getAbsolutePath(), ZUGFeRDVisualizer.Language.DE).replace("\r", "").replace("\n", "") + .replace("\t", "") + .replace(" ", ""); + + File expectedResult = getResourceAsFile("factur-x-vis-extended.de.html"); + expected = new String(Files.readAllBytes(expectedResult.toPath()), StandardCharsets.UTF_8).replace("\r", "").replace("\n", "") + .replace("\t", "") + .replace(" ", ""); + // remove linebreaks as well... + + } catch (UnsupportedOperationException e) { + fail("UnsupportedOperationException should not happen: " + e.getMessage()); + } catch (IllegalArgumentException e) { + fail("IllegalArgumentException should not happen: " + e.getMessage()); + } catch (TransformerException e) { + fail("TransformerException should not happen: " + e.getMessage()); + } catch (IOException e) { + fail("IOException should not happen: " + e.getMessage()); + } catch (ParserConfigurationException e) { + fail("ParserConfigurationException should not happen: " + e.getMessage()); + } catch (SAXException e) { + fail("SAXException should not happen: " + e.getMessage()); + } + + + assertNotNull(result); + // Reading ZUGFeRD + assertEquals(expected, result); + } + public void testUBLCreditNoteVisualizationBasic() { // the writing part @@ -88,31 +141,33 @@ public class VisualizationTest extends ResourceCase { /* remove file endings so that tests can also pass after checking out from git with arbitrary options (which may include CSRF changes) */ - result = zvi.visualize(UBLinputFile.getAbsolutePath(),ZUGFeRDVisualizer.Language.EN).replace("\r","").replace("\n","").replace(" ","").replace("\t",""); + result = zvi.visualize(UBLinputFile.getAbsolutePath(), ZUGFeRDVisualizer.Language.EN).replace("\r", "").replace("\n", "").replace("\t", "").replace(" ", ""); - File expectedResult=getResourceAsFile("factur-x-vis-ubl-creditnote.en.html"); - expected = new String(Files.readAllBytes(expectedResult.toPath()), StandardCharsets.UTF_8).replace("\r","").replace("\n","").replace(" ","").replace("\t",""); + File expectedResult = getResourceAsFile("factur-x-vis-ubl-creditnote.en.html"); + expected = new String(Files.readAllBytes(expectedResult.toPath()), StandardCharsets.UTF_8).replace("\r", "").replace("\n", "").replace("\t", "").replace(" ", ""); // remove linebreaks as well... } catch (UnsupportedOperationException e) { - fail("UnsupportedOperationException should not happen: "+e.getMessage()); + fail("UnsupportedOperationException should not happen: " + e.getMessage()); } catch (IllegalArgumentException e) { - fail("IllegalArgumentException should not happen: "+e.getMessage()); + fail("IllegalArgumentException should not happen: " + e.getMessage()); } catch (TransformerException e) { - fail("TransformerException should not happen: "+e.getMessage()); + fail("TransformerException should not happen: " + e.getMessage()); } catch (IOException e) { - fail("IOException should not happen: "+e.getMessage()); + fail("IOException should not happen: " + e.getMessage()); } catch (ParserConfigurationException e) { - fail("ParserConfigurationException should not happen: "+e.getMessage()); - } catch (SAXException e) { - fail("SAXException should not happen: "+e.getMessage()); + fail("ParserConfigurationException should not happen: " + e.getMessage()); + } catch (SAXException e) { + fail("SAXException should not happen: " + e.getMessage()); } - assertNotNull(result); + assertNotNull(result); // Reading ZUGFeRD assertEquals(expected, result); } + + public void testUBLVisualizationBasic() { // the writing part @@ -125,28 +180,32 @@ public class VisualizationTest extends ResourceCase { /* remove file endings so that tests can also pass after checking out from git with arbitrary options (which may include CSRF changes) */ - result = zvi.visualize(UBLinputFile.getAbsolutePath(),ZUGFeRDVisualizer.Language.EN).replace("\r","").replace("\n",""); + result = zvi.visualize(UBLinputFile.getAbsolutePath(), ZUGFeRDVisualizer.Language.EN).replace("\r", "").replace("\n", "") + .replace("\t", "") + .replace(" ", ""); - File expectedResult=getResourceAsFile("factur-x-vis-ubl.en.html"); - expected = new String(Files.readAllBytes(expectedResult.toPath()), StandardCharsets.UTF_8).replace("\r","").replace("\n",""); + File expectedResult = getResourceAsFile("factur-x-vis-ubl.en.html"); + expected = new String(Files.readAllBytes(expectedResult.toPath()), StandardCharsets.UTF_8).replace("\r", "").replace("\n", "") + .replace("\t", "") + .replace(" ", ""); // remove linebreaks as well... } catch (UnsupportedOperationException e) { - fail("UnsupportedOperationException should not happen: "+e.getMessage()); + fail("UnsupportedOperationException should not happen: " + e.getMessage()); } catch (IllegalArgumentException e) { - fail("IllegalArgumentException should not happen: "+e.getMessage()); + fail("IllegalArgumentException should not happen: " + e.getMessage()); } catch (TransformerException e) { - fail("TransformerException should not happen: "+e.getMessage()); + fail("TransformerException should not happen: " + e.getMessage()); } catch (IOException e) { - fail("IOException should not happen: "+e.getMessage()); + fail("IOException should not happen: " + e.getMessage()); } catch (ParserConfigurationException e) { - fail("ParserConfigurationException should not happen: "+e.getMessage()); - } catch (SAXException e) { - fail("SAXException should not happen: "+e.getMessage()); - } + fail("ParserConfigurationException should not happen: " + e.getMessage()); + } catch (SAXException e) { + fail("SAXException should not happen: " + e.getMessage()); + } - assertNotNull(result); + assertNotNull(result); // Reading ZUGFeRD assertEquals(expected, result); } @@ -163,9 +222,9 @@ public class VisualizationTest extends ResourceCase { ZUGFeRDVisualizer zvi = new ZUGFeRDVisualizer(); zvi.toPDF(CIIinputFile.getAbsolutePath(), TARGET_PDF_CII); } catch (UnsupportedOperationException e) { - fail("UnsupportedOperationException should not happen: "+e.getMessage()); + fail("UnsupportedOperationException should not happen: " + e.getMessage()); } catch (IllegalArgumentException e) { - fail("IllegalArgumentException should not happen: "+e.getMessage()); + fail("IllegalArgumentException should not happen: " + e.getMessage()); } try { @@ -188,9 +247,9 @@ public class VisualizationTest extends ResourceCase { ZUGFeRDVisualizer zvi = new ZUGFeRDVisualizer(); zvi.toPDF(UBLinputFile.getAbsolutePath(), TARGET_PDF_UBL); } catch (UnsupportedOperationException e) { - fail("UnsupportedOperationException should not happen: "+e.getMessage()); + fail("UnsupportedOperationException should not happen: " + e.getMessage()); } catch (IllegalArgumentException e) { - fail("IllegalArgumentException should not happen: "+e.getMessage()); + fail("IllegalArgumentException should not happen: " + e.getMessage()); } @@ -214,9 +273,9 @@ public class VisualizationTest extends ResourceCase { ZUGFeRDVisualizer zvi = new ZUGFeRDVisualizer(); zvi.toPDF(UBLinputFile.getAbsolutePath(), TARGET_PDF_UBL); } catch (UnsupportedOperationException e) { - fail("UnsupportedOperationException should not happen: "+e.getMessage()); + fail("UnsupportedOperationException should not happen: " + e.getMessage()); } catch (IllegalArgumentException e) { - fail("IllegalArgumentException should not happen: "+e.getMessage()); + fail("IllegalArgumentException should not happen: " + e.getMessage()); } diff --git a/library/src/test/resources/factur-x-extended.xml b/library/src/test/resources/factur-x-extended.xml new file mode 100644 index 00000000..cfb77358 --- /dev/null +++ b/library/src/test/resources/factur-x-extended.xml @@ -0,0 +1,427 @@ + + + + + + + + + + true + + + urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended + + + + KR87654321012 + KOSTENRECHNUNG + 380 + + 20241115 + + + ST3 + Es bestehen Rabatt- oder Bonusvereinbarungen. + AAK + + + EEV + Der Verkäufer bleibt Eigentümer der Waren bis zur vollständigen Erfüllung der Kaufpreisforderung. + AAJ + + + MUSTERLIEFERANT GMBH +BAHNHOFSTRASSE 99 +99199 MUSTERHAUSEN +Geschäftsführung: +Max Mustermann +USt-IdNr: DE123456789 +Telefon: +49 932 431 0 +www.musterlieferant.de +HRB Nr. 372876 +Amtsgericht Musterstadt +GLN 4304171000002 + + REG + + + + + + 1 + + + 4123456000014 + WA997 + Wirkarbeit HT + + Zählpunkt + DE0001346484600000000000000100038 + + + + + 0.0520 + + + 0.0520 + + + + 1000.0000 + + + + VAT + S + 19.00 + + + 52.00 + + + + + + 2 + + + 4123456000021 + ÖST250 + Ökosteuer Lieferant + + + + 0.0205 + + + 0.0205 + + + + 1000.0000 + + + + VAT + S + 19.00 + + + 20.50 + + + + + + 3 + + + 4260331811362 + Kommissionierer 1250032 D. Muster + Besteller: Hr. Mayer, Personalnr. 4488 + + + + 15.0000 + + + false + + 4.50 + Artikelrabatt 1 + + + + 10.5000 + + + + 27.5000 + + + + VAT + S + 19.00 + + + 288.75 + + + + + + 4 + + + 2001015001325 + FB05 + FALTENBEUTEL 16x6x28 CM + + + + 0.0105 + + + 0.0105 + + + + 3500.0000 + + + + VAT + S + 19.00 + + + 36.75 + + + + + + 5 + + + 4123456000038 + KOP05 + Kopierpapier A4 + Zählerstand von-bis: 543210 - 544420 + + Zähler-Nr. + MG-X79318 + + + + + 0.0100 + + + 0.0100 + + + + 1210.0000 + + + + VAT + S + 19.00 + + + 12.10 + + + + + + 549910 + 4333741000005 + MUSTERLIEFERANT GMBH + + + +49 932 431 500 + + + max.mustermann@musterlieferant.de + + + + 99199 + BAHNHOFSTRASSE 99 + MUSTERHAUSEN + DE + + + 201/113/40209 + + + + 339420 + 4304171000002 + MUSTER-KUNDE GMBH + + 40235 + KUNDENWEG 88 + DUESSELDORF + DE + + + + A777123 + 130 + + + + + 4304171088093 + MUSTER-MARKT + + 7322 + + + 31157 + HAUPTSTRASSE 44 + SARSTEDT + DE + + + + + 20241030 + + + + L87654321012 + + + + EUR + + 339420 + 4304171000002 + MUSTER-KUNDE GMBH + + 40235 + KUNDENWEG 88 + DUESSELDORF + DE + + + + 76.67 + VAT + 403.55 + 410.10 + -6.55 + S + 19.00 + + + + false + + 410.10 + 21.55 + Sonderrabatt + + VAT + S + 19.00 + + + + Transportkosten: Frachbetrag + 15.00 + + VAT + S + 19.00 + + + + Skontovereinbarung: 2% bei Zahlung innerhalb 10 Tagen nach Rechnungsdatum + + 10 + 2.00 + + + + 410.10 + 15.00 + 21.55 + 403.55 + 76.67 + 480.22 + 0.00 + 480.22 + + + + diff --git a/library/src/test/resources/factur-x-vis-extended.de.html b/library/src/test/resources/factur-x-vis-extended.de.html new file mode 100644 index 00000000..bec60374 --- /dev/null +++ b/library/src/test/resources/factur-x-vis-extended.de.html @@ -0,0 +1,2419 @@ + + + + + XRechnung + + + + +

+ +
+
+
+
+
Wir übernehmen keine Haftung für die Richtigkeit der Daten.
+
+
+
+
Informationen zum Käufer
+
+
+
Leitweg-ID:
+
+
+
+
Name:
+
MUSTER-KUNDE GMBH
+
+
+
Straße / Haus-Nr.:
+
KUNDENWEG 88
+
+
+
Postfach:
+
+
+
+
Adresszusatz:
+
+
+
+
PLZ:
+
40235
+
+
+
Ort:
+
DUESSELDORF
+
+
+
Bundesland:
+
+
+
+
Land:
+
DE (Deutschland)
+
+
+
Kennung / Kunden-Nr.:
+
4304171000002
+
+
+
Schema der Kennung:
+
0088 (EAN + Location Code) +
+
+
+
Name:
+
+
+
+
Telefon:
+
+
+
+
E-Mail-Adresse:
+
+
+
+
+
+
+
Informationen zum Verkäufer
+
+
+
+
+
+
+
Firmenname:
+
MUSTERLIEFERANT GMBH
+
+
+
Straße / Haus-Nr.:
+
BAHNHOFSTRASSE 99
+
+
+
Postfach:
+
+
+
+
Adresszusatz:
+
+
+
+
PLZ:
+
99199
+
+
+
Ort:
+
MUSTERHAUSEN
+
+
+
Bundesland:
+
+
+
+
Ländercode:
+
DE (Deutschland)
+
+
+
Kennung:
+
4333741000005
+
+
+
Schema der Kennung:
+
0088 (EAN + Location Code) +
+
+
+
Name:
+
+
+
+
Telefon:
+
+49 932 431 500
+
+
+
E-Mail-Adresse:
+
max.mustermann@musterlieferant.de +
+
+
+
+
+
+
+
+
+
Rechnungsdaten
+
+
+
+
+
Rechnungsnummer:
+
KR87654321012
+
+
+
Rechnungsdatum:
+
15.11.2024
+
+
+
Rechnungsart:
+
380 (Commercial invoice)
+
+
+
Währung
+
EUR (Euro)
+
+
+

Abrechnungszeitraum:

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

Vorausgegangene Rechnungen:

+
+
+
+
+
+
+
+
+
Gesamtbeträge der Rechnung
+
+
+
Summe aller Positionen
+
netto
+
410,10
+
+
+
Summe Nachlässe
+
netto
+
21,55
+
+
+
Summe Zuschläge
+
netto
+
+ 15,00 +
+
+
+
Gesamtsumme
+
netto
+
403,55
+
+
+
Summe Umsatzsteuer
+
+
+
+
+
Summe Umsatzsteuer in + Abrechnungswährung +
+
+
+ 76,67 +
+
+
+
Gesamtsumme
+
brutto
+
480,22
+
+
+
Gezahlter Betrag
+
brutto
+
0,00
+
+
+
Rundungsbetrag
+
brutto
+
+
+
+
Fälliger Betrag
+
brutto
+
480,22 +
+
+
+
+
+
+
+
+
+
Aufschlüsselung der Umsatzsteuer auf Ebene der + Rechnung +
+
+
+
Umsatzsteuerkategorie: S (Standard rate) +
+
+
+
+
+
Gesamtsumme
+
netto
+
403,55
+
+
+
Umsatzsteuersatz
+
+
19.00%
+
+
+
Umsatzsteuerbetrag
+
+
76,67
+
+
+
+
Befreiungsgrund:
+
Kennung für den Befreiungsgrund: +
+
+
+
+
+
+
+
+
Nachlass auf Ebene der Rechnung
+
+
+
Umsatzsteuerkategorie des Nachlasses: S (Standard rate)
+
+
+
+
+
Grundbetrag
+
netto
+
410,10
+
+
+
Prozentsatz
+
+
%
+
+
+
Nachlass
+
netto
+
21,55
+
+
+
Umsatzsteuersatz des Nachlasses
+
+
19.00
+
+
+
+
Grund für den Nachlass: Sonderrabatt +
+
Document level allowance reason code:
+
+
+
+
+
+
+
+
+
+
Versandkosten
+
+
+
Umsatzsteuerkategorie der Versandkosten: S (Standard rate)
+
+
+
+
+
Betrag
+
netto
+
15,00
+
+
+
Umsatzsteuersatz der Versandkosten
+
+
19.00
+
+
+
+
Versandkostenbeschreibung: Transportkosten: Frachbetrag +
+
+
+
+
+
+
+
+
+
Zahlungsdaten
+
+
+
Skonto; weitere Zahlungsbed.:
+
#SKONTO# TAGE =10#PROZENT=2.00# + Skontovereinbarung: 2% bei Zahlung innerhalb 10 Tagen nach Rechnungsdatum +
+
+
+
Fälligkeitsdatum:
+
+
+
+
Code für das Zahlungsmittel:
+
+
+
+
Zahlungsmittel:
+
+
+
+
Verwendungszweck:
+
+
+
+
+
+
Karteninformation
+
+
+
Kartennummer:
+
+
+
+
Karteninhaber:
+
+
+
+
+
+
+
+
+
+
Lastschrift
+
+
+
Mandatsreferenznr.:
+
+
+
+
IBAN:
+
+
+
+
Gläubiger-ID:
+
+
+
+
+
+
Überweisung
+
+
+
+
+
+
+
Bemerkung zur Rechnung
+
+
+
Betreff:
+
AAK (Price conditions)
+
+
+
Bemerkung:
+
Es bestehen Rabatt- oder + Bonusvereinbarungen. +
+
+
+
+
+
Bemerkung zur Rechnung
+
+
+
Betreff:
+
AAJ (Additional conditions of + sale/purchase) +
+
+
+
Bemerkung:
+
Der Verkäufer bleibt Eigentümer der + Waren bis zur vollständigen Erfüllung der Kaufpreisforderung. +
+
+
+
+
+
Bemerkung zur Rechnung
+
+
+
Betreff:
+
REG (Regulatory information)
+
+
+
Bemerkung:
+
MUSTERLIEFERANT GMBH BAHNHOFSTRASSE + 99 99199 MUSTERHAUSEN Geschäftsführung: Max Mustermann USt-IdNr: DE123456789 + Telefon: +49 932 431 0 www.musterlieferant.de HRB Nr. 372876 Amtsgericht Musterstadt + GLN 4304171000002 +
+
+
+
+
+
+
+
+
Wir übernehmen keine Haftung für die Richtigkeit der Daten.
+
+
+
+
Position1
+
+
+
Freitext:
+
+
+
+
Objektkennung:
+
+
+
+
Schema der Objektkennung:
+
+
+
+
Nummer der Auftragsposition:
+
+
+
+
Kontierungshinweis /Kostenstelle:
+
+
+

Abrechnungszeitraum:

+
+
von:
+
+
+
+
bis:
+
+
+
+
+
+
Preiseinzelheiten
+
+
+
Menge
+
1000.0000
+
+
+
Einheit
+
KWH (kilowatt hour)
+
+
+
Preis pro Einheit (netto)
+
0,05
+
+
+
Gesamtpreis (netto)
+
52,00
+
+
+
+
+
Rabatt (netto):
+
+
+
+
Listenpreis (netto):
+
0,05
+
+
+
Anzahl der Einheit:
+
+
+
+
Code der Maßeinheit:
+
+
+
+
Umsatzsteuer:
+
S (Standard rate)
+
+
+
Umsatzsteuersatz in %:
+
19%
+
+
+
+
+
+
+
+
+
Nachlässe auf Ebene der + Rechnungsposition +
+
+
+
Zuschläge auf Ebene der + Rechnungsposition +
+
+
+
+
+
+
+
Artikelinformationen
+
+
+
+
+
+
Bezeichnung:
+
Wirkarbeit HT +
+
+
+
Beschreibung:
+
+
+
+
Artikelnummer:
+
WA997
+
+
+
Kunden-Material-Nr.:
+
+
+

Eigenschaften des Artikels:

+
+
Zählpunkt
+
+ DE0001346484600000000000000100038 +
+
+
+
+
+
+
+
+
Artikelkennung (EAN):
+
4123456000014
+
+
+
Schema der Artikelkennung:
+
+ 0088 (EAN Location Code) +
+
+
+
Code der Artikelklassifizierung:
+
+
+
+
Kennung zur Bildung des Schemas:
+
+
+
+
Version zur Bildung des Schemas:
+
+
+
+
Code des Herkunftslandes:
+
+
+
+
+
+
+
+
+
+
+
+
+
Position2
+
+
+
Freitext:
+
+
+
+
Objektkennung:
+
+
+
+
Schema der Objektkennung:
+
+
+
+
Nummer der Auftragsposition:
+
+
+
+
Kontierungshinweis /Kostenstelle:
+
+
+

Abrechnungszeitraum:

+
+
von:
+
+
+
+
bis:
+
+
+
+
+
+
Preiseinzelheiten
+
+
+
Menge
+
1000.0000
+
+
+
Einheit
+
KWH (kilowatt hour)
+
+
+
Preis pro Einheit (netto)
+
0,02
+
+
+
Gesamtpreis (netto)
+
20,50
+
+
+
+
+
Rabatt (netto):
+
+
+
+
Listenpreis (netto):
+
0,02
+
+
+
Anzahl der Einheit:
+
+
+
+
Code der Maßeinheit:
+
+
+
+
Umsatzsteuer:
+
S (Standard rate)
+
+
+
Umsatzsteuersatz in %:
+
19%
+
+
+
+
+
+
+
+
+
Nachlässe auf Ebene der + Rechnungsposition +
+
+
+
Zuschläge auf Ebene der + Rechnungsposition +
+
+
+
+
+
+
+
Artikelinformationen
+
+
+
+
+
+
Bezeichnung:
+
Ökosteuer + Lieferant +
+
+
+
Beschreibung:
+
+
+
+
Artikelnummer:
+
ÖST250
+
+
+
Kunden-Material-Nr.:
+
+
+

Eigenschaften des Artikels:

+
+
+
+
+
+
Artikelkennung (EAN):
+
4123456000021
+
+
+
Schema der Artikelkennung:
+
+ 0088 (EAN Location Code) +
+
+
+
Code der Artikelklassifizierung:
+
+
+
+
Kennung zur Bildung des Schemas:
+
+
+
+
Version zur Bildung des Schemas:
+
+
+
+
Code des Herkunftslandes:
+
+
+
+
+
+
+
+
+
+
+
+
+
Position3
+
+
+
Freitext:
+
+
+
+
Objektkennung:
+
+
+
+
Schema der Objektkennung:
+
+
+
+
Nummer der Auftragsposition:
+
+
+
+
Kontierungshinweis /Kostenstelle:
+
+
+

Abrechnungszeitraum:

+
+
von:
+
+
+
+
bis:
+
+
+
+
+
+
Preiseinzelheiten
+
+
+
Menge
+
27.5000
+
+
+
Einheit
+
HUR (hour)
+
+
+
Preis pro Einheit (netto)
+
10,50
+
+
+
Gesamtpreis (netto)
+
288,75
+
+
+
+
+
Rabatt (netto):
+
4,50
+
+
+
Listenpreis (netto):
+
15,00
+
+
+
Anzahl der Einheit:
+
+
+
+
Code der Maßeinheit:
+
+
+
+
Umsatzsteuer:
+
S (Standard rate)
+
+
+
Umsatzsteuersatz in %:
+
19%
+
+
+
+
+
+
+
+
+
Nachlässe auf Ebene der + Rechnungsposition +
+
+
+
Zuschläge auf Ebene der + Rechnungsposition +
+
+
+
+
+
+
+
Artikelinformationen
+
+
+
+
+
+
Bezeichnung:
+
Kommissionierer + 1250032 D. Muster +
+
+
+
Beschreibung:
+
Besteller: Hr. Mayer, + Personalnr. 4488 +
+
+
+
Artikelnummer:
+
+
+
+
Kunden-Material-Nr.:
+
+
+

Eigenschaften des Artikels:

+
+
+
+
+
+
Artikelkennung (EAN):
+
4260331811362
+
+
+
Schema der Artikelkennung:
+
+ 0088 (EAN Location Code) +
+
+
+
Code der Artikelklassifizierung:
+
+
+
+
Kennung zur Bildung des Schemas:
+
+
+
+
Version zur Bildung des Schemas:
+
+
+
+
Code des Herkunftslandes:
+
+
+
+
+
+
+
+
+
+
+
+
+
Position4
+
+
+
Freitext:
+
+
+
+
Objektkennung:
+
+
+
+
Schema der Objektkennung:
+
+
+
+
Nummer der Auftragsposition:
+
+
+
+
Kontierungshinweis /Kostenstelle:
+
+
+

Abrechnungszeitraum:

+
+
von:
+
+
+
+
bis:
+
+
+
+
+
+
Preiseinzelheiten
+
+
+
Menge
+
3500.0000
+
+
+
Einheit
+
H87 (piece)
+
+
+
Preis pro Einheit (netto)
+
0,01
+
+
+
Gesamtpreis (netto)
+
36,75
+
+
+
+
+
Rabatt (netto):
+
+
+
+
Listenpreis (netto):
+
0,01
+
+
+
Anzahl der Einheit:
+
+
+
+
Code der Maßeinheit:
+
+
+
+
Umsatzsteuer:
+
S (Standard rate)
+
+
+
Umsatzsteuersatz in %:
+
19%
+
+
+
+
+
+
+
+
+
Nachlässe auf Ebene der + Rechnungsposition +
+
+
+
Zuschläge auf Ebene der + Rechnungsposition +
+
+
+
+
+
+
+
Artikelinformationen
+
+
+
+
+
+
Bezeichnung:
+
FALTENBEUTEL + 16x6x28 CM +
+
+
+
Beschreibung:
+
+
+
+
Artikelnummer:
+
FB05
+
+
+
Kunden-Material-Nr.:
+
+
+

Eigenschaften des Artikels:

+
+
+
+
+
+
Artikelkennung (EAN):
+
2001015001325
+
+
+
Schema der Artikelkennung:
+
+ 0088 (EAN Location Code) +
+
+
+
Code der Artikelklassifizierung:
+
+
+
+
Kennung zur Bildung des Schemas:
+
+
+
+
Version zur Bildung des Schemas:
+
+
+
+
Code des Herkunftslandes:
+
+
+
+
+
+
+
+
+
+
+
+
+
Position5
+
+
+
Freitext:
+
+
+
+
Objektkennung:
+
+
+
+
Schema der Objektkennung:
+
+
+
+
Nummer der Auftragsposition:
+
+
+
+
Kontierungshinweis /Kostenstelle:
+
+
+

Abrechnungszeitraum:

+
+
von:
+
+
+
+
bis:
+
+
+
+
+
+
Preiseinzelheiten
+
+
+
Menge
+
1210.0000
+
+
+
Einheit
+
H87 (piece)
+
+
+
Preis pro Einheit (netto)
+
0,01
+
+
+
Gesamtpreis (netto)
+
12,10
+
+
+
+
+
Rabatt (netto):
+
+
+
+
Listenpreis (netto):
+
0,01
+
+
+
Anzahl der Einheit:
+
+
+
+
Code der Maßeinheit:
+
+
+
+
Umsatzsteuer:
+
S (Standard rate)
+
+
+
Umsatzsteuersatz in %:
+
19%
+
+
+
+
+
+
+
+
+
Nachlässe auf Ebene der + Rechnungsposition +
+
+
+
Zuschläge auf Ebene der + Rechnungsposition +
+
+
+
+
+
+
+
Artikelinformationen
+
+
+
+
+
+
Bezeichnung:
+
Kopierpapier A4 +
+
+
+
Beschreibung:
+
Zählerstand von-bis: + 543210 - 544420 +
+
+
+
Artikelnummer:
+
KOP05
+
+
+
Kunden-Material-Nr.:
+
+
+

Eigenschaften des Artikels:

+
+
Zähler-Nr.
+
MG-X79318
+
+
+
+
+
+
+
+
Artikelkennung (EAN):
+
4123456000038
+
+
+
Schema der Artikelkennung:
+
+ 0088 (EAN Location Code) +
+
+
+
Code der Artikelklassifizierung:
+
+
+
+
Kennung zur Bildung des Schemas:
+
+
+
+
Version zur Bildung des Schemas:
+
+
+
+
Code des Herkunftslandes:
+
+
+
+
+
+
+
+
+
+
+
+
Wir übernehmen keine Haftung für die Richtigkeit der Daten.
+
+
+
+
Informationen zum Verkäufer
+
+
+
Abweichender Handelsname:
+
+
+
+
Bundesland:
+
+
+
+
Elektronische Adresse:
+
+
+
+
Schema der elektronischen Adresse:
+
+
+
+
Register-/Registriernummer:
+
+
+
+
Umsatzsteuer-ID:
+
+
+
+
Steuernummer:
+
201/113/40209
+
+
+
Schema der Steuernummer:
+
+
+
+
Weitere rechtliche Informationen:
+
+
+
+
Code der Umsatzsteuerwährung:
+
+
+
+
+
+
+
+
+
+
+
Informationen zum Käufer
+
+
+
Abweichender Handelsname:
+
+
+
+
Bundesland:
+
+
+
+
Elektronische Adresse:
+
+
+
+
Schema der elektronischen Adresse:
+
+
+
+
Register-/Registriernummer:
+
+
+
+
Schema der Register-/Registriernummer:
+
+
+
+
Umsatzsteuer-ID:
+
+
+
+
Abrechnungsdatum der Umsatzsteuer:
+
+
+
+
Code des Umsatzsteuer-Abrechnungsdatums:
+
+
+
+
Kontierungsinformation / Kostenstelle:
+
+
+
+
+
+
+
Lieferinformationen
+
+
+
Kennung des Lieferorts:
+
4304171088093
+
+
+
Schema der Kennung:
+
0088
+
+
+
Lieferdatum:
+
30.10.2024
+
+
+
Name des Empfängers:
+
MUSTER-MARKT
+
+
+
Straße / Haus-Nr.:
+
HAUPTSTRASSE 44
+
+
+
Postfach:
+
+
+
+
Adresszusatz:
+
+
+
+
PLZ:
+
31157
+
+
+
Ort:
+
SARSTEDT
+
+
+
Bundesland:
+
+
+
+
Land:
+
DE (Deutschland)
+
+
+
+
+
+
+
+
+
Vertragsdaten
+
+
+
Vergabenummer:
+
+
+
+
Kennung der Empfangsbestätigung:
+
+
+
+
Kennung der Versandanzeige:
+
+
+
+
Prozesskennung:
+
+
+
+
Spezifikationskennung:
+
+ urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended +
+
+
+
Objektkennung:
+
A777123
+
+
+
Schema der Objektkennung:
+
+
+
+
+
+
+
+
+
+
Wir übernehmen keine Haftung für die Richtigkeit der Daten.
+
+
+
+
Rechnungsbegründende Unterlagen
+
+
+
+
+
+
+
+
+
Bearbeitungshistorie
+
+
+
+
+
+
+ + + diff --git a/library/src/test/resources/factur-x-vis-ubl-creditnote.en.html b/library/src/test/resources/factur-x-vis-ubl-creditnote.en.html index f5855ab2..9e849b32 100644 --- a/library/src/test/resources/factur-x-vis-ubl-creditnote.en.html +++ b/library/src/test/resources/factur-x-vis-ubl-creditnote.en.html @@ -1359,6 +1359,7 @@
+
@@ -2625,4 +2626,4 @@ function downloadData (element_id) { }); // - \ No newline at end of file + diff --git a/library/src/test/resources/factur-x-vis-ubl.en.html b/library/src/test/resources/factur-x-vis-ubl.en.html index 7f80320c..9dd2506a 100644 --- a/library/src/test/resources/factur-x-vis-ubl.en.html +++ b/library/src/test/resources/factur-x-vis-ubl.en.html @@ -1221,6 +1221,7 @@
+
@@ -1946,4 +1947,4 @@ function downloadData (element_id) { }); // - \ No newline at end of file + diff --git a/library/src/test/resources/factur-x-vis.fr.html b/library/src/test/resources/factur-x-vis.fr.html index 76efd248..0b91ac44 100644 --- a/library/src/test/resources/factur-x-vis.fr.html +++ b/library/src/test/resources/factur-x-vis.fr.html @@ -1252,6 +1252,7 @@
+
@@ -2118,4 +2119,4 @@ function downloadData (element_id) { }); // - \ No newline at end of file +