# 📋 OpenCRM – Todo-Liste --- ## 🔜 Offen ### Email Log & System testen - Senden testen - Empfangen testen ### Security System testen --- ## ✅ Erledigt - [x] **Factory-Defaults: Export + Import von Stammdaten-Katalogen** - Enthält: Anbieter, Tarife, Kündigungsfristen, Laufzeiten, Vertragskategorien, PDF-Auftragsvorlagen (+ PDF-Dateien) - Enthält NICHT: Kundendaten, Verträge, Dokumente, Emails, Einstellungen (dafür gibt es den Datenbank-Backup) - Neue Einstellungsseite „Factory-Defaults" mit Übersicht (Anzahl pro Kategorie) und Export-Button - Export: ZIP mit manifest.json + Kategorie-JSONs + PDF-Dateien, Download über Browser - Import-Script: `npm run seed:defaults` liest `backend/factory-defaults/`, merged mehrere JSONs pro Kategorie, upsertet idempotent + kopiert PDFs in uploads/ - Ordner `backend/factory-defaults/` gitignoriert (außer .gitkeep + README), damit firmen-spezifische Kataloge nicht ins Repo kommen - [x] **Email-Anhänge → Vertragsdokumente + Rechnungen für alle Vertragstypen** - Im SaveAttachmentModal (bei einem per Email zugeordneten Vertrag) gibt es jetzt drei Modi: 1. **Als Dokument** (in feste Slots wie Kündigungsschreiben) – wie bisher 2. **Als Vertragsdokument** – neu, mit Typ-Dropdown (Auftragsformular, Lieferbestätigung, Vertragsunterlagen, Vollmacht, Widerrufsbelehrung, Preisblatt, Sonstiges) + Notizen 3. **Als Rechnung** – jetzt für **alle** Vertragstypen (vorher nur Strom/Gas) - Gleiches gilt für das Speichern der gesamten Email als PDF-Rechnung - Neuer Backend-Endpoint `saveAttachmentAsContractDocument` für die flexible ContractDocument-Tabelle - [x] **Geburtstag-Management-Modal in Kundenstammdaten** - Neuer Button (Cake-Icon) neben Geburtsdatum öffnet Modal - **Gruß zurücksetzen:** setzt `lastBirthdayGreetingYear` auf null zurück (fürs Debugging + Fallback) - **Gruß jetzt senden:** per Email (direkt), WhatsApp/Telegram/Signal (öffnet vorbefülltes Fenster) - Beide Aktionen mit Ja/Nein-Bestätigungsdialog (kein versehentliches Klicken) - Text respektiert Du/Sie-Einstellung des Kunden - Checkbox "Automatisch senden" mit Kanal-Dropdown (neue Felder am Customer) - Audit-Log für Reset + Send - [x] **Anrede-Verhältnis Du/Sie pro Kunde** - Neues Feld `useInformalAddress` in Stammdaten (auch bei Firmenkunden) - Default: Sie (formell) - Geburtstagsgruß im Portal nutzt die Anrede: "Du"-Kunden bekommen "Herzlichen Glückwunsch, Max!", "Sie"-Kunden "Herzlichen Glückwunsch, Herr Müller!" - Komplett konsistent auch bei nachträglichen Glückwünschen ("hattest" vs "hatten") - [x] **Geburtsdatum + Geburtsort auch bei Firmenkunden** - Felder werden jetzt unabhängig vom Kundentyp angezeigt - Ermöglicht z.B. Geburtstage für Ansprechpartner bei Firmen - [x] **Geburtstagskalender + Geburtstagsgruß-Modal** - Admin: Section im Vertrags-Cockpit mit Kunden, die in den nächsten 30 Tagen oder letzten 7 Tagen Geburtstag haben - Portal: Modal mit Gruß am Geburtstag (inkl. nachträglichem Glückwunsch bis 7 Tage danach) - Wird pro Jahr nur einmal angezeigt - [x] **Typspezifische Zusatzinfos in Vertragslisten** - Strom/Gas → "Lieferadresse: ..." - DSL/Glasfaser/Kabel → "Anschlussadresse: ..." - Mobilfunk → "Rufnummer: ..." - KFZ → "Kennzeichen: ..." - Sichtbar in Admin-Liste, Portal-Liste und Kunden-Tab - [x] **Datenschutzerklärung PDF ↔ Online-Einwilligungen synchronisieren** - PDF hochgeladen → alle 4 Consents auf GRANTED - Haken entfernt im Portal → PDF löschen + Tabs sperren - Entsperrung nur durch alle Haken oder neues PDF - [x] **Zweitarif-Zähler (HT/NT)** bei Strom + Verbrauchsberechnung - [x] **Datumsformate vereinheitlichen** (01.01.2026 statt 1.1.2026) - [x] **Audit-Log aussagekräftig** (Vorher/Nachher bei allen Änderungen) - [x] **Impressum + Website-Datenschutzerklärung** im Kundenportal - Editor in Einstellungen - Vorschlagstexte - [x] **Consent-Bestätigungs-Flow per Email** - Alle Hebel müssen gesetzt sein - Bestätigungsbutton + Bestätigungsemail - [x] **Vertragsdokumente-Upload** (Auftragsformular, Lieferbestätigung, Vertragsunterlagen als PDF/PNG) - [x] **Bug: Stressfrei-Email im Auftragsgenerator** (funktioniert jetzt im Vertrag) - [x] **PDF-Auftragsvorlagen-System** - Template-Editor in Einstellungen - PDF hochladen, Formularfelder automatisch auslesen - CRM-Felder zuordnen (visuell mit Vorschau) - Seitenweise Sortierung der Felder - Dynamische Rufnummern-Felder mit Vorwahl-Extraktion - Nicht zugeordnete Felder bleiben editierbar - Auftrag generieren aus Vertragsdaten (Button im Vertrags-Detail) - [x] **Eigentümer-Verwaltung** - An Adresse gehängt (Firma, Vorname, Nachname, Anschrift, Kontakt) - Fallback auf Kundendaten wenn leer - Nur bei Liefer-/Meldeadressen (nicht Rechnung) - Namens-Kombinationen (Firma + Vorname + Nachname etc.) - [x] **Gruppenauswahl Liefer-/Rechnungs-/Eigentümer-Adresse** im Auftragsgenerator - [x] **Objekttyp + Lage + Lage des Anschlusses** bei Festnetz-Verträgen (DSL/Glasfaser/Kabel) - [x] **Bankverbindung-Fallback** im PDF-Generator (neueste aktive Bankverbindung des Kunden)