@fleetbase/fleetops-engine 0.4.15 → 0.4.17
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 +97 -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 +285 -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 +42 -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/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/seeders/OrderConfigSeeder.php +151 -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/Expansions/UserExpansion.php +4 -4
- 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 +130 -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 +5 -259
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +56 -35
- 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/UpdateIssueRequest.php +7 -0
- package/server/src/Http/Resources/v1/Order.php +3 -0
- package/server/src/Http/Resources/v1/Payload.php +1 -1
- 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 +419 -0
- package/server/src/Models/Payload.php +8 -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/Providers/FleetOpsServiceProvider.php +3 -1
- package/server/src/Providers/NotificationServiceProvider.php +2 -1
- 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,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,151 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\FleetOps\Seeders;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\FleetOps\Models\OrderConfig;
|
|
6
|
+
use Fleetbase\Models\Company;
|
|
7
|
+
use Illuminate\Database\Seeder;
|
|
8
|
+
use Illuminate\Support\Str;
|
|
9
|
+
|
|
10
|
+
class OrderConfigSeeder extends Seeder
|
|
11
|
+
{
|
|
12
|
+
/**
|
|
13
|
+
* Run the database seeds.
|
|
14
|
+
*
|
|
15
|
+
* @return void
|
|
16
|
+
*/
|
|
17
|
+
public function run()
|
|
18
|
+
{
|
|
19
|
+
$companies = Company::all();
|
|
20
|
+
foreach ($companies as $company) {
|
|
21
|
+
static::createTransportConfig($company);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Creates or retrieves an existing transport configuration for a given company.
|
|
27
|
+
*
|
|
28
|
+
* This method attempts to find a transport configuration (`OrderConfig`) for the specified company.
|
|
29
|
+
* If such a configuration exists, it's returned. Otherwise, a new configuration is created with default values,
|
|
30
|
+
* such as the company UUID, key, core service flag, status, version, tags, and predefined workflow steps.
|
|
31
|
+
* These steps include 'created', 'enroute', 'started', 'completed', and 'dispatched', each with specific attributes.
|
|
32
|
+
*
|
|
33
|
+
* @param Company $company the company for which the transport configuration is being created or retrieved
|
|
34
|
+
*
|
|
35
|
+
* @return OrderConfig the transport configuration associated with the specified company
|
|
36
|
+
*/
|
|
37
|
+
public static function createTransportConfig(Company $company): OrderConfig
|
|
38
|
+
{
|
|
39
|
+
return OrderConfig::firstOrCreate(
|
|
40
|
+
[
|
|
41
|
+
'company_uuid' => $company->uuid,
|
|
42
|
+
'key' => 'transport',
|
|
43
|
+
'namespace' => 'system:order-config:transport',
|
|
44
|
+
],
|
|
45
|
+
[
|
|
46
|
+
'name' => 'Transport',
|
|
47
|
+
'key' => 'transport',
|
|
48
|
+
'namespace' => 'system:order-config:transport',
|
|
49
|
+
'description' => 'Default order configuration for transport',
|
|
50
|
+
'core_service' => 1,
|
|
51
|
+
'status' => 'private',
|
|
52
|
+
'version' => '0.0.1',
|
|
53
|
+
'tags' => ['transport', 'delivery'],
|
|
54
|
+
'entities' => [],
|
|
55
|
+
'meta' => [],
|
|
56
|
+
'flow' => [
|
|
57
|
+
'created' => [
|
|
58
|
+
'key' => 'created',
|
|
59
|
+
'code' => 'created',
|
|
60
|
+
'color' => '#1f2937',
|
|
61
|
+
'logic' => [],
|
|
62
|
+
'events' => [],
|
|
63
|
+
'status' => 'Order Created',
|
|
64
|
+
'actions' => [],
|
|
65
|
+
'details' => 'New order was created.',
|
|
66
|
+
'options' => [],
|
|
67
|
+
'complete' => false,
|
|
68
|
+
'entities' => [],
|
|
69
|
+
'sequence' => 0,
|
|
70
|
+
'activities' => ['dispatched'],
|
|
71
|
+
'internalId' => Str::uuid(),
|
|
72
|
+
'pod_method' => 'scan',
|
|
73
|
+
'require_pod' => false,
|
|
74
|
+
],
|
|
75
|
+
'enroute' => [
|
|
76
|
+
'key' => 'enroute',
|
|
77
|
+
'code' => 'enroute',
|
|
78
|
+
'color' => '#1f2937',
|
|
79
|
+
'logic' => [],
|
|
80
|
+
'events' => [],
|
|
81
|
+
'status' => 'Driver Enroute',
|
|
82
|
+
'actions' => [],
|
|
83
|
+
'details' => 'Driver is en-route.',
|
|
84
|
+
'options' => [],
|
|
85
|
+
'complete' => false,
|
|
86
|
+
'entities' => [],
|
|
87
|
+
'sequence' => 0,
|
|
88
|
+
'activities' => ['completed'],
|
|
89
|
+
'internalId' => Str::uuid(),
|
|
90
|
+
'pod_method' => 'scan',
|
|
91
|
+
'require_pod' => false,
|
|
92
|
+
],
|
|
93
|
+
'started' => [
|
|
94
|
+
'key' => 'started',
|
|
95
|
+
'code' => 'started',
|
|
96
|
+
'color' => '#1f2937',
|
|
97
|
+
'logic' => [],
|
|
98
|
+
'events' => [],
|
|
99
|
+
'status' => 'Order Started',
|
|
100
|
+
'actions' => [],
|
|
101
|
+
'details' => 'Order has been started',
|
|
102
|
+
'options' => [],
|
|
103
|
+
'complete' => false,
|
|
104
|
+
'entities' => [],
|
|
105
|
+
'sequence' => 0,
|
|
106
|
+
'activities' => ['enroute'],
|
|
107
|
+
'internalId' => Str::uuid(),
|
|
108
|
+
'pod_method' => 'scan',
|
|
109
|
+
'require_pod' => false,
|
|
110
|
+
],
|
|
111
|
+
'completed' => [
|
|
112
|
+
'key' => 'completed',
|
|
113
|
+
'code' => 'completed',
|
|
114
|
+
'color' => '#1f2937',
|
|
115
|
+
'logic' => [],
|
|
116
|
+
'events' => [],
|
|
117
|
+
'status' => 'Order Completed',
|
|
118
|
+
'actions' => [],
|
|
119
|
+
'details' => 'Order has been completed.',
|
|
120
|
+
'options' => [],
|
|
121
|
+
'complete' => true,
|
|
122
|
+
'entities' => [],
|
|
123
|
+
'sequence' => 0,
|
|
124
|
+
'activities' => [],
|
|
125
|
+
'internalId' => Str::uuid(),
|
|
126
|
+
'pod_method' => 'scan',
|
|
127
|
+
'require_pod' => false,
|
|
128
|
+
],
|
|
129
|
+
'dispatched' => [
|
|
130
|
+
'key' => 'dispatched',
|
|
131
|
+
'code' => 'dispatched',
|
|
132
|
+
'color' => '#1f2937',
|
|
133
|
+
'logic' => [],
|
|
134
|
+
'events' => [],
|
|
135
|
+
'status' => 'Order Dispatched',
|
|
136
|
+
'actions' => [],
|
|
137
|
+
'details' => 'Order has been dispatched.',
|
|
138
|
+
'options' => [],
|
|
139
|
+
'complete' => false,
|
|
140
|
+
'entities' => [],
|
|
141
|
+
'sequence' => 0,
|
|
142
|
+
'activities' => ['started'],
|
|
143
|
+
'internalId' => Str::uuid(),
|
|
144
|
+
'pod_method' => 'scan',
|
|
145
|
+
'require_pod' => false,
|
|
146
|
+
],
|
|
147
|
+
],
|
|
148
|
+
]
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
@@ -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
|
{
|
|
@@ -21,7 +21,7 @@ class UserExpansion implements Expansion
|
|
|
21
21
|
/**
|
|
22
22
|
* @return \Illuminate\Database\Eloquent\Relations\HasOne
|
|
23
23
|
*/
|
|
24
|
-
public function driver()
|
|
24
|
+
public static function driver()
|
|
25
25
|
{
|
|
26
26
|
return function () {
|
|
27
27
|
/* @var \Illuminate\Database\Eloquent\Model $this */
|
|
@@ -32,7 +32,7 @@ class UserExpansion implements Expansion
|
|
|
32
32
|
/**
|
|
33
33
|
* @return \Illuminate\Database\Eloquent\Relations\HasOne
|
|
34
34
|
*/
|
|
35
|
-
public function currentDriverSession()
|
|
35
|
+
public static function currentDriverSession()
|
|
36
36
|
{
|
|
37
37
|
return function () {
|
|
38
38
|
/* @var \Illuminate\Database\Eloquent\Model $this */
|
|
@@ -43,7 +43,7 @@ class UserExpansion implements Expansion
|
|
|
43
43
|
/**
|
|
44
44
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
|
45
45
|
*/
|
|
46
|
-
public function driverProfiles()
|
|
46
|
+
public static function driverProfiles()
|
|
47
47
|
{
|
|
48
48
|
return function () {
|
|
49
49
|
/* @var \Illuminate\Database\Eloquent\Model $this */
|
|
@@ -54,7 +54,7 @@ class UserExpansion implements Expansion
|
|
|
54
54
|
/**
|
|
55
55
|
* @return \Illuminate\Database\Eloquent\Relations\HasOne
|
|
56
56
|
*/
|
|
57
|
-
public function customer()
|
|
57
|
+
public static function customer()
|
|
58
58
|
{
|
|
59
59
|
return function () {
|
|
60
60
|
/* @var \Illuminate\Database\Eloquent\Model $this */
|