@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
|
@@ -4,41 +4,40 @@ use Illuminate\Database\Migrations\Migration;
|
|
|
4
4
|
use Illuminate\Database\Schema\Blueprint;
|
|
5
5
|
use Illuminate\Support\Facades\Schema;
|
|
6
6
|
|
|
7
|
-
return new class extends Migration
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
}
|
|
7
|
+
return new class() extends Migration {
|
|
8
|
+
public function up()
|
|
9
|
+
{
|
|
10
|
+
Schema::create('vehicle_devices', function (Blueprint $table) {
|
|
11
|
+
$table->increments('id');
|
|
12
|
+
$table->uuid('uuid')->nullable();
|
|
13
|
+
$table->uuid('vehicle_uuid');
|
|
14
|
+
$table->foreign('vehicle_uuid')->references('uuid')->on('vehicles');
|
|
15
|
+
$table->string('device_id')->nullable();
|
|
16
|
+
$table->string('device_provider')->nullable();
|
|
17
|
+
$table->string('device_type')->nullable();
|
|
18
|
+
$table->string('device_name')->nullable();
|
|
19
|
+
$table->string('device_location')->nullable();
|
|
20
|
+
$table->string('device_model')->nullable();
|
|
21
|
+
$table->string('manufacturer')->nullable();
|
|
22
|
+
$table->string('serial_number')->nullable();
|
|
23
|
+
$table->date('installation_date')->nullable();
|
|
24
|
+
$table->date('last_maintenance_date')->nullable();
|
|
25
|
+
$table->json('meta')->nullable();
|
|
26
|
+
$table->json('data')->nullable();
|
|
27
|
+
$table->boolean('online')->default(0);
|
|
28
|
+
$table->string('status')->nullable();
|
|
29
|
+
$table->string('data_frequency')->nullable();
|
|
30
|
+
$table->text('notes')->nullable();
|
|
31
|
+
$table->softDeletes();
|
|
32
|
+
$table->timestamps();
|
|
33
|
+
});
|
|
34
|
+
}
|
|
36
35
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
36
|
+
public function down()
|
|
37
|
+
{
|
|
38
|
+
Schema::table('vehicle_devices', function (Blueprint $table) {
|
|
39
|
+
$table->dropForeign('vehicle_devices_vehicle_uuid_foreign');
|
|
40
|
+
});
|
|
41
|
+
Schema::dropIfExists('vehicle_devices');
|
|
42
|
+
}
|
|
44
43
|
};
|
|
@@ -4,8 +4,7 @@ use Illuminate\Database\Migrations\Migration;
|
|
|
4
4
|
use Illuminate\Database\Schema\Blueprint;
|
|
5
5
|
use Illuminate\Support\Facades\Schema;
|
|
6
6
|
|
|
7
|
-
return new class extends Migration
|
|
8
|
-
{
|
|
7
|
+
return new class() extends Migration {
|
|
9
8
|
public function up()
|
|
10
9
|
{
|
|
11
10
|
Schema::create('fleet_vehicles', function (Blueprint $table) {
|
|
@@ -4,8 +4,7 @@ use Illuminate\Database\Migrations\Migration;
|
|
|
4
4
|
use Illuminate\Database\Schema\Blueprint;
|
|
5
5
|
use Illuminate\Support\Facades\Schema;
|
|
6
6
|
|
|
7
|
-
return new class extends Migration
|
|
8
|
-
{
|
|
7
|
+
return new class() extends Migration {
|
|
9
8
|
/**
|
|
10
9
|
* Run the migrations.
|
|
11
10
|
*
|
|
@@ -36,8 +35,8 @@ return new class extends Migration
|
|
|
36
35
|
*/
|
|
37
36
|
public function down()
|
|
38
37
|
{
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
// Reverse: Increase size of vehicles avatar url column for signed urls
|
|
39
|
+
Schema::table('vehicles', function (Blueprint $table) {
|
|
41
40
|
$table->string('avatar_url', 300)->change();
|
|
42
41
|
});
|
|
43
42
|
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
use Illuminate\Database\Migrations\Migration;
|
|
4
|
+
use Illuminate\Database\Schema\Blueprint;
|
|
5
|
+
use Illuminate\Support\Facades\Schema;
|
|
6
|
+
|
|
7
|
+
return new class() extends Migration {
|
|
8
|
+
/**
|
|
9
|
+
* Run the migrations.
|
|
10
|
+
*/
|
|
11
|
+
public function up(): void
|
|
12
|
+
{
|
|
13
|
+
Schema::create('order_configs', function (Blueprint $table) {
|
|
14
|
+
$table->increments('id');
|
|
15
|
+
$table->uuid('uuid')->nullable()->index();
|
|
16
|
+
$table->foreignUuid('company_uuid')->nullable()->references('uuid')->on('companies')->onUpdate('CASCADE')->onDelete('CASCADE');
|
|
17
|
+
$table->foreignUuid('author_uuid')->nullable()->references('uuid')->on('users')->onUpdate('CASCADE')->onDelete('CASCADE');
|
|
18
|
+
$table->foreignUuid('category_uuid')->nullable()->references('uuid')->on('categories')->onUpdate('CASCADE')->onDelete('CASCADE');
|
|
19
|
+
$table->foreignUuid('icon_uuid')->nullable()->references('uuid')->on('files')->onUpdate('CASCADE')->onDelete('CASCADE');
|
|
20
|
+
$table->string('name')->nullable();
|
|
21
|
+
$table->string('namespace')->nullable();
|
|
22
|
+
$table->mediumText('description')->nullable();
|
|
23
|
+
$table->string('key')->nullable();
|
|
24
|
+
$table->string('status')->nullable();
|
|
25
|
+
$table->string('version')->nullable();
|
|
26
|
+
$table->boolean('core_service')->default(0);
|
|
27
|
+
$table->json('flow')->nullable();
|
|
28
|
+
$table->json('entities')->nullable();
|
|
29
|
+
$table->json('tags')->nullable();
|
|
30
|
+
$table->json('meta')->nullable();
|
|
31
|
+
$table->timestamps();
|
|
32
|
+
$table->softDeletes();
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Reverse the migrations.
|
|
38
|
+
*/
|
|
39
|
+
public function down(): void
|
|
40
|
+
{
|
|
41
|
+
Schema::dropIfExists('order_configs');
|
|
42
|
+
}
|
|
43
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
use Illuminate\Database\Migrations\Migration;
|
|
4
|
+
use Illuminate\Database\Schema\Blueprint;
|
|
5
|
+
use Illuminate\Support\Facades\Schema;
|
|
6
|
+
|
|
7
|
+
return new class() extends Migration {
|
|
8
|
+
/**
|
|
9
|
+
* Run the migrations.
|
|
10
|
+
*/
|
|
11
|
+
public function up(): void
|
|
12
|
+
{
|
|
13
|
+
Schema::table('orders', function (Blueprint $table) {
|
|
14
|
+
$table->foreignUuid('order_config_uuid')->nullable()->after('updated_by_uuid')->references('uuid')->on('order_configs')->onUpdate('CASCADE')->onDelete('CASCADE');
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Reverse the migrations.
|
|
20
|
+
*/
|
|
21
|
+
public function down(): void
|
|
22
|
+
{
|
|
23
|
+
Schema::table('orders', function (Blueprint $table) {
|
|
24
|
+
$table->dropForeign(['order_config_uuid']);
|
|
25
|
+
$table->dropColumn(['order_config_uuid']);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
use Fleetbase\FleetOps\Models\OrderConfig;
|
|
4
|
+
use Illuminate\Database\Migrations\Migration;
|
|
5
|
+
use Illuminate\Database\Schema\Blueprint;
|
|
6
|
+
use Illuminate\Support\Facades\Schema;
|
|
7
|
+
|
|
8
|
+
return new class() extends Migration {
|
|
9
|
+
/**
|
|
10
|
+
* Run the migrations.
|
|
11
|
+
*/
|
|
12
|
+
public function up(): void
|
|
13
|
+
{
|
|
14
|
+
Schema::table('order_configs', function (Blueprint $table) {
|
|
15
|
+
$table->string('public_id')->nullable()->after('uuid')->index();
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
// Update order configs with a public id
|
|
19
|
+
$orderCofigs = OrderConfig::all();
|
|
20
|
+
foreach ($orderCofigs as $orderCofig) {
|
|
21
|
+
$orderCofig->update(['public_id' => OrderConfig::generatePublicId('order_config')]);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Reverse the migrations.
|
|
27
|
+
*/
|
|
28
|
+
public function down(): void
|
|
29
|
+
{
|
|
30
|
+
Schema::table('order_configs', function (Blueprint $table) {
|
|
31
|
+
$table->dropColumn('public_id');
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\FleetOps\Seeders;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\FleetOps\Support\FleetOps;
|
|
6
|
+
use Fleetbase\Models\Company;
|
|
7
|
+
use Illuminate\Database\Seeder;
|
|
8
|
+
|
|
9
|
+
class OrderConfigSeeder extends Seeder
|
|
10
|
+
{
|
|
11
|
+
/**
|
|
12
|
+
* Run the database seeds.
|
|
13
|
+
*
|
|
14
|
+
* @return void
|
|
15
|
+
*/
|
|
16
|
+
public function run()
|
|
17
|
+
{
|
|
18
|
+
$companies = Company::all();
|
|
19
|
+
foreach ($companies as $company) {
|
|
20
|
+
FleetOps::createTransportConfig($company);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\FleetOps\Casts;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\Casts\Json;
|
|
6
|
+
use Fleetbase\Models\File;
|
|
7
|
+
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
|
|
8
|
+
|
|
9
|
+
class OrderConfigEntities implements CastsAttributes
|
|
10
|
+
{
|
|
11
|
+
/**
|
|
12
|
+
* Cast the given value.
|
|
13
|
+
*
|
|
14
|
+
* @param \Illuminate\Database\Eloquent\Model $model
|
|
15
|
+
* @param string $key
|
|
16
|
+
* @param array $attributes
|
|
17
|
+
*
|
|
18
|
+
* @return array
|
|
19
|
+
*/
|
|
20
|
+
public function get($model, $key, $value, $attributes)
|
|
21
|
+
{
|
|
22
|
+
$entities = Json::decode($value);
|
|
23
|
+
if (is_array($entities)) {
|
|
24
|
+
$entities = array_map(function ($entity) {
|
|
25
|
+
if (isset($entity['photo_uuid'])) {
|
|
26
|
+
$file = File::where('uuid', $entity['photo_uuid'])->first();
|
|
27
|
+
if ($file) {
|
|
28
|
+
$entity['photo_url'] = $file->url;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return $entity;
|
|
33
|
+
}, $entities);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return $entities;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Prepare the given value for storage.
|
|
41
|
+
*
|
|
42
|
+
* @param \Illuminate\Database\Eloquent\Model $model
|
|
43
|
+
* @param string $key
|
|
44
|
+
* @param array $value
|
|
45
|
+
* @param array $attributes
|
|
46
|
+
*
|
|
47
|
+
* @return string
|
|
48
|
+
*/
|
|
49
|
+
public function set($model, $key, $value, $attributes)
|
|
50
|
+
{
|
|
51
|
+
return json_encode($value);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\FleetOps\Console\Commands;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\FleetOps\Models\Order;
|
|
6
|
+
use Fleetbase\FleetOps\Models\OrderConfig;
|
|
7
|
+
use Fleetbase\Support\Utils;
|
|
8
|
+
use Illuminate\Console\Command;
|
|
9
|
+
use Illuminate\Support\Facades\Artisan;
|
|
10
|
+
|
|
11
|
+
class FixLegacyOrderConfigs extends Command
|
|
12
|
+
{
|
|
13
|
+
/**
|
|
14
|
+
* The name and signature of the console command.
|
|
15
|
+
*
|
|
16
|
+
* @var string
|
|
17
|
+
*/
|
|
18
|
+
protected $signature = 'fleetops:fix-legacy-order-configs';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The console command description.
|
|
22
|
+
*
|
|
23
|
+
* @var string
|
|
24
|
+
*/
|
|
25
|
+
protected $description = 'This is a command which migrates legacy orders to the new order config system.';
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Execute the console command.
|
|
29
|
+
*
|
|
30
|
+
* This method is responsible for the main logic of the command.
|
|
31
|
+
* It fetches dispatchable orders, notifies about the current time and number of orders,
|
|
32
|
+
* and then dispatches each order if there are nearby drivers.
|
|
33
|
+
*
|
|
34
|
+
* @return int
|
|
35
|
+
*/
|
|
36
|
+
public function handle()
|
|
37
|
+
{
|
|
38
|
+
if (Utils::classExists('\\Fleetbase\\FleetOps\\Seeders\\OrderConfigSeeder')) {
|
|
39
|
+
$this->info('Starting the database seeding...');
|
|
40
|
+
|
|
41
|
+
Artisan::call('db:seed', [
|
|
42
|
+
'--class' => '\\Fleetbase\\FleetOps\\Seeders\\OrderConfigSeeder',
|
|
43
|
+
]);
|
|
44
|
+
|
|
45
|
+
$this->info('Database seeding completed.');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
$orders = Order::whereNull('order_config_uuid')->get();
|
|
49
|
+
$totalOrders = $orders->count();
|
|
50
|
+
$this->info($totalOrders . ' orders found for updating.');
|
|
51
|
+
$progressBar = $this->output->createProgressBar($totalOrders);
|
|
52
|
+
$progressBar->start();
|
|
53
|
+
foreach ($orders as $order) {
|
|
54
|
+
$orderConfig = OrderConfig::where(['company_uuid' => $order->company_uuid, 'namespace' => 'system:order-config:transport'])->first();
|
|
55
|
+
if ($orderConfig) {
|
|
56
|
+
$order->update(['order_config_uuid' => $orderConfig->uuid]);
|
|
57
|
+
}
|
|
58
|
+
// Advance the progress bar by one step
|
|
59
|
+
$progressBar->advance();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
$progressBar->finish();
|
|
63
|
+
$this->line('');
|
|
64
|
+
$this->info('All orders have been processed.');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -133,7 +133,7 @@ class DriverSimulatedLocationChanged implements ShouldBroadcast
|
|
|
133
133
|
/**
|
|
134
134
|
* Get the channels the event should broadcast on.
|
|
135
135
|
*
|
|
136
|
-
* @return
|
|
136
|
+
* @return Channel|array
|
|
137
137
|
*/
|
|
138
138
|
public function broadcastOn()
|
|
139
139
|
{
|