Amtsbericht: Spalte heisst "Begruendung" und hat Platz

Sein Hinweis: "da ist noch so viel platz, die naechte und satz alleine
nehmen so viel raum ein auf dem blatt, da kannst locker zeile begruendung
oder so was setzen und da dann storno zu und die nummer vom storno".

Stimmt: die Zahlenspalten standen mit viel Luft nebeneinander, waehrend
die Begruendung klein gedruckt war. Neu verteilt (in mm):

  Datum 19 | Rechnung 19 | Begruendung 44 | Name Rest | Naechte 12 |
  Entgelt 19 | Satz 10 | Steuer 19

Damit passt "storniert mit 2026-901" in EINE Zeile, in normaler
Schriftgroesse statt 7,5 pt. Spaltenkopf heisst jetzt "Begruendung"
(sein Wort) und "Satz %" nur noch "Satz" - das Prozentzeichen steht
ohnehin nirgends im Wert.

Angesehen: Tabelle als Bild gerendert, alles einzeilig, auch mit langem
Namen. pruef_storno_verrechnet und pruef_berichtigung gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017bEsoFUk16DfnNA7MjY36H
This commit is contained in:
TheMockTv 2026-09-04 01:40:03 +02:00
parent 87d92d15b6
commit ef3eef2852

View file

@ -239,14 +239,14 @@ def render_monat(pfad, firma, jahr: int, monat: int, buchungen):
# Eigene Spalte "Grund" statt einer zweiten Zeile unter der Nummer - seine
# Ansage vom 04.09.2026: "mach eine neue spalte mit grund oder so was".
kopf = ["Datum", "Rechnung", "Grund", "Name", "Nächte", "Entgelt", "Satz %", "Steuer"]
kopf = ["Datum", "Rechnung", "Begründung", "Name", "Nächte", "Entgelt", "Satz", "Steuer"]
stile = ["th", "th", "th_l", "th_l", "th", "th", "th", "th"]
daten = [[Paragraph(k, st[s_]) for k, s_ in zip(kopf, stile)]]
for b in liste:
daten.append([
Paragraph(b.datum.strftime("%d.%m.%Y"), st["zelle_c"]),
Paragraph(b.voll_nummer, st["zelle_c"]),
Paragraph(f'<font size="7.5">{_art_text(b, weg)}</font>', st["zelle"]),
Paragraph(_art_text(b, weg), st["zelle"]),
Paragraph(b.nachname, st["zelle"]),
Paragraph(str(b.naechte), st["zelle_c"]),
Paragraph(eur_kurz(b.gezahlt), st["zelle_r"]),
@ -261,13 +261,17 @@ def render_monat(pfad, firma, jahr: int, monat: int, buchungen):
# Namensspalte nur so breit wie der breiteste Name (Rest der Tabelle ist fest)
breiteste = max([stringWidth(b.nachname, "Helvetica", 8.5) for b in liste]
+ [stringWidth("Name", "Helvetica-Bold", 8)])
# Die feste Breite ist durch die Grund-Spalte gewachsen; der Name bekommt,
# was uebrig bleibt (34 mm reichen fuer die ueblichen Namen, lange brechen um).
name_w = min(max(breiteste + 6 * mm, 22 * mm), CONTENT_W - 140 * mm)
# Die Zahlenspalten brauchen wenig - "Naechte", "Satz" und die Betraege
# standen frueher mit viel Luft nebeneinander. Sein Hinweis vom 04.09.2026:
# *"da ist noch so viel platz, die naechte und satz alleine nehmen so viel
# raum ein, da kannst locker zeile begruendung setzen"*. Also enger gestellt
# und der Begruendung so viel gegeben, dass "storniert mit 2026-901" in EINE
# Zeile passt - in normaler Schriftgroesse, nicht kleingedruckt.
name_w = min(max(breiteste + 6 * mm, 22 * mm), CONTENT_W - 142 * mm)
tabelle = Table(daten, repeatRows=1, hAlign="LEFT",
colWidths=[20 * mm, 20 * mm, 34 * mm, name_w,
13 * mm, 20 * mm, 12 * mm, 21 * mm])
colWidths=[19 * mm, 19 * mm, 44 * mm, name_w,
12 * mm, 19 * mm, 10 * mm, 19 * mm])
tabelle.setStyle(TableStyle([
("BACKGROUND", (0, 0), (-1, 0), GREY_BG),
("LINEBELOW", (0, 0), (-1, 0), 0.8, ACCENT),