Vertrag: Kunden-/Vertragsnummer bei Vertriebsplattform
Viele Vertriebsplattformen vergeben eigene Nummern, die nicht mit denen des Endanbieters identisch sind. Zwei neue optionale Felder unter "Anbieter & Tarif". - Schema: Contract.customerNumberAtSalesPlatform + contractNumberAtSalesPlatform, Migration mit IF NOT EXISTS. - ContractForm: zwei neue Inputs direkt unter den entsprechenden Provider-Feldern. - ContractDetail: eigene Zeilen mit CopyButton. - Audit-Log-Mapping + Renewal-Copy + XSS-Strip-Whitelist mitgezogen. - Bonus: contractNumberAtProvider war im Renewal-Copy und Audit- Label-Mapping fehlend – mitkorrigiert.
This commit is contained in:
@@ -2080,6 +2080,24 @@ export default function ContractDetail() {
|
||||
</dd>
|
||||
</div>
|
||||
)}
|
||||
{c.customerNumberAtSalesPlatform && (
|
||||
<div>
|
||||
<dt className="text-sm text-gray-500">Kundennr. Vertriebsplattform</dt>
|
||||
<dd className="font-mono flex items-center gap-1">
|
||||
{c.customerNumberAtSalesPlatform}
|
||||
<CopyButton value={c.customerNumberAtSalesPlatform} />
|
||||
</dd>
|
||||
</div>
|
||||
)}
|
||||
{c.contractNumberAtSalesPlatform && (
|
||||
<div>
|
||||
<dt className="text-sm text-gray-500">Vertragsnr. Vertriebsplattform</dt>
|
||||
<dd className="font-mono flex items-center gap-1">
|
||||
{c.contractNumberAtSalesPlatform}
|
||||
<CopyButton value={c.contractNumberAtSalesPlatform} />
|
||||
</dd>
|
||||
</div>
|
||||
)}
|
||||
{c.salesPlatform && (
|
||||
<div>
|
||||
<dt className="text-sm text-gray-500">Vertriebsplattform</dt>
|
||||
|
||||
@@ -302,6 +302,8 @@ export default function ContractForm() {
|
||||
tariffName: c.tariffName || '',
|
||||
customerNumberAtProvider: c.customerNumberAtProvider || '',
|
||||
contractNumberAtProvider: c.contractNumberAtProvider || '',
|
||||
customerNumberAtSalesPlatform: c.customerNumberAtSalesPlatform || '',
|
||||
contractNumberAtSalesPlatform: c.contractNumberAtSalesPlatform || '',
|
||||
priceFirst12Months: c.priceFirst12Months || '',
|
||||
priceFrom13Months: c.priceFrom13Months || '',
|
||||
priceAfter24Months: c.priceAfter24Months || '',
|
||||
@@ -556,6 +558,8 @@ export default function ContractForm() {
|
||||
tariffName: emptyToNull(data.tariffName),
|
||||
customerNumberAtProvider: emptyToNull(data.customerNumberAtProvider),
|
||||
contractNumberAtProvider: emptyToNull(data.contractNumberAtProvider),
|
||||
customerNumberAtSalesPlatform: emptyToNull(data.customerNumberAtSalesPlatform),
|
||||
contractNumberAtSalesPlatform: emptyToNull(data.contractNumberAtSalesPlatform),
|
||||
priceFirst12Months: emptyToNull(data.priceFirst12Months),
|
||||
priceFrom13Months: emptyToNull(data.priceFrom13Months),
|
||||
priceAfter24Months: emptyToNull(data.priceAfter24Months),
|
||||
@@ -952,6 +956,8 @@ export default function ContractForm() {
|
||||
/>
|
||||
<Input label="Kundennummer beim Anbieter" {...register('customerNumberAtProvider')} />
|
||||
<Input label="Vertragsnummer beim Anbieter" {...register('contractNumberAtProvider')} />
|
||||
<Input label="Kundennummer bei Vertriebsplattform" {...register('customerNumberAtSalesPlatform')} />
|
||||
<Input label="Vertragsnummer bei Vertriebsplattform" {...register('contractNumberAtSalesPlatform')} />
|
||||
<Input label="Provision (€)" type="number" step="0.01" {...register('commission')} />
|
||||
<Input label="Preis erste 12 Monate" {...register('priceFirst12Months')} placeholder="z.B. 29,99 €/Monat" />
|
||||
<Input label="Preis ab 13. Monat" {...register('priceFrom13Months')} placeholder="z.B. 39,99 €/Monat" />
|
||||
|
||||
@@ -454,6 +454,8 @@ export interface Contract {
|
||||
tariffName?: string;
|
||||
customerNumberAtProvider?: string;
|
||||
contractNumberAtProvider?: string;
|
||||
customerNumberAtSalesPlatform?: string;
|
||||
contractNumberAtSalesPlatform?: string;
|
||||
priceFirst12Months?: string;
|
||||
priceFrom13Months?: string;
|
||||
priceAfter24Months?: string;
|
||||
|
||||
Reference in New Issue
Block a user