Preview as:
Only Super Admin and Sales create quotations (PRD §3; CS/Customs/Finance/Pricing have no create path).
Quotations / New quotation

New Quotation

Header data per PRD §4.1: customer, route, service, cargo, payment terms and validity. Items are priced from Weekly Rates (TASK-011); business logic lives in src/features/quotation/ hooks, not in this form (PRD §22).

Quotation header

Validated with RHF + Zod schema quotationSchema (PRD §22)
Sales sees own customers only (sales_owner_id = current_user.id, PRD §3.2). Customer is required.
Prefilled from customer master (§4.1). Payment terms are required.
Validity must be a future date.
Origin is required.
Destination is required.
Service type is required.
Cargo description is required.
Weight must be 0 or more.
Volume must be 0 or more.
FX from pricing version snapshot (§8.2).

Pricing calculator

TASK-011 · pulls from Weekly Rates (§8.2)

Rate suggestion requires origin, destination, service type and validity. Matching engine: backend pricing_calculations stores the snapshot (rate version, FX, margin) so the quotation stays reproducible after weekly prices rotate (§8.2, §16).

Quotation items

TASK-010 · qty × unit price, margin per line
DescriptionCharge type QtyCost (Rp) Sell (Rp)Margin Total (Rp)Remove
SubtotalRp 0
PPN 11%Rp 0
TotalRp 0
Overall margin0%
Assumptions (PRD gap). Tax uses the PPN 11% standard rate from the Tax master (§27.B7); mixed-rate lines to be settled with Finance. Margin-warning threshold (amber < 12%) is a prototype value — Finance configures the real floor in Margin Configuration (EPIC 07, TASK-035). PDF preview after save lands on the detail screen (TASK-012).