@fleetbase/fleetops-engine 0.4.16 → 0.4.18

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 (225) hide show
  1. package/.php-cs-fixer.php +2 -0
  2. package/addon/components/activity-event-selector.hbs +35 -0
  3. package/addon/components/activity-event-selector.js +85 -0
  4. package/addon/components/activity-form-panel.hbs +23 -0
  5. package/addon/components/activity-form-panel.js +90 -0
  6. package/addon/components/activity-logic-builder.hbs +80 -0
  7. package/addon/components/activity-logic-builder.js +260 -0
  8. package/addon/components/contact-form-panel.hbs +1 -1
  9. package/addon/components/contact-panel.hbs +1 -1
  10. package/addon/components/custom-entity-form-panel.hbs +43 -0
  11. package/addon/components/custom-entity-form-panel.js +129 -0
  12. package/addon/components/custom-field-form-panel/options-input.hbs +12 -0
  13. package/addon/components/custom-field-form-panel/options-input.js +139 -0
  14. package/addon/components/custom-field-form-panel.hbs +77 -0
  15. package/addon/components/custom-field-form-panel.js +144 -0
  16. package/addon/components/custom-field.hbs +63 -41
  17. package/addon/components/custom-field.js +123 -25
  18. package/addon/components/driver-form-panel.hbs +1 -1
  19. package/addon/components/driver-panel.hbs +1 -1
  20. package/addon/components/edit-order-route-panel.hbs +1 -1
  21. package/addon/components/fleet-form-panel.hbs +1 -1
  22. package/addon/components/fleet-panel.hbs +1 -1
  23. package/addon/components/fuel-report-form-panel.hbs +1 -1
  24. package/addon/components/fuel-report-panel.hbs +1 -1
  25. package/addon/components/issue-form-panel.hbs +1 -1
  26. package/addon/components/issue-panel.hbs +1 -1
  27. package/addon/components/joint-graph.hbs +1 -0
  28. package/addon/components/joint-graph.js +103 -0
  29. package/addon/components/layout/fleet-ops-sidebar.hbs +3 -3
  30. package/addon/components/layout/fleet-ops-sidebar.js +1 -0
  31. package/addon/components/live-map.js +71 -28
  32. package/addon/components/modals/new-custom-field-group.hbs +5 -0
  33. package/addon/components/modals/new-order-config.hbs +3 -3
  34. package/addon/components/modals/order-new-activity.hbs +1 -1
  35. package/addon/components/order-config-manager/activity-flow.hbs +11 -0
  36. package/addon/components/order-config-manager/activity-flow.js +964 -0
  37. package/addon/components/order-config-manager/custom-fields.hbs +50 -0
  38. package/addon/components/order-config-manager/custom-fields.js +276 -0
  39. package/addon/components/order-config-manager/details.hbs +23 -0
  40. package/addon/components/order-config-manager/details.js +106 -0
  41. package/addon/components/order-config-manager/entities.hbs +54 -0
  42. package/addon/components/order-config-manager/entities.js +227 -0
  43. package/addon/components/order-config-manager-overlay.hbs +26 -0
  44. package/addon/components/order-config-manager-overlay.js +60 -0
  45. package/addon/components/order-config-manager.hbs +15 -0
  46. package/addon/components/order-config-manager.js +298 -0
  47. package/addon/components/order-flow.hbs +1 -0
  48. package/addon/components/order-flow.js +3 -0
  49. package/addon/components/place-form-panel.hbs +1 -1
  50. package/addon/components/place-panel.hbs +1 -1
  51. package/addon/components/vehicle-form-panel.hbs +1 -1
  52. package/addon/components/vehicle-panel.hbs +1 -1
  53. package/addon/components/vendor-form-panel.hbs +1 -1
  54. package/addon/components/vendor-panel.hbs +1 -1
  55. package/addon/controllers/application.js +5 -1
  56. package/addon/controllers/operations/order-config.js +43 -0
  57. package/addon/controllers/operations/orders/index/new.js +125 -21
  58. package/addon/controllers/operations/orders/index/view.js +87 -4
  59. package/addon/controllers/operations/orders/index.js +2 -2
  60. package/addon/engine.js +10 -1
  61. package/addon/initializers/load-jointjs.js +16 -0
  62. package/addon/routes/application.js +1 -1
  63. package/addon/routes/operations/order-config.js +28 -0
  64. package/addon/routes/operations/orders/index/new.js +2 -3
  65. package/addon/routes/operations/orders/index/view.js +1 -1
  66. package/addon/routes.js +1 -0
  67. package/addon/services/context-panel.js +65 -3
  68. package/addon/styles/fleetops-engine.css +268 -0
  69. package/addon/templates/application.hbs +1 -1
  70. package/addon/templates/operations/order-config.hbs +55 -0
  71. package/addon/templates/operations/orders/index/new.hbs +98 -339
  72. package/addon/templates/operations/orders/index/view.hbs +36 -96
  73. package/addon/templates/operations/orders/index.hbs +0 -1
  74. package/addon/utils/apply-context-component-arguments.js +4 -2
  75. package/addon/utils/create-custom-entity.js +22 -0
  76. package/addon/utils/create-flow-activity.js +31 -0
  77. package/addon/utils/get-custom-field-type-map.js +34 -0
  78. package/app/components/activity-event-selector.js +1 -0
  79. package/app/components/activity-form-panel.js +1 -0
  80. package/app/components/activity-logic-builder.js +1 -0
  81. package/app/components/custom-entity-form-panel.js +1 -0
  82. package/app/components/custom-field-form-panel/options-input.js +1 -0
  83. package/app/components/custom-field-form-panel.js +1 -0
  84. package/app/components/joint-graph.js +1 -0
  85. package/app/components/modals/new-custom-field-group.js +1 -0
  86. package/app/components/order-config-manager/activity-flow.js +1 -0
  87. package/app/components/order-config-manager/custom-fields.js +1 -0
  88. package/app/components/order-config-manager/details.js +1 -0
  89. package/app/components/order-config-manager/entities.js +1 -0
  90. package/app/components/order-config-manager-overlay.js +1 -0
  91. package/app/components/order-config-manager.js +1 -0
  92. package/app/components/order-flow.js +1 -0
  93. package/app/controllers/operations/order-config.js +1 -0
  94. package/app/routes/operations/order-config.js +1 -0
  95. package/app/templates/operations/order-config.js +1 -0
  96. package/app/utils/create-custom-entity.js +1 -0
  97. package/app/utils/create-flow-activity.js +1 -0
  98. package/app/utils/get-custom-field-type-map.js +1 -0
  99. package/composer.json +4 -3
  100. package/config/environment.js +1 -0
  101. package/extension.json +1 -1
  102. package/index.js +20 -0
  103. package/package.json +7 -5
  104. package/server/config/api.php +3 -650
  105. package/server/migrations/2023_04_27_053456_create_contacts_table.php +1 -2
  106. package/server/migrations/2023_04_27_053456_create_drivers_table.php +1 -2
  107. package/server/migrations/2023_04_27_053456_create_entities_table.php +1 -2
  108. package/server/migrations/2023_04_27_053456_create_fleet_drivers_table.php +1 -2
  109. package/server/migrations/2023_04_27_053456_create_fleets_table.php +1 -2
  110. package/server/migrations/2023_04_27_053456_create_fuel_reports_table.php +1 -2
  111. package/server/migrations/2023_04_27_053456_create_integrated_vendors_table.php +1 -2
  112. package/server/migrations/2023_04_27_053456_create_issues_table.php +1 -2
  113. package/server/migrations/2023_04_27_053456_create_orders_table.php +1 -2
  114. package/server/migrations/2023_04_27_053456_create_payloads_table.php +1 -2
  115. package/server/migrations/2023_04_27_053456_create_places_table.php +1 -2
  116. package/server/migrations/2023_04_27_053456_create_positions_table.php +1 -2
  117. package/server/migrations/2023_04_27_053456_create_proofs_table.php +1 -2
  118. package/server/migrations/2023_04_27_053456_create_purchase_rates_table.php +1 -2
  119. package/server/migrations/2023_04_27_053456_create_routes_table.php +1 -2
  120. package/server/migrations/2023_04_27_053456_create_service_areas_table.php +1 -2
  121. package/server/migrations/2023_04_27_053456_create_service_quote_items_table.php +1 -2
  122. package/server/migrations/2023_04_27_053456_create_service_quotes_table.php +1 -2
  123. package/server/migrations/2023_04_27_053456_create_service_rate_fees_table.php +1 -2
  124. package/server/migrations/2023_04_27_053456_create_service_rate_parcel_fees_table.php +1 -2
  125. package/server/migrations/2023_04_27_053456_create_service_rates_table.php +1 -2
  126. package/server/migrations/2023_04_27_053456_create_tracking_numbers_table.php +1 -2
  127. package/server/migrations/2023_04_27_053456_create_tracking_statuses_table.php +1 -2
  128. package/server/migrations/2023_04_27_053456_create_vehicles_table.php +1 -2
  129. package/server/migrations/2023_04_27_053456_create_vendors_table.php +1 -2
  130. package/server/migrations/2023_04_27_053456_create_waypoints_table.php +1 -2
  131. package/server/migrations/2023_04_27_053456_create_zones_table.php +1 -2
  132. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_companies_table.php +1 -2
  133. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_contacts_table.php +1 -2
  134. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_drivers_table.php +1 -2
  135. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_entities_table.php +1 -2
  136. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fleet_drivers_table.php +1 -2
  137. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fleets_table.php +1 -2
  138. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fuel_reports_table.php +1 -2
  139. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_integrated_vendors_table.php +1 -2
  140. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_issues_table.php +1 -2
  141. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_orders_table.php +1 -2
  142. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_payloads_table.php +1 -2
  143. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_places_table.php +1 -2
  144. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_positions_table.php +1 -2
  145. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_proofs_table.php +1 -2
  146. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_purchase_rates_table.php +1 -2
  147. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_routes_table.php +1 -2
  148. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_areas_table.php +1 -2
  149. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_quote_items_table.php +1 -2
  150. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_quotes_table.php +1 -2
  151. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rate_fees_table.php +1 -2
  152. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rate_parcel_fees_table.php +1 -2
  153. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rates_table.php +1 -2
  154. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_tracking_numbers_table.php +1 -2
  155. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_tracking_statuses_table.php +1 -2
  156. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_vehicles_table.php +1 -2
  157. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_vendors_table.php +1 -2
  158. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_waypoints_table.php +1 -2
  159. package/server/migrations/2023_04_27_053459_add_foreign_keys_to_zones_table.php +1 -2
  160. package/server/migrations/2023_09_14_074512_update_vehicles_table.php +1 -2
  161. package/server/migrations/2023_09_14_074619_create_vehicle_devices_table.php +35 -36
  162. package/server/migrations/2023_09_26_071205_add_online_column_to_vehicles_table.php +1 -2
  163. package/server/migrations/2023_09_26_083957_create_fleet_vehicles_table.php +1 -2
  164. package/server/migrations/2023_09_27_023757_add_column_to_fleets_table.php +1 -2
  165. package/server/migrations/2023_10_05_074811_update_vehicle.php +1 -2
  166. package/server/migrations/2023_10_25_093014_create_vehicle_device_events_table.php +1 -2
  167. package/server/migrations/2023_11_03_072503_refactor_issues_table_columns.php +1 -2
  168. package/server/migrations/2023_11_06_040645_refactor_fuel_reports_table.php +1 -2
  169. package/server/migrations/2023_11_09_041807_add_status_column_to_fuel_reports_table.php +1 -2
  170. package/server/migrations/2023_11_15_062814_add_comments_column_and_resolved_at_column_to_vehicle_device_events_table.php +1 -2
  171. package/server/migrations/2023_11_17_053001_add_category_uuid_to_entities_table.php +1 -2
  172. package/server/migrations/2023_11_28_074244_add_supplier_uuid_column_to_entities_table.php +1 -2
  173. package/server/migrations/2023_12_14_100209_add_meta_column_on_driver_table copy.php +1 -2
  174. package/server/migrations/2024_02_18_100209_add_avatar_url_columns_table.php +3 -4
  175. package/server/migrations/2024_02_27_093648_create_order_configs_table.php +43 -0
  176. package/server/migrations/2024_03_07_075508_add_order_config_uuid_column_to_orders_table.php +28 -0
  177. package/server/migrations/2024_03_12_033527_add_public_id_column_to_order_configs_table.php +34 -0
  178. package/server/seeders/OrderConfigSeeder.php +23 -0
  179. package/server/src/Casts/OrderConfigEntities.php +53 -0
  180. package/server/src/Console/Commands/FixLegacyOrderConfigs.php +66 -0
  181. package/server/src/Events/DriverLocationChanged.php +1 -1
  182. package/server/src/Events/DriverSimulatedLocationChanged.php +1 -1
  183. package/server/src/Flow/Activity.php +232 -6
  184. package/server/src/Flow/Condition.php +84 -0
  185. package/server/src/Flow/Event.php +88 -0
  186. package/server/src/Flow/Flow.php +50 -0
  187. package/server/src/Flow/FlowResource.php +143 -0
  188. package/server/src/Flow/Logic.php +57 -1
  189. package/server/src/Http/Controllers/Api/v1/DriverController.php +2 -2
  190. package/server/src/Http/Controllers/Api/v1/IssueController.php +132 -0
  191. package/server/src/Http/Controllers/Api/v1/OrderController.php +152 -57
  192. package/server/src/Http/Controllers/Api/v1/OrganizationController.php +27 -0
  193. package/server/src/Http/Controllers/Api/v1/PlaceController.php +2 -3
  194. package/server/src/Http/Controllers/Controller.php +9 -0
  195. package/server/src/Http/Controllers/FleetOpsController.php +7 -0
  196. package/server/src/Http/Controllers/Internal/v1/OrderConfigController.php +40 -233
  197. package/server/src/Http/Controllers/Internal/v1/OrderController.php +58 -28
  198. package/server/src/Http/Controllers/Internal/v1/SettingController.php +20 -0
  199. package/server/src/Http/Filter/OrderConfigFilter.php +13 -0
  200. package/server/src/Http/Requests/CreateIssueRequest.php +19 -0
  201. package/server/src/Http/Requests/Internal/CreateOrderConfigRequest.php +40 -0
  202. package/server/src/Http/Requests/Internal/CreateOrderRequest.php +66 -0
  203. package/server/src/Http/Requests/Internal/DeleteOrderConfigRequest.php +0 -0
  204. package/server/src/Http/Requests/UpdateIssueRequest.php +7 -0
  205. package/server/src/Http/Resources/v1/Order.php +3 -0
  206. package/server/src/Listeners/HandleOrderCanceled.php +8 -4
  207. package/server/src/Listeners/HandleOrderDispatched.php +14 -12
  208. package/server/src/Models/Order.php +527 -31
  209. package/server/src/Models/OrderConfig.php +467 -0
  210. package/server/src/Models/Payload.php +6 -7
  211. package/server/src/Notifications/OrderAssigned.php +1 -1
  212. package/server/src/Notifications/OrderCanceled.php +1 -1
  213. package/server/src/Notifications/OrderDispatchFailed.php +1 -1
  214. package/server/src/Notifications/OrderDispatched.php +1 -1
  215. package/server/src/Notifications/OrderPing.php +1 -1
  216. package/server/src/Observers/CompanyObserver.php +20 -0
  217. package/server/src/Providers/FleetOpsServiceProvider.php +4 -1
  218. package/server/src/Providers/NotificationServiceProvider.php +2 -1
  219. package/server/src/Support/FleetOps.php +137 -0
  220. package/server/src/Support/Utils.php +17 -0
  221. package/server/src/Traits/HasTrackingNumber.php +9 -9
  222. package/server/src/routes.php +19 -11
  223. package/translations/en-us.yaml +137 -0
  224. package/server/src/Flow/Config.php +0 -7
  225. package/server/src/Support/Flow.php +0 -653
@@ -0,0 +1,137 @@
1
+ <?php
2
+
3
+ namespace Fleetbase\FleetOps\Support;
4
+
5
+ use Fleetbase\FleetOps\Models\OrderConfig;
6
+ use Fleetbase\Models\Company;
7
+ use Illuminate\Support\Str;
8
+
9
+ class FleetOps
10
+ {
11
+ /**
12
+ * Creates or retrieves an existing transport configuration for a given company.
13
+ *
14
+ * This method attempts to find a transport configuration (`OrderConfig`) for the specified company.
15
+ * If such a configuration exists, it's returned. Otherwise, a new configuration is created with default values,
16
+ * such as the company UUID, key, core service flag, status, version, tags, and predefined workflow steps.
17
+ * These steps include 'created', 'enroute', 'started', 'completed', and 'dispatched', each with specific attributes.
18
+ *
19
+ * @param Company $company the company for which the transport configuration is being created or retrieved
20
+ *
21
+ * @return OrderConfig the transport configuration associated with the specified company
22
+ */
23
+ public static function createTransportConfig(Company $company): OrderConfig
24
+ {
25
+ return OrderConfig::firstOrCreate(
26
+ [
27
+ 'company_uuid' => $company->uuid,
28
+ 'key' => 'transport',
29
+ 'namespace' => 'system:order-config:transport',
30
+ ],
31
+ [
32
+ 'name' => 'Transport',
33
+ 'key' => 'transport',
34
+ 'namespace' => 'system:order-config:transport',
35
+ 'description' => 'Default order configuration for transport',
36
+ 'core_service' => 1,
37
+ 'status' => 'private',
38
+ 'version' => '0.0.1',
39
+ 'tags' => ['transport', 'delivery'],
40
+ 'entities' => [],
41
+ 'meta' => [],
42
+ 'flow' => [
43
+ 'created' => [
44
+ 'key' => 'created',
45
+ 'code' => 'created',
46
+ 'color' => '#1f2937',
47
+ 'logic' => [],
48
+ 'events' => [],
49
+ 'status' => 'Order Created',
50
+ 'actions' => [],
51
+ 'details' => 'New order was created.',
52
+ 'options' => [],
53
+ 'complete' => false,
54
+ 'entities' => [],
55
+ 'sequence' => 0,
56
+ 'activities' => ['dispatched'],
57
+ 'internalId' => Str::uuid(),
58
+ 'pod_method' => 'scan',
59
+ 'require_pod' => false,
60
+ ],
61
+ 'enroute' => [
62
+ 'key' => 'enroute',
63
+ 'code' => 'enroute',
64
+ 'color' => '#1f2937',
65
+ 'logic' => [],
66
+ 'events' => [],
67
+ 'status' => 'Driver Enroute',
68
+ 'actions' => [],
69
+ 'details' => 'Driver is en-route.',
70
+ 'options' => [],
71
+ 'complete' => false,
72
+ 'entities' => [],
73
+ 'sequence' => 0,
74
+ 'activities' => ['completed'],
75
+ 'internalId' => Str::uuid(),
76
+ 'pod_method' => 'scan',
77
+ 'require_pod' => false,
78
+ ],
79
+ 'started' => [
80
+ 'key' => 'started',
81
+ 'code' => 'started',
82
+ 'color' => '#1f2937',
83
+ 'logic' => [],
84
+ 'events' => [],
85
+ 'status' => 'Order Started',
86
+ 'actions' => [],
87
+ 'details' => 'Order has been started',
88
+ 'options' => [],
89
+ 'complete' => false,
90
+ 'entities' => [],
91
+ 'sequence' => 0,
92
+ 'activities' => ['enroute'],
93
+ 'internalId' => Str::uuid(),
94
+ 'pod_method' => 'scan',
95
+ 'require_pod' => false,
96
+ ],
97
+ 'completed' => [
98
+ 'key' => 'completed',
99
+ 'code' => 'completed',
100
+ 'color' => '#1f2937',
101
+ 'logic' => [],
102
+ 'events' => [],
103
+ 'status' => 'Order Completed',
104
+ 'actions' => [],
105
+ 'details' => 'Order has been completed.',
106
+ 'options' => [],
107
+ 'complete' => true,
108
+ 'entities' => [],
109
+ 'sequence' => 0,
110
+ 'activities' => [],
111
+ 'internalId' => Str::uuid(),
112
+ 'pod_method' => 'scan',
113
+ 'require_pod' => false,
114
+ ],
115
+ 'dispatched' => [
116
+ 'key' => 'dispatched',
117
+ 'code' => 'dispatched',
118
+ 'color' => '#1f2937',
119
+ 'logic' => [],
120
+ 'events' => [],
121
+ 'status' => 'Order Dispatched',
122
+ 'actions' => [],
123
+ 'details' => 'Order has been dispatched.',
124
+ 'options' => [],
125
+ 'complete' => false,
126
+ 'entities' => [],
127
+ 'sequence' => 0,
128
+ 'activities' => ['started'],
129
+ 'internalId' => Str::uuid(),
130
+ 'pod_method' => 'scan',
131
+ 'require_pod' => false,
132
+ ],
133
+ ],
134
+ ]
135
+ );
136
+ }
137
+ }
@@ -2,6 +2,7 @@
2
2
 
3
3
  namespace Fleetbase\FleetOps\Support;
4
4
 
5
+ use Fleetbase\FleetOps\Flow\Activity;
5
6
  use Fleetbase\Support\Utils as FleetbaseUtils;
6
7
  use Illuminate\Support\Arr;
7
8
  use Illuminate\Support\Facades\DB;
@@ -1276,4 +1277,20 @@ class Utils extends FleetbaseUtils
1276
1277
 
1277
1278
  return $theta_deg;
1278
1279
  }
1280
+
1281
+ /**
1282
+ * Determines if a given object is an instance of Activity.
1283
+ *
1284
+ * This static method is used to check if a provided object is an
1285
+ * instance of the Activity class. This can be useful in contexts where
1286
+ * there is a need to verify the type of a given resource or object.
1287
+ *
1288
+ * @param mixed $activity the object to check
1289
+ *
1290
+ * @return bool returns true if the provided object is an instance of Activity, false otherwise
1291
+ */
1292
+ public static function isActivity($activity)
1293
+ {
1294
+ return $activity && $activity instanceof Activity && !empty($activity->code);
1295
+ }
1279
1296
  }
@@ -2,6 +2,7 @@
2
2
 
3
3
  namespace Fleetbase\FleetOps\Traits;
4
4
 
5
+ use Fleetbase\FleetOps\Flow\Activity;
5
6
  use Fleetbase\FleetOps\Models\Proof;
6
7
  use Fleetbase\FleetOps\Models\TrackingNumber;
7
8
  use Fleetbase\FleetOps\Models\TrackingStatus;
@@ -47,16 +48,16 @@ trait HasTrackingNumber
47
48
  /**
48
49
  * Creates activity for this resource tracking number.
49
50
  *
50
- * @param string $status the short status update
51
- * @param string $details the detailed update
52
51
  * @param array|Point $location the location of the update, can be either [lat, lng] or a \Fleetbase\LaravelMysqlSpatial\Types\Point instance
53
- * @param string $code the onew word status code
54
52
  * @param \Fleetbase\Models\Proof|string|null $proof resolvable proof of delivery/activity
55
53
  *
56
54
  * @return \Fleetbase\Models\TrackingStatus
57
55
  */
58
- public function createActivity(string $status, string $details = '', $location = [], string $code = '', $proof = null): TrackingStatus
56
+ public function createActivity(Activity $activity, $location = [], $proof = null): TrackingStatus
59
57
  {
58
+ $status = $activity->get('status');
59
+ $details = $activity->get('details');
60
+ $code = $activity->get('code');
60
61
  $proof = static::resolveProof($proof);
61
62
  $activity = TrackingStatus::create([
62
63
  'company_uuid' => data_get($this, 'company_uuid', session('company')),
@@ -82,14 +83,14 @@ trait HasTrackingNumber
82
83
  /**
83
84
  * Inserts activity for this resource tracking number.
84
85
  *
85
- * @param string $status the short status update
86
- * @param string $details the detailed update
87
86
  * @param array|Point $location the location of the update, can be either [lat, lng] or a \Fleetbase\LaravelMysqlSpatial\Types\Point instance
88
87
  * @param \Fleetbase\Models\Proof|string|null $proof resolvable proof of delivery/activity
89
- * @param string $code the onew word status code
90
88
  */
91
- public function insertActivity(string $status, string $details = '', $location = [], string $code = '', $proof = null): string
89
+ public function insertActivity(Activity $activity, $location = [], $proof = null): string
92
90
  {
91
+ $status = $activity->get('status');
92
+ $details = $activity->get('details');
93
+ $code = $activity->get('code');
93
94
  $proof = static::resolveProof($proof);
94
95
  $activityId = TrackingStatus::insertGetUuid([
95
96
  'company_uuid' => data_get($this, 'company_uuid', session('company')),
@@ -158,7 +159,6 @@ trait HasTrackingNumber
158
159
  $this->status = $status;
159
160
 
160
161
  if ($andSave) {
161
- // static::where('uuid', $this->uuid)->update(['status' => $status]);
162
162
  $this->save();
163
163
  }
164
164
 
@@ -13,6 +13,8 @@ use Illuminate\Support\Facades\Route;
13
13
  |
14
14
  */
15
15
 
16
+ Route::get('fleet-ops-test', 'Fleetbase\FleetOps\Http\Controllers\Controller@test');
17
+
16
18
  Route::prefix(config('fleetops.api.routing.prefix', null))->namespace('Fleetbase\FleetOps\Http\Controllers')->group(
17
19
  function ($router) {
18
20
  /*
@@ -60,6 +62,9 @@ Route::prefix(config('fleetops.api.routing.prefix', null))->namespace('Fleetbase
60
62
  $router->put('{id}', 'VendorController@update');
61
63
  $router->delete('{id}', 'VendorController@delete');
62
64
  });
65
+ $router->fleetbaseRoutes(
66
+ 'issues'
67
+ );
63
68
  // orders routes
64
69
  $router->group(['prefix' => 'orders'], function () use ($router) {
65
70
  $router->post('/', 'OrderController@create');
@@ -76,6 +81,7 @@ Route::prefix(config('fleetops.api.routing.prefix', null))->namespace('Fleetbase
76
81
  $router->match(['post', 'patch'], '{id}/set-destination/{placeId}', 'OrderController@setDestination');
77
82
  $router->post('{id}/capture-signature/{subjectId?}', 'OrderController@captureSignature');
78
83
  $router->post('{id}/capture-qr/{subjectId?}', 'OrderController@captureQrScan');
84
+ $router->post('{id}/capture-photo/{subjectId?}', 'OrderController@capturePhoto');
79
85
  $router->put('{id}', 'OrderController@update');
80
86
  $router->delete('{id}', 'OrderController@delete');
81
87
  });
@@ -177,6 +183,17 @@ Route::prefix(config('fleetops.api.routing.prefix', null))->namespace('Fleetbase
177
183
  });
178
184
  });
179
185
 
186
+ /*
187
+ |--------------------------------------------------------------------------
188
+ | Publicly Consumable FleetOps API Routes
189
+ |--------------------------------------------------------------------------
190
+ |
191
+ | End-user API routes, these are routes that the SDK and applications will interface with, that DO NOT REQUIRE API credentials.
192
+ */
193
+ $router->group(['prefix' => 'v1', 'namespace' => 'Api\v1'], function () use ($router) {
194
+ $router->get('organizations', 'OrganizationController@listOrganizations');
195
+ });
196
+
180
197
  /*
181
198
  |--------------------------------------------------------------------------
182
199
  | Navigator App API
@@ -209,6 +226,7 @@ Route::prefix(config('fleetops.api.routing.prefix', null))->namespace('Fleetbase
209
226
  $router->post('{id}/set-destination/{placeId}', 'Api\v1\OrderController@setDestination');
210
227
  $router->post('{id}/capture-signature/{subjectId?}', 'Api\v1\OrderController@captureSignature');
211
228
  $router->post('{id}/capture-qr/{subjectId?}', 'Api\v1\OrderController@captureQrScan');
229
+ $router->post('{id}/capture-photo/{subjectId?}', 'Api\v1\OrderController@capturePhoto');
212
230
  $router->put('{id}', 'Api\v1\OrderController@update');
213
231
  $router->delete('{id}', 'Api\v1\OrderController@delete');
214
232
  });
@@ -320,6 +338,7 @@ Route::prefix(config('fleetops.api.routing.prefix', null))->namespace('Fleetbase
320
338
  $router->delete('bulk-delete', $controller('bulkDelete'));
321
339
  }
322
340
  );
341
+ $router->fleetbaseRoutes('order-configs');
323
342
  $router->fleetbaseRoutes('payloads');
324
343
  $router->fleetbaseRoutes(
325
344
  'places',
@@ -393,17 +412,6 @@ Route::prefix(config('fleetops.api.routing.prefix', null))->namespace('Fleetbase
393
412
  $router->group(
394
413
  ['prefix' => 'fleet-ops'],
395
414
  function ($router) {
396
- $router->group(
397
- ['prefix' => 'order-configs'],
398
- function () use ($router) {
399
- $router->get('get-installed', 'OrderConfigController@getInstalled');
400
- $router->get('dynamic-meta-fields', 'OrderConfigController@getDynamicMetaFields');
401
- $router->post('save', 'OrderConfigController@save');
402
- $router->post('new', 'OrderConfigController@new');
403
- $router->post('clone', 'OrderConfigController@clone');
404
- $router->delete('{id}', 'OrderConfigController@delete');
405
- }
406
- );
407
415
  $router->group(
408
416
  ['prefix' => 'lookup'],
409
417
  function ($router) {
@@ -93,8 +93,134 @@ fleet-ops:
93
93
  zone: Zone
94
94
  total: Total
95
95
  back: Back
96
+ done: Done
96
97
 
97
98
  component:
99
+ activity-logic-builder:
100
+ activity-logic: Activity Logic
101
+ activity-logic-help-text: Define custom logic conditions that determine when an activity becomes available in the workflow. This feature allows you to tailor the flow based on specific criteria, ensuring that each activity is triggered only when its predefined conditions are met.
102
+ activity-logic-add-logic-help-text: Create a new set of conditions that will define when an activity should be activated. Click this to start crafting a new logical rule.
103
+ activity-logic-select-logic-type-help-text: Choose the type of logic that this condition will follow. Select 'If' for a direct condition, 'And'/'Or' for compound conditions, or 'Not' to negate a condition.
104
+ activity-logic-add-condition-help-text: Add a specific requirement that must be satisfied within this logic set. Use this to specify additional criteria that control the activity's availability.
105
+ field: Field
106
+ value: Value
107
+ add-logic: Add Logic
108
+ activity-event-selector:
109
+ activity-events: Activity Events
110
+ activity-events-select-to-fire: Select which events will be activated when this activity occurs.
111
+ activity-events-select-events-info: Select the specific event you want to trigger in response to this activity.
112
+ select-event-to-add: Select event to add...
113
+ custom-field-form-panel:
114
+ meta-col-span: 'Meta: Column-Span'
115
+ col-span-size: Column Span Size
116
+ custom-field-title-concat: 'Custom Field: '
117
+ new-custom-field: New custom field
118
+ close-new-custom-field: Cancel custom field changes
119
+ save-custom-field: Save Changes
120
+ create-custom-field: Create New Field
121
+ field-name: Field Name
122
+ field-label: Field Label
123
+ field-type: Field Type
124
+ select-field-type: Select field type...
125
+ field-description: Field Description
126
+ field-help-text: Field Help Text
127
+ field-default-value: Field Default Value
128
+ field-is-required: Field is Required
129
+ field-is-editable: Field is Editable
130
+ field-options: Field Options
131
+ field-validation-rules: Field Validation Rules
132
+ field-model-type: Field Model Type
133
+ field-select-model-type: Select model type
134
+ add-new-option: Add new option
135
+ activity-form-panel:
136
+ title-concat: 'Activity: '
137
+ new-activity-title: Create new activity
138
+ key: Key
139
+ code: Code
140
+ status: Status
141
+ details: Details
142
+ completes-order: Completes Order
143
+ complete: Complete
144
+ key-help: "Enter a key used for programmatic decision-making. This key can represent one or several activities with the same identifier. Note: This key is not required to be unique."
145
+ code-help: Enter a unique identifier specific to this activity.
146
+ status-help: Specify the status displayed to the end-user when this activity is triggered.
147
+ details-help: Provide a detailed description of the activity for the end-user's understanding.
148
+ custom-entity-issue-form-panel:
149
+ new-custom-entity: New Custom Entity
150
+ name: Name
151
+ description: Description
152
+ details: Details
153
+ type: Type
154
+ length: Length
155
+ width: Width
156
+ height: Height
157
+ weight: Weight
158
+ entity-image: Entity Image
159
+ measurements: Measurements
160
+ order-config-manager:
161
+ title: Orders Configuration
162
+ message: Order configurations allow you to define dynamic configurations which will tell Fleetbase how different types of orders should be executed.
163
+ configuration: Configuration
164
+ new-order-config: New Order Config
165
+ select-order-config: Select Order Config
166
+ create-new-title: Create a new order configuration
167
+ create-warning-message: Order configuration requires a name
168
+ create-success-message: New order config created successfully.
169
+ no-order-config-selected: No order configuration selected.
170
+ saved-success-message: '{orderConfigName} configuration saved.'
171
+ cloned-success-message: Order config successfully cloned.
172
+ enter-clone-name: Enter name of cloned configuration
173
+ no-config-name-warning-message: No config name entered.
174
+ delete-warning-message: Once this order configuration is deleted you will not be able to create orders using it anymore. Are you sure?
175
+ uninstall-order-config: Uninstall Configuration
176
+ uninstall-order-config-success-message: Extension {extensionName} uninstalled.
177
+ select-order-config-to-start: Select or create an order config to start.
178
+ details:
179
+ details: Details
180
+ name: Name
181
+ description: Description
182
+ tags: Tags
183
+ add-tags: Add Tags
184
+ key: Key
185
+ version: Version
186
+ namespace: Namespace
187
+ controls: Controls
188
+ delete-config: Delete Config
189
+ delete:
190
+ delete-title: Delete this order config?
191
+ delete-body-message: Once this order config is deleted it will not be recoverable and you will lose all configurations.
192
+ confirm-delete: Delete
193
+ activity-flow:
194
+ save-activity-flow: Save Activity Flow
195
+ edit-activity-unique-code-warning: Activity code must be unique!
196
+ custom-fields:
197
+ new-field-group: New field group
198
+ new-custom-field: Create new custom field
199
+ grid-size: Grid Size
200
+ delete-custom-field-prompt:
201
+ modal-title: Delete this custom field?
202
+ delete-body-message: Once this custom field is deleted it will not be recoverable and you will lose all configurations.
203
+ confirm-delete: Delete
204
+ delete-custom-field-group-prompt:
205
+ modal-title: Delete this field group?
206
+ delete-body-message: Once this field group is deleted it will not be recoverable and you will lose all custom fields inside.
207
+ confirm-delete: Delete
208
+ entities:
209
+ new-custom-entity: New Custom Entity
210
+ name: Name
211
+ description: Description
212
+ type: Type
213
+ length: Length
214
+ width: Width
215
+ height: Height
216
+ weight: Weight
217
+ delete-custom-entity-title: Delete this custom entity?
218
+ delete-custom-entity-body: Once this custom entity is deleted it will not be recoverable and you will lose all configurations.
219
+ confirm-delete: Confirm
220
+ types:
221
+ no-order-installed: No order configurations installed!
222
+ you-have-no-configs: You currently have no order configs installed, check at the extensions to install an order configuration to get started.
223
+ view-extensions: View extensions
98
224
  avatar-picker:
99
225
  avatar: Avatar
100
226
  select-map-avatar: Select map avatar
@@ -146,6 +272,7 @@ fleet-ops:
146
272
  issues: Issues
147
273
  title: Create new order
148
274
  settings: Settings
275
+ order-config: Order Config
149
276
  live-map-drawer:
150
277
  driver-listing:
151
278
  location: Location
@@ -202,6 +329,9 @@ fleet-ops:
202
329
  visibility: Visibility Controls
203
330
  scope: Scope
204
331
  modals:
332
+ new-custom-field-group:
333
+ modal-title: Create a new custom field group
334
+ group-name: Group Name
205
335
  assign-driver:
206
336
  select-driver: Select Driver
207
337
  select-assign: Select Driver to Assign
@@ -1056,6 +1186,8 @@ fleet-ops:
1056
1186
  title: Vendors
1057
1187
  delete-vendors: Delete Vendors
1058
1188
  operations:
1189
+ order-config:
1190
+ route-loading-message: Loading Order Config Builder
1059
1191
  orders:
1060
1192
  index:
1061
1193
  payload: Payload
@@ -1143,6 +1275,7 @@ fleet-ops:
1143
1275
  add-item-order: Add Item to Order
1144
1276
  items-drop: Items drop at
1145
1277
  add-item-button: Add Item
1278
+ add-entity: Add Entity
1146
1279
  sku: SKU
1147
1280
  select-destination: Select Destination
1148
1281
  edit-item: Edit Item
@@ -1170,6 +1303,7 @@ fleet-ops:
1170
1303
  value-warning: Custom field must have a value
1171
1304
  edit-field-title: Edit custom field
1172
1305
  edit-metadata: Edit Metadata
1306
+ input-field-required: The {inputFieldName} is required.
1173
1307
  view:
1174
1308
  purchase-rate-panel-title: Purchase Rate
1175
1309
  documents-panel-title: Documents & Files
@@ -1236,6 +1370,9 @@ fleet-ops:
1236
1370
  order-title: Order Label
1237
1371
  waypoint-title: Waypoint Label
1238
1372
  proof-of-delivery: Proof of Delivery
1373
+ notes-placeholder: Enter order notes here....
1374
+ save-order-note: Save Order Note
1375
+ order-notes-updated: Order notes updated.
1239
1376
  config:
1240
1377
  title: Orders Configuration
1241
1378
  message: Order configurations allow you to define dynamic configurations which will tell Fleetbase how different types of orders should be executed.
@@ -1,7 +0,0 @@
1
- <?php
2
-
3
- namespace Fleetbase\FleetOps\Flow;
4
-
5
- class Config
6
- {
7
- }