contractnumber provider added, old provider number field only if no previous contact exist

This commit is contained in:
2026-02-08 14:34:56 +01:00
parent 4442ab08b3
commit 06489299d5
30 changed files with 2046 additions and 744 deletions
+35 -6
View File
@@ -77,6 +77,7 @@ export default function ContractForm() {
const contractType = watch('type') as ContractType;
const customerId = watch('customerId');
const previousContractId = watch('previousContractId');
// Fetch existing contract for edit
const { data: contract } = useQuery({
@@ -255,6 +256,7 @@ export default function ContractForm() {
providerName: c.providerName || '',
tariffName: c.tariffName || '',
customerNumberAtProvider: c.customerNumberAtProvider || '',
contractNumberAtProvider: c.contractNumberAtProvider || '',
priceFirst12Months: c.priceFirst12Months || '',
priceFrom13Months: c.priceFrom13Months || '',
priceAfter24Months: c.priceAfter24Months || '',
@@ -273,8 +275,6 @@ export default function ContractForm() {
basePrice: c.energyDetails?.basePrice || '',
unitPrice: c.energyDetails?.unitPrice || '',
bonus: c.energyDetails?.bonus || '',
previousProviderName: c.energyDetails?.previousProviderName || '',
previousCustomerNumber: c.energyDetails?.previousCustomerNumber || '',
// Internet details
downloadSpeed: c.internetDetails?.downloadSpeed || '',
uploadSpeed: c.internetDetails?.uploadSpeed || '',
@@ -317,6 +317,10 @@ export default function ContractForm() {
wasSpecialCancellation: c.wasSpecialCancellation || false,
// Vorgänger-Vertrag
previousContractId: c.previousContractId?.toString() || '',
// Altanbieter (nur wenn kein Vorgängervertrag)
previousProviderId: c.previousProviderId?.toString() || '',
previousCustomerNumber: c.previousCustomerNumber || '',
previousContractNumber: c.previousContractNumber || '',
});
// Load simCards if available
@@ -473,6 +477,7 @@ export default function ContractForm() {
providerName: emptyToNull(data.providerName),
tariffName: emptyToNull(data.tariffName),
customerNumberAtProvider: emptyToNull(data.customerNumberAtProvider),
contractNumberAtProvider: emptyToNull(data.contractNumberAtProvider),
priceFirst12Months: emptyToNull(data.priceFirst12Months),
priceFrom13Months: emptyToNull(data.priceFrom13Months),
priceAfter24Months: emptyToNull(data.priceAfter24Months),
@@ -490,6 +495,10 @@ export default function ContractForm() {
cancellationConfirmationOptionsDate: data.cancellationConfirmationOptionsDate ? new Date(data.cancellationConfirmationOptionsDate) : null,
wasSpecialCancellation: data.wasSpecialCancellation || false,
previousContractId: safeParseInt(data.previousContractId) ?? null,
// Altanbieter (nur wenn kein Vorgängervertrag)
previousProviderId: data.previousContractId ? null : (safeParseInt(data.previousProviderId) ?? null),
previousCustomerNumber: data.previousContractId ? null : emptyToNull(data.previousCustomerNumber),
previousContractNumber: data.previousContractId ? null : emptyToNull(data.previousContractNumber),
};
// Add type-specific details
@@ -502,8 +511,6 @@ export default function ContractForm() {
basePrice: data.basePrice ? parseFloat(data.basePrice) : null,
unitPrice: data.unitPrice ? parseFloat(data.unitPrice) : null,
bonus: data.bonus ? parseFloat(data.bonus) : null,
previousProviderName: emptyToNull(data.previousProviderName),
previousCustomerNumber: emptyToNull(data.previousCustomerNumber),
};
}
@@ -710,6 +717,29 @@ export default function ContractForm() {
placeholder="Keinen Vorgänger auswählen"
/>
)}
{/* Altanbieter-Daten (nur wenn KEIN Vorgängervertrag ausgewählt) */}
{customerId && !previousContractId && (
<div className="mt-4 p-4 bg-gray-50 rounded-lg border border-gray-200">
<h4 className="text-sm font-medium text-gray-700 mb-3">Altanbieter-Daten</h4>
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
<Select
label="Altanbieter"
{...register('previousProviderId')}
options={providers.map((p) => ({ value: p.id, label: p.name }))}
placeholder="Bitte wählen..."
/>
<Input
label="Kundennr. beim Altanbieter"
{...register('previousCustomerNumber')}
/>
<Input
label="Vertragsnr. beim Altanbieter"
{...register('previousContractNumber')}
/>
</div>
</div>
)}
</div>
</Card>
@@ -775,6 +805,7 @@ export default function ContractForm() {
disabled={!selectedProviderId}
/>
<Input label="Kundennummer beim Anbieter" {...register('customerNumberAtProvider')} />
<Input label="Vertragsnummer beim Anbieter" {...register('contractNumberAtProvider')} />
<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" />
@@ -943,8 +974,6 @@ export default function ContractForm() {
{...register('unitPrice')}
/>
<Input label="Bonus (€)" type="number" step="0.01" {...register('bonus')} />
<Input label="Vorversorger" {...register('previousProviderName')} />
<Input label="Kundennr. beim Vorversorger" {...register('previousCustomerNumber')} />
</div>
{/* Hinweis für Zählerstände und Rechnungen */}