Quote Line Editor
Adding, editing, and removing quote lines in Sixième Étoile — unit prices, quantities, VAT rates, the fee dialog, undo/redo history, and pricing mode switching.
Overview
The Quote Line Editor (screen C-04) is the center panel of the quote cockpit. It is where every billable item on a quote is defined, ordered, and priced. Changes to line items update the summary panel totals in real time.
Anatomy of a Quote Line
Each line in the editor represents one billable item. The following fields are available per line:
| Field | Database column | Type | Notes |
|---|---|---|---|
| Description | QuoteLine.description | Text | Printed on the client PDF |
| Unit price | QuoteLine.unitPrice | Decimal (HT) | Always pre-tax; set by engine or operator |
| Quantity | QuoteLine.quantity | Decimal | Defaults to 1 |
| VAT rate | QuoteLine.vatRate | Decimal % | e.g., 10.00 = 10% |
| Line total | QuoteLine.totalPrice | Decimal (HT) | Auto-computed: unitPrice × quantity |
The line total is always computed and cannot be edited directly. To adjust the total, change the unit price or quantity.
Adding Lines
Transport line (auto-populated)
When trip parameters (type, addresses, vehicle category, pricing mode) are filled in the left panel, the cockpit automatically inserts the main transport line. The unit price is determined by:
- FIXED_GRID mode: price from the matching
ZoneRouteentry in the tariff grid - DYNAMIC mode: price computed from active dynamic pricing rules
This line can be edited manually if needed. Manually editing the unit price on a transport line does not change the pricing mode.
Adding a fee line
Click + Add fee (or use the keyboard shortcut Enter on the last line) to open the Fee Dialog (screen C-05).
The Fee Dialog lets the operator:
-
Browse the fee catalog — a dropdown (FR404 preset dropdown) showing all fee types configured in Pricing & Configuration → Fee Catalog. Common presets include:
- Airport taxes
- Night surcharge
- Waiting time (per started 15 minutes)
- Toll reimbursement
- Luggage handling
-
Select a preset — populates the description, default unit price, and default VAT rate from the catalog entry
-
Override the amount — unit price and quantity remain editable after selection
-
Select a VAT rate — the rate selector defaults to the catalog entry's VAT rate but can be changed
After confirming the dialog, the fee line is inserted below the last existing line.
Adding a free-text line
To add a line with no catalog preset, type directly in the description field of a new empty line. Enter the unit price, quantity, and VAT rate manually.
Adding a discount line
Discounts are entered as negative unit prices (e.g., -25.00 for a 25 € discount). Select "Discount" from the line type indicator if you want the PDF to display the line with a discount label.
Editing Lines
Click any cell in a line to edit it inline. Use Tab to move to the next field and Shift+Tab to move back.
Reordering lines: Drag the handle on the left of a line to reorder it. Line order is preserved on the PDF.
Editing the transport line:
The main transport line can be edited like any other line. If you change its unit price while in FIXED_GRID mode, a warning badge appears to indicate the price no longer matches the grid.
Removing Lines
To delete a line:
- Click the trash icon on the right of the line, or
- Select the line and press
Delete
If only one line remains, a confirmation dialog is shown before deletion (a quote cannot be saved with zero lines).
Undo / Redo
The line editor maintains a temporal history powered by Zustand + Zundo with a limit of 50 history entries. This covers all add, edit, and delete operations on lines within a single cockpit session.
| Action | How to trigger |
|---|---|
| Undo | Ctrl+Z (Windows/Linux) or Cmd+Z (macOS) |
| Redo | Ctrl+Shift+Z or Cmd+Shift+Z |
| History panel | Click the clock icon in the line editor toolbar |
The history panel shows a chronological list of the last 50 operations with timestamps. Clicking an entry in the history panel restores the state to that point.
Note: History is in-memory for the current cockpit session only. Navigating away from the cockpit or reloading the page clears the undo history. Saved drafts persist, but undo cannot cross a save boundary.
Pricing Mode Toggle
The pricing mode (Quote.pricingMode) controls how the transport line price is computed:
| Mode | Behaviour |
|---|---|
FIXED_GRID | Transport unit price is looked up from the ZoneRoute tariff grid for the origin–destination pair and vehicle category |
DYNAMIC | Transport unit price is computed by the dynamic pricing engine based on distance, time, and active rules |
The toggle appears in the left panel (trip parameters). Switching mode triggers an immediate recalculation of the transport line price. Fee lines are not affected by the pricing mode.
Tip: Use
FIXED_GRIDfor contracted accounts where the price should never deviate from the agreed tariff. UseDYNAMICfor ad-hoc quotes where market rates apply.
Line Validation
Before a quote can be sent, all lines must pass validation:
- Description must not be empty
- Unit price must be a valid positive number (or negative for discount lines)
- Quantity must be greater than zero
- VAT rate must be a recognized rate from the catalog
Validation errors are shown inline below the offending field. The Send button in the right panel remains disabled until all errors are resolved.
Pre-tax and Tax-inclusive Pricing (HT / TTC)
How Sixième Étoile stores and displays pre-tax (HT) and tax-inclusive (TTC) amounts — VAT rate configuration, per-line calculation, and display mode switching.
Sending Quotes
How to send a finalized quote to a client from the Sixième Étoile cockpit — PDF generation, email delivery, status transitions, and resending.