Vertrag kopieren: neuen eigenstaendigen Vertrag aus Vorlage anlegen
Kopieren-Button in der Vertragsansicht oeffnet das Neu-Formular unter /contracts/new?copyFrom=<id> mit allen Daten des Quellvertrags vorbefuellt. Beim Speichern entsteht ein frischer, unabhaengiger Vertrag (kein previousContractId-Link, kein VVL). Use-Case: neuer Mobilfunk-/o.ae. Vertrag ist meist fast identisch; nur Preis, Laufzeit, Kunden-/Vertragsnummer, Anbieter/Tarif aendern sich - der Rest bleibt gleich. Im Kopier-Modus geleert (Integritaet/Eindeutigkeit): Status->DRAFT, Vorgaenger-Link, alle Datumsfelder, Kunden-/Vertragsnummer beim Anbieter + Plattform-Nummern, Portal-Zugang. SIM-Karten & Rufnummern werden nicht uebernommen. Rest (Anbieter/Tarif/Preise/Detailfelder/ Notizen) bleibt als Vorlage. Rein Frontend (ContractForm copy-Mode + Button in ContractDetail), kein neuer Endpoint - nutzt bestehendes Create. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1956,6 +1956,18 @@ export default function ContractDetail() {
|
||||
</Button>
|
||||
</Link>
|
||||
)}
|
||||
{hasPermission('contracts:create') && (
|
||||
<Link
|
||||
to={`/contracts/new?copyFrom=${contractId}&customerId=${c.customerId}`}
|
||||
state={pushHistory(currentPath, location.state)}
|
||||
title="Alle Daten dieses Vertrags in einen neuen, eigenständigen Vertrag übernehmen"
|
||||
>
|
||||
<Button variant="secondary">
|
||||
<Copy className="w-4 h-4 mr-2" />
|
||||
Kopieren
|
||||
</Button>
|
||||
</Link>
|
||||
)}
|
||||
{hasPermission('contracts:update') && (
|
||||
<Link to={`/contracts/${id}/edit`} state={pushHistory(currentPath, location.state)}>
|
||||
<Button variant="secondary">
|
||||
|
||||
Reference in New Issue
Block a user