# Nebenkostenabrechnung - Implementation Complete ## Erstellte Dateien ### Datenbank (Migrationen) 1. `backend/database/migrations/001_nebenkostenabrechnung.sql` - Tabellen: objekte, mieter, mietvertraege, objektkosten, vorauszahlungen, nebenkostenabrechnungen, abrechnungspositionen - Indizes und Trigger 2. `backend/database/migrations/002_nebenkosten_beispieldaten.sql` - 3 Beispiel-Objekte: Wilster, Segeberg, Zingelstraße 14 - 5 Beispiel-Mieter - 3 Mietverträge - Beispielkosten und Vorauszahlungen für 2024 ### Backend 3. `backend/routes/nebenkosten.js` - API-Endpunkte für alle CRUD-Operationen - Berechnungslogik für Abrechnungen - PDF-Export mit Entwurf-Wasserzeichen ### Frontend 4. `frontend/src/api-nebenkosten.js` - API-Client für Objekte, Mieter, Abrechnungen 5. `frontend/src/components/nebenkosten/Objekte.jsx` - Objekt-Verwaltung mit Formular - CRUD-Operationen 6. `frontend/src/components/nebenkosten/Mieter.jsx` - Mieter-Verwaltung 7. `frontend/src/components/nebenkosten/Nebenkostenabrechnung.jsx` - Abrechnungs-Erstellung - Vorschau mit Berechnungen - PDF-Download ### Integration 8. `backend/server.js` (modifiziert) - Import: `const nebenkostenRoutes = require('./routes/nebenkosten');` - Routes: `nebenkostenRoutes(app);` 9. `frontend/src/App.jsx` (modifiziert) - Neue Tabs: "Objekte", "Mieter", "NK-Abrechnung" - Import der neuen Komponenten ## Features ### Objekt-Verwaltung - Name, Adresse, PLZ, Ort, Wohnfläche, Bemerkung - CRUD: Anlegen, Bearbeiten, Löschen ### Mieter-Verwaltung - Name, E-Mail, Telefon, Adresse - CRUD: Anlegen, Bearbeiten, Löschen ### Mietverträge (implizit in API) - Mieter-Zuordnung zu Objekt - Wohnfläche, Kaltmiete, Vorauszahlung - Vertragsbeginn/-ende ### Kosten pro Objekt - Kategorien: Grundsteuer, Heizung, Wohngeld, Handwerker, Wasser, Müll, Versicherung, Sonstiges - Verteilung nach qm/Personen/Zählern - CRUD über API ### Vorauszahlungen - Monatliche Vorauszahlungen pro Mieter - Bulk-Erstellung für ganze Jahr ### Abrechnung - Flexibler Zeitraum (Standard: 1.1. - 31.12.) - Pro-rata-Berechnung möglich - Berechnung: (Gesamtkosten / Gesamtfläche) × Mieterfläche - Abzug: Summe Vorauszahlungen - Ergebnis: Nachzahlung oder Gutschrift ### PDF Export - Firmenlogo und Daten (Täger IT) - Übersicht aller Kosten - Berechnung pro Mieter - Entwurf-Modus mit Wasserzeichen ## Verwendung 1. **Datenbank-Migrationen ausführen:** ```bash docker-compose exec db psql -U postgres -d buchhaltung -f /migrations/001_nebenkostenabrechnung.sql docker-compose exec db psql -U postgres -d buchhaltung -f /migrations/002_nebenkosten_beispieldaten.sql ``` 2. **Frontend neu bauen:** ```bash cd frontend && npm run build ``` 3. **Backend neu starten:** ```bash docker-compose restart backend ``` ## Navigation - **Objekte**: Immobilien/Objekte verwalten - **Mieter**: Mieter verwalten - **NK-Abrechnung**: Neue Abrechnung erstellen, Vorschau berechnen, PDF exportieren ## Architektur - Objekte haben Mieter über Mietverträge - Kosten werden Objekten zugeordnet - Vorauszahlungen sind Mieter + Objekt + Jahr + Monat - Abrechnungen erstellen Positionen pro Mieter