No description
Find a file
TheMockTv 8163213960 Das Rechnungstool meldet dem Steuerjournal, was es geschrieben hat
Beide Programme stehen nebeneinander offen. Bisher haette das Journal die neue
Rechnung erst beim naechsten Einlesen gesehen.

Kein Absuchen des Rechnungsordners und kein Server: nach jeder Rechnung und
jedem Storno schaut das Rechnungstool nach, ob das Journal ueberhaupt laeuft -
ueber dessen PID, nicht ueber ein Fenster und nicht ueber eine Uhrzeit. Windows
beantwortet das genau; PIDs werden wiederverwendet, deshalb wird zusaetzlich der
Name der EXE verglichen. Laeuft es, kommt eine Zeile in den Briefkasten.

Der Briefkasten IST die gemeinsame SQLite (seine Ansage): zwei Tabellen mehr -
"laeuft" (wer ist offen, mit PID und EXE) und "nachrichten". Damit liegt im
gemeinsamen Ordner genau EINE Datei. Karteileichen (abgestuerztes Programm)
werden beim Nachsehen weggeraeumt, alte Meldungen beim Melden.

Ist das Journal zu, passiert nichts - es liest den Ordner beim naechsten Start
ohnehin. Die Meldung ist eine Anklopfhilfe, keine Datenquelle.

Pruefstand pruef_wache.py (im Steuerjournal, faehrt BEIDE Programme): PID-Pruefung
mit toter Nummer und fremdem EXE-Namen, genau eine Datei im Ordner, Meldung nach
Rechnung und nach Storno, Einlesen samt Anzeige, Ruhe ohne Meldung, kein Melden
an ein geschlossenes Journal.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GYeAfLtccFrbU3MTj1MMTx
2026-09-03 21:02:11 +02:00
assets Rechnungstool Campinghof - Rechnungen als PDF statt Excel-Vorlage 2026-07-12 19:18:38 +02:00
.gitignore Nur eine Instanz: zweiter Start holt das offene Fenster nach vorn 2026-09-02 18:28:58 +02:00
app.py Das Rechnungstool meldet dem Steuerjournal, was es geschrieben hat 2026-09-03 21:02:11 +02:00
berechnung.py Rechnungstool Campinghof - Rechnungen als PDF statt Excel-Vorlage 2026-07-12 19:18:38 +02:00
bestand.py Gemeinsames Nummernbuch, Storno kuerzt die Naechte, Testlauf-Schalter 2026-09-03 20:38:57 +02:00
config.py Montage-Rechnung als eigener Reiter, und das Datum laesst sich nicht mehr verbiegen 2026-09-03 20:12:04 +02:00
einstellungen.py Montage-Rechnung als eigener Reiter, und das Datum laesst sich nicht mehr verbiegen 2026-09-03 20:12:04 +02:00
einzelinstanz.py Zwei getrennte Knoepfe und app.py in Module aufgeteilt 2026-09-02 19:41:00 +02:00
gemeinsam.py Das Rechnungstool meldet dem Steuerjournal, was es geschrieben hat 2026-09-03 21:02:11 +02:00
helfer.py Zwei getrennte Knoepfe und app.py in Module aufgeteilt 2026-09-02 19:41:00 +02:00
korrektur.py Das Rechnungstool meldet dem Steuerjournal, was es geschrieben hat 2026-09-03 21:02:11 +02:00
ordnerwahl.py Gemeinsames Nummernbuch, Storno kuerzt die Naechte, Testlauf-Schalter 2026-09-03 20:38:57 +02:00
pdf_renderer.py Gemeinsames Nummernbuch, Storno kuerzt die Naechte, Testlauf-Schalter 2026-09-03 20:38:57 +02:00
pruef_dialoge.py Gemeinsames Nummernbuch, Storno kuerzt die Naechte, Testlauf-Schalter 2026-09-03 20:38:57 +02:00
pruef_kernregeln.py Gemeinsames Nummernbuch, Storno kuerzt die Naechte, Testlauf-Schalter 2026-09-03 20:38:57 +02:00
pruef_kette.py Gemeinsames Nummernbuch, Storno kuerzt die Naechte, Testlauf-Schalter 2026-09-03 20:38:57 +02:00
pruef_montage.py Gemeinsames Nummernbuch, Storno kuerzt die Naechte, Testlauf-Schalter 2026-09-03 20:38:57 +02:00
pruef_nummern.py Die Kette steht auf dem Storno-Blatt - kein gemerkter Zustand noetig 2026-09-02 20:42:31 +02:00
pruef_nummernbuch.py Gemeinsames Nummernbuch, Storno kuerzt die Naechte, Testlauf-Schalter 2026-09-03 20:38:57 +02:00
pruef_storno.py Gemeinsames Nummernbuch, Storno kuerzt die Naechte, Testlauf-Schalter 2026-09-03 20:38:57 +02:00
README.md Rechnungstool Campinghof - Rechnungen als PDF statt Excel-Vorlage 2026-07-12 19:18:38 +02:00
Rechnung starten.bat Rechnungstool Campinghof - Rechnungen als PDF statt Excel-Vorlage 2026-07-12 19:18:38 +02:00
storno.py Funde der drei Agenten: zwei kaputte Dialoge, haengende Flags, scharfe Pruefstaende 2026-09-02 19:57:31 +02:00
theme.py Montage-Rechnung als eigener Reiter, und das Datum laesst sich nicht mehr verbiegen 2026-09-03 20:12:04 +02:00

Rechnungstool Campinghof Bartl

Desktop-Programm (Python/Tkinter), das die alte Excel-Rechnungsvorlage ersetzt: Kundendaten + Anzahl eingeben → druckfertige PDF-Rechnung im Campinghof-Layout.

Starten

  • Doppelklick auf Rechnung starten.bat
  • oder im Terminal: python app.py

Bedienung

  1. Kunde (Name/Anschrift) und An-/Abreise eintragen – die Nächte werden automatisch berechnet.
  2. Bei den passenden Leistungen die Anzahl (Tage/Menge) eingeben; bei Personengebühren zusätzlich die Personen.
  3. Summen (inkl. Steuer-Aufschlüsselung) erscheinen live unten.
  4. PDF erstellen → die Rechnung landet im Ordner rechnungen/ und öffnet sich zum Drucken.

Die Rechnungsnummer (JJJJ-NNN) zählt nach jedem Erstellen automatisch hoch.

Einstellungen (Menü „Einstellungen")

  • Steuersätze & Bettensteuer – ermäßigter/regulärer USt-Satz; Beherbergungssteuer per Checkbox an/aus + Prozentsatz. Bei aktiver Bettensteuer wird sie auf das Netto der Beherbergungs-Positionen aufgeschlagen und eigen ausgewiesen.
  • Leistungskatalog / Preise – Bezeichnung, USt-Satz und Brutto-Preis je Position.
  • Firmendaten & Texte – Kopf, Bankverbindung, Fußzeile, Danktexte.
  • Rechnungsnummer – Jahr und Zähler setzen.

Alle Einstellungen werden in config.json gespeichert (neben den Programmdateien).

Berechnung (wie in der Excel-Vorlage)

  • Position-Gesamt = Anzahl × Einzelpreis (Personengebühren zusätzlich × Personen).
  • Preise sind brutto; die USt wird herausgerechnet (7 %: ÷107×7, 19 %: ÷119×19).
  • Optionale Beherbergungssteuer = Satz % auf das Netto der Beherbergungs-Positionen.

Dateien

Datei Zweck
app.py GUI (Eingabe + Einstellungen)
berechnung.py Rechenkern (eine Quelle für GUI + PDF)
pdf_renderer.py PDF-Erstellung (reportlab)
config.py Standardwerte + Laden/Speichern der config.json
config.json gespeicherte Einstellungen (wird beim 1. Start angelegt)
rechnungen/ Ausgabeordner für die PDFs

Voraussetzungen

  • Python 3.10+
  • reportlab (pip install reportlab)
  • tkinter (bei Standard-Windows-Python dabei)