diff --git a/pdf_renderer.py b/pdf_renderer.py index c554322..d1fcce9 100644 --- a/pdf_renderer.py +++ b/pdf_renderer.py @@ -368,11 +368,17 @@ def _kenndaten(rechnung, kopf): Das Steuerjournal (Programm "Beherbergungssteuer") liest sie von dort aus, statt Nachname und Betraege aus dem Fliesstext zu raten. Fuer den Ausdruck aendert sich nichts - Metadaten stehen nicht auf dem Blatt. + + Version 2 ergaenzt die USt-Aufteilung ("ust_bloecke") fuers dritte Programm, + den Steuerrechner: der braucht Brutto->Netto je Steuersatz, und 7 % und 19 % + stecken auf einer Rechnung gemischt drin. Alle Felder der Version 1 bleiben + unveraendert stehen - am "zwischensumme"/"steuer_satz"/"steuer_betrag" haengt + der Import des Steuerjournals, das darf nicht brechen. """ aufschlag = rechnung.aufschlaege[0] if rechnung.aufschlaege else None daten = { "quelle": "rechnungstool", - "version": 1, + "version": 2, "rechnungsnummer": kopf.get("rechnungsnummer", ""), "datum": kopf.get("datum", ""), "nachname": kopf.get("nachname", ""), @@ -382,6 +388,14 @@ def _kenndaten(rechnung, kopf): "steuer_satz": float(aufschlag.satz) if aufschlag else 0.0, "steuer_betrag": runde(aufschlag.betrag) if aufschlag else 0.0, "gesamt": runde(rechnung.gesamt), + # neu in Version 2: je USt-Satz ein Block (Netto, enthaltene USt, Brutto) + "netto_gesamt": runde(rechnung.netto_gesamt), + "ust_gesamt": runde(rechnung.ust_gesamt), + "ust_bloecke": [ + {"satz": b.satz, "netto": runde(b.netto), "ust": runde(b.ust), + "brutto": runde(b.brutto)} + for b in rechnung.bloecke + ], } return json.dumps(daten, ensure_ascii=False)