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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user