SIM-Karten: Feld "Kartennutzer" für Firmen-/Familienverträge

Bei Firmenverträgen (Vertragsinhaber = Firma, Nutzer = Mitarbeiter)
und Familienverträgen (Inhaber = Eltern, Nutzer = Kind) brauchten
wir ein Feld, das den tatsächlichen Nutzer der SIM-Karte erfasst.

Backend: SimCard.cardUser (String?, optional), Migration
20260601100000_sim_card_user mit IF NOT EXISTS. Im Service durch
Create + Update propagiert.

Frontend: Input "Kartennutzer" pro SIM-Karte in ContractForm
(eigene Zeile oberhalb der technischen Felder Rufnummer/SIM-Nr/
PIN/PUK). In ContractDetail wird der Nutzer als "Nutzer: <Name>"
neben den Hauptkarte/Multisim-Badges angezeigt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-01 08:10:16 +02:00
parent 9e3bce85f0
commit 4acfd9de1c
6 changed files with 42 additions and 1 deletions
+4
View File
@@ -275,6 +275,7 @@ interface ContractCreateData {
puk?: string;
isMultisim?: boolean;
isMain?: boolean;
cardUser?: string;
}[];
};
tvDetails?: {
@@ -378,6 +379,7 @@ export async function createContract(data: ContractCreateData) {
puk: sc.puk ? encrypt(sc.puk) : undefined,
isMultisim: sc.isMultisim ?? false,
isMain: sc.isMain ?? false,
cardUser: sc.cardUser,
})),
}
: undefined,
@@ -614,6 +616,7 @@ export async function updateContract(
puk: sc.puk ? encrypt(sc.puk) : (existingSc?.puk ?? undefined),
isMultisim: sc.isMultisim ?? false,
isMain: sc.isMain ?? false,
cardUser: sc.cardUser,
};
}),
});
@@ -632,6 +635,7 @@ export async function updateContract(
puk: sc.puk ? encrypt(sc.puk) : undefined,
isMultisim: sc.isMultisim ?? false,
isMain: sc.isMain ?? false,
cardUser: sc.cardUser,
})),
}
: undefined,