seperate delivery and billig adresses in contract added
This commit is contained in:
@@ -1833,9 +1833,9 @@ export default function ContractDetail() {
|
||||
)}
|
||||
|
||||
{/* Linked Data */}
|
||||
<div className="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6">
|
||||
<div className="grid grid-cols-1 lg:grid-cols-4 gap-6 mb-6">
|
||||
{c.address && (
|
||||
<Card title="Adresse">
|
||||
<Card title="Lieferadresse">
|
||||
<CopyableBlock
|
||||
values={[
|
||||
`${c.address.street} ${c.address.houseNumber}`,
|
||||
@@ -1853,6 +1853,35 @@ export default function ContractDetail() {
|
||||
</CopyableBlock>
|
||||
</Card>
|
||||
)}
|
||||
{/* Rechnungsadresse: Falls nicht gesetzt, Lieferadresse anzeigen */}
|
||||
{(c.billingAddress || c.address) && (
|
||||
<Card title="Rechnungsadresse">
|
||||
{(() => {
|
||||
const addr = c.billingAddress || c.address;
|
||||
if (!addr) return null;
|
||||
return (
|
||||
<CopyableBlock
|
||||
values={[
|
||||
`${addr.street} ${addr.houseNumber}`,
|
||||
`${addr.postalCode} ${addr.city}`,
|
||||
addr.country
|
||||
]}
|
||||
>
|
||||
<p>
|
||||
{addr.street} {addr.houseNumber}
|
||||
</p>
|
||||
<p>
|
||||
{addr.postalCode} {addr.city}
|
||||
</p>
|
||||
<p className="text-gray-500">{addr.country}</p>
|
||||
{!c.billingAddress && c.address && (
|
||||
<p className="text-xs text-gray-400 mt-1">(wie Lieferadresse)</p>
|
||||
)}
|
||||
</CopyableBlock>
|
||||
);
|
||||
})()}
|
||||
</Card>
|
||||
)}
|
||||
{c.bankCard && (
|
||||
<Card title="Bankkarte">
|
||||
<p className="font-medium">{c.bankCard.accountHolder}</p>
|
||||
|
||||
@@ -207,6 +207,7 @@ export default function ContractForm() {
|
||||
type: c.type,
|
||||
status: c.status,
|
||||
addressId: c.addressId?.toString() || '',
|
||||
billingAddressId: c.billingAddressId?.toString() || '',
|
||||
bankCardId: c.bankCardId?.toString() || '',
|
||||
identityDocumentId: c.identityDocumentId?.toString() || '',
|
||||
salesPlatformId: c.salesPlatformId?.toString() || '',
|
||||
@@ -422,6 +423,7 @@ export default function ContractForm() {
|
||||
contractCategoryId: selectedCategory.id,
|
||||
status: data.status,
|
||||
addressId: safeParseInt(data.addressId) ?? null,
|
||||
billingAddressId: safeParseInt(data.billingAddressId) ?? null,
|
||||
bankCardId: safeParseInt(data.bankCardId) ?? null,
|
||||
identityDocumentId: safeParseInt(data.identityDocumentId) ?? null,
|
||||
salesPlatformId: safeParseInt(data.salesPlatformId) ?? null,
|
||||
@@ -658,16 +660,31 @@ export default function ContractForm() {
|
||||
|
||||
{customerId && (
|
||||
<Card className="mb-6" title="Kundendaten verknüpfen">
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
|
||||
<Select
|
||||
label="Adresse"
|
||||
label="Lieferadresse"
|
||||
{...register('addressId')}
|
||||
options={addresses.map((a) => ({
|
||||
value: a.id,
|
||||
label: `${a.street} ${a.houseNumber}, ${a.postalCode} ${a.city} (${a.type === 'BILLING' ? 'Rechnung' : 'Liefer'})`,
|
||||
}))}
|
||||
options={addresses
|
||||
.filter((a) => a.type === 'DELIVERY_RESIDENCE')
|
||||
.map((a) => ({
|
||||
value: a.id,
|
||||
label: `${a.street} ${a.houseNumber}, ${a.postalCode} ${a.city}`,
|
||||
}))}
|
||||
/>
|
||||
|
||||
<Select
|
||||
label="Rechnungsadresse"
|
||||
{...register('billingAddressId')}
|
||||
options={addresses
|
||||
.filter((a) => a.type === 'BILLING')
|
||||
.map((a) => ({
|
||||
value: a.id,
|
||||
label: `${a.street} ${a.houseNumber}, ${a.postalCode} ${a.city}`,
|
||||
}))}
|
||||
placeholder="Wie Lieferadresse"
|
||||
/>
|
||||
</div>
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||
<Select
|
||||
label="Bankkarte"
|
||||
{...register('bankCardId')}
|
||||
|
||||
@@ -274,6 +274,8 @@ export interface Contract {
|
||||
status: ContractStatus;
|
||||
addressId?: number;
|
||||
address?: Address;
|
||||
billingAddressId?: number;
|
||||
billingAddress?: Address;
|
||||
bankCardId?: number;
|
||||
bankCard?: BankCard;
|
||||
identityDocumentId?: number;
|
||||
|
||||
Reference in New Issue
Block a user