Absturz beim Ziehen des Fensters behoben, Zeiger am Rand wieder über Tk, Vodafone-Datum in Spalte A
- Verschieben/Größe ziehen per PostMessage statt SendMessage: Die Windows-Verschiebeschleife lief innerhalb eines Tk-Ereignisses; Tk führte darin Python-Ereignisse (<Configure>) aus -> harter Absturz „PyEval_RestoreThread … thread state is NULL“ (normal und aus maximiert). - Größen-Mauszeiger am Rand wieder von Tk (blieb sonst im Fenster stehen); Windows zieht beim Drücken. - Neuer Maustest im Build (xdotool, echte Maus): Titelleiste/Rand ziehen, maximieren, herausziehen. - Export: Bei Vodafone steht in Spalte A das Aktivierungsdatum (statt Abrechnungslauf). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0880ab2d42
commit
97c73b82c7
11 files changed
+166
-71
No files matched your search
+11
-1
@@ -45,6 +45,14 @@ def dateiname(text: str) -> str:
|
||||
AIRTIME_TEXT = "Airtime"
|
||||
|
||||
|
||||
def spalte_a(p: dict):
|
||||
"""Spalte A: bei freenet der Zeitraum, bei Vodafone das Aktivierungsdatum (dort steht als Zeitraum
|
||||
nur der Abrechnungslauf wie „VF2609“ – kein Datum)."""
|
||||
if p.get("anbieter") == "vodafone" and p.get("datum"):
|
||||
return date.fromisoformat(p["datum"])
|
||||
return p.get("zeitraum") or None
|
||||
|
||||
|
||||
def airtime_zeile(airtime: list[dict]) -> dict:
|
||||
"""Eine Zeile „Airtime = Summe“ für die Abrechnung."""
|
||||
zeitraeume = sorted({p.get("zeitraum") or "" for p in airtime} - {""})
|
||||
@@ -76,7 +84,7 @@ def schreibe_xlsx(ziel: str | Path, positionen: list[dict], *, kopfzeile: bool =
|
||||
erste = zeile
|
||||
for p in sortiert(positionen) + list(schluss or []):
|
||||
werte = [
|
||||
p.get("zeitraum") or None,
|
||||
spalte_a(p),
|
||||
p.get("provisionsart") or None,
|
||||
_zahl_oder_text(p.get("kennung")),
|
||||
date.fromisoformat(p["datum"]) if p.get("datum") else None,
|
||||
@@ -95,6 +103,8 @@ def schreibe_xlsx(ziel: str | Path, positionen: list[dict], *, kopfzeile: bool =
|
||||
cell = ws.cell(zeile, c, v)
|
||||
cell.font = bold if p.get("_summe") and c in (2, 11) else font
|
||||
ws.cell(zeile, 4).number_format = "DD.MM.YYYY"
|
||||
if isinstance(werte[0], date):
|
||||
ws.cell(zeile, 1).number_format = "DD.MM.YYYY"
|
||||
ws.cell(zeile, 5).number_format = "0"
|
||||
ws.cell(zeile, 6).number_format = "0"
|
||||
ws.cell(zeile, 11).number_format = EURO_FORMAT
|
||||
|
||||
Reference in new issue
Block a user