Module Research Notes
Evidence gathered from the current module files before writing the user guide pages.
Research Sources Inspected
Source path
modules/Logistic
Feature flags marked true
- Controllers
- Models
- Views
- Language
- Left Menu
- Default Menu
- Routes
- Migrations
- Helpers
Evidence Summary
Manifest
module.json defines slug logistic, version 1.0.0, category Distribution, and the module capability flags used in this guide.
Runtime surface
17 controller file(s), 40 view file(s), and 35 route mapping(s) were found.
Data surface
18 model file(s), 2 declared table(s), and 5 migration file(s) were found.
Operations surface
3 permission key(s), 1 job(s), 1 seeder(s), and 0 test file(s) were found.
Detailed File Evidence
Controllers and methods
DeliveriesDispatchDriver_logsDriversFleet_reportsFuel_logsLocationsOdometer_logsVehicle_brandsVehicle_categoriesVehicle_contractsVehicle_modelsVehicle_service_typesVehicle_servicesVehicle_statesVehicle_tagsVehicles
Jobs and schedules
- Fleet contract expiry & lifecycle (0 6 * * *) - Advances fleet vehicle-contract states (incoming/in_progress/expired) and flags contracts expiring within 30 days.
Routes sampled
| Route | Target |
|---|---|
lds | Deliveries/index |
lds/deliveries | Deliveries/index |
lds/deliveries/(:any) | Deliveries/$1 |
lds/vehicles | Vehicles/index |
lds/vehicles/(:any) | Vehicles/$1 |
lds/drivers | Drivers/index |
lds/drivers/(:any) | Drivers/$1 |
lds/dispatch | Dispatch/index |
lds/dispatch/(:any) | Dispatch/$1 |
lds/locations | Locations/index |
lds/locations/(:any) | Locations/$1 |
lds/odometer_logs | Odometer_logs/index |
lds/odometer_logs/(:any) | Odometer_logs/$1 |
lds/fuel_logs | Fuel_logs/index |
lds/fuel_logs/(:any) | Fuel_logs/$1 |
lds/vehicle_services | Vehicle_services/index |
lds/vehicle_services/(:any) | Vehicle_services/$1 |
lds/vehicle_contracts | Vehicle_contracts/index |
lds/vehicle_contracts/(:any) | Vehicle_contracts/$1 |
lds/driver_logs | Driver_logs/index |
| 15 additional route(s) omitted for readability. | |
README topics
- What moved here
- What intentionally stayed in core
- Layout
- Make it visible
- Demo Seeder
Operating Implications
- Permission coverage is part of the module contract, so every workflow should be tested with a role-limited user and an administrator.
- The module has migrations, so fresh installs and tenant databases need migration validation before go-live.
- Scheduled jobs can change statuses, notifications, or summaries after users leave the screen; support should check cron status during troubleshooting.
- Seeders exist for sample or starter data; operators should know whether seeded records are demo-only or operational defaults.
Known Risks from the Manifest
- Extracted out of application/: the 3 flat top-level controllers (Vehicles, Deliveries, Drivers), their models (Vehicles_model, Deliveries_model, Drivers_model) and the views/{vehicles,deliveries,drivers}/ trees moved here. App_Router resolves their top-level routes to this package.
- Canonical URLs stay lds/* (lds/vehicles, lds/deliveries, lds/drivers) - preserved verbatim so existing/external links and bookmarks keep resolving. The lds/transfers URL stays core-routed because the Transfers controller stays in application/.
- RBAC permission keys delivery, vehicle, driver stay core-owned in Roles.php ('Logistics: *'); this module consumes them via with_permission() and re-declares nothing (config/permissions.php returns array()).
- Master toggle is module_logistic; a defensive idempotent core migration seeds it if-missing so the module + its menu show by default after cut-over (the legacy in-app feature was always visible and ungated).