Vertrag kopieren: Portal-Zugangsdaten mitkopieren
Auf Wunsch: Portal-Benutzername + Stressfrei-Verknuepfung/'nicht benoetigt'-Flag werden im Kopier-Modus behalten (bei gleichem Anbieter oft identisch). Nur das Passwort bleibt leer, weil es verschluesselt gespeichert und - wie beim Bearbeiten - nicht im Klartext ins Feld geladen wird. Banner-Hinweis ergaenzt. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+7
-4
@@ -106,10 +106,13 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
|
|||||||
Preis, Laufzeit, Kunden-/Vertragsnummer, Anbieter/Tarif ändern sich.
|
Preis, Laufzeit, Kunden-/Vertragsnummer, Anbieter/Tarif ändern sich.
|
||||||
- Geleert im Kopier-Modus (Integrität / Eindeutigkeit): Status→DRAFT,
|
- Geleert im Kopier-Modus (Integrität / Eindeutigkeit): Status→DRAFT,
|
||||||
Vorgänger-Link, alle Datumsfelder (Start/Ende/Installation/Kündigungs-
|
Vorgänger-Link, alle Datumsfelder (Start/Ende/Installation/Kündigungs-
|
||||||
bestätigung), Kunden-/Vertragsnummer beim Anbieter + Plattform-Nummern,
|
bestätigung), Kunden-/Vertragsnummer beim Anbieter + Plattform-Nummern.
|
||||||
Portal-Benutzer/Passwort. **Nicht** übernommen: SIM-Karten & Rufnummern
|
**Nicht** übernommen: SIM-Karten & Rufnummern (hardware-/vertrags-
|
||||||
(hardware-/vertragsspezifisch, eindeutige Nummern). Rest (Anbieter/Tarif,
|
spezifisch, eindeutige Nummern). **Behalten** wird der Portal-Zugang
|
||||||
Preise, alle Detailfelder, Notizen) bleibt als Vorlage.
|
(Benutzername + Stressfrei-Verknüpfung/„nicht benötigt") – bei gleichem
|
||||||
|
Anbieter oft identisch; nur das verschlüsselte Passwort wird nicht ins
|
||||||
|
Feld geladen (wie beim Bearbeiten). Rest (Anbieter/Tarif, Preise, alle
|
||||||
|
Detailfelder, Notizen) bleibt als Vorlage.
|
||||||
- Rein Frontend (`ContractForm` copy-Mode + Button in `ContractDetail`);
|
- Rein Frontend (`ContractForm` copy-Mode + Button in `ContractDetail`);
|
||||||
kein neuer Endpoint – nutzt bestehendes Create. Blauer Hinweis-Banner
|
kein neuer Endpoint – nutzt bestehendes Create. Blauer Hinweis-Banner
|
||||||
„Kopie … neuer eigenständiger Vertrag" im Formular.
|
„Kopie … neuer eigenständiger Vertrag" im Formular.
|
||||||
|
|||||||
@@ -423,8 +423,10 @@ export default function ContractForm() {
|
|||||||
orderNumberAtSalesPlatform: '',
|
orderNumberAtSalesPlatform: '',
|
||||||
customerNumberAtSalesPlatform: '',
|
customerNumberAtSalesPlatform: '',
|
||||||
contractNumberAtSalesPlatform: '',
|
contractNumberAtSalesPlatform: '',
|
||||||
// Portal-Zugang gehört zum konkreten Vertrag → frisch
|
// Portal-Zugangsdaten (Benutzername/Stressfrei-Verknüpfung) bewusst
|
||||||
portalUsername: '',
|
// BEHALTEN – bei gleichem Anbieter oft identisch. Das Passwort liegt
|
||||||
|
// verschlüsselt vor und wird (wie beim Bearbeiten) nicht ins Feld
|
||||||
|
// geladen; es bleibt leer und kann bei Bedarf neu gesetzt werden.
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -495,11 +497,9 @@ export default function ContractForm() {
|
|||||||
// Portal-Benutzername-Typ initialisieren.
|
// Portal-Benutzername-Typ initialisieren.
|
||||||
// Opt-out („nicht benötigt") gewinnt vor Stressfrei/Manual, damit ein
|
// Opt-out („nicht benötigt") gewinnt vor Stressfrei/Manual, damit ein
|
||||||
// versehentlich noch alter portalUsername den Radio-Zustand nicht
|
// versehentlich noch alter portalUsername den Radio-Zustand nicht
|
||||||
// überstimmt. Im Kopier-Modus immer frisch (manuell, leer).
|
// überstimmt. Gilt auch im Kopier-Modus: Portal-Zugangsdaten werden
|
||||||
if (isCopy) {
|
// mitkopiert (nur das Passwort bleibt leer, s.o.).
|
||||||
setUsernameType('manual');
|
if (c.portalCredentialsNotRequired) {
|
||||||
setSelectedStressfreiEmailId('');
|
|
||||||
} else if (c.portalCredentialsNotRequired) {
|
|
||||||
setUsernameType('not_required');
|
setUsernameType('not_required');
|
||||||
setSelectedStressfreiEmailId('');
|
setSelectedStressfreiEmailId('');
|
||||||
} else if (c.stressfreiEmailId) {
|
} else if (c.stressfreiEmailId) {
|
||||||
@@ -863,7 +863,8 @@ export default function ContractForm() {
|
|||||||
<p className="ml-12 mt-1 text-sm text-blue-700 bg-blue-50 border border-blue-200 rounded px-2 py-1 inline-flex items-center gap-1">
|
<p className="ml-12 mt-1 text-sm text-blue-700 bg-blue-50 border border-blue-200 rounded px-2 py-1 inline-flex items-center gap-1">
|
||||||
<Copy className="w-4 h-4" />
|
<Copy className="w-4 h-4" />
|
||||||
Kopie eines bestehenden Vertrags – wird als <strong>neuer eigenständiger Vertrag</strong> gespeichert.
|
Kopie eines bestehenden Vertrags – wird als <strong>neuer eigenständiger Vertrag</strong> gespeichert.
|
||||||
Anbieter/Tarif, Preise, Kunden-/Vertragsnummern und Daten bitte prüfen.
|
Anbieter/Tarif, Preise, Kunden-/Vertragsnummern und Daten bitte prüfen. Portal-Benutzername
|
||||||
|
übernommen, Passwort ggf. neu setzen.
|
||||||
</p>
|
</p>
|
||||||
)}
|
)}
|
||||||
{customer && (
|
{customer && (
|
||||||
|
|||||||
Reference in New Issue
Block a user