Amt-Blatt raus, Bedienung ueber die API, Erststart fragt nach zwei Wegen
Das zweite Blatt "fuer das Amt" trug DIESELBE Rechnungsnummer, aber einen anderen Gesamtbetrag. Mehrere Blaetter zum selben Umsatz mit verschiedenen Endbetraegen sehen aus, als werde ueber verschiedene Umsaetze abgerechnet - bei einer Pruefung ein Problem. Ersatzlos entfallen; was die Stadt braucht, rechnet das Steuerjournal aus den Kenndaten der PDF. Mit dem Blatt fielen _AmtMarke, gesamtrechnung_betont und der doppelte Renderlauf weg. Die API kann das Fenster jetzt BEDIENEN - mit Schluessel wie bei einem SSH-Key: 32 Byte Zufall in api_schluessel.txt im gemeinsamen Ordner, den nur das Steuerjournal und der Betreiber lesen. Ohne gueltigen Schluessel kein Zutritt (compare_digest). ping und schau_nach bleiben schluessellos, sonst kann ein aelteres Journal nicht mehr anklopfen. Was einen BELEG schreibt, geht nur im Testlauf - eine Fernbedienung, die echte Rechnungen ausstellt, hat in einer Buchhaltung nichts zu suchen. api.py liegt wie immer in beiden Programmen. Der Erststart fragte nach "der zuletzt vergebenen Nummer" - das holt niemanden ab, der bei 0 anfaengt. Jetzt zwei Wege: bei 0 anfangen ODER die eigene Zaehlung weiterfuehren. Unter das schon Vergebene kommt keiner der beiden. pruef_nummernsperre bediente den Dialog nur halb: nach einer abgelehnten Zahl bleibt er offen (so soll er), niemand drueckte "Spaeter" - das Programm wartete in wait_window() ewig. Das war schon vor diesem Umbau so. Neu: pruef_api.py. Alle 14 Pruefstaende gruen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V4t48uxDok5rJXhC9bX1Ax
This commit is contained in:
parent
142dddc647
commit
ca9ac212cf
11 changed files with 835 additions and 212 deletions
107
AUFGABE_RECHTSSICHER_BILDER_VORSCHAU.md
Normal file
107
AUFGABE_RECHTSSICHER_BILDER_VORSCHAU.md
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
# Rechnungstool: rechtssicher, gestaltbar, mit Vorschau
|
||||
|
||||
**Stand 05.09.2026 — in Arbeit.** Programm `C:\claude\rechnungstool`,
|
||||
Repo `git.pcore.de/TheMockTv/rechnungstool` (Pre-Tag `pre/rechtssicher-bilder`).
|
||||
|
||||
Seine Ansage: *„wir bauen den rechnungs ersteller so um das der nun richtig
|
||||
rechtlich sicher ist und die kopf und fuss zeile mit eigenen bildern import"* —
|
||||
und im Lauf des Umbaus dazu: *„das die firmen das designen können"*,
|
||||
*„eine vorschau butten wäre gut … sonst haben die den storno auf wand"*,
|
||||
*„das mit rechnung an das amt kommt raus, das ist nicht § conform"*.
|
||||
|
||||
## 1. Bilder und Farbe gehören der Firma (fertig)
|
||||
|
||||
Bis jetzt war das Blatt auf EINEN Betrieb gebaut: Camping-Grün fest im Code,
|
||||
das Logo ein Pfad in der config.
|
||||
|
||||
- **`bilder.py`** (neu): ein gewähltes Bild wird in den Ordner `bilder/` neben
|
||||
die `config.json` **kopiert**, gemerkt wird nur `bilder/logo.png`.
|
||||
Der Grund: ein Pfad auf den Desktop ist tot, sobald dort jemand aufräumt —
|
||||
und das fällt erst beim Drucken auf. Gleicher Name, anderes Bild → `-2`,
|
||||
nie überschreiben.
|
||||
- **Kopfbild** (Logo, oben links) und **Fußbild** (schmaler Streifen unten)
|
||||
sind austauschbar. Das Layout bleibt, wie es war.
|
||||
- **Firmenname, Anschrift, Bank, Steuernummer bleiben gezeichnet.** Kein Bild
|
||||
kann sie ersetzen — die Steuernummer ist Pflichtangabe
|
||||
(§ 14 Abs. 4 Nr. 2 UStG), und was in einem Bild steht, kann niemand prüfen.
|
||||
(Ein Haken „Angaben stehen im Bild" war gebaut und ist auf seine Ansage hin
|
||||
wieder rausgeflogen.)
|
||||
- **Farbe der Rechnung**: EIN Wert (`design.akzent`), Hex-Feld **und**
|
||||
Farbwähler in den Einstellungen. Die helle Fläche im Tabellenkopf wird daraus
|
||||
gemischt — niemand muss zwei Farben aufeinander abstimmen. Eine unlesbare
|
||||
Farbe fällt still auf die Vorgabe zurück, statt das Schreiben der Rechnung zu
|
||||
verhindern.
|
||||
|
||||
Prüfstand: **`pruef_bilder.py`**.
|
||||
|
||||
## 2. Vorschau-Knopf (fertig)
|
||||
|
||||
Seine Begründung: *„sonst haben die den storno auf wand"* — eine ausgestellte
|
||||
Rechnung lässt sich nur noch über Storno oder Berichtigung geradeziehen.
|
||||
|
||||
Der Knopf zeigt das fertige Blatt, **bevor** es eine Rechnung wird:
|
||||
|
||||
- verbraucht **keine** Rechnungsnummer, trägt nichts ins Nummernbuch,
|
||||
- landet **nicht** im Rechnungsordner (Temp-Ordner),
|
||||
- trägt quer über jeder Seite **„VORSCHAU – keine Rechnung"**,
|
||||
- prüft **keine** Pflichtfelder — man will ja gerade sehen, was noch fehlt.
|
||||
|
||||
Prüfstand: **`pruef_vorschau.py`** (u. a.: die echte Rechnung danach trägt die
|
||||
Marke NICHT).
|
||||
|
||||
## 3. Das Blatt „für das Amt" ist entfallen
|
||||
|
||||
Bis 05.09.2026 hing an jeder Rechnung mit Beherbergungssteuer ein zweites Blatt
|
||||
mit **derselben Rechnungsnummer**, aber ohne die Steuer — also mit einem
|
||||
**anderen Gesamtbetrag**.
|
||||
|
||||
Seine Ansage: *„das mit rechnung an das amt kommt raus … wenn so was in den
|
||||
büchern von einem unternehmen drin ist, dann ist das ein genickbruch, wenn der
|
||||
prüfer kommt"*. Vorgeschichte: Bartl wollte es so, weil es sonst seine
|
||||
Steuerberaterin durcheinanderbringe; der Widerspruch stand schon damals.
|
||||
|
||||
Nachgeschlagen: mehrere Blätter zum selben Umsatz mit **gleicher** Nummer sind
|
||||
für sich noch kein § 14c-Fall — aber unterschiedliche Endbeträge erwecken den
|
||||
Eindruck, es werde über **verschiedene Umsätze** abgerechnet. Genau das fällt
|
||||
bei einer Prüfung auf.
|
||||
|
||||
**Was an die Stelle tritt:** nichts im Rechnungstool. Das Steuerjournal liest
|
||||
die Kenndaten (`/Subject`) der PDF und rechnet die Bemessungsgrundlage selbst
|
||||
aus; ans Amt geht eine **Summenanmeldung**, keine Rechnungskopie mit Gastnamen.
|
||||
Vorher geprüft: kein Programm liest die zweite Seite — `pruef_montage.py`
|
||||
belegt weiter, dass das Journal die Datei einliest.
|
||||
|
||||
Mit dem Blatt entfielen: `_AmtMarke`, der Parameter `gesamtrechnung_betont` und
|
||||
der doppelte Renderlauf (der existierte nur, um zu wissen, auf welcher Seite das
|
||||
Amt-Blatt beginnt). Der Renderer ist dadurch deutlich kürzer.
|
||||
|
||||
## 4. Prüfstände nehmen keine Maus mehr
|
||||
|
||||
Sein Fund mitten im Lauf: *„pack doch die maus nicht immer auf das programm,
|
||||
weil ich kann dir sonst nichts schreiben"*.
|
||||
|
||||
- `config.TESTLAUF` steht an **einer** Stelle (`--test` / `CAMPINGHOF_TEST=1`).
|
||||
- Hauptfenster und **jeder** Dialog werden im Prüflauf durchsichtig gemacht und
|
||||
aus dem Bild geschoben, und `grab_set` fällt weg.
|
||||
- ⚠️ **Nicht `withdraw()`**: damit baut ein Fenster seine Dialoge nicht mehr
|
||||
richtig auf — vier Prüfstände wurden davon rot und hätten eine Bedienung
|
||||
geprüft, die es so nicht gibt.
|
||||
- **`pruefsteuerung.py`** (neu): Meldungen wandern ins Protokoll, Ja/Nein-Fragen
|
||||
in einen Fahrplan (`antwortet("Hausnummer", True)`). Eine **unangemeldete**
|
||||
Frage bricht den Lauf ab — stillschweigend „ja" zu sagen würde genau die Fälle
|
||||
übergehen, wegen denen es die Prüfung gibt.
|
||||
|
||||
## Offen
|
||||
|
||||
- **Betriebsart abfragen** (Campingplatz / Handwerker / Unternehmen) — sein
|
||||
Zielbau: *„nicht jeder braucht das so wie der camping typ"*. Handwerker und
|
||||
Unternehmen brauchen **freie Rechnungszeilen** statt des festen Katalogs; das
|
||||
ist ein neuer Eingabemodus, kein Schalter.
|
||||
- **§ 14-Lücke Leistungszeitpunkt**: ohne An-/Abreise (z. B. nur Gasfüllung)
|
||||
steht heute kein Leistungsdatum auf dem Blatt — § 14 Abs. 4 Nr. 6 UStG.
|
||||
- **Zahlungsziel** einstellbar.
|
||||
- **E-Rechnung (ZUGFeRD)**: Pflicht ab 01.01.2028 für B2B — trifft die
|
||||
Montage-Rechnung. Bibliothek `factur-x` ist geprüft und kann XML erzeugen
|
||||
(Profil EN 16931), prüfen (XSD + Schematron) und einbetten (PDF/A-3).
|
||||
- **GoBD**: PDFs nach dem Schreiben schreibgeschützt; Aufbewahrung seit BEG IV
|
||||
8 statt 10 Jahre (§ 147 Abs. 3 AO).
|
||||
Loading…
Add table
Add a link
Reference in a new issue