Der Rechnungszaehler kann nicht mehr hinter das Vergebene zurueck
Sein Einwand: 'er kann jetzt bescheissen, indem er das in den einstellungen aendert' - und sein Vorschlag: 'dann koennte man noch die pdfs nutzen als referenz, die haben auch die nummern'. Der hoechste je vergebene Stand kommt jetzt aus ZWEI Quellen: * den PDFs im Rechnungsordner (der Dateiname traegt die Nummer - kein Oeffnen noetig) * dem gemeinsamen Nummernbuch (kennt auch Nummern OHNE PDF, den Altbestand) Der Zaehler in der config taugt nicht als Wahrheit, er ist ja gerade das, was sich aendern laesst. Deshalb: beim Nummernvorschlag wird ein zurueckgedrehter Zaehler stillschweigend wieder angehoben, und die Einstellungen nehmen keinen Wert mehr an, der hinter dem Vergebenen liegt - mit Meldung, welcher Stand schon erreicht ist und woher er kommt. Nach VORN bleibt er frei: eine lueckenlose Folge verlangt das Gesetz nicht, jede Nummer aber nur einmal (§ 14 Abs. 4 Nr. 4 UStG). Pruefstand pruef_nummernsperre.py: 17 Pruefungen - zurueckgedrehter Zaehler, Einstellungen vor und zurueck, nur Ordner, nur Buch, und beides weg. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GYeAfLtccFrbU3MTj1MMTx
This commit is contained in:
parent
ad1ac9af6f
commit
d884cff6f8
6 changed files with 326 additions and 3 deletions
13
gemeinsam.py
13
gemeinsam.py
|
|
@ -209,6 +209,19 @@ class Nummernbuch:
|
|||
zeilen = con.execute("SELECT nummer FROM nummern")
|
||||
return {z["nummer"] for z in zeilen}
|
||||
|
||||
def hoechster_zaehler(self, jahr):
|
||||
"""Groesster Zaehler dieses Jahres im Buch (0, wenn nichts drinsteht).
|
||||
|
||||
Aus '2026-442' wird 442. Nummern anderer Reihen (Angebote 2026-A001)
|
||||
zaehlen NICHT mit - die haben mit der Rechnungsnummer nichts zu tun.
|
||||
"""
|
||||
hoch = 0
|
||||
for nummer in self.nummern(jahr):
|
||||
teil = str(nummer).split("-")[-1]
|
||||
if teil.isdigit():
|
||||
hoch = max(hoch, int(teil))
|
||||
return hoch
|
||||
|
||||
def eintrag(self, nummer):
|
||||
with self._verbindung() as con:
|
||||
z = con.execute("SELECT * FROM nummern WHERE nummer=?", (str(nummer),)).fetchone()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue