Rufnummern: Vorwahl als eigenes Feld – verlässliche PDF-Befüllung

Bisher steht in PhoneNumber.phoneNumber die kombinierte Nummer
("04264 836975"). Die Wechselauftrag-PDFs splittten heuristisch
auf Vorwahl/Anschluss, was bei Sonderformaten daneben ging.

Schema: PhoneNumber.areaCode String? (optional, Bestandsdaten
werden beim nächsten Edit nachgepflegt). Migration
20260601200000_phone_area_code mit IF NOT EXISTS.

ContractForm: aus "Rufnummer" werden zwei Felder – "Vorwahl" und
"Rufnummer". Beim Speichern sendet das Frontend areaCode separat
UND die kombinierte phoneNumber (für Listen/Suchen weiter
unverändert). Beim Edit-Load wird areaCode bevorzugt; falls leer,
splittet die UI heuristisch und prefillt beides – User kann
korrigieren und beim Speichern wird der saubere Wert persistiert.

PDF-Template-Service: phoneAreaCode[N] und phoneLocal[N]
verwenden jetzt primär den gespeicherten areaCode aus der DB
(verlässlich), Heuristik nur als Fallback für Altbestand. Die
Template-Variablen-Liste war bereits korrekt definiert, jetzt
ist die Datenquelle solide.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-01 14:10:25 +02:00
co-authored by Claude Opus 4.7
parent 57eb29c2a6
commit 61daff8df9
6 changed files with 125 additions and 26 deletions
+4
View File
@@ -540,7 +540,11 @@ export interface InternetContractDetails {
export interface PhoneNumber {
id: number;
// Komplette Nummer (Vorwahl + Anschluss). Bleibt für bestehende
// Listen/Suchen die Quelle der Wahrheit. Vorwahl zusätzlich separat
// gepflegt, damit Wechselauftrag-PDFs sie verlässlich befüllen.
phoneNumber: string;
areaCode?: string;
isMain: boolean;
// SIP-Zugangsdaten
sipUsername?: string;