added new view in contracts customer and contracts
This commit is contained in:
@@ -35,6 +35,7 @@ export default function ContractForm() {
|
||||
customerId: preselectedCustomerId || '',
|
||||
type: 'ELECTRICITY',
|
||||
status: 'DRAFT',
|
||||
previousContractId: '',
|
||||
},
|
||||
});
|
||||
|
||||
@@ -61,6 +62,13 @@ export default function ContractForm() {
|
||||
enabled: !!customerId,
|
||||
});
|
||||
|
||||
// Fetch contracts for same customer (for predecessor selection)
|
||||
const { data: customerContractsData } = useQuery({
|
||||
queryKey: ['customer-contracts-for-predecessor', customerId],
|
||||
queryFn: () => contractApi.getAll({ customerId: parseInt(customerId), limit: 1000 }),
|
||||
enabled: !!customerId,
|
||||
});
|
||||
|
||||
// Fetch platforms
|
||||
const { data: platformsData } = useQuery({
|
||||
queryKey: ['platforms'],
|
||||
@@ -256,6 +264,8 @@ export default function ContractForm() {
|
||||
cancellationConfirmationDate: c.cancellationConfirmationDate ? c.cancellationConfirmationDate.split('T')[0] : '',
|
||||
cancellationConfirmationOptionsDate: c.cancellationConfirmationOptionsDate ? c.cancellationConfirmationOptionsDate.split('T')[0] : '',
|
||||
wasSpecialCancellation: c.wasSpecialCancellation || false,
|
||||
// Vorgänger-Vertrag
|
||||
previousContractId: c.previousContractId?.toString() || '',
|
||||
});
|
||||
|
||||
// Load simCards if available
|
||||
@@ -427,6 +437,7 @@ export default function ContractForm() {
|
||||
cancellationConfirmationDate: data.cancellationConfirmationDate ? new Date(data.cancellationConfirmationDate) : null,
|
||||
cancellationConfirmationOptionsDate: data.cancellationConfirmationOptionsDate ? new Date(data.cancellationConfirmationOptionsDate) : null,
|
||||
wasSpecialCancellation: data.wasSpecialCancellation || false,
|
||||
previousContractId: safeParseInt(data.previousContractId) ?? null,
|
||||
};
|
||||
|
||||
// Add type-specific details
|
||||
@@ -540,6 +551,11 @@ export default function ContractForm() {
|
||||
const contractCategories = contractCategoriesData?.data?.filter(c => c.isActive).sort((a, b) => a.sortOrder - b.sortOrder) || [];
|
||||
const typeOptions = contractCategories.map(c => ({ value: c.code, label: c.name }));
|
||||
|
||||
// Available predecessor contracts (same customer, excluding current contract if editing)
|
||||
const predecessorContracts = (customerContractsData?.data || [])
|
||||
.filter(c => !isEdit || c.id !== parseInt(id!))
|
||||
.sort((a, b) => new Date(b.startDate || 0).getTime() - new Date(a.startDate || 0).getTime());
|
||||
|
||||
// Get tariffs for selected provider
|
||||
const selectedProvider = providers.find(p => p.id === parseInt(selectedProviderId || '0'));
|
||||
const availableTariffs = selectedProvider?.tariffs?.filter(t => t.isActive) || [];
|
||||
@@ -615,6 +631,19 @@ export default function ContractForm() {
|
||||
{...register('salesPlatformId')}
|
||||
options={platforms.map((p) => ({ value: p.id, label: p.name }))}
|
||||
/>
|
||||
|
||||
{/* Vorgänger-Vertrag auswählen (nur wenn Kunde gewählt) */}
|
||||
{customerId && (
|
||||
<Select
|
||||
label="Vorgänger-Vertrag"
|
||||
{...register('previousContractId')}
|
||||
options={predecessorContracts.map((c) => ({
|
||||
value: c.id,
|
||||
label: `${c.contractNumber} (${c.type}${c.startDate ? ` - ${new Date(c.startDate).toLocaleDateString('de-DE')}` : ''})`,
|
||||
}))}
|
||||
placeholder="Keinen Vorgänger auswählen"
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
</Card>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user