Rechnungstool Campinghof - Rechnungen als PDF statt Excel-Vorlage

Desktop-Programm (Python/Tkinter): Kundendaten + Leistungen eingeben,
druckfertige PDF-Rechnung im Briefkopf des Betriebs. Optionale
Beherbergungssteuer wird eigen ausgewiesen und bekommt ein zweites
Blatt fuers Amt.

Firmendaten, Preise und Steuersaetze stehen in der config.json neben
dem Programm (nicht im Repo) und werden im Menue "Einstellungen"
gepflegt. Im Code stehen nur Platzhalter.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
TheMockTv 2026-07-12 19:18:38 +02:00
commit dc170a9d9c
8 changed files with 1692 additions and 0 deletions

53
README.md Normal file
View file

@ -0,0 +1,53 @@
# 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)