Bookings & Dispatch / Bookings
Editing a booking
The four edit tabs and the live reprice behavior.
Edit on the detail page switches to edit mode with four tabs.
Trip
Vehicle (changing it clamps passengers/luggage/child seats to the new capacity), driver, pickup and drop-off addresses (Google autocomplete), pickup date & time, and the service-aware fields: airline + flight number on airport trips, hours on hourly trips, carry-on bags on airport trips. Distance is read-only — it recalculates automatically when you change an address. The service itself is fixed at booking time.
Passenger
For when the rider differs from the account holder: passenger name, phone, email — plus the special requests text. The account holder's own contact is edited on the Customer record, not here.
Status & Payment
Booking status (with the no-driver-no-completed guard), payment status (Unpaid/Paid/Refunded/Failed), and payment method.
Pricing
Every money field is editable: base fare, extras, fuel surcharge, card surcharge, airport fee, discount, tax, tip. Total is never hand-typed — it's always computed from the fields above, so the math can't drift.
Live recalculation
Once you touch anything, the page keeps itself consistent: address changes re-route and update distance; vehicle, child-seat, hours, payment-method, or distance changes re-run the same server pricing engine the booking form uses, updating base fare, surcharges, and tax. What you see before saving is exactly what the customer-facing math would produce.
Save writes everything at once; Cancel discards. Background refreshes never clobber your in-progress edits.