Vertrag: Auto-CANCELLED bei Kuendigungsbestaetigung + Cockpit-Filter

1) Auto-Status: Wird eine Kuendigungsbestaetigung hinzugefuegt (Datum
   ueber Formular und/oder Dokument-Upload), wird der Vertrag von ACTIVE
   auf CANCELLED gesetzt und das Vertragsende = Kuendigungsdatum.
   Zentrale Funktion maybeCancelOnCancellationConfirmation (idempotent,
   nur aus ACTIVE). Upload-Route ersetzt die alte Inline-Logik (setzt
   jetzt auch endDate); Update-Controller triggert nur bei neu/geaendertem
   Bestaetigungsdatum (manuelle Status-Korrekturen bleiben unangetastet).

2) Cockpit-Filter 'Kuendigungsbestaetigung': neue Liste
   cancellationConfirmations (Vertraege mit Bestaetigung in Status
   ACTIVE/DRAFT/CANCELLED) + Filter-Option im Cockpit-Dropdown. Eigene
   Liste, weil bereits CANCELLED-Vertraege mangels Issue sonst nicht in
   der Cockpit-Liste auftauchen.

Beides lokal verifiziert (Helper: ACTIVE->CANCELLED + endDate; Cockpit:
Vertrag erscheint in der Liste mit korrektem Status).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-08 15:13:05 +02:00
co-authored by Claude Opus 4.8
parent 5423c83009
commit 8169c74d8e
7 changed files with 159 additions and 20 deletions
+16
View File
@@ -97,6 +97,22 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
## ✅ Erledigt
- [x] **🚫 Auto-Kündigung + Cockpit-Filter Kündigungsbestätigung** (2026-08-07)
- **1) Auto-Status bei Kündigungsbestätigung:** Wird zu einem Vertrag eine
Kündigungsbestätigung hinzugefügt als **Datum** (`cancellationConfirmationDate`
übers Formular) und/oder als **Dokument** (Upload) wird der Vertrag von
ACTIVE → **CANCELLED** gesetzt und das **Vertragsende = Kündigungsdatum**.
Zentrale Funktion `maybeCancelOnCancellationConfirmation` (idempotent, nur
aus ACTIVE, nur echte Änderungen); genutzt vom Upload (ersetzt die alte
Inline-Logik, jetzt auch endDate) und vom Update-Controller (nur bei
neu/geändertem Bestätigungsdatum, damit manuelle Status-Korrekturen nicht
zurückgesetzt werden). Verifiziert.
- **2) Cockpit-Filter „Kündigungsbestätigung":** listet alle Verträge mit
hinterlegter Kündigungsbestätigung (Dokument und/oder Datum) in Status
ACTIVE/DRAFT/CANCELLED. Eigene Liste `cancellationConfirmations` im
Cockpit-Result (weil bereits CANCELLED-Verträge mangels „Issue" sonst nicht
auftauchen) + neue Filter-Option im Cockpit-Dropdown. Verifiziert.
- [~] **🧾 Gutschriftsverwaltung (Subventionen am Vertrag) Phase 1: Backend** (2026-08-06)
- Use-Case: zu einem Vertrag kann eine Subvention gewährt werden **Geld**
(Überweisung, EUR) oder **Sachwert** (Smartphone/Elektro …, Textfeld).