caterium-app/docs/releases/2026-09-20-BANQUET-CLIENT-MENU.md
pavlov346346-source bc3f186992
One-page banquet menu for the client (#36)
Add a single-page A4 preview and PDF for all selected banquet dishes or a ready-menu selection, with company branding and optional costs. Preserve draft/order state and saved line prices, enforce access and tenant scope, and fail clearly rather than clipping oversized menus. Nineteen targeted browser scenarios passed twice and the generated iPhone PDF was visually checked. Full main QA must pass before the existing automatic production promotion; production verification includes the new renderer and real-asset client menu export.
2026-09-20 12:54:42 +03:00

24 lines
1.4 KiB
Markdown

# One-page banquet menu for the client
Banquet menu → select individual dishes or choose a ready menu → Меню для клиента.
The preview and downloaded PDF use the same single A4 portrait canvas, with the
company document name/logo/contacts, event date, guests, and selected dishes grouped
by course. Costs can be shown or hidden. Sharing uses the system file share sheet
where supported; downloading a PDF is always available after rendering.
The document reads all selected dishes, not just the current search/group/package
filter. Existing line price snapshots (including free lines) take precedence over
current catalog prices. Otherwise active catalog promotions apply with kopecks.
Pricing covers only selected menu dishes, not the order's delivery, services or
order-wide discount. The calculation is explicitly labelled in the document.
Opening/exporting never applies the selection to an order, writes local storage or
saves a draft. A profile/company switch closes the preview and invalidates an
unfinished render. Existing catalog access and client-offer subscription limits
are respected.
Layout measures Cyrillic text after bounded font loading, balances one/two columns
and adjusts type size down to a legible minimum. Names are never truncated and
no dish is silently omitted. A menu too large for a readable single page produces
a clear error rather than an extra page or tiny/clipped text.