Kenndaten-Metadaten v2: USt-Aufteilung je Satz
Der Steuerrechner braucht Brutto->Netto je Steuersatz; auf einer Rechnung
stecken 7 % (Uebernachtung) und 19 % (Waesche, Gas, Rad) gemischt drin, und
die Aufteilung stand bisher nur im Fliesstext.
Neu in /Subject: netto_gesamt, ust_gesamt, ust_bloecke[{satz,netto,ust,brutto}].
Alle Felder der Version 1 bleiben unveraendert - am zwischensumme/steuer_satz/
steuer_betrag haengt der Import des Steuerjournals.
Verifiziert an einer gemischten Testrechnung (7 % + 19 %): Summe der Bloecke
= Zwischensumme = netto_gesamt + ust_gesamt; Steuerjournal liest die v2-PDF
unveraendert ein.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TxFbNUnzkEk7FRFcZQoepm
This commit is contained in:
parent
b5799a60a1
commit
a0cfc31ae6
1 changed files with 15 additions and 1 deletions
|
|
@ -368,11 +368,17 @@ def _kenndaten(rechnung, kopf):
|
||||||
Das Steuerjournal (Programm "Beherbergungssteuer") liest sie von dort aus,
|
Das Steuerjournal (Programm "Beherbergungssteuer") liest sie von dort aus,
|
||||||
statt Nachname und Betraege aus dem Fliesstext zu raten. Fuer den Ausdruck
|
statt Nachname und Betraege aus dem Fliesstext zu raten. Fuer den Ausdruck
|
||||||
aendert sich nichts - Metadaten stehen nicht auf dem Blatt.
|
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
|
aufschlag = rechnung.aufschlaege[0] if rechnung.aufschlaege else None
|
||||||
daten = {
|
daten = {
|
||||||
"quelle": "rechnungstool",
|
"quelle": "rechnungstool",
|
||||||
"version": 1,
|
"version": 2,
|
||||||
"rechnungsnummer": kopf.get("rechnungsnummer", ""),
|
"rechnungsnummer": kopf.get("rechnungsnummer", ""),
|
||||||
"datum": kopf.get("datum", ""),
|
"datum": kopf.get("datum", ""),
|
||||||
"nachname": kopf.get("nachname", ""),
|
"nachname": kopf.get("nachname", ""),
|
||||||
|
|
@ -382,6 +388,14 @@ def _kenndaten(rechnung, kopf):
|
||||||
"steuer_satz": float(aufschlag.satz) if aufschlag else 0.0,
|
"steuer_satz": float(aufschlag.satz) if aufschlag else 0.0,
|
||||||
"steuer_betrag": runde(aufschlag.betrag) if aufschlag else 0.0,
|
"steuer_betrag": runde(aufschlag.betrag) if aufschlag else 0.0,
|
||||||
"gesamt": runde(rechnung.gesamt),
|
"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)
|
return json.dumps(daten, ensure_ascii=False)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue