Amtsbericht beschriftet die Storno-Zeilen
Sein Wort: "musst dann rein schreiben storniert oder so was dran setzen". Im Bericht fuers Amt stand bisher nur die Rechnungsnummer. Bei einem Storno sieht das Amt damit eine Stornonummer neben einer voellig anderen Rechnungsnummer und im Folgemonat eine Minuszeile - ohne einen Hinweis, was wozu gehoert. Im Fenster gibt es dafuer die Spalte "Art", auf dem Blatt fehlte sie. Jetzt steht unter der Nummer in kleiner grauer Schrift dasselbe Wort wie im Fenster: "storniert", "Storno zu 2026-900", "Neuausstellung". Die Zuordnung wird ueber ALLE uebergebenen Buchungen bestimmt (das ganze Jahr), weil der Storno in einem anderen Monat liegen kann als seine Rechnung - genau der Fall, um den es geht. An den Summen aendert sich nichts: verrechnet bleibt verrechnet. pruef_storno_verrechnet prueft die drei Beschriftungen jetzt mit. Angesehen wurde es auch: Monatsbericht August und September als Bild gerendert, Zeilen und Summen stimmen (August 9 Naechte/117,00, September -4/-52,00). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017bEsoFUk16DfnNA7MjY36H
This commit is contained in:
parent
13fe1d97f9
commit
3a9f1278c8
3 changed files with 30 additions and 3 deletions
Binary file not shown.
|
|
@ -23,7 +23,7 @@ from reportlab.lib.styles import ParagraphStyle
|
|||
from reportlab.pdfbase.pdfmetrics import stringWidth
|
||||
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer
|
||||
|
||||
from modell import MONATE, summiere, eur, eur_kurz
|
||||
from modell import MONATE, summiere, aufgehobene, eur, eur_kurz
|
||||
|
||||
log = logging.getLogger("bst.bericht")
|
||||
|
||||
|
|
@ -198,8 +198,28 @@ def _ort(firma):
|
|||
|
||||
|
||||
# ------------------------------------------------------------- Monat --------
|
||||
def _art_text(b, weg) -> str:
|
||||
"""Was in der Rechnungsspalte unter der Nummer steht.
|
||||
|
||||
Ohne das steht im Bericht fuers Amt eine Stornonummer neben einer voellig
|
||||
anderen Rechnungsnummer, und niemand sieht, was zusammengehoert. Sein Wort
|
||||
dazu am 04.09.2026: *"musst dann rein schreiben storniert oder so was dran
|
||||
setzen"*. Dieselben Worte wie in der Spalte "Art" im Fenster.
|
||||
"""
|
||||
if b.storno_zu:
|
||||
return f"Storno zu {b.storno_zu}"
|
||||
if b.id in weg:
|
||||
return "storniert"
|
||||
if b.art == "korrektur":
|
||||
return "Neuausstellung"
|
||||
return ""
|
||||
|
||||
|
||||
def render_monat(pfad, firma, jahr: int, monat: int, buchungen):
|
||||
st = _styles()
|
||||
# Ueber ALLE uebergebenen Buchungen bestimmt (das ganze Jahr): der Storno
|
||||
# kann in einem anderen Monat liegen als die Rechnung, die er aufhebt.
|
||||
weg = aufgehobene(buchungen)
|
||||
# Storno und aufgehobene Rechnung stehen BEIDE im Bericht, jede in ihrem
|
||||
# Monat und mit ihrem Vorzeichen - so ist die Meldung aus sich heraus
|
||||
# nachvollziehbar (Entscheidung des Auftraggebers, siehe modell.summiere).
|
||||
|
|
@ -219,7 +239,9 @@ def render_monat(pfad, firma, jahr: int, monat: int, buchungen):
|
|||
for b in liste:
|
||||
daten.append([
|
||||
Paragraph(b.datum.strftime("%d.%m.%Y"), st["zelle_c"]),
|
||||
Paragraph(b.voll_nummer, st["zelle_c"]),
|
||||
Paragraph(b.voll_nummer + (f'<br/><font size="6.5" color="#555555">'
|
||||
f'{_art_text(b, weg)}</font>'
|
||||
if _art_text(b, weg) else ""), st["zelle_c"]),
|
||||
Paragraph(b.nachname, st["zelle"]),
|
||||
Paragraph(str(b.naechte), st["zelle_c"]),
|
||||
Paragraph(eur_kurz(b.gezahlt), st["zelle_r"]),
|
||||
|
|
|
|||
|
|
@ -140,7 +140,12 @@ text = (PdfReader(pfad).pages[0].extract_text() or "").replace("\n", " ")
|
|||
pruefe("2026-900" in text and "2026-901" in text,
|
||||
"Rechnung UND Storno stehen im Bericht - die Meldung erklaert sich selbst")
|
||||
pruefe("-52,00" in text, "der Storno steht mit seinem Minusbetrag drin")
|
||||
pruefe("117,00" in text, f"und die Monatssumme ist 117,00 Euro")
|
||||
pruefe("117,00" in text, "und die Monatssumme ist 117,00 Euro")
|
||||
# Ohne Beschriftung steht im Bericht eine Stornonummer neben einer voellig
|
||||
# anderen Rechnungsnummer - sein Wort: "musst dann rein schreiben storniert".
|
||||
pruefe("storniert" in text, "die aufgehobene Rechnung ist im Bericht als 'storniert' beschriftet")
|
||||
pruefe("Storno zu 2026-900" in text, "und der Storno nennt die Rechnung, die er aufhebt")
|
||||
pruefe("Neuausstellung" in text, "die neue Rechnung ist als Neuausstellung beschriftet")
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
print("--- Fall 4: das echte Fenster ---")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue