-
Notifications
You must be signed in to change notification settings - Fork 2
Multimodal Quotation
This document describes the design for multimodal logistics flows where one quotation represents one billing but involves multiple jobs and legs from different modules (Air Freight, Sea Freight, Transport, Customs, Warehousing). The different legs/jobs are captured in routing details and linked to the quotation, booking, or shipment/job level.
| Component | Current Implementation | Multimodal Support |
|---|---|---|
| Sales Quote | Tabs: Sea, Air, Transport, Customs, Warehousing. Each mode has its own child table. User can check multiple (is_sea, is_air, is_transport). | Partial – Multiple modes in one quote, but no unified routing sequence or leg-to-job linkage. |
| Freight Routing | Standalone doctype with routes (Freight Routing Items). Each leg has: mode (Air/Sea/Road/Rail/Inland Waterway/Other), job_type (DocType), job_no (Dynamic Link). |
Yes – Designed for multi-mode legs with job linkage. Not linked to Sales Quote. |
| Freight Routing Items | Child table: mode, job_type, job_no, loading_port, discharge_port, etd, eta, type (Main/Pre-carriage/On-forwarding), status. | Yes – Can reference Transport Job, Air Shipment, Sea Shipment per leg. |
| Air/Sea Booking Routing Leg | Child table on Air/Sea Booking: mode (SEA/AIR), vessel, voyage, flight_no, load_port, discharge_port, etd, eta. | Partial – SEA/AIR only. No job_type/job_no link. No Road/Rail. |
| Transport "multimodal" | Load type flag (Multimodal/Heavy Haul) for RORO-style transport jobs. | Different meaning – Refers to vehicle capability, not cross-module routing. |
- No unified routing at quotation level – Sales Quote has separate tabs per mode; no single "routing details" showing leg sequence across modes.
- No leg-to-job linkage at quote/booking – When jobs are created from a quote, there is no structured way to link each routing leg to its corresponding Air Shipment, Sea Shipment, or Transport Job.
- Freight Routing is standalone – Not linked to Sales Quote; used for route templates, not per-quote routing.
- Create-from flows are per-mode – "Create Air Booking", "Create Sea Booking", "Create Transport Order" are separate actions. No orchestrated "Create Multimodal Jobs" that respects routing sequence.
- One quotation = one billing – A single Sales Quote (or Multimodal Quote) represents the commercial agreement; all legs roll up to it for invoicing.
- Routing details hold legs/jobs – A routing table lists legs in sequence; each leg has mode and optionally links to the created job/shipment.
- Placement – Design supports implementation at Quotation, Booking, or Shipment/Job level (or a combination).
- Reuse existing structures – Align with Freight Routing Items (mode, job_type, job_no) and Air/Sea Booking Routing Legs.
| Level | Pros | Cons |
|---|---|---|
| Quotation (Sales Quote) | Single source of truth; routing defined at quote time; billing reference. | Quote may be created before jobs exist; job_no filled later. |
| Booking | Air/Sea Booking have routing tabs; closer to operations. | Multiple bookings (Air, Sea) per quote; no single "multimodal booking". |
| Shipment/Job | Jobs exist; can link legs to actual documents. | Shipments/jobs are created after quote; routing would be downstream. |
Recommendation: Implement at all three levels with clear responsibilities:
| Level | Responsibility |
|---|---|
| Sales Quote | Define intended routing (leg sequence, mode, origin/destination per leg). Optional: link to jobs once created. |
| Booking | Per-mode routing (Air/Sea) as today; add job_type/job_no to link to Transport Job, Air Shipment, Sea Shipment when applicable. |
| Shipment/Job | Actual routing – each leg links to the real job/shipment. Used for traceability and reporting. |
Add a new tab "Routing" (or "Multimodal Routing") to Sales Quote, visible when more than one mode is selected (is_sea + is_air, or is_sea + is_transport, etc.).
Child DocType: Sales Quote Routing Leg (new)
| Field | Type | Description |
|---|---|---|
leg_order |
Int | Sequence (1, 2, 3, …). |
mode |
Select | Air, Sea, Road, Rail, Inland Waterway, Other. |
type |
Select | Main, Pre-carriage, On-forwarding, Other. |
status |
Select | Confirmed, Planned, On-hold. |
origin |
Link (UNLOCO) | Origin port/location. |
destination |
Link (UNLOCO) | Destination port/location. |
etd |
Date | Estimated departure. |
eta |
Date | Estimated arrival. |
job_type |
Link (DocType) | Transport Job, Air Shipment, Sea Shipment, Air Booking, Sea Booking, Transport Order. |
job_no |
Dynamic Link | Link to job_type. Filled when job is created from quote. |
notes |
Small Text | Free-form notes. |
Behaviour:
- When user creates Air Booking / Sea Booking / Transport Order from Sales Quote, the create-from logic can optionally populate
job_noon the matching routing leg (by mode and sequence). - Billing: Sales Invoice can reference Sales Quote; all charges from linked jobs/shipments roll up to that quote for unified billing.
Option A – Extend Air/Sea Booking Routing Leg:
- Add
job_type(Link to DocType) andjob_no(Dynamic Link). - Add
modeoption: Road, Rail (in addition to SEA, AIR) for pre-carriage/on-forwarding legs. - When mode = Road,
job_nocan link to Transport Job.
Option B – Reuse Freight Routing Items pattern:
- Create a generic Multimodal Routing Leg child table used by Sales Quote and optionally by a "Multimodal Shipment" or "General Job" doctype.
- Same fields as Freight Routing Items: mode, job_type, job_no, origin, destination, etd, eta, type, status.
Ensure downstream documents link back:
-
Air Shipment, Sea Shipment, Transport Job already have
sales_quote(or similar). - Add optional
sales_quote_routing_leg(Link) on each to indicate which leg of the multimodal quote this job fulfils. (Phase 2; can defer.)
The routing details table (whether on Sales Quote, Freight Routing, or a new Multimodal Shipment) should support:
Leg 1: Road | Pre-carriage | Warehouse A → Port X | ETD 01-Mar | job_no: TJ-001 (Transport Job)
Leg 2: Sea | Main | Port X → Port Y | ETD 05-Mar | job_no: SS-001 (Sea Shipment)
Leg 3: Road | On-forwarding| Port Y → Consignee | ETD 12-Mar | job_no: TJ-002 (Transport Job)
- leg_order defines sequence.
- mode defines transport mode per leg.
- job_type + job_no link to the actual document (filled when created).
- origin / destination can be UNLOCO (ports) or Address/Facility for road legs.
- Create
Sales Quote Routing Legchild DocType. - Add "Routing" tab to Sales Quote, shown when
is_multimodalor when more than one of (is_sea, is_air, is_transport) is set. - Add
is_multimodal(Check) to Sales Quote for explicit flag. - Fields: leg_order, mode, type, status, origin, destination, etd, eta, job_type, job_no, notes.
- When "Create Air Booking" / "Create Sea Booking" / "Create Transport Order" is run from Sales Quote, update the corresponding routing leg's
job_nowith the created document. - Matching logic: by mode (Air→Air Booking/Shipment, Sea→Sea Booking/Shipment, Road→Transport Order/Job) and leg_order.
- Add job_type, job_no to Air Booking Routing Leg, Sea Booking Routing Leg (and Shipment equivalents).
- Add Road, Rail to mode options where applicable for pre-carriage/on-forwarding.
- Ensure Sales Invoice can aggregate charges from all linked jobs/shipments under one Sales Quote.
- Report: "Multimodal Quote Status" – Quote, legs, linked jobs, status per leg.
- Routing tab on Sales Quote – Table with columns: Leg, Mode, Type, Origin, Destination, ETD, ETA, Job No (read-only, auto-filled). Add row, reorder.
- Create-from actions – Consider "Create All Jobs from Quote" that creates Air Booking, Sea Booking, Transport Order in sequence and populates job_no on routing legs.
- Visual – Optional: Timeline or route map showing legs in order (Phase 2).
- LOGISTICS_MODULE_INTEGRATION_DESIGN.md – This design extends the integration by adding explicit routing and job linkage at quote level.
- ROUTING_TAB_DESIGN.md – Air/Sea Booking Routing Legs remain; we add job_type/job_no and optional Road/Rail modes.
- Freight Routing – Can remain standalone for route templates; Sales Quote Routing Leg is the per-quote instance. Alternatively, link Freight Routing to Sales Quote as a "template" and copy routes to Sales Quote Routing Legs.
| Aspect | Design |
|---|---|
| One billing | Sales Quote is the billing reference; all legs/jobs link to it. |
| Multiple jobs/legs | Routing details table with leg_order, mode, job_type, job_no. |
| Placement | Sales Quote (primary), extend Booking/Shipment routing with job links. |
| Routing details | Child table: leg_order, mode, type, origin, destination, etd, eta, job_type, job_no. |
| Create-from | Populate job_no when creating Air/Sea/Transport documents from quote. |
This design enables one quotation, one billing, with multiple jobs and legs from different modules captured in routing details and linked through job_type and job_no.
Getting Started
- Getting Started
- Recent Platform Updates
- CargoNext v1 — Release Notes
- CargoNext v1 — Astraea Press Release
- Document Management
- Milestone Tracking
- Customer Portal
Setup and Settings
- Logistics Settings
- Credit Management
- Default Details and Relationships
- Sea Freight Settings
- Air Freight Settings
- Transport Settings
- Warehouse Settings
- Customs Settings
Sea Freight
- Sea Freight Module
- Sea Booking
- Sea Shipment
- Sea Consolidation
- Master Bill
- Shipper
- Consignee
- Container Type
- Container Management
Air Freight
Transport
- Transport Module
- Transport Order
- Transport Job
- Transport Consolidation
- Transport Leg
- Transport Plan
- Run Sheet
- Proof of Delivery
- Transport Template
- Load Type
- Transport Order — Inter-module Field Copy
Customs
Warehousing
- Warehousing Module
- Inbound Order
- Release Order
- Transfer Order
- VAS Order
- Stocktake Order
- Warehouse Job
- Warehouse Contract
- Gate Pass
- Periodic Billing
- Storage Location
- Handling Unit Type
Pricing Center
- Sales Quote
- Sales Quote — Separate Billings and Internal Job
- Change Request
- Sales Quote – Calculation Method
Job Management
- Job Management Module
- Revenue Recognition Policy — Accounts, Dates, and Charges
- Proforma GL Entries
- WIP and Accrual Reversal on Invoicing
Sustainability
Intercompany
Special Projects
Pages
Features
Reports
Glossary