feat: Initial commit - Nebenkostenabrechnung v1.0.0

PySide6 GUI-Anwendung zur Erstellung von Nebenkostenabrechnungen
für Mietobjekte gemäß § 556 BGB.

Funktionen:
- Stammdaten-Verwaltung (Vermieter/Mieter)
- Kostenarten-Verwaltung
- PDF-Erstellung mit Briefkopf-Vorlage
- Beleg-Anhänge (PDF, JPG, PNG)
- OCR-basierte Seitenrotation und Leerseiten-Filterung
- Entwurf-Speicherung und Historie
- Startmenü-Integration

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Eduard Wisch 2026-03-05 09:35:16 +01:00
commit 6b5f32b16c
12 changed files with 1689 additions and 0 deletions

8
.gitignore vendored Normal file
View file

@ -0,0 +1,8 @@
__pycache__/
*.pyc
*.pyo
venv/
.venv/
*.egg-info/
dist/
build/

23
daten/historie.json Normal file
View file

@ -0,0 +1,23 @@
{
"2025": {
"jahr": 2025,
"mieter": "Annemarie und Bastian Schilder",
"kosten": {
"Wasser/Abwasser": 0.0,
"Müllabfuhr": 0.0,
"Schornsteinfeger": 0.0
},
"belege": {
"Wasser/Abwasser": [],
"Müllabfuhr": [],
"Schornsteinfeger": []
},
"summe_kosten": 0.0,
"vorauszahlung_monat": 70.0,
"anzahl_monate": 12,
"summe_vorauszahlung": 840.0,
"differenz": -840.0,
"status": "fertig",
"datum": "2026-03-05 09:17"
}
}

25
daten/stammdaten.json Normal file
View file

@ -0,0 +1,25 @@
{
"vermieter": {
"name": "Eduard Wisch",
"adresse": "Todtenhemmer Weg 116, 25764 Wesselburen",
"iban": "DE38100777770466026201",
"bic": "NORSDE51XXX",
"bank": "Norisbank"
},
"mieter": {
"name": "Annemarie und Bastian Schilder",
"adresse": "Koogchaussee 8, 25761 Hedwigenkoog",
"email": "annemarieschilder@gmx.de",
"iban": "",
"bic": "",
"bank": ""
},
"objekt_adresse": "Koogchaussee 8, 25764 Hedwigenkoog",
"vorauszahlung_monat": 70.0,
"kostenarten": [
"Wasser/Abwasser",
"Müllabfuhr",
"Schornsteinfeger"
],
"briefkopf_hoehe": 4.5
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

21
icon.svg Normal file
View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="128" height="128" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg">
<!-- Hintergrund -->
<rect x="8" y="8" width="112" height="112" rx="16" fill="#3498db"/>
<!-- Haus -->
<path d="M64 20 L20 55 L30 55 L30 95 L98 95 L98 55 L108 55 Z" fill="white"/>
<!-- Tür -->
<rect x="52" y="65" width="24" height="30" rx="2" fill="#3498db"/>
<!-- Fenster links -->
<rect x="36" y="60" width="12" height="12" fill="#3498db"/>
<!-- Fenster rechts -->
<rect x="80" y="60" width="12" height="12" fill="#3498db"/>
<!-- Euro-Zeichen im Kreis -->
<circle cx="90" cy="40" r="20" fill="#27ae60"/>
<text x="90" y="48" font-family="Arial, sans-serif" font-size="28" font-weight="bold" fill="white" text-anchor="middle"></text>
</svg>

After

Width:  |  Height:  |  Size: 803 B

View file

@ -0,0 +1,10 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=Nebenkostenabrechnung
Comment=Nebenkostenabrechnung erstellen und verwalten
Exec=python3 "/mnt/17 - Entwicklungen/20 - Projekte/Nebenkostenabrechnung/nebenkostenabrechnung.py"
Icon=/mnt/17 - Entwicklungen/20 - Projekte/Nebenkostenabrechnung/icon.svg
Terminal=false
Categories=Office;Finance;
StartupNotify=true

1599
nebenkostenabrechnung.py Normal file

File diff suppressed because it is too large Load diff

3
requirements.txt Normal file
View file

@ -0,0 +1,3 @@
PySide6>=6.5
reportlab>=4.0
PyPDF2>=3.0

BIN
vorlagen/vorlage.pdf Normal file

Binary file not shown.