@fleetbase/fleetops-engine 0.6.38 → 0.6.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/addon/components/activity/form.hbs +2 -12
  2. package/addon/components/activity/logic-builder.hbs +1 -1
  3. package/addon/components/custom-entity/form.hbs +4 -20
  4. package/addon/components/device/form.hbs +3 -15
  5. package/addon/components/device/panel-header.hbs +13 -2
  6. package/addon/components/driver/details.hbs +33 -2
  7. package/addon/components/driver/form.hbs +42 -0
  8. package/addon/components/driver/panel-header.hbs +8 -1
  9. package/addon/components/driver/schedule.hbs +115 -76
  10. package/addon/components/driver/schedule.js +349 -157
  11. package/addon/components/driver-onboard-settings.hbs +2 -8
  12. package/addon/components/entity-field-editing-settings.hbs +2 -5
  13. package/addon/components/equipment/card.hbs +49 -0
  14. package/addon/components/equipment/card.js +6 -0
  15. package/addon/components/equipment/details.hbs +83 -44
  16. package/addon/components/equipment/form.hbs +111 -41
  17. package/addon/components/equipment/form.js +78 -10
  18. package/addon/components/equipment/panel-header.hbs +36 -0
  19. package/addon/components/equipment/panel-header.js +2 -0
  20. package/addon/components/fleet/driver-listing.hbs +3 -1
  21. package/addon/components/fleet/vehicle-listing.hbs +4 -7
  22. package/addon/components/fleet-panel/vehicle-listing.hbs +1 -6
  23. package/addon/components/fuel-report/form.hbs +1 -5
  24. package/addon/components/layout/fleet-ops-sidebar.hbs +40 -36
  25. package/addon/components/layout/fleet-ops-sidebar.js +61 -10
  26. package/addon/components/maintenance/cost-panel.hbs +176 -0
  27. package/addon/components/maintenance/cost-panel.js +241 -0
  28. package/addon/components/maintenance/details.hbs +123 -60
  29. package/addon/components/maintenance/form.hbs +138 -78
  30. package/addon/components/maintenance/form.js +131 -6
  31. package/addon/components/maintenance/panel-header.hbs +31 -0
  32. package/addon/components/maintenance/panel-header.js +2 -0
  33. package/addon/components/maintenance-schedule/details.hbs +260 -0
  34. package/addon/components/maintenance-schedule/details.js +158 -0
  35. package/addon/components/maintenance-schedule/form.hbs +287 -0
  36. package/addon/components/maintenance-schedule/form.js +199 -0
  37. package/addon/components/map/container.hbs +1 -1
  38. package/addon/components/map/drawer/device-event-listing.hbs +1 -1
  39. package/addon/components/map/drawer/driver-listing.hbs +1 -6
  40. package/addon/components/map/drawer/place-listing.hbs +1 -6
  41. package/addon/components/map/drawer/vehicle-listing.hbs +1 -6
  42. package/addon/components/map/drawer.hbs +8 -1
  43. package/addon/components/map/leaflet-live-map.hbs +2 -1
  44. package/addon/components/map/toolbar/visibility-control-panel.hbs +1 -1
  45. package/addon/components/map/toolbar.hbs +4 -29
  46. package/addon/components/modals/add-driver-shift.hbs +155 -0
  47. package/addon/components/modals/add-driver-shift.js +210 -0
  48. package/addon/components/modals/bulk-assign-orders.hbs +67 -0
  49. package/addon/components/modals/driver-shift.hbs +43 -0
  50. package/addon/components/modals/driver-shift.js +56 -0
  51. package/addon/components/modals/entity-form.hbs +5 -28
  52. package/addon/components/modals/orchestrator-import.hbs +351 -0
  53. package/addon/components/modals/orchestrator-import.js +807 -0
  54. package/addon/components/modals/order-config-new-status.hbs +1 -5
  55. package/addon/components/modals/scheduling-conflict.hbs +47 -0
  56. package/addon/components/modals/scheduling-conflict.js +53 -0
  57. package/addon/components/modals/send-work-order.hbs +91 -0
  58. package/addon/components/modals/send-work-order.js +3 -0
  59. package/addon/components/modals/service-area-form.hbs +1 -6
  60. package/addon/components/modals/set-driver-availability.hbs +50 -0
  61. package/addon/components/modals/set-driver-availability.js +57 -0
  62. package/addon/components/modals/update-order-activity.hbs +13 -9
  63. package/addon/components/modals/user-form.hbs +1 -5
  64. package/addon/components/modals/vehicle-form.hbs +17 -102
  65. package/addon/components/modals/vendor-form.hbs +15 -82
  66. package/addon/components/orchestrator/card-fields-settings.hbs +76 -0
  67. package/addon/components/orchestrator/card-fields-settings.js +134 -0
  68. package/addon/components/orchestrator/order-pool.hbs +264 -0
  69. package/addon/components/orchestrator/order-pool.js +394 -0
  70. package/addon/components/orchestrator/phase-builder.hbs +162 -0
  71. package/addon/components/orchestrator/phase-builder.js +162 -0
  72. package/addon/components/orchestrator/plan-viewer.hbs +278 -0
  73. package/addon/components/orchestrator/plan-viewer.js +342 -0
  74. package/addon/components/orchestrator/resource-panel.hbs +301 -0
  75. package/addon/components/orchestrator/resource-panel.js +106 -0
  76. package/addon/components/orchestrator-workbench.hbs +318 -0
  77. package/addon/components/orchestrator-workbench.js +1087 -0
  78. package/addon/components/order/details/custom-fields.hbs +10 -1
  79. package/addon/components/order/details/detail.hbs +37 -2
  80. package/addon/components/order/details/detail.js +0 -1
  81. package/addon/components/order/details/integrated-vendor-details.hbs +4 -4
  82. package/addon/components/order/details/notes.hbs +1 -7
  83. package/addon/components/order/details/route.hbs +1 -5
  84. package/addon/components/order/form/details.hbs +44 -10
  85. package/addon/components/order/form/details.js +57 -0
  86. package/addon/components/order/form/notes.hbs +1 -7
  87. package/addon/components/order/form/payload.hbs +1 -7
  88. package/addon/components/order/form/route.hbs +3 -15
  89. package/addon/components/order/header.hbs +1 -7
  90. package/addon/components/order/route-editor.hbs +4 -25
  91. package/addon/components/order/schedule-card.hbs +102 -95
  92. package/addon/components/order/schedule-card.js +8 -3
  93. package/addon/components/order-config-manager/details.hbs +2 -10
  94. package/addon/components/order-config-manager/entities.hbs +1 -7
  95. package/addon/components/order-config-manager.hbs +1 -6
  96. package/addon/components/part/card.hbs +49 -0
  97. package/addon/components/part/card.js +6 -0
  98. package/addon/components/part/details.hbs +102 -56
  99. package/addon/components/part/form.hbs +131 -56
  100. package/addon/components/part/form.js +78 -11
  101. package/addon/components/part/panel-header.hbs +36 -0
  102. package/addon/components/part/panel-header.js +2 -0
  103. package/addon/components/place/form.hbs +1 -7
  104. package/addon/components/sensor/details.hbs +1 -1
  105. package/addon/components/sensor/form.hbs +5 -3
  106. package/addon/components/sensor/panel-header.hbs +8 -1
  107. package/addon/components/service-area/form.hbs +1 -6
  108. package/addon/components/service-rate/form.hbs +12 -60
  109. package/addon/components/telematic/form.hbs +6 -2
  110. package/addon/components/vehicle/details/maintenance-history.hbs +42 -0
  111. package/addon/components/vehicle/details/maintenance-history.js +32 -0
  112. package/addon/components/vehicle/details/schedules.hbs +40 -0
  113. package/addon/components/vehicle/details/schedules.js +32 -0
  114. package/addon/components/vehicle/details/work-orders.hbs +42 -0
  115. package/addon/components/vehicle/details/work-orders.js +32 -0
  116. package/addon/components/vehicle/details.hbs +30 -0
  117. package/addon/components/vehicle/form.hbs +39 -0
  118. package/addon/components/vehicle/panel-header.hbs +19 -49
  119. package/addon/components/warranty/details.hbs +3 -2
  120. package/addon/components/warranty/form.hbs +3 -17
  121. package/addon/components/work-order/details.hbs +135 -40
  122. package/addon/components/work-order/form.hbs +178 -45
  123. package/addon/components/work-order/form.js +197 -4
  124. package/addon/components/work-order/panel-header.hbs +31 -0
  125. package/addon/components/work-order/panel-header.js +2 -0
  126. package/addon/controllers/connectivity/devices/index/details.js +1 -1
  127. package/addon/controllers/maintenance/equipment/index/details/index.js +0 -1
  128. package/addon/controllers/maintenance/equipment/index/details.js +36 -1
  129. package/addon/controllers/maintenance/equipment/index/edit.js +56 -1
  130. package/addon/controllers/maintenance/equipment/index/new.js +32 -1
  131. package/addon/controllers/maintenance/equipment/index.js +127 -113
  132. package/addon/controllers/maintenance/maintenances/index/details/index.js +3 -0
  133. package/addon/controllers/maintenance/maintenances/index/details.js +54 -0
  134. package/addon/controllers/maintenance/maintenances/index/edit.js +68 -0
  135. package/addon/controllers/maintenance/maintenances/index/new.js +34 -0
  136. package/addon/controllers/maintenance/maintenances/index.js +191 -0
  137. package/addon/controllers/maintenance/parts/index/details/index.js +0 -1
  138. package/addon/controllers/maintenance/parts/index/details.js +36 -1
  139. package/addon/controllers/maintenance/parts/index/edit.js +56 -1
  140. package/addon/controllers/maintenance/parts/index/new.js +32 -1
  141. package/addon/controllers/maintenance/parts/index.js +135 -113
  142. package/addon/controllers/maintenance/schedules/index/details.js +115 -0
  143. package/addon/controllers/maintenance/schedules/index/edit.js +41 -0
  144. package/addon/controllers/maintenance/schedules/index/new.js +33 -0
  145. package/addon/controllers/maintenance/schedules/index.js +280 -0
  146. package/addon/controllers/maintenance/work-orders/index/details.js +41 -1
  147. package/addon/controllers/maintenance/work-orders/index/edit.js +67 -1
  148. package/addon/controllers/maintenance/work-orders/index/new.js +43 -1
  149. package/addon/controllers/maintenance/work-orders/index.js +105 -113
  150. package/addon/controllers/management/drivers/index/details.js +6 -1
  151. package/addon/controllers/management/vehicles/index/details.js +65 -0
  152. package/addon/controllers/management/vehicles/index.js +18 -0
  153. package/addon/controllers/operations/orchestrator.js +10 -0
  154. package/addon/controllers/operations/orders/index.js +6 -0
  155. package/addon/controllers/operations/scheduler/fleet-schedule.js +341 -0
  156. package/addon/controllers/operations/scheduler/index.js +799 -275
  157. package/addon/controllers/operations/scheduler.js +21 -0
  158. package/addon/controllers/settings/orchestrator.js +70 -0
  159. package/addon/controllers/settings/scheduling.js +155 -0
  160. package/addon/extension.js +19 -0
  161. package/addon/instance-initializers/register-vroom-allocation.js +27 -0
  162. package/addon/models/maintenance-schedule.js +61 -0
  163. package/addon/routes/maintenance/equipment/index/details.js +27 -1
  164. package/addon/routes/maintenance/equipment/index/edit.js +27 -1
  165. package/addon/routes/maintenance/maintenances/index/details/index.js +3 -0
  166. package/addon/routes/maintenance/maintenances/index/details.js +29 -0
  167. package/addon/routes/maintenance/maintenances/index/edit.js +29 -0
  168. package/addon/routes/maintenance/maintenances/index/new.js +3 -0
  169. package/addon/routes/maintenance/maintenances/index.js +23 -0
  170. package/addon/routes/maintenance/maintenances.js +3 -0
  171. package/addon/routes/maintenance/parts/index/details.js +27 -1
  172. package/addon/routes/maintenance/parts/index/edit.js +27 -1
  173. package/addon/routes/maintenance/schedules/index/details/index.js +2 -0
  174. package/addon/routes/maintenance/schedules/index/details/work-orders.js +11 -0
  175. package/addon/routes/maintenance/schedules/index/details.js +25 -0
  176. package/addon/routes/maintenance/schedules/index/edit.js +25 -0
  177. package/addon/routes/maintenance/schedules/index/new.js +2 -0
  178. package/addon/routes/maintenance/schedules/index.js +21 -0
  179. package/addon/routes/maintenance/schedules.js +2 -0
  180. package/addon/routes/maintenance/work-orders/index/details.js +27 -1
  181. package/addon/routes/maintenance/work-orders/index/edit.js +27 -1
  182. package/addon/routes/management/vehicles/index/details/maintenance-history.js +3 -0
  183. package/addon/routes/management/vehicles/index/details/schedules.js +3 -0
  184. package/addon/routes/management/vehicles/index/details/work-orders.js +3 -0
  185. package/addon/routes/operations/orchestrator.js +23 -0
  186. package/addon/routes/operations/scheduler/fleet-schedule.js +28 -0
  187. package/addon/routes/operations/scheduler/index.js +48 -26
  188. package/addon/routes/operations/scheduler.js +14 -1
  189. package/addon/routes/settings/orchestrator.js +27 -0
  190. package/addon/routes/settings/scheduling.js +3 -0
  191. package/addon/routes.js +31 -1
  192. package/addon/services/driver-actions.js +40 -7
  193. package/addon/services/driver-scheduling.js +4 -1
  194. package/addon/services/equipment-actions.js +15 -5
  195. package/addon/services/leaflet-map-manager.js +14 -6
  196. package/addon/services/maintenance-actions.js +17 -14
  197. package/addon/services/maintenance-schedule-actions.js +118 -0
  198. package/addon/services/orchestration-engine-interface.js +49 -0
  199. package/addon/services/orchestration-engine.js +74 -0
  200. package/addon/services/order-actions.js +15 -0
  201. package/addon/services/order-allocation.js +116 -0
  202. package/addon/services/part-actions.js +12 -2
  203. package/addon/services/scheduling.js +316 -0
  204. package/addon/services/vehicle-actions.js +70 -7
  205. package/addon/services/vroom-allocation-engine.js +45 -0
  206. package/addon/services/work-order-actions.js +80 -0
  207. package/addon/styles/fleetops-engine.css +1658 -0
  208. package/addon/templates/analytics/reports/index/edit.hbs +1 -1
  209. package/addon/templates/analytics/reports/index/new.hbs +1 -1
  210. package/addon/templates/application.hbs +6 -1
  211. package/addon/templates/connectivity/devices/index/details/events.hbs +0 -1
  212. package/addon/templates/connectivity/devices.hbs +0 -1
  213. package/addon/templates/connectivity/events/index/details.hbs +0 -1
  214. package/addon/templates/connectivity/events.hbs +0 -1
  215. package/addon/templates/connectivity/sensors.hbs +0 -1
  216. package/addon/templates/connectivity/telematics/index/details/devices.hbs +0 -1
  217. package/addon/templates/connectivity/telematics/index/details/events.hbs +0 -1
  218. package/addon/templates/connectivity/telematics/index/details/sensors.hbs +0 -1
  219. package/addon/templates/connectivity/telematics.hbs +0 -1
  220. package/addon/templates/connectivity/tracking.hbs +0 -1
  221. package/addon/templates/connectivity.hbs +0 -1
  222. package/addon/templates/maintenance/equipment/index/details/index.hbs +1 -2
  223. package/addon/templates/maintenance/equipment/index/details.hbs +15 -2
  224. package/addon/templates/maintenance/equipment/index/edit.hbs +12 -2
  225. package/addon/templates/maintenance/equipment/index/new.hbs +1 -2
  226. package/addon/templates/maintenance/equipment/index.hbs +48 -13
  227. package/addon/templates/maintenance/equipment.hbs +0 -1
  228. package/addon/templates/maintenance/maintenances/index/details/index.hbs +1 -0
  229. package/addon/templates/maintenance/maintenances/index/details.hbs +15 -0
  230. package/addon/templates/maintenance/maintenances/index/edit.hbs +12 -0
  231. package/addon/templates/maintenance/maintenances/index/new.hbs +11 -0
  232. package/addon/templates/maintenance/maintenances/index.hbs +14 -0
  233. package/addon/templates/maintenance/maintenances.hbs +1 -0
  234. package/addon/templates/maintenance/parts/index/details/index.hbs +1 -2
  235. package/addon/templates/maintenance/parts/index/details.hbs +15 -2
  236. package/addon/templates/maintenance/parts/index/edit.hbs +12 -2
  237. package/addon/templates/maintenance/parts/index/new.hbs +1 -2
  238. package/addon/templates/maintenance/parts/index.hbs +48 -13
  239. package/addon/templates/maintenance/parts.hbs +0 -1
  240. package/addon/templates/maintenance/schedules/index/details/index.hbs +1 -0
  241. package/addon/templates/maintenance/schedules/index/details/work-orders.hbs +39 -0
  242. package/addon/templates/maintenance/schedules/index/details.hbs +14 -0
  243. package/addon/templates/maintenance/schedules/index/edit.hbs +12 -0
  244. package/addon/templates/maintenance/schedules/index/new.hbs +11 -0
  245. package/addon/templates/maintenance/schedules/index.hbs +40 -0
  246. package/addon/templates/maintenance/schedules.hbs +1 -0
  247. package/addon/templates/maintenance/work-orders/index/details.hbs +2 -1
  248. package/addon/templates/maintenance/work-orders/index/edit.hbs +2 -4
  249. package/addon/templates/maintenance/work-orders/index/new.hbs +1 -2
  250. package/addon/templates/maintenance/work-orders.hbs +0 -1
  251. package/addon/templates/management/contacts/customers/edit.hbs +1 -2
  252. package/addon/templates/management/contacts/customers/new.hbs +1 -2
  253. package/addon/templates/management/contacts/customers.hbs +1 -1
  254. package/addon/templates/management/contacts/index/edit.hbs +1 -2
  255. package/addon/templates/management/contacts/index/new.hbs +1 -2
  256. package/addon/templates/management/drivers/index/details/orders.hbs +0 -1
  257. package/addon/templates/management/drivers/index/edit.hbs +1 -2
  258. package/addon/templates/management/drivers/index/new.hbs +1 -2
  259. package/addon/templates/management/fleets/index/edit.hbs +1 -2
  260. package/addon/templates/management/fleets/index/new.hbs +1 -2
  261. package/addon/templates/management/fleets/index.hbs +1 -2
  262. package/addon/templates/management/fuel-reports/index/edit.hbs +1 -2
  263. package/addon/templates/management/fuel-reports/index/new.hbs +1 -2
  264. package/addon/templates/management/fuel-reports/index.hbs +1 -2
  265. package/addon/templates/management/issues/index/edit.hbs +1 -2
  266. package/addon/templates/management/issues/index/new.hbs +1 -2
  267. package/addon/templates/management/issues/index.hbs +1 -2
  268. package/addon/templates/management/places/index/details/activity.hbs +0 -1
  269. package/addon/templates/management/places/index/details/comments.hbs +0 -1
  270. package/addon/templates/management/places/index/details/documents.hbs +0 -1
  271. package/addon/templates/management/places/index/details/map.hbs +0 -1
  272. package/addon/templates/management/places/index/details/operations.hbs +0 -1
  273. package/addon/templates/management/places/index/details/performance.hbs +0 -1
  274. package/addon/templates/management/places/index/details/rules.hbs +0 -1
  275. package/addon/templates/management/vehicles/index/details/equipment.hbs +0 -1
  276. package/addon/templates/management/vehicles/index/details/maintenance-history.hbs +2 -0
  277. package/addon/templates/management/vehicles/index/details/schedules.hbs +2 -0
  278. package/addon/templates/management/vehicles/index/details/work-orders.hbs +2 -0
  279. package/addon/templates/management/vehicles/index/details.hbs +1 -1
  280. package/addon/templates/management/vehicles/index/edit.hbs +1 -2
  281. package/addon/templates/management/vehicles/index/new.hbs +1 -2
  282. package/addon/templates/management/vendors/index/edit.hbs +1 -2
  283. package/addon/templates/management/vendors/index/new.hbs +1 -2
  284. package/addon/templates/management/vendors/index.hbs +1 -2
  285. package/addon/templates/management/vendors/integrated.hbs +1 -2
  286. package/addon/templates/operations/orchestrator.hbs +1 -0
  287. package/addon/templates/operations/orders/index.hbs +6 -1
  288. package/addon/templates/operations/scheduler/fleet-schedule.hbs +41 -0
  289. package/addon/templates/operations/scheduler/index.hbs +147 -88
  290. package/addon/templates/operations/scheduler.hbs +7 -1
  291. package/addon/templates/settings/avatars.hbs +1 -1
  292. package/addon/templates/settings/orchestrator.hbs +65 -0
  293. package/addon/templates/settings/payments/index.hbs +1 -5
  294. package/addon/templates/settings/scheduling.hbs +82 -0
  295. package/addon/utils/create-full-calendar-event-from-order.js +52 -14
  296. package/addon/utils/create-full-calendar-event-from-schedule-item.js +50 -0
  297. package/addon/utils/fleet-ops-options.js +254 -0
  298. package/addon/utils/route-colors.js +99 -0
  299. package/addon/utils/to-calendar-date.js +70 -0
  300. package/app/components/driver/schedule.js +1 -0
  301. package/app/components/maintenance/cost-panel.js +1 -0
  302. package/app/components/maintenance/panel-header.js +1 -0
  303. package/app/components/maintenance-schedule/details.js +1 -0
  304. package/app/components/maintenance-schedule/form.js +1 -0
  305. package/app/components/modals/add-driver-shift.js +1 -0
  306. package/app/components/modals/bulk-assign-orders.js +1 -0
  307. package/app/components/modals/driver-shift.js +1 -0
  308. package/app/components/modals/orchestrator-import.js +1 -0
  309. package/app/components/modals/scheduling-conflict.js +1 -0
  310. package/app/components/modals/send-work-order.js +1 -0
  311. package/app/components/modals/set-driver-availability.js +1 -0
  312. package/app/components/orchestrator/card-fields-settings.js +1 -0
  313. package/app/components/orchestrator/order-pool.js +1 -0
  314. package/app/components/orchestrator/phase-builder.js +1 -0
  315. package/app/components/orchestrator/plan-viewer.js +1 -0
  316. package/app/components/orchestrator/resource-panel.js +1 -0
  317. package/app/components/orchestrator-workbench.js +1 -0
  318. package/app/components/vehicle/details/maintenance-history.js +1 -0
  319. package/app/components/vehicle/details/schedules.js +1 -0
  320. package/app/components/vehicle/details/work-orders.js +1 -0
  321. package/app/controllers/operations/orchestrator.js +1 -0
  322. package/app/controllers/settings/orchestrator.js +1 -0
  323. package/app/controllers/settings/scheduling.js +1 -0
  324. package/app/routes/operations/orchestrator.js +1 -0
  325. package/app/routes/settings/orchestrator.js +1 -0
  326. package/app/routes/settings/scheduling.js +1 -0
  327. package/app/services/maintenance-schedule-actions.js +1 -0
  328. package/app/services/orchestration-engine-interface.js +1 -0
  329. package/app/services/orchestration-engine.js +1 -0
  330. package/app/services/order-allocation.js +1 -0
  331. package/app/services/scheduling.js +1 -0
  332. package/app/services/vroom-allocation-engine.js +1 -0
  333. package/app/templates/settings/scheduling.js +1 -0
  334. package/app/utils/create-full-calendar-event-from-schedule-item.js +1 -0
  335. package/app/utils/route-colors.js +1 -0
  336. package/composer.json +5 -3
  337. package/extension.json +1 -1
  338. package/package.json +6 -5
  339. package/server/config/fleetops.php +20 -1
  340. package/server/migrations/2025_08_28_054927_create_parts_table.php +2 -2
  341. package/server/migrations/2025_08_28_054932_add_public_id_to_maintenance_tables.php +45 -0
  342. package/server/migrations/2025_09_01_000001_create_maintenance_schedules_table.php +88 -0
  343. package/server/migrations/2026_04_01_000001_fix_monetary_columns_in_parts_table.php +48 -0
  344. package/server/migrations/2026_04_01_000003_add_photo_uuid_to_equipment_and_parts_tables.php +61 -0
  345. package/server/migrations/2026_04_01_000004_add_public_id_to_equipments_table.php +38 -0
  346. package/server/migrations/2026_04_01_000005_add_missing_columns_to_parts_table.php +67 -0
  347. package/server/migrations/2026_04_04_000001_add_reminder_offsets_to_maintenance_schedules.php +44 -0
  348. package/server/migrations/2026_04_08_000001_add_orchestrator_columns_to_vehicles_table.php +58 -0
  349. package/server/migrations/2026_04_08_000002_add_orchestrator_columns_to_drivers_table.php +41 -0
  350. package/server/migrations/2026_04_08_000003_add_orchestrator_columns_to_orders_table.php +38 -0
  351. package/server/migrations/2026_04_08_000004_add_orchestrator_columns_to_payloads_table.php +41 -0
  352. package/server/migrations/2026_04_08_000005_add_orchestrator_columns_to_waypoints_table.php +38 -0
  353. package/server/migrations/2026_04_09_000001_create_manifests_table.php +48 -0
  354. package/server/migrations/2026_04_09_000002_create_manifest_stops_table.php +48 -0
  355. package/server/migrations/2026_04_09_000003_add_manifest_uuid_to_orders_table.php +28 -0
  356. package/server/migrations/2026_04_13_000001_add_pod_notes_columns_to_waypoints_table.php +39 -0
  357. package/server/resources/views/mail/maintenance-schedule-reminder.blade.php +59 -0
  358. package/server/resources/views/mail/work-order-dispatched.blade.php +67 -0
  359. package/server/src/Auth/Schemas/FleetOps.php +44 -0
  360. package/server/src/Console/Commands/ProcessMaintenanceTriggers.php +150 -0
  361. package/server/src/Console/Commands/SendMaintenanceReminders.php +128 -0
  362. package/server/src/Http/Controllers/Internal/v1/DriverController.php +1 -0
  363. package/server/src/Http/Controllers/Internal/v1/EquipmentController.php +27 -0
  364. package/server/src/Http/Controllers/Internal/v1/LiveController.php +9 -2
  365. package/server/src/Http/Controllers/Internal/v1/MaintenanceController.php +165 -0
  366. package/server/src/Http/Controllers/Internal/v1/MaintenanceScheduleController.php +304 -0
  367. package/server/src/Http/Controllers/Internal/v1/ManifestController.php +138 -0
  368. package/server/src/Http/Controllers/Internal/v1/OrchestrationController.php +975 -0
  369. package/server/src/Http/Controllers/Internal/v1/OrderController.php +42 -0
  370. package/server/src/Http/Controllers/Internal/v1/PartController.php +27 -0
  371. package/server/src/Http/Controllers/Internal/v1/SettingController.php +118 -0
  372. package/server/src/Http/Controllers/Internal/v1/Traits/DriverSchedulingTrait.php +214 -0
  373. package/server/src/Http/Controllers/Internal/v1/WorkOrderController.php +68 -0
  374. package/server/src/Http/Resources/v1/Driver.php +1 -0
  375. package/server/src/Http/Resources/v1/Maintenance.php +138 -0
  376. package/server/src/Http/Resources/v1/MaintenanceSchedule.php +137 -0
  377. package/server/src/Http/Resources/v1/Orchestrator/Order.php +116 -0
  378. package/server/src/Http/Resources/v1/Order.php +7 -4
  379. package/server/src/Http/Resources/v1/Waypoint.php +7 -0
  380. package/server/src/Http/Resources/v1/WorkOrder.php +136 -0
  381. package/server/src/Imports/EquipmentImport.php +32 -0
  382. package/server/src/Imports/MaintenanceImport.php +32 -0
  383. package/server/src/Imports/MaintenanceScheduleImport.php +32 -0
  384. package/server/src/Imports/PartImport.php +32 -0
  385. package/server/src/Imports/WorkOrderImport.php +32 -0
  386. package/server/src/Jobs/ProcessAllocationJob.php +119 -0
  387. package/server/src/Listeners/HandleDeliveryCompletion.php +47 -0
  388. package/server/src/Listeners/NotifyDriverOnShiftChange.php +63 -0
  389. package/server/src/Mail/MaintenanceScheduleReminder.php +68 -0
  390. package/server/src/Mail/WorkOrderDispatched.php +58 -0
  391. package/server/src/Models/Asset.php +2 -2
  392. package/server/src/Models/Device.php +1 -1
  393. package/server/src/Models/Driver.php +82 -4
  394. package/server/src/Models/Equipment.php +62 -2
  395. package/server/src/Models/Maintenance.php +127 -9
  396. package/server/src/Models/MaintenanceSchedule.php +353 -0
  397. package/server/src/Models/Manifest.php +214 -0
  398. package/server/src/Models/ManifestStop.php +162 -0
  399. package/server/src/Models/Order.php +70 -0
  400. package/server/src/Models/OrderConfig.php +5 -2
  401. package/server/src/Models/Part.php +69 -3
  402. package/server/src/Models/Payload.php +7 -2
  403. package/server/src/Models/Place.php +1 -1
  404. package/server/src/Models/Sensor.php +1 -1
  405. package/server/src/Models/ServiceQuote.php +1 -1
  406. package/server/src/Models/Vehicle.php +20 -1
  407. package/server/src/Models/Warranty.php +1 -1
  408. package/server/src/Models/Waypoint.php +7 -1
  409. package/server/src/Models/WorkOrder.php +122 -12
  410. package/server/src/Notifications/DriverShiftChanged.php +110 -0
  411. package/server/src/Observers/WorkOrderObserver.php +107 -0
  412. package/server/src/Orchestration/Contracts/OrchestrationEngineInterface.php +63 -0
  413. package/server/src/Orchestration/Engines/DriverAssignmentEngine.php +265 -0
  414. package/server/src/Orchestration/Engines/GreedyOrchestrationEngine.php +155 -0
  415. package/server/src/Orchestration/Engines/RouteSequencingEngine.php +272 -0
  416. package/server/src/Orchestration/Engines/VroomOrchestrationEngine.php +192 -0
  417. package/server/src/Orchestration/OrchestrationEngineRegistry.php +83 -0
  418. package/server/src/Orchestration/Support/OrchestrationPayloadBuilder.php +290 -0
  419. package/server/src/Providers/EventServiceProvider.php +7 -1
  420. package/server/src/Providers/FleetOpsServiceProvider.php +42 -15
  421. package/server/src/routes.php +65 -4
  422. package/translations/ar-ae.yml +44 -12
  423. package/translations/bg-bg.yaml +51 -10
  424. package/translations/en-us.yaml +444 -1
  425. package/translations/fr-fr.yaml +51 -10
  426. package/translations/mn-mn.yaml +51 -10
  427. package/translations/pt-br.yaml +51 -10
  428. package/translations/ru-ru.yaml +51 -10
  429. package/translations/vi-vn.yaml +48 -12
@@ -32,6 +32,8 @@ common:
32
32
  select-resource-filter-by: Select {resource} to filter by
33
33
  table-view: Table View
34
34
  grid-view: Grid View
35
+ calendar-view: Calendar View
36
+ change-layout: Change Layout
35
37
  livemap: Live map
36
38
  tracking: Tracking
37
39
  activity: Activity
@@ -41,6 +43,17 @@ common:
41
43
  edit-address: Edit Address
42
44
  new-address: New Address
43
45
  select-address: Select Address
46
+ save: Save
47
+ save-changes: Save Changes
48
+ done: Done
49
+ delete: Delete
50
+ overview: Overview
51
+ notes: Notes
52
+ schedule: Schedule
53
+ optional: Optional
54
+ unauthorized-access: You are not authorized to access this resource.
55
+ online: Online
56
+ refresh: Refresh
44
57
 
45
58
  menu:
46
59
  operations: Operations
@@ -59,9 +72,11 @@ menu:
59
72
  fuel-reports: Fuel Reports
60
73
  issues: Issues
61
74
  maintenance: Maintenance
75
+ schedules: Schedules
62
76
  work-orders: Work Orders
63
77
  equipment: Equipment
64
78
  parts: Parts
79
+ maintenance-history: Maintenance History
65
80
  connectivity: Connectivity
66
81
  telematics: Telematics
67
82
  devices: Devices
@@ -78,6 +93,10 @@ menu:
78
93
  custom-fields: Custom Fields
79
94
  order-board: Order Board
80
95
  avatars: Avatars
96
+ scheduling: Scheduling
97
+ maintenances: Maintenances
98
+ orchestrator: Orchestrator
99
+ orchestrator-settings: Orchestrator Settings
81
100
 
82
101
  resource:
83
102
  asset: Asset
@@ -126,6 +145,8 @@ resource:
126
145
  issues: Issues
127
146
  maintenance: Maintenance
128
147
  maintenances: Maintenances
148
+ maintenance-schedule: Maintenance Schedule
149
+ maintenance-schedules: Maintenance Schedules
129
150
  order-config: Order Config
130
151
  order-configs: Order Configs
131
152
  order: Order
@@ -245,6 +266,21 @@ column:
245
266
  current-job: Current Job
246
267
  last-seen: Last Seen
247
268
  place: Place
269
+ subject: Subject
270
+ summary: Summary
271
+ total-cost: Total Cost
272
+ due-at: Due At
273
+ serial-number: Serial Number
274
+ manufacturer: Manufacturer
275
+ part-number: Part Number
276
+ quantity-on-hand: Quantity on Hand
277
+ quantity: Quantity
278
+ unit-cost: Unit Cost
279
+ code: Code
280
+ interval: Interval
281
+ next-due: Next Due
282
+ asset: Asset
283
+ performed-by: Performed By
248
284
 
249
285
  map:
250
286
  visibility-controls:
@@ -668,6 +704,7 @@ order:
668
704
  assign-text: You are about to assign a new driver ({driverName}) to Order {orderId}. Click continue to confirm driver.
669
705
  assign-button: Continue and assign driver
670
706
  date: Date scheduled
707
+ date-created: Date created
671
708
  driver-assigned: Driver
672
709
  vehicle-assigned: Vehicle
673
710
  no-driver: No Driver
@@ -904,6 +941,9 @@ vehicle:
904
941
  year: Year
905
942
  actions:
906
943
  locate-vehicle: Locate Vehicle on Map
944
+ schedule-maintenance: Schedule Maintenance
945
+ create-work-order: Create Work Order
946
+ log-maintenance: Log Maintenance
907
947
 
908
948
  vendor:
909
949
  fields:
@@ -1114,7 +1154,132 @@ scheduler:
1114
1154
  scheduled-orders: Scheduled Orders
1115
1155
  unauthorized-to-schedule: You are not authorized to schedule orders.
1116
1156
  scheduling-for: Scheduling for {orderId}
1117
-
1157
+ add-shift: Add Shift
1158
+ create-shift: Create Shift
1159
+ edit-shift: Edit Shift
1160
+ delete-shift: Delete Shift
1161
+ delete-shift-confirm: Are you sure you want to delete this shift? This action cannot be undone.
1162
+ shift-created: Shift created successfully.
1163
+ shift-updated: Shift updated successfully.
1164
+ shift-title: Shift Title
1165
+ shift-title-placeholder: e.g. Morning Delivery Run
1166
+ shift-start: Shift Start
1167
+ shift-end: Shift End
1168
+ shift-notes-placeholder: Optional notes about this shift
1169
+ select-start-datetime: Select start date & time
1170
+ select-end-datetime: Select end date & time
1171
+ select-driver: Select Driver
1172
+ upcoming-shifts: Upcoming Shifts
1173
+ no-upcoming-shifts: No upcoming shifts scheduled.
1174
+ hours-of-service: Hours of Service
1175
+ daily-driving-hours: Daily Driving Hours
1176
+ weekly-hours: Weekly Hours
1177
+ compliance-status: Compliance Status
1178
+ set-availability: Set Availability
1179
+ availability-set: Availability saved successfully.
1180
+ availability-time-off: Availability & Time Off
1181
+ no-availability-restrictions: No availability restrictions set.
1182
+ available: Available
1183
+ unavailable: Unavailable
1184
+ unavailable-time-off: Unavailable / Time Off
1185
+ availability-type: Availability Type
1186
+ request-time-off: Request Time Off
1187
+ submit-request: Submit Request
1188
+ time-off-requested: Time off request submitted.
1189
+ delete-availability: Delete Availability
1190
+ delete-availability-confirm: Are you sure you want to remove this availability record?
1191
+ availability-deleted: Availability record removed.
1192
+ start-date: Start Date
1193
+ end-date: End Date
1194
+ select-start-date: Select start date
1195
+ select-end-date: Select end date
1196
+ reason: Reason
1197
+ reason-placeholder: e.g. Personal appointment
1198
+ notes-placeholder: Optional additional notes
1199
+ shift: Shift
1200
+ add-shift-hint: Click "Add Shift" to schedule a new shift.
1201
+ time-off-exceptions: Time Off & Exceptions
1202
+ no-exceptions: No time off or exceptions recorded.
1203
+ exception-approved: Exception approved.
1204
+ exception-rejected: Exception rejected.
1205
+ exception-deleted: Exception removed.
1206
+ delete-exception: Delete Exception
1207
+ delete-exception-confirm: Are you sure you want to remove this exception?
1208
+ approve: Approve
1209
+ reject: Reject
1210
+ recurring-schedule-created: Recurring schedule created and shifts materialised.
1211
+ recurring-schedule: Recurring Schedule
1212
+ is-recurring: Recurring
1213
+ recurrence-pattern: Recurrence Pattern
1214
+ recurrence-start-date: Starts On
1215
+ recurrence-end-date: Ends On (optional)
1216
+ template-name: Template Name
1217
+ template-name-placeholder: e.g. Standard Week
1218
+ schedule-name: Schedule Name
1219
+ schedule-name-placeholder: e.g. Standard Week
1220
+ one-off-shift: One-off Shift
1221
+ one-off-shift-help: Toggle on to add a single shift on a specific date and time instead of a recurring schedule.
1222
+ template-color: Color
1223
+ shift-start-time: Shift Start Time
1224
+ shift-end-time: Shift End Time
1225
+ break-start-time: Break Start Time
1226
+ break-end-time: Break End Time
1227
+ day-monday: Monday
1228
+ day-tuesday: Tuesday
1229
+ day-wednesday: Wednesday
1230
+ day-thursday: Thursday
1231
+ day-friday: Friday
1232
+ day-saturday: Saturday
1233
+ day-sunday: Sunday
1234
+ frequency-daily: Daily
1235
+ frequency-weekly: Weekly
1236
+ frequency-monthly: Monthly
1237
+ today: Today
1238
+ orders-tab: Order Schedule
1239
+ fleet-schedule-tab: Fleet Schedule
1240
+ break-start: Break Start
1241
+ break-end: Break End
1242
+ select-break-start: Select break start time
1243
+ select-break-end: Select break end time
1244
+ select-date: Select date
1245
+ working-days: Working Days
1246
+ recurrence-start: Starts On
1247
+ recurrence-end: Ends On
1248
+ recurring-schedule-help: Define a recurring shift pattern using days and times. Shifts will be automatically created for the driver.
1249
+ shift-deleted: Shift deleted successfully.
1250
+ day-mon: Mon
1251
+ day-tue: Tue
1252
+ day-wed: Wed
1253
+ day-thu: Thu
1254
+ day-fri: Fri
1255
+ day-sat: Sat
1256
+ day-sun: Sun
1257
+ view-day: Day
1258
+ view-week: Week
1259
+ undo: Undo last action
1260
+ redo: Redo last action
1261
+ search-orders: Search orders...
1262
+ select-all: Select all
1263
+ all-scheduled: All orders scheduled
1264
+ not-scheduled: Not Scheduled
1265
+ expand-sidebar: Expand sidebar
1266
+ collapse-sidebar: Collapse sidebar
1267
+ bulk-assign: Assign {count} orders
1268
+ bulk-assign-title: Bulk Assign {count} Orders
1269
+ bulk-assign-success: "{count} orders assigned successfully."
1270
+ bulk-assign-order-count: "{count} orders selected for assignment"
1271
+ bulk-assign-spacing-hint: Orders will be scheduled sequentially starting from the selected date and time, spaced by estimated duration.
1272
+ assign-to-driver: Assign to Driver
1273
+ assign-orders: Assign Orders
1274
+ orders-to-assign: "{count} orders to assign"
1275
+ scheduled-date: Scheduled Date
1276
+ conflict-title: Scheduling Conflict Detected
1277
+ conflict-description: "{orderTracking} overlaps with an existing order for {driverName}."
1278
+ conflicting-orders: Conflicting Orders
1279
+ conflict-resolution-prompt: How would you like to resolve this conflict?
1280
+ auto-adjust: Auto-Adjust Time
1281
+ assign-anyway: Assign Anyway
1282
+ clear-selection: Clear selection
1118
1283
  modals:
1119
1284
  new-custom-field-group:
1120
1285
  modal-title: Create a new custom field group
@@ -1716,3 +1881,281 @@ settings:
1716
1881
  button-continue: Continue
1717
1882
  button-start: Start onboard now
1718
1883
  button-in-progress: Onboard in progress
1884
+ scheduling:
1885
+ scheduling-settings: Scheduling Settings
1886
+ materialisation: Materialisation
1887
+ horizon-days: Schedule Horizon (Days)
1888
+ horizon-days-help: How many days ahead to generate shift items when a schedule template is applied.
1889
+ default-shift-duration: Default Shift Duration (Hours)
1890
+ default-shift-duration-help: The default number of hours for a shift when no end time is specified.
1891
+ hours-of-service: Hours of Service Limits
1892
+ hos-daily-limit: Daily Driving Limit (Hours)
1893
+ hos-daily-limit-help: Maximum hours a driver is permitted to drive in a single day.
1894
+ hos-weekly-limit: Weekly Driving Limit (Hours)
1895
+ hos-weekly-limit-help: Maximum hours a driver is permitted to drive in a rolling 7-day period.
1896
+ behaviour: Behaviour
1897
+ auto-activate-schedule: Auto-Activate Schedule
1898
+ auto-activate-schedule-help: Automatically transition a schedule from Draft to Active when the first shift is created.
1899
+ notify-drivers: Notify Drivers on Shift Changes
1900
+ notify-drivers-help: Send a push notification to drivers when their shifts are created, updated, or deleted.
1901
+ schedule-templates: Reusable Schedule Templates
1902
+ no-templates: No reusable templates have been created yet.
1903
+ new-template: New Template
1904
+ edit-template: Edit Template
1905
+ delete-template: Delete Template
1906
+ delete-template-confirm: Are you sure you want to delete the template "{name}"? This will not affect existing schedules.
1907
+ template-deleted: Template deleted successfully.
1908
+ settings-saved: Scheduling settings saved.
1909
+ maintenance-schedule:
1910
+ actions:
1911
+ trigger-now: Trigger Work Order Now
1912
+ pause: Pause Schedule
1913
+ resume: Resume Schedule
1914
+ work-order:
1915
+ actions:
1916
+ view: View Work Order
1917
+ edit: Edit Work Order
1918
+ delete: Delete Work Order
1919
+ maintenance:
1920
+ actions:
1921
+ view: View Maintenance Record
1922
+ edit: Edit Maintenance Record
1923
+ delete: Delete Maintenance Record
1924
+ equipment:
1925
+ actions:
1926
+ view: View Equipment
1927
+ edit: Edit Equipment
1928
+ delete: Delete Equipment
1929
+ part:
1930
+ actions:
1931
+ view: View Part
1932
+ edit: Edit Part
1933
+ delete: Delete Part
1934
+
1935
+ orchestrator:
1936
+ settings-title: Orchestrator Settings
1937
+ engine-settings: Allocation Engine
1938
+ active-engine: Active Allocation Engine
1939
+ active-engine-help: Select which allocation engine is used to assign orders to drivers and vehicles.
1940
+ auto-allocate-on-create: Auto-Allocate on Order Creation
1941
+ auto-allocate-on-create-label: Automatically run allocation when a new order is created.
1942
+ auto-reallocate-on-complete: Auto Re-Allocate on Delivery Completion
1943
+ auto-reallocate-on-complete-label: Re-run allocation when a delivery is completed to fill freed capacity.
1944
+ constraint-settings: Allocation Constraints
1945
+ max-travel-time: Max Travel Time (seconds)
1946
+ max-travel-time-help: Maximum travel time in seconds a driver may be assigned. Leave 0 for no limit.
1947
+ balance-workload: Balance Workload
1948
+ balance-workload-label: Distribute orders evenly across available drivers and vehicles.
1949
+ settings-saved: Orchestrator settings saved.
1950
+ workbench-title: Orchestrator Workbench
1951
+ unassigned-orders: Unassigned Orders
1952
+ no-unassigned-orders: No unassigned orders — all caught up!
1953
+ run-allocation: Run Orchestrator
1954
+ running: Running…
1955
+ plan-ready: Plan ready — review and commit.
1956
+ commit-plan: Commit Plan
1957
+ discard-plan: Discard
1958
+ committed: "Orchestration committed — {count} order(s) assigned."
1959
+ committed-badge: Plan committed
1960
+ overridden: Overridden
1961
+ on-shift: On Shift
1962
+ empty-state-title: No orchestration plan yet
1963
+ empty-state-body: Click "Run Orchestrator" to generate an optimized assignment plan for unassigned orders.
1964
+ unassigned-warning: Some orders could not be assigned — insufficient vehicle capacity or no drivers on shift.
1965
+ # Workbench toolbar & options
1966
+ run-orchestration: Run Orchestrator
1967
+ options: Options
1968
+ mode: Mode
1969
+ mode-allocate: Allocate Orders
1970
+ mode-optimize: Optimize Routes
1971
+ engine: Engine
1972
+ respect-skills: Respect Skills
1973
+ respect-capacity: Respect Capacity
1974
+ return-to-depot: Return to Depot
1975
+ # Plan state
1976
+ unassigned-count: "Unassigned:"
1977
+ clear: Clear
1978
+ # Order pool
1979
+ search-orders: Search orders…
1980
+ filter-all: All
1981
+ filter-scheduled: Scheduled
1982
+ filter-urgent: Urgent
1983
+ filter-today: Today
1984
+ filter-unassigned: Unassigned
1985
+ filter-imported: Imported
1986
+ advanced-filters: Advanced Filters
1987
+ filter-country: Country
1988
+ filter-type: Order Type
1989
+ filter-status: Status
1990
+ filter-date: Scheduled Date
1991
+ filter-country-placeholder: All countries
1992
+ filter-type-placeholder: All types
1993
+ filter-status-placeholder: All statuses
1994
+ filter-date-placeholder: Any date
1995
+ clear-filters: Clear Filters
1996
+ no-address: No address
1997
+ selected: selected
1998
+ clear-selection: Clear
1999
+ # Panel toggles
2000
+ show-orders: Show Order Pool
2001
+ hide-orders: Hide Order Pool
2002
+ show-drivers: Show Resources
2003
+ hide-drivers: Hide Resources
2004
+ # Driver / resource panel
2005
+ available-drivers: Available Drivers
2006
+ available-vehicles: Available Vehicles
2007
+ no-available-drivers: No drivers available right now.
2008
+ no-available-vehicles: No vehicles available right now.
2009
+ no-search-results: No results match your search.
2010
+ search-drivers: Search drivers...
2011
+ search-vehicles: Search vehicles...
2012
+ filter-online: Online
2013
+ filter-offline: Offline
2014
+ filter-on-shift: On Job
2015
+ filter-on-job: On Job
2016
+ filter-active: Active
2017
+ filter-no-driver: No Driver
2018
+ proposed-routes: Proposed Routes
2019
+ stops: stops
2020
+ route: Route
2021
+ drivers-selected: drivers selected
2022
+ vehicles-selected: vehicles selected
2023
+ drop-orders-here: Drop orders here
2024
+ # Import modal
2025
+ import-orders: Import Orders
2026
+ import-step-upload: Upload
2027
+ import-step-map: Map Columns
2028
+ import-step-preview: Preview & Import
2029
+ drop-file-here: Drop your CSV or Excel file here
2030
+ or: or
2031
+ browse-file: Browse file
2032
+ accepted-formats: "Accepted: .csv, .xlsx, .xls"
2033
+ remove-file: Remove file
2034
+ download-template: Download Import Template
2035
+ download-template-desc: Use our template to ensure your data imports correctly.
2036
+ download: Download
2037
+ next: Next
2038
+ back: Back
2039
+ map-columns-title: Map Columns
2040
+ map-columns-desc: "Map the columns in"
2041
+ col-target-field: Target Field
2042
+ col-your-spreadsheet: Your Spreadsheet
2043
+ mapped: mapped
2044
+ mapping-required-hint: "Dropoff Street 1 is required before you can continue."
2045
+ select-column: "— skip —"
2046
+ data-preview: "First 3 orders preview:"
2047
+ preview-import: Preview Import
2048
+ preview-desc: "{count} orders ready to import"
2049
+ errors: errors
2050
+ all-rows-valid: All rows valid
2051
+ validation-warning: "{count} order(s) have errors and will be skipped."
2052
+ import-confirm: Confirm Import
2053
+ importing: "Importing…"
2054
+ col-pickup: Pickup
2055
+ col-dropoff: Dropoff
2056
+ col-scheduled: Scheduled
2057
+ col-weight: Weight
2058
+ col-customer: Customer
2059
+ col-status: Status
2060
+ col-preview-ref: Ref / ID
2061
+ col-preview-type: Type
2062
+ col-preview-facilitator: Facilitator
2063
+ col-preview-vehicle: Vehicle
2064
+ col-preview-driver: Driver
2065
+ col-preview-entities: Items
2066
+ col-preview-multi-stop: "{count} stops"
2067
+ col-preview-pickup-dropoff: Pickup & Dropoff
2068
+ error: Error
2069
+ valid: Valid
2070
+ import-success: "{count} order(s) imported successfully."
2071
+ no-valid-rows: No valid orders to import.
2072
+ invalid-file-type: "Please upload a .csv, .xlsx or .xls file."
2073
+ parse-error: Could not parse the file. Please check the format.
2074
+ read-error: Could not read the file.
2075
+ empty-file: The file appears to be empty.
2076
+ missing-dropoff: Dropoff Street 1 is required.
2077
+ stops-count: "{count} stops"
2078
+ # Order card fields
2079
+ pickup: Pickup
2080
+ dropoff: Dropoff
2081
+ scheduled: Scheduled
2082
+ customer: Customer
2083
+ driver-assigned: Driver Assigned
2084
+ vehicle-assigned: Vehicle Assigned
2085
+ no-vehicle-assigned: No vehicle assigned
2086
+ no-driver-assigned: No driver assigned
2087
+ created: Created
2088
+ # Phase builder
2089
+ phases: Phases
2090
+ phases-description: Compose a multi-step orchestration run. Each phase runs a specific mode in sequence.
2091
+ add-phase: Add Phase
2092
+ no-phases: No phases configured. Add a phase to get started.
2093
+ phase-n: "Phase {n}"
2094
+ phase-label: Phase Label
2095
+ save-phase: Save Phase
2096
+ select-phase-to-edit: Select a phase to edit its settings.
2097
+ run-phases: "Run {count} Phase(s)"
2098
+ include-order-statuses: Include Order Statuses
2099
+ constraints: Constraints
2100
+ auto-commit: Auto-commit after phase
2101
+ # Allocation modes
2102
+ mode-assign-vehicles: Assign Vehicles
2103
+ mode-assign-drivers: Assign Drivers
2104
+ mode-optimize-routes: Optimize Routes
2105
+ # Order statuses for phase filter
2106
+ status-created: Created
2107
+ status-dispatched: Dispatched
2108
+ status-started: Started
2109
+ # Card fields settings
2110
+ card-fields: Card Fields
2111
+ card-fields-description: Configure which fields are displayed on order cards in the workbench. Fields are grouped by order config so you can tailor the view for each order type.
2112
+ card-fields-saved: Order card fields saved.
2113
+ save-card-fields: Save Card Fields
2114
+ standard-fields: Standard Fields
2115
+ standard-fields-description: These fields appear on every order card regardless of order type.
2116
+ config-fields-description: "Custom fields for {name} orders."
2117
+ meta-fields: Meta Fields
2118
+ meta-fields-description: Free-form metadata keys pushed by integrations.
2119
+ no-custom-fields: No custom fields defined for this order config.
2120
+ field-tracking: Tracking Number
2121
+ field-status: Status
2122
+ field-scheduled-at: Scheduled At
2123
+ field-customer: Customer
2124
+ field-type: Type
2125
+ field-notes: Notes
2126
+ field-priority: Priority
2127
+ field-dropoff: Dropoff Address
2128
+ field-pickup: Pickup Address
2129
+ # Resource panel filters
2130
+ filter-available: Available
2131
+ # Plan viewer
2132
+ vehicle: Vehicle
2133
+ expand-all: Expand all
2134
+ tab-routes: Routes
2135
+ tab-timeline: Timeline
2136
+ collapse-all: Collapse all
2137
+ collapse-route: Collapse route
2138
+ expand-route: Expand route
2139
+ no-plan: Run the orchestrator to see the proposed plan.
2140
+ unassigned-description: These orders could not be assigned. They will remain in the queue for re-allocation.
2141
+ unassigned: unassigned
2142
+ # General additions
2143
+ vehicles: Vehicles
2144
+ drivers: Drivers
2145
+ orders: Orders
2146
+ cancel: Cancel
2147
+ no-vehicles: No vehicles found.
2148
+ no-drivers: No drivers found.
2149
+ no-orders: No orders found.
2150
+ expand-panel: Expand panel
2151
+ collapse-panel: Collapse panel
2152
+ # Run error state
2153
+ run-failed-title: No assignments returned
2154
+ try-again: Try Again
2155
+ change-resources: Change Resources
2156
+ no-assignments-returned: The orchestrator could not assign any orders. Check that vehicles have sufficient capacity and drivers are on shift.
2157
+ # Stop list labels
2158
+ stop-type-pickup: Pickup
2159
+ stop-type-dropoff: Dropoff
2160
+ pod-required: POD
2161
+ no-pod: No POD
@@ -28,6 +28,8 @@ common:
28
28
  select-resource-filter-by: Sélectionner {resource} pour filtrer
29
29
  table-view: Vue tableau
30
30
  grid-view: Vue grille
31
+ calendar-view: Vue Calendrier
32
+ change-layout: Changer la mise en page
31
33
  livemap: Carte en direct
32
34
  tracking: Suivi
33
35
  activity: Activité
@@ -37,6 +39,13 @@ common:
37
39
  edit-address: Modifier l'adresse
38
40
  new-address: Nouvelle adresse
39
41
  select-address: Sélectionner une adresse
42
+ save: Save
43
+ save-changes: Save Changes
44
+ done: Done
45
+ delete: Delete
46
+ overview: Overview
47
+ notes: Notes
48
+ schedule: Schedule
40
49
  menu:
41
50
  operations: Opérations
42
51
  dashboard: Tableau de bord
@@ -439,7 +448,6 @@ device:
439
448
  warranty: Garantie
440
449
  warranty-placeholder: Sélectionnez la garantie
441
450
  notes: Notes
442
- notes-placeholder: Notes
443
451
  entity:
444
452
  fields:
445
453
  declare: Déclarer
@@ -573,7 +581,6 @@ order:
573
581
  invalid-coordinates: Coordonnées invalides !
574
582
  items-drop: Articles déposés à
575
583
  loading-message: Chargement des devis de service...
576
- notes-placeholder: Entrez les notes de la commande ici....
577
584
  notes-title: Notes
578
585
  optimize-route: Optimiser l'itinéraire
579
586
  optimize-route-help-text: Fleetbase optimisera automatiquement l'itinéraire.
@@ -705,7 +712,6 @@ order:
705
712
  vehicle-assigned: Véhicule
706
713
  no-driver: Aucun conducteur
707
714
  no-vehicle: Aucun véhicule
708
- select-driver: Sélectionner un conducteur
709
715
  select-vehicle: Sélectionner un véhicule
710
716
  kanban:
711
717
  status-updated: L'activité de la commande a été mise à jour au statut {status}.
@@ -962,7 +968,6 @@ vehicle:
962
968
  make: Marque
963
969
  model: Modèle
964
970
  plate-number: Numéro de plaque
965
- select-driver: Sélectionner un conducteur
966
971
  upload-new-photo: Télécharger une nouvelle photo
967
972
  vehicle-make: Marque du véhicule
968
973
  vehicle-model: Modèle du véhicule
@@ -1210,12 +1215,53 @@ scheduler:
1210
1215
  scheduled-orders: Commandes programmées
1211
1216
  unauthorized-to-schedule: Vous n'êtes pas autorisé à programmer des commandes.
1212
1217
  scheduling-for: Programmation pour {orderId}
1218
+ add-shift: Add Shift
1219
+ create-shift: Create Shift
1220
+ edit-shift: Edit Shift
1221
+ delete-shift: Delete Shift
1222
+ delete-shift-confirm: Are you sure you want to delete this shift? This action cannot be undone.
1223
+ shift-created: Shift created successfully.
1224
+ shift-updated: Shift updated successfully.
1225
+ shift-title: Shift Title
1226
+ shift-title-placeholder: e.g. Morning Delivery Run
1227
+ shift-start: Shift Start
1228
+ shift-end: Shift End
1229
+ shift-notes-placeholder: Optional notes about this shift
1230
+ select-start-datetime: Select start date & time
1231
+ select-end-datetime: Select end date & time
1232
+ select-driver: Select Driver
1233
+ upcoming-shifts: Upcoming Shifts
1234
+ no-upcoming-shifts: No upcoming shifts scheduled.
1235
+ hours-of-service: Hours of Service
1236
+ daily-driving-hours: Daily Driving Hours
1237
+ weekly-hours: Weekly Hours
1238
+ compliance-status: Compliance Status
1239
+ set-availability: Set Availability
1240
+ availability-set: Availability saved successfully.
1241
+ availability-time-off: Availability & Time Off
1242
+ no-availability-restrictions: No availability restrictions set.
1243
+ available: Available
1244
+ unavailable: Unavailable
1245
+ unavailable-time-off: Unavailable / Time Off
1246
+ availability-type: Availability Type
1247
+ request-time-off: Request Time Off
1248
+ submit-request: Submit Request
1249
+ time-off-requested: Time off request submitted.
1250
+ delete-availability: Delete Availability
1251
+ delete-availability-confirm: Are you sure you want to remove this availability record?
1252
+ availability-deleted: Availability record removed.
1253
+ start-date: Start Date
1254
+ end-date: End Date
1255
+ select-start-date: Select start date
1256
+ select-end-date: Select end date
1257
+ reason: Reason
1258
+ reason-placeholder: e.g. Personal appointment
1259
+ notes-placeholder: Optional additional notes
1213
1260
  modals:
1214
1261
  new-custom-field-group:
1215
1262
  modal-title: Créer un nouveau groupe de champs personnalisés
1216
1263
  group-name: Nom du groupe
1217
1264
  assign-driver:
1218
- select-driver: Sélectionner un conducteur
1219
1265
  select-assign: Sélectionner un conducteur à assigner
1220
1266
  clone-config-form:
1221
1267
  name: Nom de la configuration
@@ -1277,7 +1323,6 @@ modals:
1277
1323
  fuel-report-details:
1278
1324
  fuel: Carburant / Volume
1279
1325
  fuel-report-form:
1280
- select-driver: Sélectionner le conducteur
1281
1326
  select-vehicle: Sélectionner le véhicule
1282
1327
  volume: Volume
1283
1328
  volume-text: Sélectionnez l'unité métrique et le volume de carburant à déclarer.
@@ -1304,7 +1349,6 @@ modals:
1304
1349
  select-reporter: Sélectionner le rapporteur
1305
1350
  assigned: Attribué à
1306
1351
  select-assignee: Sélectionner le destinataire
1307
- select-driver: Sélectionner le conducteur
1308
1352
  select-vehicle: Sélectionner le véhicule
1309
1353
  select-type: Sélectionner le type
1310
1354
  select-category: Sélectionner la catégorie
@@ -1338,7 +1382,6 @@ modals:
1338
1382
  tags: Tags de la configuration
1339
1383
  add-tags: Ajouter des tags
1340
1384
  order-assign-driver:
1341
- select-driver: Sélectionner un conducteur
1342
1385
  select-assign: Sélectionnez le conducteur à assigner
1343
1386
  order-config-new-status:
1344
1387
  new-status: Nouveau statut
@@ -1364,7 +1407,6 @@ modals:
1364
1407
  select-facilitator: Sélectionner un facilitateur
1365
1408
  assign-driver: Assigner un conducteur
1366
1409
  assign-driver-text: Assignez le conducteur à qui cette commande sera expédiée.
1367
- select-driver: Sélectionner un conducteur
1368
1410
  assign-vehicle: Assigner un véhicule
1369
1411
  assign-vehicle-text: Assignez le véhicule avec lequel cette commande sera effectuée.
1370
1412
  select-vehicle: Sélectionner un véhicule
@@ -1500,7 +1542,6 @@ modals:
1500
1542
  make: Marque du véhicule
1501
1543
  model: Modèle du véhicule
1502
1544
  year: Année du véhicule
1503
- select-driver: Sélectionner un conducteur
1504
1545
  body: Type de carrosserie du véhicule
1505
1546
  doors: Nombre de portes
1506
1547
  type: Type de transmission du véhicule