feat: Add quantity support for product modules, multiply prices in order snapshot and pdf
Some checks failed
Staging Build / build (push) Has been cancelled

This commit is contained in:
DanielS
2026-06-25 13:04:37 +02:00
parent fe05e13d3f
commit 9e189f331a
8 changed files with 159 additions and 66 deletions

View File

@@ -45,6 +45,7 @@ const moduleSchema = z.object({
description: z.string().optional(),
price: z.coerce.number().min(0, 'Preis darf nicht negativ sein'),
is_required: z.boolean().default(false),
has_quantity: z.boolean().default(false),
requirements: z.array(z.string()).default([]),
exclusions: z.array(z.string()).default([]),
})
@@ -82,6 +83,7 @@ export function CreateProductDialog({ children, categories, product }: { childre
description: m.description || '',
price: m.price,
is_required: false,
has_quantity: m.has_quantity ?? false,
requirements: m.requirements || [],
exclusions: m.exclusions || [],
})) || [],
@@ -291,6 +293,7 @@ export function CreateProductDialog({ children, categories, product }: { childre
name: '',
price: 0,
is_required: false,
has_quantity: false,
description: '',
requirements: [],
exclusions: []
@@ -442,21 +445,35 @@ export function CreateProductDialog({ children, categories, product }: { childre
/>
</div>
<div className="flex items-center space-x-2">
<div className="flex items-center gap-6">
<FormField
control={form.control}
name={`modules.${index}.is_required`}
render={({ field }) => (
<FormItem className="flex flex-row items-start space-x-3 space-y-0">
<FormItem className="flex flex-row items-center space-x-2 space-y-0">
<FormControl>
<Checkbox
checked={field.value}
onCheckedChange={field.onChange}
/>
</FormControl>
<div className="space-y-1 leading-none">
<FormLabel className="text-slate-900 dark:text-white font-medium cursor-pointer">Erforderlich</FormLabel>
</div>
<FormLabel className="text-slate-900 dark:text-white font-medium cursor-pointer text-xs">Erforderlich</FormLabel>
</FormItem>
)}
/>
<FormField
control={form.control}
name={`modules.${index}.has_quantity`}
render={({ field }) => (
<FormItem className="flex flex-row items-center space-x-2 space-y-0">
<FormControl>
<Checkbox
checked={field.value}
onCheckedChange={field.onChange}
/>
</FormControl>
<FormLabel className="text-slate-900 dark:text-white font-medium cursor-pointer text-xs">Mengeneingabe erlauben</FormLabel>
</FormItem>
)}
/>