Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d63ac31b8a |
No files matched your search
@@ -16,4 +16,3 @@ build/version_info.txt
|
|||||||
selbsttest.txt
|
selbsttest.txt
|
||||||
/*.jpg
|
/*.jpg
|
||||||
/*.png
|
/*.png
|
||||||
.claude/
|
|
||||||
@@ -80,7 +80,7 @@ Das Hauptfenster ist unter Windows ein echtes Programmfenster mit Win95-Optik: a
|
|||||||
ziehen (Andocken), `Win`+Pfeiltasten, Doppelklick auf die Titelleiste und Ziehen am Rand funktionieren
|
ziehen (Andocken), `Win`+Pfeiltasten, Doppelklick auf die Titelleiste und Ziehen am Rand funktionieren
|
||||||
wie gewohnt.
|
wie gewohnt.
|
||||||
|
|
||||||
**Zeitraum abrechnen:** Im Export-Dialog „Nur von … bis …“ eintragen (oder „Vormonat“; „Noch nicht abgerechnet“ = alles Offene), wahlweise nach
|
**Zeitraum abrechnen:** Im Export-Dialog „Nur von … bis …“ eintragen (oder „Vormonat“), wahlweise nach
|
||||||
Aktivierungsdatum oder Abrechnungszeitraum des Anbieters. Exportierte Positionen werden als *abgerechnet*
|
Aktivierungsdatum oder Abrechnungszeitraum des Anbieters. Exportierte Positionen werden als *abgerechnet*
|
||||||
gekennzeichnet (grau) und nie wieder exportiert – auch nicht, wenn dieselbe Position später in einer
|
gekennzeichnet (grau) und nie wieder exportiert – auch nicht, wenn dieselbe Position später in einer
|
||||||
anderen Datei oder Abrechnung auftaucht. Versehentlich? Rechtsklick ▸ *Kennzeichnung „abgerechnet“ aufheben*.
|
anderen Datei oder Abrechnung auftaucht. Versehentlich? Rechtsklick ▸ *Kennzeichnung „abgerechnet“ aufheben*.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
"""Provisions-Manager 95 – Provisionsabrechnung für Unterhändler der Handy-Insel Miesbach."""
|
"""Provisions-Manager 95 – Provisionsabrechnung für Unterhändler der Handy-Insel Miesbach."""
|
||||||
|
|
||||||
__version__ = "1.5.0"
|
__version__ = "1.4.1"
|
||||||
APP_NAME = "Provisions-Manager 95"
|
APP_NAME = "Provisions-Manager 95"
|
||||||
APP_ORG = "Handy-Insel Miesbach"
|
APP_ORG = "Handy-Insel Miesbach"
|
||||||
@@ -917,13 +917,10 @@ class ExportDialog(w.Dialog):
|
|||||||
tk.Label(zf, text="bis:").pack(side="left")
|
tk.Label(zf, text="bis:").pack(side="left")
|
||||||
tk.Entry(zf, textvariable=self.v_bis, width=11).pack(side="left", padx=4)
|
tk.Entry(zf, textvariable=self.v_bis, width=11).pack(side="left", padx=4)
|
||||||
w.knopf(zf, "Vormonat", self._vormonat).pack(side="left", padx=(4, 0))
|
w.knopf(zf, "Vormonat", self._vormonat).pack(side="left", padx=(4, 0))
|
||||||
# ohne Zeitraum = alles, was noch nicht abgerechnet ist (abgerechnete Positionen exportiert er nie)
|
|
||||||
w.knopf(zf, "Noch nicht abgerechnet", lambda: (self.v_von.set(""), self.v_bis.set(""))).pack(
|
|
||||||
side="left", padx=(4, 0))
|
|
||||||
self.v_basis = tk.StringVar(value=zr.BASEN[settings.get("export_basis", zr.AKTIVIERUNG)])
|
self.v_basis = tk.StringVar(value=zr.BASEN[settings.get("export_basis", zr.AKTIVIERUNG)])
|
||||||
ttk.Combobox(z, textvariable=self.v_basis, values=list(zr.BASEN.values()), state="readonly",
|
ttk.Combobox(z, textvariable=self.v_basis, values=list(zr.BASEN.values()), state="readonly",
|
||||||
width=40).pack(anchor="w", pady=(4, 0))
|
width=40).pack(anchor="w", pady=(4, 0))
|
||||||
tk.Label(z, text="(leer bzw. „Noch nicht abgerechnet“ = alle offenen Positionen; Datum als TT.MM.JJJJ)", fg=w.SHADOW, anchor="w").pack(
|
tk.Label(z, text="(leer = alle offenen Positionen; Datum als TT.MM.JJJJ)", fg=w.SHADOW, anchor="w").pack(
|
||||||
fill="x")
|
fill="x")
|
||||||
self.v_kennz = tk.BooleanVar(value=True)
|
self.v_kennz = tk.BooleanVar(value=True)
|
||||||
tk.Checkbutton(z, text="Exportierte Positionen als abgerechnet kennzeichnen (werden dann nicht noch "
|
tk.Checkbutton(z, text="Exportierte Positionen als abgerechnet kennzeichnen (werden dann nicht noch "
|
||||||
|
|||||||
+1
-14
@@ -1098,18 +1098,11 @@ def test_export_zeitraum_kennzeichnen_und_erledigt(lauf_modern, tmp_path, monkey
|
|||||||
d.v_auf.set(False)
|
d.v_auf.set(False)
|
||||||
d._ok()
|
d._ok()
|
||||||
|
|
||||||
def ok_offen():
|
|
||||||
d = lauf.dialog(ExportDialog)
|
|
||||||
d.v_von.set("01.10.2026")
|
|
||||||
d.v_bis.set("02.10.2026")
|
|
||||||
next(k for k in _alle(d) if isinstance(k, tk.Button) and k.cget("text") == "Noch nicht abgerechnet").invoke()
|
|
||||||
ok(d.v_von.get(), d.v_bis.get())
|
|
||||||
|
|
||||||
lauf.ablauf([
|
lauf.ablauf([
|
||||||
(IMMER, app.exportieren, "Export Oktober 6."),
|
(IMMER, app.exportieren, "Export Oktober 6."),
|
||||||
(lambda: lauf.dialog(ExportDialog) is not None, lambda: ok("01.10.2026", "05.10.2026"), "nur bis 5.10."),
|
(lambda: lauf.dialog(ExportDialog) is not None, lambda: ok("01.10.2026", "05.10.2026"), "nur bis 5.10."),
|
||||||
(lambda: lauf.dialog(ExportDialog) is None, app.exportieren, "Export Rest"),
|
(lambda: lauf.dialog(ExportDialog) is None, app.exportieren, "Export Rest"),
|
||||||
(lambda: lauf.dialog(ExportDialog) is not None, ok_offen, "Noch nicht abgerechnet"),
|
(lambda: lauf.dialog(ExportDialog) is not None, ok, "alles Offene"),
|
||||||
(lambda: lauf.dialog(ExportDialog) is None, app.exportieren, "nochmal"),
|
(lambda: lauf.dialog(ExportDialog) is None, app.exportieren, "nochmal"),
|
||||||
])
|
])
|
||||||
assert not lauf.uebrig, lauf.diagnose()
|
assert not lauf.uebrig, lauf.diagnose()
|
||||||
@@ -1123,9 +1116,3 @@ def test_export_zeitraum_kennzeichnen_und_erledigt(lauf_modern, tmp_path, monkey
|
|||||||
app.prozent()
|
app.prozent()
|
||||||
assert "erledigt" in meldungen[-1]
|
assert "erledigt" in meldungen[-1]
|
||||||
lauf.pruefen()
|
lauf.pruefen()
|
||||||
|
|
||||||
|
|
||||||
def _alle(widget):
|
|
||||||
for kind in widget.winfo_children():
|
|
||||||
yield kind
|
|
||||||
yield from _alle(kind)
|
|
||||||
Reference in new issue
Block a user