Vertragslisten: Karteninhaber + Mobilfunknetz + Kuendigung (rot)

Beide Vertragslisten (Kundenakte-Baum + Hauptmenue /contracts) zeigen bei
Mobilfunkvertraegen mit Rufnummer jetzt zusaetzlich Karteninhaber
(SimCard.cardUser der angezeigten SIM, nur wenn gesetzt) und Netz
(mobileNetwork -> Telekom/Vodafone/Telefonica (o2)) inline. Vertraege mit
Kuendigungsbestaetigung (cancellationConfirmationDate) bekommen eine eigene
Zeile in roter, fetter Schrift.

Backend: getContractTreeForCustomer + getAllContracts selektieren nun
mobileNetwork + cardUser (Tree zusaetzlich cancellationConfirmationDate).
Shared-Helper getContractTypeInfo um cardUser/network + mobileNetworkLabel
erweitert. Beide Listen rendern ueber den Tree-Endpoint.

Verifiziert: tsc + vite build gruen, Tree-Service liefert die Felder,
Helper-Mapping getestet (Vodafone/Telekom/o2, leerer Karteninhaber ausgelassen).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 12:18:24 +02:00
co-authored by Claude Opus 4.8
parent 8e46dbbfed
commit c5cf2c7416
6 changed files with 72 additions and 7 deletions
+13
View File
@@ -97,6 +97,19 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
## ✅ Erledigt
- [x] **📇 Vertragslisten: Karteninhaber + Mobilfunknetz + Kündigung (rot)** (2026-08-13)
- In **beiden** Vertragslisten (Kundenakte-Baum + Hauptmenü `/contracts`): bei
Mobilfunkverträgen mit Rufnummer zusätzlich **Karteninhaber** (`SimCard.cardUser`
der angezeigten SIM, nur wenn gesetzt) und **Netz** (`mobileNetwork`
Telekom/Vodafone/Telefónica (o2)) inline hinter der Rufnummer.
- Verträge mit **Kündigungsbestätigung**: `cancellationConfirmationDate` als
eigene Zeile in **roter, fetter Schrift** („Kündigungsbestätigung zum …").
- Backend: `getContractTreeForCustomer` + `getAllContracts` liefern jetzt
`mobileNetwork` + `cardUser` (Tree zusätzlich `cancellationConfirmationDate`;
Flat-Liste hat Scalars ohnehin via include). Beide Listen rendern über den
Tree-Endpoint. Shared-Helper `getContractTypeInfo` um `cardUser`/`network`
erweitert (+ `mobileNetworkLabel`).
- [x] **🛡️ Globaler API-Rate-Limit-Backstop + BLZ-Guard-Härtung (Pentest R148)** (2026-08-12)
- **Backstop:** Neuer genereller Limiter auf ALLE `/api`-Requests
(`apiBackstopRateLimiter`, in `index.ts` vor den Routern). Vorher gab es