@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.
- package/.php-cs-fixer.php +2 -0
- package/addon/components/activity-event-selector.hbs +35 -0
- package/addon/components/activity-event-selector.js +85 -0
- package/addon/components/activity-form-panel.hbs +23 -0
- package/addon/components/activity-form-panel.js +90 -0
- package/addon/components/activity-logic-builder.hbs +80 -0
- package/addon/components/activity-logic-builder.js +260 -0
- package/addon/components/contact-form-panel.hbs +1 -1
- package/addon/components/contact-panel.hbs +1 -1
- package/addon/components/custom-entity-form-panel.hbs +43 -0
- package/addon/components/custom-entity-form-panel.js +129 -0
- package/addon/components/custom-field-form-panel/options-input.hbs +12 -0
- package/addon/components/custom-field-form-panel/options-input.js +139 -0
- package/addon/components/custom-field-form-panel.hbs +77 -0
- package/addon/components/custom-field-form-panel.js +144 -0
- package/addon/components/custom-field.hbs +63 -41
- package/addon/components/custom-field.js +123 -25
- package/addon/components/driver-form-panel.hbs +1 -1
- package/addon/components/driver-panel.hbs +1 -1
- package/addon/components/edit-order-route-panel.hbs +1 -1
- package/addon/components/fleet-form-panel.hbs +1 -1
- package/addon/components/fleet-panel.hbs +1 -1
- package/addon/components/fuel-report-form-panel.hbs +1 -1
- package/addon/components/fuel-report-panel.hbs +1 -1
- package/addon/components/issue-form-panel.hbs +1 -1
- package/addon/components/issue-panel.hbs +1 -1
- package/addon/components/joint-graph.hbs +1 -0
- package/addon/components/joint-graph.js +103 -0
- package/addon/components/layout/fleet-ops-sidebar.hbs +3 -3
- package/addon/components/layout/fleet-ops-sidebar.js +1 -0
- package/addon/components/live-map.js +71 -28
- package/addon/components/modals/new-custom-field-group.hbs +5 -0
- package/addon/components/modals/new-order-config.hbs +3 -3
- package/addon/components/modals/order-new-activity.hbs +1 -1
- package/addon/components/order-config-manager/activity-flow.hbs +11 -0
- package/addon/components/order-config-manager/activity-flow.js +964 -0
- package/addon/components/order-config-manager/custom-fields.hbs +50 -0
- package/addon/components/order-config-manager/custom-fields.js +276 -0
- package/addon/components/order-config-manager/details.hbs +23 -0
- package/addon/components/order-config-manager/details.js +106 -0
- package/addon/components/order-config-manager/entities.hbs +54 -0
- package/addon/components/order-config-manager/entities.js +227 -0
- package/addon/components/order-config-manager-overlay.hbs +26 -0
- package/addon/components/order-config-manager-overlay.js +60 -0
- package/addon/components/order-config-manager.hbs +15 -0
- package/addon/components/order-config-manager.js +298 -0
- package/addon/components/order-flow.hbs +1 -0
- package/addon/components/order-flow.js +3 -0
- package/addon/components/place-form-panel.hbs +1 -1
- package/addon/components/place-panel.hbs +1 -1
- package/addon/components/vehicle-form-panel.hbs +1 -1
- package/addon/components/vehicle-panel.hbs +1 -1
- package/addon/components/vendor-form-panel.hbs +1 -1
- package/addon/components/vendor-panel.hbs +1 -1
- package/addon/controllers/application.js +5 -1
- package/addon/controllers/operations/order-config.js +43 -0
- package/addon/controllers/operations/orders/index/new.js +125 -21
- package/addon/controllers/operations/orders/index/view.js +87 -4
- package/addon/controllers/operations/orders/index.js +2 -2
- package/addon/engine.js +10 -1
- package/addon/initializers/load-jointjs.js +16 -0
- package/addon/routes/application.js +1 -1
- package/addon/routes/operations/order-config.js +28 -0
- package/addon/routes/operations/orders/index/new.js +2 -3
- package/addon/routes/operations/orders/index/view.js +1 -1
- package/addon/routes.js +1 -0
- package/addon/services/context-panel.js +65 -3
- package/addon/styles/fleetops-engine.css +268 -0
- package/addon/templates/application.hbs +1 -1
- package/addon/templates/operations/order-config.hbs +55 -0
- package/addon/templates/operations/orders/index/new.hbs +98 -339
- package/addon/templates/operations/orders/index/view.hbs +36 -96
- package/addon/templates/operations/orders/index.hbs +0 -1
- package/addon/utils/apply-context-component-arguments.js +4 -2
- package/addon/utils/create-custom-entity.js +22 -0
- package/addon/utils/create-flow-activity.js +31 -0
- package/addon/utils/get-custom-field-type-map.js +34 -0
- package/app/components/activity-event-selector.js +1 -0
- package/app/components/activity-form-panel.js +1 -0
- package/app/components/activity-logic-builder.js +1 -0
- package/app/components/custom-entity-form-panel.js +1 -0
- package/app/components/custom-field-form-panel/options-input.js +1 -0
- package/app/components/custom-field-form-panel.js +1 -0
- package/app/components/joint-graph.js +1 -0
- package/app/components/modals/new-custom-field-group.js +1 -0
- package/app/components/order-config-manager/activity-flow.js +1 -0
- package/app/components/order-config-manager/custom-fields.js +1 -0
- package/app/components/order-config-manager/details.js +1 -0
- package/app/components/order-config-manager/entities.js +1 -0
- package/app/components/order-config-manager-overlay.js +1 -0
- package/app/components/order-config-manager.js +1 -0
- package/app/components/order-flow.js +1 -0
- package/app/controllers/operations/order-config.js +1 -0
- package/app/routes/operations/order-config.js +1 -0
- package/app/templates/operations/order-config.js +1 -0
- package/app/utils/create-custom-entity.js +1 -0
- package/app/utils/create-flow-activity.js +1 -0
- package/app/utils/get-custom-field-type-map.js +1 -0
- package/composer.json +4 -3
- package/config/environment.js +1 -0
- package/extension.json +1 -1
- package/index.js +20 -0
- package/package.json +7 -5
- package/server/config/api.php +3 -650
- package/server/migrations/2023_04_27_053456_create_contacts_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_drivers_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_entities_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_fleet_drivers_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_fleets_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_fuel_reports_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_integrated_vendors_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_issues_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_orders_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_payloads_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_places_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_positions_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_proofs_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_purchase_rates_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_routes_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_service_areas_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_service_quote_items_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_service_quotes_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_service_rate_fees_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_service_rate_parcel_fees_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_service_rates_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_tracking_numbers_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_tracking_statuses_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_vehicles_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_vendors_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_waypoints_table.php +1 -2
- package/server/migrations/2023_04_27_053456_create_zones_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_companies_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_contacts_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_drivers_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_entities_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fleet_drivers_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fleets_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_fuel_reports_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_integrated_vendors_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_issues_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_orders_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_payloads_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_places_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_positions_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_proofs_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_purchase_rates_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_routes_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_areas_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_quote_items_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_quotes_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rate_fees_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rate_parcel_fees_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_service_rates_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_tracking_numbers_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_tracking_statuses_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_vehicles_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_vendors_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_waypoints_table.php +1 -2
- package/server/migrations/2023_04_27_053459_add_foreign_keys_to_zones_table.php +1 -2
- package/server/migrations/2023_09_14_074512_update_vehicles_table.php +1 -2
- package/server/migrations/2023_09_14_074619_create_vehicle_devices_table.php +35 -36
- package/server/migrations/2023_09_26_071205_add_online_column_to_vehicles_table.php +1 -2
- package/server/migrations/2023_09_26_083957_create_fleet_vehicles_table.php +1 -2
- package/server/migrations/2023_09_27_023757_add_column_to_fleets_table.php +1 -2
- package/server/migrations/2023_10_05_074811_update_vehicle.php +1 -2
- package/server/migrations/2023_10_25_093014_create_vehicle_device_events_table.php +1 -2
- package/server/migrations/2023_11_03_072503_refactor_issues_table_columns.php +1 -2
- package/server/migrations/2023_11_06_040645_refactor_fuel_reports_table.php +1 -2
- package/server/migrations/2023_11_09_041807_add_status_column_to_fuel_reports_table.php +1 -2
- package/server/migrations/2023_11_15_062814_add_comments_column_and_resolved_at_column_to_vehicle_device_events_table.php +1 -2
- package/server/migrations/2023_11_17_053001_add_category_uuid_to_entities_table.php +1 -2
- package/server/migrations/2023_11_28_074244_add_supplier_uuid_column_to_entities_table.php +1 -2
- package/server/migrations/2023_12_14_100209_add_meta_column_on_driver_table copy.php +1 -2
- package/server/migrations/2024_02_18_100209_add_avatar_url_columns_table.php +3 -4
- package/server/migrations/2024_02_27_093648_create_order_configs_table.php +43 -0
- package/server/migrations/2024_03_07_075508_add_order_config_uuid_column_to_orders_table.php +28 -0
- package/server/migrations/2024_03_12_033527_add_public_id_column_to_order_configs_table.php +34 -0
- package/server/seeders/OrderConfigSeeder.php +23 -0
- package/server/src/Casts/OrderConfigEntities.php +53 -0
- package/server/src/Console/Commands/FixLegacyOrderConfigs.php +66 -0
- package/server/src/Events/DriverLocationChanged.php +1 -1
- package/server/src/Events/DriverSimulatedLocationChanged.php +1 -1
- package/server/src/Flow/Activity.php +232 -6
- package/server/src/Flow/Condition.php +84 -0
- package/server/src/Flow/Event.php +88 -0
- package/server/src/Flow/Flow.php +50 -0
- package/server/src/Flow/FlowResource.php +143 -0
- package/server/src/Flow/Logic.php +57 -1
- package/server/src/Http/Controllers/Api/v1/DriverController.php +2 -2
- package/server/src/Http/Controllers/Api/v1/IssueController.php +132 -0
- package/server/src/Http/Controllers/Api/v1/OrderController.php +152 -57
- package/server/src/Http/Controllers/Api/v1/OrganizationController.php +27 -0
- package/server/src/Http/Controllers/Api/v1/PlaceController.php +2 -3
- package/server/src/Http/Controllers/Controller.php +9 -0
- package/server/src/Http/Controllers/FleetOpsController.php +7 -0
- package/server/src/Http/Controllers/Internal/v1/OrderConfigController.php +40 -233
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +58 -28
- package/server/src/Http/Controllers/Internal/v1/SettingController.php +20 -0
- package/server/src/Http/Filter/OrderConfigFilter.php +13 -0
- package/server/src/Http/Requests/CreateIssueRequest.php +19 -0
- package/server/src/Http/Requests/Internal/CreateOrderConfigRequest.php +40 -0
- package/server/src/Http/Requests/Internal/CreateOrderRequest.php +66 -0
- package/server/src/Http/Requests/Internal/DeleteOrderConfigRequest.php +0 -0
- package/server/src/Http/Requests/UpdateIssueRequest.php +7 -0
- package/server/src/Http/Resources/v1/Order.php +3 -0
- package/server/src/Listeners/HandleOrderCanceled.php +8 -4
- package/server/src/Listeners/HandleOrderDispatched.php +14 -12
- package/server/src/Models/Order.php +527 -31
- package/server/src/Models/OrderConfig.php +467 -0
- package/server/src/Models/Payload.php +6 -7
- package/server/src/Notifications/OrderAssigned.php +1 -1
- package/server/src/Notifications/OrderCanceled.php +1 -1
- package/server/src/Notifications/OrderDispatchFailed.php +1 -1
- package/server/src/Notifications/OrderDispatched.php +1 -1
- package/server/src/Notifications/OrderPing.php +1 -1
- package/server/src/Observers/CompanyObserver.php +20 -0
- package/server/src/Providers/FleetOpsServiceProvider.php +4 -1
- package/server/src/Providers/NotificationServiceProvider.php +2 -1
- package/server/src/Support/FleetOps.php +137 -0
- package/server/src/Support/Utils.php +17 -0
- package/server/src/Traits/HasTrackingNumber.php +9 -9
- package/server/src/routes.php +19 -11
- package/translations/en-us.yaml +137 -0
- package/server/src/Flow/Config.php +0 -7
- 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(
|
|
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(
|
|
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
|
|
package/server/src/routes.php
CHANGED
|
@@ -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) {
|
package/translations/en-us.yaml
CHANGED
|
@@ -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.
|