opencrm/backend/todo.md

4.7 KiB
Raw Blame History

📋 OpenCRM Todo-Liste


🔜 Offen

Email Log & System testen

  • Senden testen
  • Empfangen testen

Security System testen

Email → Vertragsdokumente

Wenn eine Email einem Vertrag zugeordnet ist:

  • Anhänge auch in Vertragsdokumente speichern
  • Rechnungen wie Kündigungsdokumente behandeln

Factory-Defaults: Export + Import von Lieferanten & Formularvorlagen

Ziel: Einmal gepflegte Stammdaten (Anbieter, Tarife, Kündigungsfristen, Laufzeiten, PDF-Auftragsvorlagen) sollen sich exportieren und in andere Installationen oder als Factory-Default beim Initialisieren wieder einspielen lassen.

⚠️ Wichtig Abgrenzung:

  • KEINE Kundendaten, Verträge, Dokumente, Emails, SMTP-Einstellungen o.ä.
  • NUR reine Stammdaten-Kataloge ohne Bezug zu Kunden/Firma
  • Für komplette Backups (inkl. Kundendaten, Dokumente, Einstellungen) gibt es bereits den separaten Backup-Export

Konzept:

  • Ordner: backend/factory-defaults/ (gitignoriert für echte Firmen-Exports, aber mit .gitkeep und optional einem öffentlich teilbaren seeds/-Unterordner) Struktur:

    backend/factory-defaults/
      providers/         → providers.json (Anbieter + Tarife)
      contract-meta/     → cancellationPeriods.json, contractDurations.json, contractCategories.json
      pdf-templates/     → {templateName}.json + dazugehörige PDF-Datei
    
  • Export: Button in Einstellungen → "Factory-Defaults exportieren"

    • Erstellt ZIP mit allen JSON-Dateien + PDF-Vorlagen
    • Nur Kataloge: Anbieter, Tarife, Kündigungsfristen, Laufzeiten, Vertragskategorien, PDF-Auftragsvorlagen (inkl. PDF-Dateien + Feldzuordnungen)
    • User entpackt das ZIP nach backend/factory-defaults/
  • Import-Script: backend/scripts/seed-factory-defaults.ts

    • Liest alle Dateien aus backend/factory-defaults/
    • Bei mehreren Dateien: automatisches Mergen (per unique name)
    • Nutzt Prisma upsert → idempotent, kann mehrfach ausgeführt werden
    • PDF-Dateien werden nach uploads/ kopiert + Pfade in DB aktualisiert
    • Aufruf: npm run seed:defaults
  • Init-DB Integration: Script wird optional beim Setup mit ausgeführt wenn der Ordner existiert


Erledigt

  • Geburtsdatum + Geburtsort auch bei Firmenkunden

    • Felder werden jetzt unabhängig vom Kundentyp angezeigt
    • Ermöglicht z.B. Geburtstage für Ansprechpartner bei Firmen
  • 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
  • Typspezifische Zusatzinfos in Vertragslisten

    • Strom/Gas → "Lieferadresse: ..."
    • DSL/Glasfaser/Kabel → "Anschlussadresse: ..."
    • Mobilfunk → "Rufnummer: ..."
    • KFZ → "Kennzeichen: ..."
    • Sichtbar in Admin-Liste, Portal-Liste und Kunden-Tab
  • 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
  • Zweitarif-Zähler (HT/NT) bei Strom + Verbrauchsberechnung

  • Datumsformate vereinheitlichen (01.01.2026 statt 1.1.2026)

  • Audit-Log aussagekräftig (Vorher/Nachher bei allen Änderungen)

  • Impressum + Website-Datenschutzerklärung im Kundenportal

    • Editor in Einstellungen
    • Vorschlagstexte
  • Consent-Bestätigungs-Flow per Email

    • Alle Hebel müssen gesetzt sein
    • Bestätigungsbutton + Bestätigungsemail
  • Vertragsdokumente-Upload (Auftragsformular, Lieferbestätigung, Vertragsunterlagen als PDF/PNG)

  • Bug: Stressfrei-Email im Auftragsgenerator (funktioniert jetzt im Vertrag)

  • 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)
  • 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.)
  • Gruppenauswahl Liefer-/Rechnungs-/Eigentümer-Adresse im Auftragsgenerator

  • Objekttyp + Lage + Lage des Anschlusses bei Festnetz-Verträgen (DSL/Glasfaser/Kabel)

  • Bankverbindung-Fallback im PDF-Generator (neueste aktive Bankverbindung des Kunden)