| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Sales (sale_management) • Invoicing (account) • Purchase (purchase) |
| Community Apps Dependencies | Show |
| Lines of code | 9538 |
| Technical Name |
eh_log_project_cargo |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Sales (sale_management) • Invoicing (account) • Purchase (purchase) |
| Community Apps Dependencies | Show |
| Lines of code | 9538 |
| Technical Name |
eh_log_project_cargo |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
Project Cargo
One auditable record for the move standard freight modules cannot carry: the turbine, the transformer, the refinery column, with its lift plan, route surveys, permits, and multi-vehicle convoy.
Why this module
Project Cargo
The exceptional move, not the pallet
Where the freight spine handles containers and pallets, this module handles what does not fit: oversized and heavy pieces with per-item dimensions, weight, centre-of-gravity offsets, lift points, and transport orientation. Anything past the standard road envelope (16.5m long, 2.55m wide, 4.0m high, 44t) flags as oversized at save time, so downstream planning cannot overlook it.
Gated from survey to close
The job moves draft, surveyed, planned, executing, completed, closed through action buttons only. Direct state writes are blocked. Each step checks its prerequisite: Surveyed needs a route survey, Planned needs a convoy with vehicles assigned, Executing needs every permit in issued or active state. The discipline is enforced in code, not left to procedure.
Yours to keep
LGPL-3 source on disk. No activation key, no phone-home, no recurring licence. Multi-company record rules isolate every job, item, convoy, permit, survey, and equipment row by company. Free today, free at renewal, because there is no renewal.
Day in the life
A forwarder moves a 90-tonne transformer across two bridges and a level crossing.
The transformer is logged as an oversized item: 9.2m long, 3.6m wide, 4.4m high, 90t. Width and height exceed the standard envelope, so it flags oversized and the team knows escorts, permits, and a route survey are now mandatory. The engineer records two route options as surveys, capturing the lowest overhead clearance, the tightest swing radius, and the lowest bridge axle-load on each, then ticks one as the chosen route (the model refuses a second chosen route on the same job). A convoy is assembled: an SPMT as primary hauler, a crane for the set-down, a lead and trailing escort. One SPMT is overdue for statutory inspection and the system blocks it from the convoy until the date is updated. Police-escort and road-authority permits are raised, applied for, and marked issued with valid-from and valid-until dates. The job will not move to Executing while any permit sits in draft. A nightly cron posts a renewal activity seven days before any permit expires. With the plan agreed, the operator prints the Method Statement, Lift Plan, and Permit Application PDFs straight from the job.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
An item inside every road limit but one (say 2.6m wide on a 2.55m envelope) still flags oversized. The check is an OR across length, width, height, and weight, evaluated at save and on every dimension change, so a single out-of-gauge axis is never lost in otherwise normal figures.
A job cannot reach Executing while any permit is still draft, applied, or rejected. The transition lists the offending permits by name and refuses. State changes route through action buttons only; a direct write to the state field raises rather than silently bypassing the prerequisite checks.
Equipment whose statutory inspection date has passed is blocked from any new convoy assignment. The guard fires when the vehicle line is created, naming the equipment and its lapsed date, so an out-of-cert crane or SPMT cannot quietly end up on a move.
Several route surveys can coexist on one job (alternates considered), but only one may be marked the chosen route. Ticking a second raises a validation error, so the convoy always points at exactly one agreed route.
A convoy whose scheduled arrival falls before its scheduled departure is rejected. Marking a convoy in transit requires at least one vehicle assigned, and the move stamps actual departure and arrival timestamps as it progresses.
A daily cron walks issued and active permits expiring within the alert window (default 7 days) and posts a warning activity on the parent job to the permit creator, so a lapsing escort or road-authority permit surfaces before the convoy rolls.
What is inside
Built to do the job, end to end.
- Project cargo job. The spine (eh.log.project.cargo.job). Customer, origin, destination, project name, target dates, optional sale-order link, mail thread and activity tracking. Gated state machine with stat buttons to convoys and permits, plus method-statement and lift-study note fields that print on the PDFs.
- Oversized item. Per-piece engineering data: length, width, height, weight per piece, quantity, centre-of-gravity offsets (X/Y/Z), lift-point and packing notes, transport orientation (upright, on side, inverted). Automatic oversized flag against the standard envelope and a non-negative dimension guard. COG and lift points are honest free-text working notes, not a structural calc engine.
- Equipment master. Typed fleet of cranes (mobile, crawler, telescopic, gantry), prime movers, modular and lowbed trailers, SPMTs, escort vehicles, ramps, and rigging accessories. Rated capacity, boom radius and length, axle lines, SPMT module counts, self weight, home depot, owner partner, and a statutory next-inspection date. Code is unique per company.
- Convoy plan. One move on one route on one day with one set of vehicles (eh.log.project.cargo.convoy). Items carried, the route survey it follows, scheduled and actual departure/arrival, per-vehicle assignments with roles (primary and secondary hauler, crane, lead and trailing escort, support) and drivers. Computed flags show whether the convoy carries lifting equipment and an escort.
- Permit register. One row per authorising document (eh.log.project.cargo.permit): police escort, road authority, utility, port, customs, environmental. Its own gated state machine (draft, applied, issued, active, closed, plus rejected and cancelled), applied/issued dates, valid-from and valid-until, computed days-until-expiry, cost amount, and the daily expiry-alert cron.
- Route survey. Reconnaissance of one route option (eh.log.project.cargo.route.survey): distance, estimated duration, lowest overhead clearance, tightest swing radius, lowest bridge axle-load, night-move-only flag, hazards and waypoints. One survey per job marks the chosen route; the convoy follows it.
- Three PDF documents. Method Statement (job items table plus the free-form statement), Lift Plan (convoys and assigned vehicles), and Permit Application (move particulars and authority details). All three print on the shared ERP Heritage logistics report layout.
- Suite integration and isolation. Builds on the ERP Heritage logistics base, quotation, and freight modules and on sale_management; jobs can link to a sale order. Global multi-company record rules isolate every model by company, and access is split across logistics user, manager, and auditor groups.
Honest about the edges
What this does not do, so nothing surprises you.
- This is heavy-lift planning and documentation, not a structural lift-calc engine. Centre-of-gravity offsets and lift points are captured as working notes; the lift contractor's own calc package remains the source of engineering truth.
- The standard oversize envelope (16.5m / 2.55m / 4.0m / 44t) is a sensible road-regulation floor coded as constants. It is not yet a per-company configurable threshold via settings; tightening it for a specific jurisdiction currently means a code-level override.
- Customs appears only as one selectable permit authority. There is no customs declaration, HS-code, dangerous-goods classification, container or seal tracking, or EDI messaging in this module; those concerns belong to other parts of the freight workflow.
- Permit cost is recorded as a single amount per permit for reference. There is no automated cost allocation across items or convoys and no demurrage or dispute engine.
- Convoy progress is tracked through planned, in-transit, and arrived states with manual actuals. There is no GPS or live telematics feed; tracking is operator-entered.
- The module plans and documents the move. It does not post accounting entries itself; financial treatment flows through the linked sale order and the wider suite.
project cargo Odoo, heavy lift logistics, out of gauge cargo, abnormal load management, oversized cargo Odoo 19, SPMT modular trailer planning, convoy escort permit register, lift plan method statement, route survey heavy haulage, super load transport, Odoo 19 Community logistics, freight forwarding heavy lift
Please log in to comment on this module