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>
53 lines
2.2 KiB
Markdown
53 lines
2.2 KiB
Markdown
# 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)
|