No description
Seine Ansage: "schau dir unsern fivem server an und unsere webseiten, dann
weisst du wie mein design ist" - also die Palette aus _ui_www und der
Adminpage: Tuerkis #06C6A4 auf gestuften dunklen Flaechen (#0d0e10 Grund,
#15171b Kachel), Raender #25282e, Text #e8e8ea / #8a8e96, Rot #e85a5a.
Das PROGRAMM traegt diese Handschrift, die RECHNUNG die Farbe der jeweiligen
Firma - das Blatt gehoert dem Kunden, nicht uns.
- Roboto wird mitgeliefert und nur fuer den Prozess geladen
(AddFontResourceEx mit FR_PRIVATE): keine Installation, keine Adminrechte,
nach dem Schliessen ist der Rechner wie vorher. Fehlt sie, bleibt es bei
Segoe UI. Die Schriftdateien gehen mit in die exe (spec).
- Abschnitte sind Kacheln mit Ueberschrift statt grauer Rahmen.
- Knoepfe im Glas-Stil wie in seinen Oberflaechen: getoente Flaeche, Rand in
Akzent-Transparenz. Tk kann kein backdrop-filter - die Toenung wird
ausgerechnet (theme.mischen), das Ergebnis ist auf einfarbigem Grund
identisch. "PDF erstellen" fuehrt, "Storno" ist rot.
- Zebrastreifen in der Leistungsliste: bei 17 Zeilen verrutscht man sonst.
- Kein expand am offenen Reiter mehr - dadurch sprang beim Umschalten die
ganze Leiste ("das taben macht den aktiven kleiner").
- Das Fenster fuer den gemeinsamen Ordner stand als einziges noch in Weiss da:
es kam nie durch _style_dialog.
Dazu ein Fund, der nichts mit dem Design zu tun hat: die Pruefstaende erbten
"nummer_eingerichtet" aus der config DIESES Rechners. Sobald hier jemand die
Nummer einmal einrichtet, liefen sie in einen anderen Zweig und wurden rot -
ohne dass sich am Programm etwas geaendert haette. Sie legen den Zustand jetzt
selbst fest. Alle 14 gruen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V4t48uxDok5rJXhC9bX1Ax
|
||
|---|---|---|
| assets | ||
| .gitignore | ||
| api.py | ||
| app.py | ||
| AUFGABE_RECHTSSICHER_BILDER_VORSCHAU.md | ||
| berechnung.py | ||
| bestand.py | ||
| bilder.py | ||
| config.py | ||
| einstellungen.py | ||
| einzelinstanz.py | ||
| gemeinsam.py | ||
| helfer.py | ||
| korrektur.py | ||
| ordnerwahl.py | ||
| pdf_renderer.py | ||
| pruef_angebot.py | ||
| pruef_api.py | ||
| pruef_bilder.py | ||
| pruef_dialoge.py | ||
| pruef_doppelte_leistung.py | ||
| pruef_kernregeln.py | ||
| pruef_kette.py | ||
| pruef_montage.py | ||
| pruef_nummern.py | ||
| pruef_nummernbuch.py | ||
| pruef_nummernsperre.py | ||
| pruef_nur_storno.py | ||
| pruef_storno.py | ||
| pruef_vorschau.py | ||
| pruefsteuerung.py | ||
| README.md | ||
| Rechnung starten.bat | ||
| storno.py | ||
| theme.py | ||
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
- Kunde (Name/Anschrift) und An-/Abreise eintragen – die Nächte werden automatisch berechnet.
- Bei den passenden Leistungen die Anzahl (Tage/Menge) eingeben; bei Personengebühren zusätzlich die Personen.
- Summen (inkl. Steuer-Aufschlüsselung) erscheinen live unten.
- 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)