feat: enhance train scheduling and contract management features

- Added StationWorkControls to manage loading/unloading phases in TrainScheduleV2DetailPage.
- Implemented API endpoints for recording station work and managing wagon detach requests.
- Updated contract templates to include Ethiopian customs handling options.
- Enhanced shipment forms to collect customs clearing agent details for without-customs bookings.
- Introduced NUMBER_OF_WAGONS as a unit of measure for bulk cargo, allowing customers to specify wagon counts.
- Improved validation for customs clearing agent information in shipment forms.
- Updated various components and services to accommodate new features and ensure data integrity.
This commit is contained in:
Marshal
2026-08-25 21:44:21 +00:00
parent d5a5085d6d
commit b926a3116e
67 changed files with 2998 additions and 255 deletions

View File

@@ -107,6 +107,11 @@ export const FREIGHT_PERMS = {
/** Confirm cargo loaded/unloaded at a yard — import, export, and intercity alike. */
load: "edr_freight_app:train_scheduling:load",
unload: "edr_freight_app:train_scheduling:unload",
/** Per-station loading/unloading time-window buttons (start/end pairs). */
loadingStart: "edr_freight_app:train_scheduling:loading_start",
loadingEnd: "edr_freight_app:train_scheduling:loading_end",
unloadingStart: "edr_freight_app:train_scheduling:unloading_start",
unloadingEnd: "edr_freight_app:train_scheduling:unloading_end",
cancel: "edr_freight_app:train_scheduling:cancel",
reschedule: "edr_freight_app:train_scheduling:reschedule",
rulesManage: "edr_freight_app:train_scheduling:rules_manage",
@@ -225,6 +230,8 @@ export const FREIGHT_PERMS = {
changeWagonYard: "edr_freight_app:trains:change_wagon_yard",
toggleActive: "edr_freight_app:trains:toggle_active",
disband: "edr_freight_app:trains:disband",
/** Decide detach/maintenance requests on a SCHEDULED train (4-eyes gate). */
approveWagonDetach: "edr_freight_app:trains:approve_wagon_detach",
},
routes: {
view: "edr_freight_app:routes:view",