konik-io/konik

Preise und Zwischenwerte bei der Rabattberechnung müssen nach der ZUGFeRD-Vorgabe mit 4 Nachkommastellen angegeben werden.

StefanSchmaltz opened this issue · 18 comments

Hallo, wir verwenden Konik 1.2.9 mit java.
Beim Validieren der generierten Rechnung auf https://www.din-zugferd-validation.org erhalten wir folgenden Fehler:
"Preise und Zwischenwerte bei der Rabattberechnung müssen nach der ZUGFeRD-Vorgabe mit 4 Nachkommastellen angegeben werden."

In der Datei steht tatsächlich auch nur mit 2 Nachkommastellen:
<ram:BasisAmount currencyID="EUR">515.00</ram:BasisAmount>
<ram:ActualAmount currencyID="EUR">10.00</ram:ActualAmount>
ram:ReasonRabatt (absolut) </ram:Reason>

Allerdings verwenden wir ein BigDecimal mit 4 Nachkommastellen:
double netamout = 10d;
charge.setActual(new Amount(BigDecimal.valueOf(netamount).setScale(4), currencyCode));

-->Scheinbar beachtet konik dies nicht.
-->Bug? Workaround?

Hallo,
Ich hatte das Selbe Problem wie du! Deswegen habe ich das Projekt geforked, den Fehler behoben und gerade deinen Pull-Reqeust erstellt. Die Validierung wurde auf die Nachkommastellen erweitert, wie es auch bei https://www.din-zugferd-validation.org/ getan wird.

Hoffe, der Pull-Request wird bald bearbeitet und bereitet keine größeren Probleme.

From 6.5.2

  1. Amounts are specified with 2 decimal places and rounded if necessary (e.g. 15.00).
    AmountType with 2 decimal places with the exception of the rule below (All prices and intermediate values for discount calculation at item level).

  2. Prices and intermediate values for the discount calculation are specified with 4 decimal places (e.g. 0.66667). What is meant is that all prices are shown with 4 decimals as well as all intermediate values for the discount calculation.

Basically you could say: "Where to calculate to get an amount with 4 decimal places, otherwise with 2".

Hallo,

ich nutze die .NET-Version von Konik. Aus einem anderen Programm wird mir bereits die XML-Struktur erzeugt. Die muss nur noch mit dem PDF gemergt werden.

Die mache ich auf folgende Art:
ikvm.runtime.Startup.addBootClassPathAssembly(typeof(io.konik.zugferd.ObjectFactory).Assembly);

                        io.konik.PdfHandler pdf = new io.konik.PdfHandler();
                        io.konik.InvoiceTransformer transform = new io.konik.InvoiceTransformer();
                        java.io.File xmlDatei = new java.io.File(XML);
                        io.konik.zugferd.Invoice invoice = transform.toModel(xmlDatei);
                       
                        java.io.InputStream pdfDatei = new java.io.FileInputStream(PDF);
                        java.io.OutputStream pdfDateiZiel = new java.io.FileOutputStream(PDFZiel);

                        pdf.appendInvoice(invoice, pdfDatei, pdfDateiZiel);

Leider werden, wie bei meinen Kollegen oben, die Werte ohne Nachkommastellen dargestellt und die Validierung per https://www.din-zugferd-validation.org schlägt fehl.

Gibt es eine Lösung für die .NET-Version?

Gruss Gregor Glinka

Hallo Gregor,
kannst du eine e-mail mitteilen ich sende dir die neueste DLL version.

Hallo,
ich habe leider das gleiche Problem mit den Nachkommastellen.

Kann man irgendwo die aktuelle DLL downloaden?

Hallo zusammen,

gibt es inzw. einen Workaround oder einen Fix für den folgenden o.g. Fehler:

System.IO.FileNotFoundException: "Die Datei oder Assembly "ZUGFeRD.NET-1.3.2-SNAPSHOT, Version=1.3.2.0, Culture=neutral, PublicKeyToken=ff86d12d3bcaf7de" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden."
???
Den bekomme ich nämlich auch

Gruß Marcus

Es sollte keine Fehler geben. Kannst Du einen codebeispiel hier posten?

Ich habe es mir noch mal angeschaut. Die Fehlermeldung sagt es eigentlich schon:

System.IO.FileNotFoundException: "Die Datei oder Assembly "ZUGFeRD.NET-1.3.2-SNAPSHOT, Version=1.3.2.0, Culture=neutral, PublicKeyToken=ff86d12d3bcaf7de" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden."

Der DLL Name sollte in ZUGFeRD.NET-1.3.2-SNAPSHOT.dll geändert werden oder das Assembly Namen sollte auf ZUGFeRD.NET-1.3.2 angepasst werden.

Hallo Zusammen,

ich habe das gleiche Problem mit der Version 1.2.9.3. Gibt es die neuere ZUGFeRD.NET-1.3.2.dll noch irgendwo zum downloaden?

Vielen Dank und schöne Grüße!

Hallo Zusammen,

vielen Dank Gregor!

Leider besteht das Problem scheinbar auch unter der 1.3.2, dh. konkret:

(0106)         <ram:SpecifiedTradeSettlementMonetarySummation>
(0107)           <ram:LineTotalAmount currencyID="EUR">490.00</ram:LineTotalAmount>
(0108)           <ram:TotalAllowanceChargeAmount currencyID="EUR">0.00</ram:TotalAllowanceChargeAmount>
(0109)         </ram:SpecifiedTradeSettlementMonetarySummation>

(0108) Preise und Zwischenwerte bei der Rabattberechnung müssen nach der ZUGFeRD-Vorgabe mit 4 Nachkommastellen angegeben werden.

Hat jemand eine Idee oder kann das bestätigen?

Viele Grüße und einen guten Start ins Wochenende!

Ich habe genau das selbe Problem, trotz ZUGFeRD.NET-1.3.2-SNAPSHOT.dll (10.09.219 08:41):

##############
GEFEG.FX Prüfung


Referenz-Standard : ZUGFeRD_extended; 1.00

Notizen


ZUGFeRD (PDF-Metadaten) Typ: INVOICE
ZUGFeRD (PDF-Metadaten) Version: 1.0
ZUGFeRD (PDF-Metadaten) Profil: EXTENDED
ZUGFeRD (PDF-Metadaten) Dateiname - OK
ZUGFeRD (PDF-Metadaten) - OK

(Zeilennummer) - Fehler / Hinweise


(0142) Preise und Zwischenwerte bei der Rabattberechnung müssen nach der ZUGFeRD-Vorgabe mit 4 Nachkommastellen angegeben werden.

Nachricht


(0140) ram:SpecifiedTradeSettlementMonetarySummation
(0141) <ram:LineTotalAmount currencyID="EUR">240.00</ram:LineTotalAmount>
(0142) <ram:TotalAllowanceChargeAmount currencyID="EUR">0.00</ram:TotalAllowanceChargeAmount>
(0143) </ram:SpecifiedTradeSettlementMonetarySummation>
##############

Viele Grüße Günther

@devbdro der GEFEG.FX Prüfung prüft nicht unbedingt korrekt schau mal hier https://www.zugferd-community.net/de/open_community/validation

Vielen Dank für diesen wichtigen Hinweis, Vad1mo!

Das war wohl tatsächlich die Ursache. Die Validierung bei https://www.zugferd-community.net/de/open_community/validation war erfolgreich und liefert folgendes Ergebnis:

Das ZUGFeRD-PDF ist valide.
Profile: PDF/A-3B validation profile
Statement: PDF file is compliant with Validation Profile requirements.
Signature: Konik
Passed checks: 3921
Passed rules: 123
Failed checks: 0
Failed rules: 0

So einfach kann es also sein...

Viele Grüße Günther