itplr-kosit / validator-configuration-xrechnung

Configuration for validating documents against the German XRechnung standard using the KoSIT validation tool
https://xeinkauf.de/xrechnung/
Apache License 2.0
64 stars 17 forks source link

Bug: "FORG0001: Invalid date (Day must be two digits)" bei der Transformation von ZUGFeRD nach PDF #91

Closed ValeryBichlmeier closed 4 months ago

ValeryBichlmeier commented 5 months ago

Bei der Transformation mittels xr-pdf.xsl einer ZUGFeRD-Datei, welche mehrere SpecifiedTradePaymentTerms Knoten beinhaltet, kommt es zu einem Fehler mit folgender Ausgabe:

Matched BG-13
Matched BG-16
Error evaluating ((useAS, ...)) in xsl:value-of/@select on line 197 column 159 of content-templates.xsl:
  FORG0001: Invalid date "2024-07-06;2024-06-20" (Day must be two digits)
  In template rule with match="*" on line 172 of content-templates.xsl
     invoked by xsl:apply-templates at file:/D:/Projekte/feOpenXRechnungToolbox/resources/viewer/xr-content.xsl#372
at template uebersichtZahlungInfo_Content on line 368 of xr-content.xsl:
     invoked by xsl:call-template at file:/D:/Projekte/feOpenXRechnungToolbox/resources/viewer/xr-content.xsl#359
at template uebersichtZahlungInfo on line 355 of xr-content.xsl:
     invoked by xsl:call-template at file:/D:/Projekte/feOpenXRechnungToolbox/resources/viewer/xr-content.xsl#31
at template uebersicht_Content on line 22 of xr-content.xsl:
     invoked by xsl:call-template at file:/D:/Projekte/feOpenXRechnungToolbox/resources/viewer/xr-content.xsl#17
at template uebersicht on line 13 of xr-content.xsl:
     invoked by xsl:call-template at file:///D:/Projekte/feOpenXRechnungToolbox/resources/viewer/xr-pdf.xsl#85
  In template rule with match="element(Q{urn:ce.eu:en16931:2017:xoev-de:kosit:standard:xrechnung-1}invoice)" on line 59 of xr-pdf.xsl
     invoked by built-in template rule (text-only)

Ich denke der Fehler hängt damit zusammen, dass es laut ZUGFeRD Standard mehrere SpecifiedTradePaymentTerms geben darf, während die Anzahl des Payment due date Äquivalents bei XRechnung auf eins bechränkt ist.

Screenshot 2024-06-18 132200 x

Bei der Transformation von ZUGFeRD nach XRechnung werden mehrfach vorkommende Elemente des Fälligkeitsdatums durch Strichpunkte getrennt zu einem Wert fusioniert. Bei der anschließenden Transformation nach HTML durch der Visualizer, wird dieser fusionierte Wert korrekt interpretiert und die einzelnen Datumsangaben werden korrekt aufgelistet.

Screenshot 2024-06-18 125756

Bei der Transformation nach PDF funktioniert diese Handhabung jedoch nicht und es wird stattdessen der oben genannte Fehler ausgegeben. Beschränkt man die Anzahl der SpecifiedTradePaymentTerms Elemente in der ZUGFeRD künstlich auf 1, so funktioniert die PDF Transformation wieder einwandfrei. Für die Reproduktion des Fehlers habe zwei Beispiele angehängt, welche sich lediglich bei der Anzahl der SpecifiedTradePaymentTerms Elemente unterscheiden.

examples.zip

lkumai commented 4 months ago

Vielen Dank für Ihren Beitrag! Das Visualisierungstool ist für Rechnungen ausgelegt, die durch den KoSIT Validator als valide bestätigt wurden. Wenn man die Kennung auf XRechnung ändert, werfen beide Rechnungen Fehler. Bei der _not_working_example.xml wird u.a. auf die EN16931-Regel (nicht XRechnungsregel) CII-SR-452 verwiesen (Only one SpecifiedTradePaymentTerms should be present): Bildschirm­foto 2024-07-11 um 13 13 11 Die Visualisierung kann an die eigenen Bedürfnisse angepasst werden, aber nicht valide Szenarien werden von der Visualisierung nicht berücksichtigt.