caterium-app/docs/BANQUET-MENU-20260917.md
2026-09-17 21:07:54 +03:00

1.6 KiB

Banquet menu

Category 6 now has package filters and dish sections, with an independent selection summary. Filters never remove selected dishes from totals. Alternative main courses are mutually exclusive within a package. Quantities and totals scale by the guest count, and applying a selection replaces only banquet lines in the current order. Existing order prices remain intact when a catalog price changes.

Catalog entries carry optional banquet metadata (package identifier/name, original package price/grams, main-course choice group and estimate flag). All menu data belongs to the workspace. The public code contains no company menu seed; new companies remain empty. Package names, sections, weight, price and estimate flag are editable in the existing dish editor.

The first company import uses the user-provided image. The per-dish weights and prices are explicitly estimates allocated from each complete menu. One alternative main is counted per guest; every alternative reproduces its package's advertised weight and price. The source's mushrooms and eggplant in the luxury menu are represented as separate dishes. The importer is restricted to the authorized company, creates a backup, appends unique IDs, preserves unrelated catalog entries/orders/customer state, and checks normalized catalog rows and totals.

Banquet dish weights are included in order documents and client-offer food totals. Tests cover selection across filters, changing the main, guest scaling, repeated application without duplicate lines, safe rendering, editing estimates and saving the resulting order.