@fleetbase/fleetops-engine 0.6.64 → 0.6.65

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 (284) hide show
  1. package/RELEASE.md +7 -5
  2. package/addon/components/attachment-list.hbs +65 -0
  3. package/addon/components/attachment-list.js +8 -0
  4. package/addon/components/cell/attached-vehicle.hbs +1 -1
  5. package/addon/components/cell/attached-vehicle.js +3 -3
  6. package/addon/components/cell/driver-identity.js +4 -4
  7. package/addon/components/cell/driver-name.hbs +1 -1
  8. package/addon/components/cell/translated-value.hbs +9 -0
  9. package/addon/components/cell/translated-value.js +57 -0
  10. package/addon/components/contact/card.hbs +58 -0
  11. package/addon/components/contact/card.js +19 -0
  12. package/addon/components/contact/form.hbs +1 -1
  13. package/addon/components/contact/panel-header.hbs +1 -1
  14. package/addon/components/customer/form.hbs +2 -2
  15. package/addon/components/device/manager.hbs +26 -28
  16. package/addon/components/device/manager.js +28 -2
  17. package/addon/components/device/panel-tabs/vehicle.hbs +13 -13
  18. package/addon/components/device/panel-tabs/vehicle.js +8 -0
  19. package/addon/components/driver/card.hbs +24 -13
  20. package/addon/components/driver/card.js +20 -6
  21. package/addon/components/driver/form.hbs +3 -3
  22. package/addon/components/driver/panel-header.hbs +2 -2
  23. package/addon/components/driver/pill.hbs +2 -2
  24. package/addon/components/equipment/form.js +11 -4
  25. package/addon/components/equipment/pill.hbs +20 -0
  26. package/addon/components/equipment/pill.js +3 -0
  27. package/addon/components/filter/multi-model.hbs +19 -0
  28. package/addon/components/filter/multi-model.js +90 -0
  29. package/addon/components/fleet/driver-listing.hbs +1 -1
  30. package/addon/components/fleet/vehicle-listing.hbs +1 -1
  31. package/addon/components/fleet-panel/driver-listing.hbs +1 -1
  32. package/addon/components/fleet-panel/vehicle-listing.hbs +1 -1
  33. package/addon/components/layout/fleet-ops-sidebar.js +9 -7
  34. package/addon/components/maintenance/form.js +12 -4
  35. package/addon/components/maintenance-schedule/form.js +13 -7
  36. package/addon/components/map/leaflet-live-map.hbs +52 -0
  37. package/addon/components/map/order-list-overlay/order.hbs +4 -4
  38. package/addon/components/modals/attach-equipment.hbs +22 -0
  39. package/addon/components/modals/attach-equipment.js +3 -0
  40. package/addon/components/modals/attach-telematic-device.hbs +13 -8
  41. package/addon/components/modals/attach-telematic-device.js +11 -1
  42. package/addon/components/modals/attach-trailer.hbs +30 -0
  43. package/addon/components/modals/attach-trailer.js +3 -0
  44. package/addon/components/modals/contact-form.hbs +2 -2
  45. package/addon/components/modals/convert-customer-to-vendor.hbs +1 -1
  46. package/addon/components/modals/driver-form.hbs +2 -2
  47. package/addon/components/modals/select-trailer.hbs +35 -0
  48. package/addon/components/modals/select-trailer.js +3 -0
  49. package/addon/components/modals/vehicle-form.hbs +2 -2
  50. package/addon/components/orchestrator/resource-panel.hbs +2 -2
  51. package/addon/components/order/customer-avatar-stack.hbs +2 -2
  52. package/addon/components/order/details/detail.hbs +4 -4
  53. package/addon/components/order/details/payload.hbs +2 -2
  54. package/addon/components/order/kanban-card.hbs +4 -4
  55. package/addon/components/order-list-overlay/order.hbs +4 -4
  56. package/addon/components/trailer/card.hbs +68 -0
  57. package/addon/components/trailer/card.js +22 -0
  58. package/addon/components/trailer/details/connections.hbs +57 -0
  59. package/addon/components/trailer/details/connections.js +59 -0
  60. package/addon/components/trailer/details/equipment.hbs +25 -0
  61. package/addon/components/trailer/details/equipment.js +52 -0
  62. package/addon/components/trailer/details/maintenance-history.hbs +47 -0
  63. package/addon/components/trailer/details/maintenance-history.js +40 -0
  64. package/addon/components/trailer/details/schedules.hbs +45 -0
  65. package/addon/components/trailer/details/schedules.js +40 -0
  66. package/addon/components/trailer/details/work-orders.hbs +47 -0
  67. package/addon/components/trailer/details/work-orders.js +40 -0
  68. package/addon/components/trailer/details.hbs +399 -0
  69. package/addon/components/trailer/details.js +118 -0
  70. package/addon/components/trailer/form.hbs +447 -0
  71. package/addon/components/trailer/form.js +165 -0
  72. package/addon/components/trailer/panel-header.hbs +45 -0
  73. package/addon/components/trailer/panel-header.js +3 -0
  74. package/addon/components/trailer/pill.hbs +21 -0
  75. package/addon/components/trailer/pill.js +3 -0
  76. package/addon/components/vehicle/card.hbs +42 -11
  77. package/addon/components/vehicle/card.js +31 -0
  78. package/addon/components/vehicle/details/equipment.hbs +25 -0
  79. package/addon/components/vehicle/details/equipment.js +55 -0
  80. package/addon/components/vehicle/details/trailers.hbs +35 -0
  81. package/addon/components/vehicle/details/trailers.js +55 -0
  82. package/addon/components/vehicle/form.hbs +2 -2
  83. package/addon/components/vehicle/panel-header.hbs +2 -2
  84. package/addon/components/vehicle/pill.hbs +2 -2
  85. package/addon/components/vendor/card.hbs +58 -0
  86. package/addon/components/vendor/card.js +6 -0
  87. package/addon/components/vendor/panel-header.hbs +2 -2
  88. package/addon/components/vendor/personnel-manager.hbs +2 -2
  89. package/addon/components/work-order/form.js +12 -4
  90. package/addon/controllers/connectivity/devices/index/details/vehicle.js +11 -0
  91. package/addon/controllers/connectivity/devices/index/details.js +3 -3
  92. package/addon/controllers/connectivity/devices/index.js +1 -0
  93. package/addon/controllers/connectivity/telematics/details/attachments.js +28 -47
  94. package/addon/controllers/connectivity/telematics/details/devices.js +1 -0
  95. package/addon/controllers/management/contacts/customers.js +4 -0
  96. package/addon/controllers/management/contacts/index.js +32 -0
  97. package/addon/controllers/management/trailers/index/details.js +119 -0
  98. package/addon/controllers/management/trailers/index/edit.js +67 -0
  99. package/addon/controllers/management/trailers/index/new.js +43 -0
  100. package/addon/controllers/management/trailers/index.js +599 -0
  101. package/addon/controllers/management/vehicles/index/details.js +16 -0
  102. package/addon/controllers/management/vehicles/index.js +78 -4
  103. package/addon/controllers/management/vendors/index.js +32 -0
  104. package/addon/controllers/operations/orders/index.js +3 -1
  105. package/addon/controllers/settings/custom-fields.js +8 -0
  106. package/addon/extension.js +7 -0
  107. package/addon/helpers/placeholder-image.js +6 -0
  108. package/addon/helpers/resource-image.js +10 -0
  109. package/addon/helpers/trailer-placeholder-image.js +6 -0
  110. package/addon/routes/management/trailers/index/details/connections.js +2 -0
  111. package/addon/routes/management/trailers/index/details/devices.js +2 -0
  112. package/addon/routes/management/trailers/index/details/equipment.js +2 -0
  113. package/addon/routes/management/trailers/index/details/index.js +2 -0
  114. package/addon/routes/management/trailers/index/details/maintenance-history.js +2 -0
  115. package/addon/routes/management/trailers/index/details/positions.js +2 -0
  116. package/addon/routes/management/trailers/index/details/schedules.js +2 -0
  117. package/addon/routes/management/trailers/index/details/work-orders.js +2 -0
  118. package/addon/routes/management/trailers/index/details.js +30 -0
  119. package/addon/routes/management/trailers/index/edit.js +23 -0
  120. package/addon/routes/management/trailers/index/new.js +14 -0
  121. package/addon/routes/management/trailers/index.js +42 -0
  122. package/addon/routes/management/vehicles/index/details/trailers.js +2 -0
  123. package/addon/routes/management/vehicles/index.js +7 -1
  124. package/addon/routes.js +17 -0
  125. package/addon/services/device-actions.js +26 -16
  126. package/addon/services/trailer-actions.js +394 -0
  127. package/addon/services/vehicle-actions.js +111 -0
  128. package/addon/styles/fleetops-engine.css +349 -0
  129. package/addon/templates/connectivity/devices/index/details/vehicle.hbs +19 -19
  130. package/addon/templates/connectivity/telematics/details/attachments.hbs +15 -15
  131. package/addon/templates/management/contacts/customers.hbs +48 -29
  132. package/addon/templates/management/contacts/index.hbs +52 -33
  133. package/addon/templates/management/trailers/index/details/connections.hbs +1 -0
  134. package/addon/templates/management/trailers/index/details/devices.hbs +1 -0
  135. package/addon/templates/management/trailers/index/details/equipment.hbs +1 -0
  136. package/addon/templates/management/trailers/index/details/index.hbs +1 -0
  137. package/addon/templates/management/trailers/index/details/maintenance-history.hbs +1 -0
  138. package/addon/templates/management/trailers/index/details/positions.hbs +1 -0
  139. package/addon/templates/management/trailers/index/details/schedules.hbs +1 -0
  140. package/addon/templates/management/trailers/index/details/work-orders.hbs +1 -0
  141. package/addon/templates/management/trailers/index/details.hbs +15 -0
  142. package/addon/templates/management/trailers/index/edit.hbs +12 -0
  143. package/addon/templates/management/trailers/index/new.hbs +11 -0
  144. package/addon/templates/management/trailers/index.hbs +67 -0
  145. package/addon/templates/management/vehicles/index/details/equipment.hbs +1 -1
  146. package/addon/templates/management/vehicles/index/details/trailers.hbs +1 -0
  147. package/addon/templates/management/vehicles/index/details.hbs +1 -1
  148. package/addon/templates/management/vendors/index.hbs +66 -32
  149. package/addon/utils/device-table-columns.js +10 -6
  150. package/addon/utils/live-map-card-content.js +56 -0
  151. package/addon/utils/placeholder-images.js +71 -0
  152. package/addon/utils/trailer-placeholder-image.js +11 -0
  153. package/app/components/attachment-list.js +1 -0
  154. package/app/components/cell/translated-value.js +1 -0
  155. package/app/components/contact/card.js +1 -0
  156. package/app/components/equipment/pill.js +1 -0
  157. package/app/components/filter/multi-model.js +1 -0
  158. package/app/components/modals/attach-equipment.js +1 -0
  159. package/app/components/modals/attach-trailer.js +1 -0
  160. package/app/components/modals/select-trailer.js +1 -0
  161. package/app/components/trailer/card.js +1 -0
  162. package/app/components/trailer/details/connections.js +1 -0
  163. package/app/components/trailer/details/equipment.js +1 -0
  164. package/app/components/trailer/details/maintenance-history.js +1 -0
  165. package/app/components/trailer/details/schedules.js +1 -0
  166. package/app/components/trailer/details/work-orders.js +1 -0
  167. package/app/components/trailer/details.js +1 -0
  168. package/app/components/trailer/form.js +1 -0
  169. package/app/components/trailer/panel-header.js +1 -0
  170. package/app/components/trailer/pill.js +1 -0
  171. package/app/components/vehicle/details/equipment.js +1 -0
  172. package/app/components/vehicle/details/trailers.js +1 -0
  173. package/app/components/vendor/card.js +1 -0
  174. package/app/controllers/management/trailers/index/details.js +1 -0
  175. package/app/controllers/management/trailers/index/edit.js +1 -0
  176. package/app/controllers/management/trailers/index/new.js +1 -0
  177. package/app/controllers/management/trailers/index.js +1 -0
  178. package/app/helpers/placeholder-image.js +1 -0
  179. package/app/helpers/resource-image.js +1 -0
  180. package/app/helpers/trailer-placeholder-image.js +1 -0
  181. package/app/routes/management/trailers/index/details/connections.js +1 -0
  182. package/app/routes/management/trailers/index/details/devices.js +1 -0
  183. package/app/routes/management/trailers/index/details/equipment.js +1 -0
  184. package/app/routes/management/trailers/index/details/index.js +1 -0
  185. package/app/routes/management/trailers/index/details/maintenance-history.js +1 -0
  186. package/app/routes/management/trailers/index/details/positions.js +1 -0
  187. package/app/routes/management/trailers/index/details/schedules.js +1 -0
  188. package/app/routes/management/trailers/index/details/work-orders.js +1 -0
  189. package/app/routes/management/trailers/index/details.js +1 -0
  190. package/app/routes/management/trailers/index/edit.js +1 -0
  191. package/app/routes/management/trailers/index/new.js +1 -0
  192. package/app/routes/management/trailers/index.js +1 -0
  193. package/app/routes/management/vehicles/index/details/trailers.js +1 -0
  194. package/app/services/trailer-actions.js +1 -0
  195. package/app/templates/management/trailers/index/details/connections.js +1 -0
  196. package/app/templates/management/trailers/index/details/devices.js +1 -0
  197. package/app/templates/management/trailers/index/details/equipment.js +1 -0
  198. package/app/templates/management/trailers/index/details/index.js +1 -0
  199. package/app/templates/management/trailers/index/details/maintenance-history.js +1 -0
  200. package/app/templates/management/trailers/index/details/positions.js +1 -0
  201. package/app/templates/management/trailers/index/details/schedules.js +1 -0
  202. package/app/templates/management/trailers/index/details/work-orders.js +1 -0
  203. package/app/templates/management/trailers/index/details.js +1 -0
  204. package/app/templates/management/trailers/index/edit.js +1 -0
  205. package/app/templates/management/trailers/index/new.js +1 -0
  206. package/app/templates/management/trailers/index.js +1 -0
  207. package/app/templates/management/vehicles/index/details/trailers.js +1 -0
  208. package/composer.json +1 -1
  209. package/extension.json +1 -1
  210. package/package.json +1 -1
  211. package/server/migrations/2026_09_03_000001_add_first_class_trailer_columns_to_assets_table.php +58 -0
  212. package/server/migrations/2026_09_03_000002_create_asset_connections_table.php +43 -0
  213. package/server/migrations/2026_09_03_000003_create_device_installations_table.php +33 -0
  214. package/server/src/Auth/Schemas/FleetOps.php +7 -0
  215. package/server/src/Events/TrailerLocationChanged.php +70 -0
  216. package/server/src/Exceptions/DeviceAlreadyAttachedException.php +18 -0
  217. package/server/src/Exports/TrailerExport.php +31 -0
  218. package/server/src/Http/Controllers/Api/v1/Concerns/ResolvesFleetOpsApiResources.php +8 -2
  219. package/server/src/Http/Controllers/Api/v1/DeviceController.php +22 -15
  220. package/server/src/Http/Controllers/Api/v1/EquipmentController.php +47 -0
  221. package/server/src/Http/Controllers/Api/v1/TrailerController.php +362 -0
  222. package/server/src/Http/Controllers/Api/v1/VehicleController.php +1 -0
  223. package/server/src/Http/Controllers/Internal/v1/DeviceController.php +3 -0
  224. package/server/src/Http/Controllers/Internal/v1/LiveController.php +1 -1
  225. package/server/src/Http/Controllers/Internal/v1/SearchController.php +16 -0
  226. package/server/src/Http/Controllers/Internal/v1/TrailerController.php +360 -0
  227. package/server/src/Http/Controllers/Internal/v1/VehicleController.php +74 -0
  228. package/server/src/Http/Filter/EquipmentFilter.php +51 -0
  229. package/server/src/Http/Filter/OrderFilter.php +15 -0
  230. package/server/src/Http/Filter/TrailerFilter.php +269 -0
  231. package/server/src/Http/Filter/VehicleFilter.php +70 -3
  232. package/server/src/Http/Requests/CreateDeviceRequest.php +1 -1
  233. package/server/src/Http/Requests/CreateEquipmentRequest.php +1 -1
  234. package/server/src/Http/Requests/CreateTrailerRequest.php +54 -0
  235. package/server/src/Http/Requests/UpdateTrailerRequest.php +7 -0
  236. package/server/src/Http/Resources/v1/AssetConnection.php +90 -0
  237. package/server/src/Http/Resources/v1/Device.php +3 -1
  238. package/server/src/Http/Resources/v1/Equipment.php +3 -1
  239. package/server/src/Http/Resources/v1/Index/Vehicle.php +10 -0
  240. package/server/src/Http/Resources/v1/Trailer.php +199 -0
  241. package/server/src/Http/Resources/v1/Vehicle.php +2 -0
  242. package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +3 -0
  243. package/server/src/Imports/TrailerImport.php +33 -0
  244. package/server/src/Models/Asset.php +39 -10
  245. package/server/src/Models/AssetConnection.php +43 -0
  246. package/server/src/Models/Device.php +39 -8
  247. package/server/src/Models/DeviceInstallation.php +27 -0
  248. package/server/src/Models/Equipment.php +2 -0
  249. package/server/src/Models/Trailer.php +181 -0
  250. package/server/src/Models/Vehicle.php +13 -0
  251. package/server/src/Providers/FleetOpsServiceProvider.php +4 -2
  252. package/server/src/Support/Ai/FleetOpsAiQueryResources.php +22 -0
  253. package/server/src/Support/Reporting/FleetOpsReportSchema.php +38 -0
  254. package/server/src/Support/Telematics/TelematicService.php +35 -0
  255. package/server/src/Support/TrailerSummary.php +35 -0
  256. package/server/src/routes.php +29 -0
  257. package/server/tests/CompactResourceSerializationTest.php +36 -0
  258. package/server/tests/ControllerFilterContractsTest.php +29 -0
  259. package/server/tests/Feature/Http/Api/DeviceControllerContractsTest.php +30 -13
  260. package/server/tests/Feature/Http/Api/TrailerControllerLifecycleTest.php +640 -0
  261. package/server/tests/Feature/Http/Internal/DeviceControllerContractsTest.php +20 -5
  262. package/server/tests/Feature/Http/Internal/LiveControllerEndpointsTest.php +19 -0
  263. package/server/tests/ModelAccessorContractsTest.php +10 -0
  264. package/server/tests/OrderFilterExecutionTest.php +5 -0
  265. package/server/tests/PublicApiControllerInputContractsTest.php +11 -0
  266. package/server/tests/PublicFleetOpsRestEndpointsTest.php +15 -3
  267. package/server/tests/ReportSchemaContractsTest.php +4 -0
  268. package/server/tests/TelematicsHardeningTest.php +4 -2
  269. package/server/tests/TrailerSupportCoverageTest.php +524 -0
  270. package/server/tests/Unit/Http/Resources/IndexVehicleResourceTest.php +35 -0
  271. package/server/tests/Unit/Models/EquipmentTest.php +22 -0
  272. package/server/tests/Unit/Models/ModelLookupFallbackSeamsTest.php +7 -3
  273. package/server/tests/Unit/Models/TrailerTest.php +204 -0
  274. package/server/tests/Unit/Support/Telematics/TelematicServiceTelemetryTest.php +93 -0
  275. package/server/tests/VehicleControllerHelperContractsTest.php +14 -0
  276. package/translations/ar-ae.yml +396 -0
  277. package/translations/bg-bg.yaml +424 -0
  278. package/translations/en-us.yaml +423 -0
  279. package/translations/es-pa.yaml +425 -0
  280. package/translations/fr-fr.yaml +424 -0
  281. package/translations/mn-mn.yaml +424 -0
  282. package/translations/pt-br.yaml +424 -0
  283. package/translations/ru-ru.yaml +424 -0
  284. package/translations/vi-vn.yaml +435 -0
@@ -1,6 +1,17 @@
1
1
  menu:
2
2
  fuel-providers: Tích hợp Nhiên liệu
3
3
  fuel-transactions: Giao dịch nhiên liệu
4
+ trailers: Rơ-moóc
5
+
6
+ resource:
7
+ trailer: Rơ-moóc
8
+ trailers: Rơ-moóc
9
+ vehicle: Phương tiện
10
+ equipment: Thiết bị
11
+ driver: Tài xế
12
+ device: Thiết bị IoT
13
+ sensors: Cảm biến
14
+ device-events: Sự kiện thiết bị
4
15
 
5
16
  fleet-ops:
6
17
  extension-name: Fleet-Ops
@@ -1620,7 +1631,17 @@ scheduler:
1620
1631
  notes-placeholder: Optional additional notes
1621
1632
 
1622
1633
  common:
1634
+ select-resource-filter-by: "Chọn {resource} để lọc"
1635
+ no-vehicle-assigned: Chưa gán phương tiện
1636
+ last-modified: Sửa đổi lần cuối
1637
+ table-view: Dạng bảng
1638
+ grid-view: Dạng lưới
1639
+ change-layout: Đổi bố cục
1640
+ online: Trực tuyến
1641
+ offline: Ngoại tuyến
1623
1642
  current-job: Current Job
1643
+ "yes": Có
1644
+ "no": Không
1624
1645
  driver:
1625
1646
  actions:
1626
1647
  unassign-orders: Unassign Orders
@@ -1648,10 +1669,36 @@ driver:
1648
1669
  unassign-vehicle-success: Unassigned {vehicleName} from {driverName}.
1649
1670
  issue-title: Issue reported for {driverName}
1650
1671
  device:
1672
+ attachment:
1673
+ title: Tài sản đã gắn
1674
+ description: Ngữ cảnh đội xe cho dữ liệu từ thiết bị này.
1675
+ open: Mở tài sản
1676
+ asset: Tài sản đã gắn
1677
+ synced-device: Thiết bị đã đồng bộ
1678
+ asset-type: Loại tài sản
1679
+ select-asset-type: Chọn loại tài sản
1680
+ locate: Định vị
1681
+ change: Đổi tài sản
1682
+ detach: Tháo
1683
+ attached-device: Thiết bị đã gắn
1684
+ last-seen: Tín hiệu thiết bị gần nhất
1685
+ none-title: Chưa gắn tài sản
1686
+ none-message: Gắn thiết bị với phương tiện hoặc rơ-moóc để có ngữ cảnh dữ liệu đội xe.
1687
+ latest-positions: Vị trí gần đây
1688
+ positions-description: Tọa độ gần đây của tài sản do thiết bị này báo cáo.
1689
+ full-history: Toàn bộ lịch sử
1690
+ no-positions: Chưa có vị trí gần đây
1691
+ no-positions-message: Tài sản này chưa có lịch sử vị trí gần đây.
1692
+ attach-or-change: Gắn hoặc đổi tài sản
1693
+ view-attached: Xem tài sản đã gắn
1694
+ locate-attached: Định vị tài sản đã gắn trên bản đồ
1695
+ unknown: Tài sản không xác định
1651
1696
  actions:
1652
1697
  attach-to-vehicle: Attach to Vehicle
1653
1698
  detach-from-vehicle: Detach from Vehicle
1699
+ attach-to-asset: Gắn với tài sản
1654
1700
  prompts:
1701
+ manager-description: "Thiết bị viễn thông được lắp trên {resourceType} này. Gắn thiết bị để bắt đầu nhận vị trí và sự kiện."
1655
1702
  attach-to-vehicle-title: Attach device to vehicle
1656
1703
  attach-device-to-vehicle-title: "Attach {deviceName} to vehicle"
1657
1704
  select-vehicle-warning: Select a vehicle to attach this device to.
@@ -1660,6 +1707,12 @@ device:
1660
1707
  detach-from-vehicle-title: "Detach {deviceName} from vehicle?"
1661
1708
  detach-from-vehicle-body: "This detaches {deviceName} from {vehicleName} and stops vehicle telemetry updates until it is attached again."
1662
1709
  detach-from-vehicle-success: Device detached from vehicle.
1710
+ attach-to-asset-title: Gắn thiết bị với tài sản
1711
+ select-asset-warning: Chọn phương tiện hoặc rơ-moóc.
1712
+ attach-to-asset-success: Đã gắn thiết bị với tài sản.
1713
+ detach-from-asset-title: "Tháo {deviceName} khỏi tài sản?"
1714
+ detach-from-asset-body: "Thao tác này tháo {deviceName} khỏi {assetName} và dừng cập nhật dữ liệu cho đến khi được gắn lại."
1715
+ detach-from-asset-success: Đã tháo thiết bị khỏi tài sản.
1663
1716
  fleet:
1664
1717
  actions:
1665
1718
  assign-vehicle: Assign Vehicle to Fleet
@@ -1672,6 +1725,17 @@ fleet:
1672
1725
  assign-driver-success: Driver assigned to {fleetName}.
1673
1726
  assign-vehicle-success: Vehicle assigned to {fleetName}.
1674
1727
  vehicle:
1728
+ placeholders:
1729
+ filter-internal-id: Nhập hoặc quét mã ID nội bộ
1730
+ filters:
1731
+ has-trailer: Đã gắn rơ-moóc
1732
+ has-driver: Đã gán tài xế
1733
+ has-device: Đã gắn thiết bị
1734
+ any: Bất kỳ
1735
+ attached: Đã gắn
1736
+ not-attached: Chưa gắn
1737
+ assigned: Đã gán
1738
+ not-assigned: Chưa gán
1675
1739
  actions:
1676
1740
  attach-device: Attach Device
1677
1741
  unassign-orders: Unassign Orders
@@ -1680,6 +1744,9 @@ vehicle:
1680
1744
  schedule-maintenance: Schedule Maintenance
1681
1745
  create-work-order: Create Work Order
1682
1746
  log-maintenance: Log Maintenance
1747
+ attach-trailer: Nối rơ-moóc
1748
+ attach-equipment: Gắn trang bị
1749
+ detach-equipment: Tháo trang bị
1683
1750
  prompts:
1684
1751
  attach-device-title: Attach device to {vehicleName}
1685
1752
  select-device-warning: Select a device to attach.
@@ -1691,10 +1758,24 @@ vehicle:
1691
1758
  confirm-unassign-orders-body: "This will remove {vehicleName} from these orders: {orders}."
1692
1759
  unassign-orders-success: Unassigned {vehicleName} from {count} order(s).
1693
1760
  issue-title: Issue reported for {vehicleName}
1761
+ attach-trailer-title: "Nối rơ-moóc với {vehicleName}"
1762
+ select-trailer-warning: Chọn rơ-moóc để nối với xe này.
1763
+ attach-trailer-success: "Đã nối {trailerName} với {vehicleName}."
1764
+ empty:
1765
+ trailers: Chưa nối rơ-moóc
1766
+ trailers-description: Nối một rơ-moóc chưa kết nối với xe này để bắt đầu kết nối kéo.
1767
+ equipment: Chưa gắn trang bị
1768
+ equipment-description: Gắn trang bị như bửng nâng, dụng cụ hoặc thiết bị an toàn vào xe này.
1769
+ trailers:
1770
+ description: Rơ-moóc hiện đang nối với xe này.
1771
+ equipment:
1772
+ description: Trang bị hiện đang gắn vào xe này.
1694
1773
  modals:
1695
1774
  assigned-orders:
1696
1775
 
1697
1776
  order:
1777
+ placeholders:
1778
+ filter-internal-id: Nhập hoặc quét mã ID nội bộ
1698
1779
  card:
1699
1780
  linked-order: Linked Order
1700
1781
  unknown-order: Unknown order
@@ -1709,3 +1790,357 @@ order:
1709
1790
  no-dropoff-address: No dropoff address
1710
1791
  no-route-details: No route details available.
1711
1792
  no-order-linked: No order is linked to this issue.
1793
+
1794
+ trailer:
1795
+ navigation-description: Quản lý tài sản được kéo, kết nối kéo, thiết bị và viễn thông.
1796
+ sections:
1797
+ details: Chi tiết
1798
+ identification: Nhận dạng rơ-moóc
1799
+ classification: Phân loại và trạng thái
1800
+ registration: Đăng ký
1801
+ location: Vị trí
1802
+ dimensions: Kích thước và tải trọng
1803
+ measurement: Đơn vị đo và sử dụng
1804
+ dimensions-fields: "Kích thước ({unit})"
1805
+ weight: "Trọng lượng ({unit})"
1806
+ running-gear: Trục, phanh và móc kéo
1807
+ refrigeration: Làm lạnh
1808
+ ownership: Sở hữu và tài chính
1809
+ finance: Thông tin tài chính
1810
+ connection: Kết nối kéo
1811
+ telemetry: Vị trí và viễn thông
1812
+ notes: Ghi chú và lịch sử
1813
+ fields:
1814
+ photo: Ảnh
1815
+ id: ID
1816
+ name: Tên
1817
+ code: Mã
1818
+ description: Mô tả
1819
+ type: Loại rơ-moóc
1820
+ body-type: Loại thùng
1821
+ color: Màu sắc
1822
+ status: Trạng thái
1823
+ category: Danh mục
1824
+ vin: Số VIN
1825
+ plate-number: Biển số
1826
+ serial-number: Số sê-ri
1827
+ make: Hãng
1828
+ model: Mẫu
1829
+ year: Năm
1830
+ vendor: Nhà cung cấp
1831
+ warranty: Bảo hành
1832
+ vehicle: Xe kéo
1833
+ attachment-state: Trạng thái kết nối
1834
+ attached-at: Kết nối từ
1835
+ position: Vị trí kéo
1836
+ source: Nguồn
1837
+ connected-at: Kết nối lúc
1838
+ disconnected-at: Ngắt kết nối lúc
1839
+ duration: Thời lượng
1840
+ connectivity: Kết nối mạng
1841
+ last-online: Trực tuyến lần cuối
1842
+ last-provider: Nhà cung cấp viễn thông
1843
+ last-event-at: Sự kiện viễn thông gần nhất
1844
+ coordinates: Tọa độ
1845
+ speed: Tốc độ
1846
+ heading: Hướng
1847
+ altitude: Độ cao
1848
+ devices-count: Thiết bị đã gắn
1849
+ equipment-count: Trang bị đã gắn
1850
+ measurement-system: Hệ đo lường
1851
+ odometer: "Đồng hồ đo quãng đường {unit}"
1852
+ odometer-unit: Đơn vị đồng hồ
1853
+ length: "Chiều dài ({unit})"
1854
+ width: "Chiều rộng ({unit})"
1855
+ height: "Chiều cao ({unit})"
1856
+ cargo-volume: "Thể tích hàng ({unit})"
1857
+ tare-weight: "Tự trọng ({unit})"
1858
+ gvwr: "Tổng trọng lượng cho phép ({unit})"
1859
+ payload-capacity: "Tải trọng hàng ({unit})"
1860
+ axle-count: Số trục
1861
+ tire-count: Số lốp
1862
+ door-count: Số cửa
1863
+ coupling-type: Loại móc kéo
1864
+ brake-type: Loại phanh
1865
+ abs: ABS
1866
+ ebs: EBS
1867
+ refrigerated: Có làm lạnh
1868
+ temperature-min: "Nhiệt độ tối thiểu ({unit})"
1869
+ temperature-max: "Nhiệt độ tối đa ({unit})"
1870
+ reefer-hours: Số giờ máy lạnh
1871
+ ownership-type: Hình thức sở hữu
1872
+ financing-status: Tình trạng tài chính
1873
+ currency: Tiền tệ
1874
+ acquisition-cost: Chi phí mua
1875
+ current-value: Giá trị hiện tại
1876
+ insurance-value: Giá trị bảo hiểm
1877
+ depreciation-rate: Tỷ lệ khấu hao (% mỗi năm)
1878
+ purchased-at: Ngày mua
1879
+ lease-expires-at: Ngày hết hạn thuê
1880
+ notes: Ghi chú
1881
+ created-at: Ngày tạo
1882
+ updated-at: Cập nhật lần cuối
1883
+ placeholders:
1884
+ filter-vendor: Lọc theo nhà cung cấp
1885
+ name: vd. Rơ-moóc lạnh 12
1886
+ code: Mã đội xe nội bộ, vd. TRL-0012
1887
+ description: Rơ-moóc này dùng để làm gì
1888
+ type: Chọn loại rơ-moóc
1889
+ status: Chọn trạng thái
1890
+ body-type: vd. Thùng kín, thùng bạt, sàn phẳng
1891
+ color: vd. Trắng
1892
+ category: Chọn danh mục (tùy chọn)
1893
+ vin: Số VIN 17 ký tự
1894
+ plate-number: Biển số đăng ký
1895
+ serial-number: Số sê-ri của nhà sản xuất
1896
+ make: vd. Utility, Schmitz, Wabash
1897
+ model: vd. 3000R
1898
+ year: vd. 2024
1899
+ vendor: Chọn nhà cung cấp (tùy chọn)
1900
+ warranty: Chọn bảo hành (tùy chọn)
1901
+ vehicle: Chọn xe
1902
+ trailer: Chọn rơ-moóc
1903
+ equipment: Chọn trang bị
1904
+ filter-vehicle: Lọc theo xe kéo
1905
+ position: "1"
1906
+ measurement-system: Chọn hệ đo lường
1907
+ odometer-unit: Chọn đơn vị
1908
+ odometer: Số đo hiện tại
1909
+ length: "0.000"
1910
+ width: "0.000"
1911
+ height: "0.000"
1912
+ cargo-volume: "0.000"
1913
+ tare-weight: "0.000"
1914
+ gvwr: "0.000"
1915
+ payload-capacity: "0.000"
1916
+ axle-count: vd. 2
1917
+ tire-count: vd. 8
1918
+ door-count: vd. 2
1919
+ coupling-type: Chọn loại móc kéo
1920
+ brake-type: Chọn loại phanh
1921
+ temperature-min: vd. -20
1922
+ temperature-max: vd. 4
1923
+ reefer-hours: Số giờ hoạt động của máy lạnh
1924
+ ownership-type: Chọn hình thức sở hữu
1925
+ financing-status: vd. Đã trả hết, trả góp đến 2028
1926
+ depreciation-rate: vd. 10
1927
+ date: DD-MM-YYYY
1928
+ notes: Ghi chú nội bộ về rơ-moóc này
1929
+ help:
1930
+ photo: Tải lên ảnh của rơ-moóc này.
1931
+ name: Tên hiển thị trong Fleet-Ops. Bắt buộc.
1932
+ code: Mã tham chiếu đội xe của riêng bạn cho rơ-moóc này.
1933
+ type: Loại quyết định các mục áp dụng, ví dụ làm lạnh cho rơ-moóc lạnh.
1934
+ status: Trạng thái vòng đời. Kết nối kéo và kết nối mạng được theo dõi riêng.
1935
+ body-type: Mô tả tự do về thùng xe dùng để phân loại và tìm kiếm.
1936
+ category: Nhóm tùy chọn dùng chung với các tài nguyên đội xe khác.
1937
+ vin: Số nhận dạng khung được đóng trên rơ-moóc.
1938
+ coordinates: Vị trí cuối cùng được biết hoặc vị trí gốc. Thiết bị viễn thông tự động cập nhật.
1939
+ measurement-system: Xác định đơn vị dùng cho kích thước, trọng lượng, thể tích và nhiệt độ.
1940
+ odometer: Số đo đồng hồ quãng đường theo đơn vị đã chọn.
1941
+ cargo-volume: Thể tích chứa hàng hữu dụng của thùng.
1942
+ tare-weight: Trọng lượng rơ-moóc khi không tải.
1943
+ gvwr: Tổng trọng lượng cho phép, trọng lượng tối đa khi có tải.
1944
+ payload-capacity: Trọng lượng hàng tối đa rơ-moóc có thể chở.
1945
+ coupling-type: Cách rơ-moóc nối với xe kéo.
1946
+ abs: Đã lắp hệ thống chống bó cứng phanh.
1947
+ ebs: Đã lắp hệ thống phanh điện tử.
1948
+ refrigerated: Bật cho rơ-moóc kiểm soát nhiệt độ để ghi thiết lập máy lạnh.
1949
+ temperature: Dải nhiệt độ hoạt động của máy lạnh.
1950
+ reefer-hours: Số giờ hoạt động ghi nhận trên máy lạnh.
1951
+ ownership-type: Hình thức sở hữu rơ-moóc. Thông tin thuê và trả góp hiển thị khi cần.
1952
+ lease-expires-at: Thời điểm hợp đồng thuê, mượn hoặc trả góp kết thúc.
1953
+ vendor: Nhà cung cấp hoặc bên cho thuê rơ-moóc.
1954
+ warranty: Chính sách bảo hành áp dụng cho rơ-moóc này.
1955
+ acquisition-cost: Giá mua hoặc chi phí vốn hóa theo tiền tệ đã chọn.
1956
+ depreciation-rate: Khấu hao hàng năm dùng để ước tính giá trị hiện tại.
1957
+ attach-vehicle: Rơ-moóc sẽ được nối với xe đã chọn. Mỗi rơ-moóc chỉ có thể nối với một xe tại một thời điểm.
1958
+ select-trailer: Chỉ liệt kê các rơ-moóc chưa kết nối.
1959
+ select-equipment: Chỉ liệt kê trang bị chưa được gắn.
1960
+ position: Vị trí kéo phía sau xe. Vị trí 1 ngay sau đầu kéo; dùng 2 trở lên cho đoàn xe.
1961
+ units:
1962
+ length-metric: m
1963
+ length-imperial: ft
1964
+ weight-metric: kg
1965
+ weight-imperial: lb
1966
+ volume-metric: m³
1967
+ volume-imperial: ft³
1968
+ temperature-metric: °C
1969
+ temperature-imperial: °F
1970
+ actions:
1971
+ new: Rơ-moóc mới
1972
+ locate: Xem trên bản đồ
1973
+ attach-vehicle: Nối với xe
1974
+ detach-vehicle: Tách khỏi xe
1975
+ attach-device: Gắn thiết bị
1976
+ attach-equipment: Gắn trang bị
1977
+ detach-equipment: Tháo trang bị
1978
+ schedule-maintenance: Lên lịch bảo trì
1979
+ create-work-order: Tạo lệnh công việc
1980
+ log-maintenance: Ghi nhận bảo trì
1981
+ prompts:
1982
+ attach-vehicle-title: "Nối {trailerName} với xe"
1983
+ select-vehicle-warning: Chọn xe để nối rơ-moóc này.
1984
+ attach-vehicle-success: "Đã nối {trailerName} với {vehicleName}."
1985
+ detach-vehicle-title: "Tách {trailerName}?"
1986
+ detach-vehicle-body: "Thao tác này kết thúc kết nối kéo hiện tại giữa {trailerName} và {vehicleName}. Kết nối được lưu trong lịch sử của rơ-moóc."
1987
+ detach-vehicle-success: "Đã tách {trailerName} khỏi {vehicleName}."
1988
+ not-attached-warning: "{trailerName} chưa được nối với xe nào."
1989
+ attach-device-title: "Gắn thiết bị vào {trailerName}"
1990
+ select-device-warning: Chọn thiết bị để gắn vào rơ-moóc này.
1991
+ attach-device-success: "Đã gắn thiết bị vào {trailerName}."
1992
+ attach-equipment-title: "Gắn trang bị vào {resourceName}"
1993
+ select-equipment-warning: Chọn trang bị để gắn.
1994
+ attach-equipment-success: "Đã gắn {equipmentName} vào {resourceName}."
1995
+ detach-equipment-title: "Tháo {equipmentName}?"
1996
+ detach-equipment-body: "{equipmentName} sẽ không còn được gắn vào {resourceName}."
1997
+ detach-equipment-success: "Đã tháo {equipmentName} khỏi {resourceName}."
1998
+ no-location-warning: "{trailerName} chưa có vị trí được ghi nhận."
1999
+ photo-upload-error: "Không thể tải ảnh lên: {message}"
2000
+ empty:
2001
+ title: Thêm rơ-moóc đầu tiên của bạn
2002
+ description: Rơ-moóc theo dõi kết nối kéo, thiết bị và trang bị đã gắn, viễn thông thời gian thực và bảo trì cho tài sản được kéo của bạn.
2003
+ filtered-title: Không có rơ-moóc nào khớp với bộ lọc
2004
+ filtered-description: Điều chỉnh tìm kiếm hoặc bộ lọc để tìm rơ-moóc khác.
2005
+ connections: Chưa có lịch sử kéo
2006
+ connections-description: Nối rơ-moóc này với xe để bắt đầu ghi nhận kết nối kéo.
2007
+ equipment: Chưa gắn trang bị
2008
+ equipment-description: Gắn trang bị như bửng nâng, dây chằng hoặc máy lạnh vào rơ-moóc này.
2009
+ schedules: Chưa có lịch bảo trì
2010
+ schedules-description: Tạo lịch để lên kế hoạch kiểm tra hoặc bảo dưỡng định kỳ cho rơ-moóc này.
2011
+ work-orders: Chưa có lệnh công việc
2012
+ work-orders-description: Tạo lệnh công việc để theo dõi sửa chữa hoặc bảo dưỡng rơ-moóc này.
2013
+ maintenance: Chưa có lịch sử bảo trì
2014
+ maintenance-description: Các lần bảo trì đã ghi nhận cho rơ-moóc này sẽ hiển thị tại đây.
2015
+ docs:
2016
+ title: Hướng dẫn về rơ-moóc
2017
+ link: Mở hướng dẫn về rơ-moóc
2018
+ tabs:
2019
+ overview: Tổng quan
2020
+ positions: Vị trí
2021
+ devices: Thiết bị
2022
+ equipment: Trang bị
2023
+ connections: Lịch sử kéo
2024
+ schedules: Lịch bảo trì
2025
+ work-orders: Lệnh công việc
2026
+ maintenance: Bảo trì
2027
+ columns:
2028
+ name: Tên
2029
+ id: ID
2030
+ code: Mã
2031
+ type: Loại
2032
+ plate-number: Biển số
2033
+ status: Trạng thái
2034
+ vehicle: Xe kéo
2035
+ attachment-state: Kết nối
2036
+ connectivity: Kết nối mạng
2037
+ last-online: Trực tuyến lần cuối
2038
+ location: Vị trí
2039
+ devices: Thiết bị
2040
+ equipment: Trang bị
2041
+ vin: Số VIN
2042
+ serial-number: Số sê-ri
2043
+ make: Hãng
2044
+ model: Mẫu
2045
+ year: Năm
2046
+ vendor: Nhà cung cấp
2047
+ ownership: Sở hữu
2048
+ axles: Số trục
2049
+ gvwr: Tổng trọng lượng cho phép
2050
+ payload-capacity: Tải trọng hàng
2051
+ length: Chiều dài
2052
+ refrigerated: Có làm lạnh
2053
+ created-at: Ngày tạo
2054
+ updated-at: Ngày cập nhật
2055
+ filters:
2056
+ created-between: Tạo trong khoảng
2057
+ updated-between: Cập nhật trong khoảng
2058
+ last-online-between: Trực tuyến lần cuối trong khoảng
2059
+ connections:
2060
+ description: Tất cả các xe mà rơ-moóc này từng được nối, mới nhất trước.
2061
+ ongoing: Đang diễn ra
2062
+ connected: "Đã kết nối {date}"
2063
+ disconnected: "Đã ngắt kết nối {date}"
2064
+ still-attached: Vẫn đang gắn
2065
+ equipment:
2066
+ description: Trang bị hiện đang gắn vào rơ-moóc này.
2067
+ telemetry:
2068
+ no-location: Chưa ghi nhận vị trí
2069
+ maintenance:
2070
+ interval: Chu kỳ
2071
+ next-due: Đến hạn tiếp theo
2072
+ code: Mã
2073
+ subject: Chủ đề
2074
+ priority: Ưu tiên
2075
+ due: Đến hạn
2076
+ summary: Tóm tắt
2077
+ odometer: Đồng hồ quãng đường
2078
+ total-cost: Tổng chi phí
2079
+ date: Ngày
2080
+ statuses:
2081
+ available: Sẵn sàng
2082
+ in_use: Đang sử dụng
2083
+ maintenance: Đang bảo trì
2084
+ out_of_service: Ngừng hoạt động
2085
+ retired: Đã thanh lý
2086
+ status-descriptions:
2087
+ available: Sẵn sàng để điều phối hoặc nối với xe.
2088
+ in_use: Đang thực hiện công việc hoặc đang nối với xe.
2089
+ maintenance: Đang bảo dưỡng, kiểm tra hoặc sửa chữa.
2090
+ out_of_service: Không sử dụng được cho đến khi có thông báo mới.
2091
+ retired: Đã loại bỏ vĩnh viễn khỏi hoạt động.
2092
+ attachment:
2093
+ attached: Đã nối
2094
+ detached: Chưa nối
2095
+ no-vehicle: Chưa nối với xe nào
2096
+ towed-by: Được kéo bởi
2097
+ position: "Vị trí {position}"
2098
+ connectivity:
2099
+ online: Trực tuyến
2100
+ recently_offline: Vừa ngoại tuyến
2101
+ offline: Ngoại tuyến
2102
+ never_connected: Chưa từng kết nối
2103
+ measurement:
2104
+ metric: Hệ mét
2105
+ imperial: Hệ Anh
2106
+ measurement-descriptions:
2107
+ metric: Mét, kilôgam, mét khối và độ C.
2108
+ imperial: Feet, pound, feet khối và độ F.
2109
+ odometer-units:
2110
+ km: Kilômét
2111
+ mi: Dặm
2112
+ coupling-types:
2113
+ fifth_wheel: Mâm xoay
2114
+ pintle_hook: Móc pintle
2115
+ ball_hitch: Móc bi
2116
+ gooseneck: Cổ ngỗng
2117
+ drawbar: Thanh kéo
2118
+ other: Khác
2119
+ brake-types:
2120
+ air: Phanh khí nén
2121
+ electric: Phanh điện
2122
+ hydraulic_surge: Phanh thủy lực quán tính
2123
+ none: Không có phanh
2124
+ other: Khác
2125
+ ownership-types:
2126
+ owned: Sở hữu
2127
+ leased: Thuê dài hạn
2128
+ financed: Trả góp
2129
+ rented: Thuê
2130
+ types:
2131
+ dry_van: Thùng kín
2132
+ reefer: Thùng lạnh
2133
+ flatbed: Sàn phẳng
2134
+ step_deck: Sàn bậc
2135
+ lowboy: Sàn thấp
2136
+ tanker: Bồn
2137
+ bulk: Hàng rời
2138
+ dump: Ben
2139
+ chassis: Khung chở container
2140
+ curtain_side: Thùng bạt
2141
+ car_carrier: Chở ô tô
2142
+ livestock: Chở gia súc
2143
+ logging: Chở gỗ
2144
+ dolly: Dolly
2145
+ specialty: Chuyên dụng
2146
+ other: Khác