@fleetbase/fleetops-engine 0.3.3 → 0.3.5
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/addon/components/contact-form-panel.hbs +28 -6
- package/addon/components/driver-form-panel.hbs +10 -0
- package/addon/components/driver-form-panel.js +51 -0
- package/addon/components/driver-panel/details.hbs +1 -5
- package/addon/components/driver-panel.hbs +21 -3
- package/addon/components/fleet-form-panel.hbs +60 -6
- package/addon/components/fleet-listing-panel.hbs +2 -2
- package/addon/components/fleet-panel/details.hbs +1 -1
- package/addon/components/fuel-report-form-panel.hbs +84 -8
- package/addon/components/fuel-report-form-panel.js +6 -0
- package/addon/components/fuel-report-panel/details.hbs +4 -0
- package/addon/components/issue-form-panel.hbs +99 -11
- package/addon/components/issue-form-panel.js +5 -13
- package/addon/components/layout/fleet-ops-sidebar/fleet-listing.hbs +1 -0
- package/addon/components/layout/fleet-ops-sidebar/fleet-listing.js +3 -0
- package/addon/components/layout/fleet-ops-sidebar.hbs +4 -4
- package/addon/components/layout/fleet-ops-sidebar.js +10 -0
- package/addon/components/live-map-drawer.hbs +1 -1
- package/addon/components/live-map.hbs +1 -1
- package/addon/components/modals/driver-assign-vehicle.hbs +2 -11
- package/addon/components/modals/driver-assign-vendor.hbs +1 -9
- package/addon/components/modals/fuel-report-details.hbs +4 -0
- package/addon/components/order/schedule-card.hbs +32 -4
- package/addon/components/order/schedule-card.js +155 -5
- package/addon/components/place-form-panel.hbs +14 -7
- package/addon/components/place-form-panel.js +71 -0
- package/addon/components/place-panel/details.hbs +9 -19
- package/addon/components/vehicle-form-panel.hbs +67 -7
- package/addon/components/vehicle-form-panel.js +37 -0
- package/addon/components/vehicle-panel/details.hbs +9 -5
- package/addon/components/vehicle-panel.hbs +18 -4
- package/addon/components/vendor-form-panel/create-form.hbs +72 -11
- package/addon/components/vendor-form-panel/edit-form.hbs +1 -1
- package/addon/components/vendor-form-panel.hbs +70 -30
- package/addon/components/vendor-form-panel.js +4 -40
- package/addon/components/vendor-panel/details.hbs +2 -2
- package/addon/components/vendor-panel.hbs +16 -2
- package/addon/controllers/management/contacts/index.js +49 -3
- package/addon/controllers/management/drivers/index.js +7 -0
- package/addon/controllers/management/fleets/index.js +19 -23
- package/addon/controllers/management/fuel-reports/index/new.js +1 -1
- package/addon/controllers/management/fuel-reports/index.js +80 -20
- package/addon/controllers/management/issues/index/new.js +2 -2
- package/addon/controllers/management/issues/index.js +72 -45
- package/addon/controllers/management/places/index.js +65 -18
- package/addon/controllers/management/vehicles/index.js +56 -4
- package/addon/controllers/management/vendors/index.js +70 -8
- package/addon/controllers/operations/orders/index.js +42 -1
- package/addon/controllers/operations/service-rates/index.js +7 -0
- package/addon/routes/management/contacts/index.js +8 -0
- package/addon/routes/management/fleets/index.js +8 -2
- package/addon/routes/management/fuel-reports/index.js +6 -0
- package/addon/routes/management/issues/index.js +9 -1
- package/addon/routes/management/places/index.js +11 -1
- package/addon/routes/management/vehicles/index.js +1 -1
- package/addon/routes/management/vendors/index.js +8 -0
- package/addon/routes/operations/scheduler/index.js +1 -1
- package/addon/templates/management/contacts/index.hbs +1 -0
- package/addon/templates/management/drivers/index.hbs +2 -1
- package/addon/templates/management/fleets/index.hbs +23 -3
- package/addon/templates/management/fuel-reports/index.hbs +1 -0
- package/addon/templates/management/issues/index.hbs +22 -2
- package/addon/templates/management/places/index.hbs +9 -1
- package/addon/templates/management/vehicles/index.hbs +22 -2
- package/addon/templates/management/vendors/index.hbs +22 -2
- package/addon/templates/operations/orders/index.hbs +1 -1
- package/addon/templates/operations/service-rates/index.hbs +11 -3
- package/addon/utils/get-issue-categories.js +30 -0
- package/addon/utils/get-issue-types.js +3 -0
- package/addon/utils/get-vendor-status-options.js +3 -0
- package/addon/utils/get-vendor-type-options.js +41 -0
- package/app/components/layout/fleet-ops-sidebar/fleet-listing.js +1 -0
- package/app/utils/get-issue-categories.js +1 -0
- package/app/utils/get-issue-types.js +1 -0
- package/app/utils/get-vendor-categories.js +1 -0
- package/app/utils/get-vendor-status-options.js +1 -0
- package/app/utils/get-vendor-type-options.js +1 -0
- package/app/utils/get-vendor-types.js +1 -0
- package/composer.json +1 -1
- package/extension.json +1 -1
- package/package.json +4 -4
- package/server/migrations/2023_04_27_053456_create_contacts_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_drivers_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_entities_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_fleet_drivers_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_fleets_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_fuel_reports_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_issues_table.php +4 -4
- package/server/migrations/2023_04_27_053456_create_orders_table.php +8 -8
- package/server/migrations/2023_04_27_053456_create_payloads_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_places_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_purchase_rates_table.php +4 -4
- package/server/migrations/2023_04_27_053456_create_service_areas_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_service_quote_items_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_service_quotes_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_service_rate_fees_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_service_rate_parcel_fees_table.php +1 -1
- package/server/migrations/2023_04_27_053456_create_service_rates_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_tracking_numbers_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_tracking_statuses_table.php +2 -2
- package/server/migrations/2023_04_27_053456_create_vehicles_table.php +3 -3
- package/server/migrations/2023_04_27_053456_create_vendors_table.php +5 -5
- package/server/migrations/2023_04_27_053456_create_waypoints_table.php +4 -4
- package/server/migrations/2023_04_27_053456_create_zones_table.php +2 -2
- package/server/migrations/2023_11_09_041807_add_status_column_to_fuel_reports_table.php +32 -0
- package/server/migrations/2023_11_15_062814_add_comments_column_and_resolved_at_column_to_vehicle_device_events_table.php +33 -0
- package/server/migrations/2023_11_17_053001_add_category_uuid_to_entities_table.php +33 -0
- package/server/src/Http/Controllers/Api/v1/DriverController.php +2 -2
- package/server/src/Http/Controllers/Api/v1/EntityController.php +2 -0
- package/server/src/Http/Controllers/Api/v1/VehicleController.php +2 -2
- package/server/src/Http/Controllers/Internal/v1/DriverController.php +5 -14
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +1 -3
- package/server/src/Http/Filter/ContactFilter.php +10 -0
- package/server/src/Http/Filter/FleetFilter.php +8 -6
- package/server/src/Http/Filter/FuelReportFilter.php +51 -0
- package/server/src/Http/Filter/IssueFilter.php +61 -5
- package/server/src/Http/Filter/PlaceFilter.php +48 -6
- package/server/src/Http/Filter/VehicleFilter.php +21 -6
- package/server/src/Http/Filter/VendorFilter.php +11 -8
- package/server/src/Http/Middleware/TransformLocationMiddleware.php +1 -1
- package/server/src/Http/Resources/Internal/v1/IntegratedVendorFacilitator.php +17 -18
- package/server/src/Http/Resources/v1/Contact.php +16 -19
- package/server/src/Http/Resources/v1/CurrentJob.php +13 -16
- package/server/src/Http/Resources/v1/Driver.php +59 -57
- package/server/src/Http/Resources/v1/Entity.php +30 -33
- package/server/src/Http/Resources/v1/Fleet.php +19 -17
- package/server/src/Http/Resources/v1/FuelReport.php +16 -14
- package/server/src/Http/Resources/v1/Order.php +1 -1
- package/server/src/Http/Resources/v1/Payload.php +21 -24
- package/server/src/Http/Resources/v1/Place.php +27 -30
- package/server/src/Http/Resources/v1/Proof.php +13 -16
- package/server/src/Http/Resources/v1/PurchaseRate.php +14 -17
- package/server/src/Http/Resources/v1/ServiceArea.php +13 -16
- package/server/src/Http/Resources/v1/ServiceQuote.php +15 -18
- package/server/src/Http/Resources/v1/ServiceRate.php +33 -36
- package/server/src/Http/Resources/v1/ServiceRateFee.php +14 -17
- package/server/src/Http/Resources/v1/ServiceRateParcelFee.php +9 -12
- package/server/src/Http/Resources/v1/TrackingNumber.php +18 -21
- package/server/src/Http/Resources/v1/TrackingStatus.php +18 -21
- package/server/src/Http/Resources/v1/Vehicle.php +31 -34
- package/server/src/Http/Resources/v1/VehicleDevice.php +23 -25
- package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +38 -32
- package/server/src/Http/Resources/v1/Vendor.php +31 -26
- package/server/src/Http/Resources/v1/Zone.php +14 -17
- package/server/src/Models/Driver.php +23 -1
- package/server/src/Models/Entity.php +18 -23
- package/server/src/Models/FuelReport.php +1 -0
- package/server/src/Models/IntegratedVendor.php +6 -1
- package/server/src/Models/Order.php +2 -2
- package/server/src/Models/Place.php +2 -2
- package/server/src/Models/Vehicle.php +4 -2
- package/server/src/Models/VehicleDeviceEvent.php +1 -0
- package/server/src/Models/Vendor.php +1 -1
- package/server/src/Observers/DriverObserver.php +15 -0
|
@@ -18,8 +18,8 @@ return new class extends Migration
|
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->index();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index('tracking_statuses_company_uuid_foreign');
|
|
22
|
+
$table->uuid('tracking_number_uuid')->nullable()->index('tracking_statuses_tracking_number_uuid_foreign');
|
|
23
23
|
$table->char('proof_uuid', 36)->nullable();
|
|
24
24
|
$table->json('meta')->nullable();
|
|
25
25
|
$table->string('status', 191)->nullable()->index();
|
|
@@ -18,9 +18,9 @@ return new class extends Migration
|
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->index();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
22
|
+
$table->uuid('vendor_uuid')->nullable()->index('vehicles_vendor_uuid_foreign');
|
|
23
|
+
$table->uuid('photo_uuid')->nullable()->index('vehicles_photo_uuid_foreign');
|
|
24
24
|
$table->string('avatar_url', 300)->nullable();
|
|
25
25
|
$table->string('make', 191)->nullable()->index();
|
|
26
26
|
$table->string('model', 191)->nullable()->index();
|
|
@@ -18,11 +18,11 @@ return new class extends Migration
|
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->unique();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
24
|
-
$table->
|
|
25
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
22
|
+
$table->uuid('place_uuid')->nullable()->index('vendors_place_uuid_foreign');
|
|
23
|
+
$table->uuid('type_uuid')->nullable()->index('vendors_type_uuid_foreign');
|
|
24
|
+
$table->uuid('connect_company_uuid')->nullable()->index('vendors_connect_company_uuid_foreign');
|
|
25
|
+
$table->uuid('logo_uuid')->nullable()->index('vendors_logo_uuid_foreign');
|
|
26
26
|
$table->string('name')->nullable();
|
|
27
27
|
$table->string('internal_id', 191)->nullable()->index();
|
|
28
28
|
$table->string('business_id')->nullable();
|
|
@@ -18,10 +18,10 @@ return new class extends Migration
|
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id')->nullable();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
24
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index('waypoints_company_uuid_foreign');
|
|
22
|
+
$table->uuid('place_uuid')->nullable()->index('waypoints_place_uuid_foreign');
|
|
23
|
+
$table->uuid('payload_uuid')->nullable()->index('waypoints_payload_uuid_foreign');
|
|
24
|
+
$table->uuid('tracking_number_uuid')->nullable()->index();
|
|
25
25
|
$table->string('_import_id', 191)->nullable()->index();
|
|
26
26
|
$table->string('type')->nullable();
|
|
27
27
|
$table->integer('order')->nullable();
|
|
@@ -18,8 +18,8 @@ return new class extends Migration
|
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->unique();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index('zones_company_uuid_foreign');
|
|
22
|
+
$table->uuid('service_area_uuid')->nullable()->index();
|
|
23
23
|
$table->string('name')->nullable();
|
|
24
24
|
$table->mediumText('description')->nullable();
|
|
25
25
|
$table->polygon('border')->nullable();
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
use Illuminate\Database\Migrations\Migration;
|
|
4
|
+
use Illuminate\Database\Schema\Blueprint;
|
|
5
|
+
use Illuminate\Support\Facades\Schema;
|
|
6
|
+
|
|
7
|
+
class AddStatusColumnToFuelReportsTable extends Migration
|
|
8
|
+
{
|
|
9
|
+
/**
|
|
10
|
+
* Run the migrations.
|
|
11
|
+
*
|
|
12
|
+
* @return void
|
|
13
|
+
*/
|
|
14
|
+
public function up()
|
|
15
|
+
{
|
|
16
|
+
Schema::table('fuel_reports', function (Blueprint $table) {
|
|
17
|
+
$table->string('status')->nullable()->after('meta');
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Reverse the migrations.
|
|
23
|
+
*
|
|
24
|
+
* @return void
|
|
25
|
+
*/
|
|
26
|
+
public function down()
|
|
27
|
+
{
|
|
28
|
+
Schema::table('fuel_reports', function (Blueprint $table) {
|
|
29
|
+
$table->dropColumn('status');
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
use Illuminate\Database\Migrations\Migration;
|
|
4
|
+
use Illuminate\Database\Schema\Blueprint;
|
|
5
|
+
use Illuminate\Support\Facades\Schema;
|
|
6
|
+
|
|
7
|
+
class AddCommentsColumnAndResolvedAtColumnToVehicleDeviceEventsTable extends Migration
|
|
8
|
+
{
|
|
9
|
+
/**
|
|
10
|
+
* Run the migrations.
|
|
11
|
+
*
|
|
12
|
+
* @return void
|
|
13
|
+
*/
|
|
14
|
+
public function up()
|
|
15
|
+
{
|
|
16
|
+
Schema::table('vehicle_device_events', function (Blueprint $table) {
|
|
17
|
+
$table->timestamp('resolved_at')->nullable()->after('reason')->index();
|
|
18
|
+
$table->mediumText('comment')->nullable()->after('reason');
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Reverse the migrations.
|
|
24
|
+
*
|
|
25
|
+
* @return void
|
|
26
|
+
*/
|
|
27
|
+
public function down()
|
|
28
|
+
{
|
|
29
|
+
Schema::table('vehicle_device_events', function (Blueprint $table) {
|
|
30
|
+
$table->dropColumn(['comment', 'resolved_at']);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
use Illuminate\Database\Migrations\Migration;
|
|
4
|
+
use Illuminate\Database\Schema\Blueprint;
|
|
5
|
+
use Illuminate\Support\Facades\Schema;
|
|
6
|
+
|
|
7
|
+
class AddCategoryUuidToEntitiesTable extends Migration
|
|
8
|
+
{
|
|
9
|
+
/**
|
|
10
|
+
* Run the migrations.
|
|
11
|
+
*
|
|
12
|
+
* @return void
|
|
13
|
+
*/
|
|
14
|
+
public function up()
|
|
15
|
+
{
|
|
16
|
+
Schema::table('entities', function (Blueprint $table) {
|
|
17
|
+
$table->foreignUuid('category_uuid')->nullable()->after('photo_uuid')->references('uuid')->on('categories');
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Reverse the migrations.
|
|
23
|
+
*
|
|
24
|
+
* @return void
|
|
25
|
+
*/
|
|
26
|
+
public function down()
|
|
27
|
+
{
|
|
28
|
+
Schema::table('entities', function (Blueprint $table) {
|
|
29
|
+
$table->dropForeign(['category_uuid']);
|
|
30
|
+
$table->dropColumn(['category_uuid']);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -43,7 +43,7 @@ class DriverController extends Controller
|
|
|
43
43
|
public function create(CreateDriverRequest $request)
|
|
44
44
|
{
|
|
45
45
|
// get request input
|
|
46
|
-
$input = $request->except(['name', 'password', 'email', 'phone', 'location', 'meta']);
|
|
46
|
+
$input = $request->except(['name', 'password', 'email', 'phone', 'location', 'altitude', 'heading', 'speed', 'meta']);
|
|
47
47
|
|
|
48
48
|
// get user details for driver
|
|
49
49
|
$userDetails = $request->only(['name', 'password', 'email', 'phone']);
|
|
@@ -118,7 +118,7 @@ class DriverController extends Controller
|
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
// get request input
|
|
121
|
-
$input = $request->except(['name', 'password', 'email', 'phone', 'location', 'meta']);
|
|
121
|
+
$input = $request->except(['name', 'password', 'email', 'phone', 'location', 'altitude', 'heading', 'speed', 'meta']);
|
|
122
122
|
|
|
123
123
|
// get user details for driver
|
|
124
124
|
$userDetails = $request->only(['name', 'password', 'email', 'phone']);
|
|
@@ -41,6 +41,7 @@ class EntityController extends Controller
|
|
|
41
41
|
'sku',
|
|
42
42
|
'currency',
|
|
43
43
|
'meta',
|
|
44
|
+
'supplier_uuid',
|
|
44
45
|
]);
|
|
45
46
|
|
|
46
47
|
// payload assignment
|
|
@@ -126,6 +127,7 @@ class EntityController extends Controller
|
|
|
126
127
|
'sku',
|
|
127
128
|
'currency',
|
|
128
129
|
'meta',
|
|
130
|
+
'supplier_uuid',
|
|
129
131
|
]);
|
|
130
132
|
|
|
131
133
|
// payload assignment
|
|
@@ -24,7 +24,7 @@ class VehicleController extends Controller
|
|
|
24
24
|
public function create(CreateVehicleRequest $request)
|
|
25
25
|
{
|
|
26
26
|
// get request input
|
|
27
|
-
$input = $request->only(['status', 'make', 'model', 'year', 'trim', 'type', 'plate_number', 'vin', 'meta']);
|
|
27
|
+
$input = $request->only(['status', 'make', 'model', 'year', 'trim', 'type', 'plate_number', 'vin', 'meta', 'location', 'altitude', 'heading', 'speed']);
|
|
28
28
|
// make sure company is set
|
|
29
29
|
$input['company_uuid'] = session('company');
|
|
30
30
|
|
|
@@ -90,7 +90,7 @@ class VehicleController extends Controller
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
// get request input
|
|
93
|
-
$input = $request->only(['status', 'make', 'model', 'year', 'trim', 'type', 'plate_number', 'vin', 'meta']);
|
|
93
|
+
$input = $request->only(['status', 'make', 'model', 'year', 'trim', 'type', 'plate_number', 'vin', 'meta', 'location', 'altitude', 'heading', 'speed']);
|
|
94
94
|
|
|
95
95
|
// vendor assignment
|
|
96
96
|
if ($request->has('vendor')) {
|
|
@@ -13,7 +13,6 @@ use Fleetbase\Http\Requests\ExportRequest;
|
|
|
13
13
|
use Fleetbase\Models\Invite;
|
|
14
14
|
use Fleetbase\Models\User;
|
|
15
15
|
use Fleetbase\Notifications\UserInvited;
|
|
16
|
-
use Grimzy\LaravelMysqlSpatial\Types\Point;
|
|
17
16
|
use Illuminate\Http\Request;
|
|
18
17
|
use Illuminate\Support\Facades\DB;
|
|
19
18
|
use Illuminate\Support\Facades\Validator;
|
|
@@ -78,7 +77,7 @@ class DriverController extends FleetOpsController
|
|
|
78
77
|
|
|
79
78
|
// create driver profile for user
|
|
80
79
|
$input = collect($input)
|
|
81
|
-
->except(['name', 'password', 'email', 'phone', '
|
|
80
|
+
->except(['name', 'password', 'email', 'phone', 'meta', 'avatar_uuid', 'photo_uuid'])
|
|
82
81
|
->filter()
|
|
83
82
|
->toArray();
|
|
84
83
|
|
|
@@ -87,10 +86,6 @@ class DriverController extends FleetOpsController
|
|
|
87
86
|
$input['user_uuid'] = $existingUser->uuid;
|
|
88
87
|
$input['slug'] = $existingUser->slug;
|
|
89
88
|
|
|
90
|
-
if ($request->missing('location')) {
|
|
91
|
-
$input['location'] = new Point(0, 0);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
89
|
// create the profile
|
|
95
90
|
$driverProfile = Driver::create($input);
|
|
96
91
|
|
|
@@ -135,12 +130,12 @@ class DriverController extends FleetOpsController
|
|
|
135
130
|
}
|
|
136
131
|
|
|
137
132
|
$input = $input
|
|
138
|
-
->except(['name', 'password', 'email', 'phone', '
|
|
133
|
+
->except(['name', 'password', 'email', 'phone', 'meta', 'avatar_uuid', 'photo_uuid'])
|
|
139
134
|
->filter()
|
|
140
135
|
->toArray();
|
|
141
136
|
|
|
142
137
|
if (!isset($input['password'])) {
|
|
143
|
-
$input['password'] = $userInput
|
|
138
|
+
$input['password'] = data_get($userInput, 'phone', Str::random(14));
|
|
144
139
|
}
|
|
145
140
|
|
|
146
141
|
$userInput['company_uuid'] = session('company');
|
|
@@ -164,10 +159,6 @@ class DriverController extends FleetOpsController
|
|
|
164
159
|
|
|
165
160
|
$input['user_uuid'] = $user->uuid;
|
|
166
161
|
$input['slug'] = $user->slug;
|
|
167
|
-
|
|
168
|
-
if ($request->missing('location')) {
|
|
169
|
-
$input['location'] = new Point(0, 0);
|
|
170
|
-
}
|
|
171
162
|
},
|
|
172
163
|
function ($request, &$driver) {
|
|
173
164
|
$driver->load(['user']);
|
|
@@ -210,14 +201,14 @@ class DriverController extends FleetOpsController
|
|
|
210
201
|
$request,
|
|
211
202
|
$id,
|
|
212
203
|
function (&$request, &$driver, &$input) {
|
|
213
|
-
$driver->load(['user']);
|
|
204
|
+
$driver->load(['user'])->guard(['user_uuid']);
|
|
214
205
|
$input = collect($input);
|
|
215
206
|
$userInput = $input->only(['name', 'password', 'email', 'phone', 'avatar_uuid'])->toArray();
|
|
216
207
|
// handle `photo_uuid`
|
|
217
208
|
if (isset($input['photo_uuid']) && Str::isUuid($input['photo_uuid'])) {
|
|
218
209
|
$userInput['avatar_uuid'] = $input['photo_uuid'];
|
|
219
210
|
}
|
|
220
|
-
$input = $input->except(['name', 'password', 'email', 'phone', '
|
|
211
|
+
$input = $input->except(['name', 'password', 'email', 'phone', 'meta', 'avatar_uuid', 'photo_uuid'])->toArray();
|
|
221
212
|
|
|
222
213
|
$driver->user->update($userInput);
|
|
223
214
|
$driver->flushAttributesCache();
|
|
@@ -39,8 +39,6 @@ class OrderController extends FleetOpsController
|
|
|
39
39
|
/**
|
|
40
40
|
* Creates a record with request payload.
|
|
41
41
|
*
|
|
42
|
-
* @param Illuminate\Http\Request $request
|
|
43
|
-
*
|
|
44
42
|
* @return \Illuminate\Http\Response
|
|
45
43
|
*/
|
|
46
44
|
public function createRecord(Request $request)
|
|
@@ -319,7 +317,7 @@ class OrderController extends FleetOpsController
|
|
|
319
317
|
public function start(Request $request)
|
|
320
318
|
{
|
|
321
319
|
/**
|
|
322
|
-
* @var \Fleetbase\Models\Order
|
|
320
|
+
* @var \Fleetbase\FleetOps\Models\Order
|
|
323
321
|
*/
|
|
324
322
|
$order = Order::where('uuid', $request->input('order'))->withoutGlobalScopes()->first();
|
|
325
323
|
|
|
@@ -37,6 +37,16 @@ class ContactFilter extends Filter
|
|
|
37
37
|
$this->builder->searchWhere('public_id', $publicId);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
public function name(?string $name)
|
|
41
|
+
{
|
|
42
|
+
$this->builder->searchWhere('name', $name);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public function title(?string $title)
|
|
46
|
+
{
|
|
47
|
+
$this->builder->searchWhere('title', $title);
|
|
48
|
+
}
|
|
49
|
+
|
|
40
50
|
public function type(?string $type)
|
|
41
51
|
{
|
|
42
52
|
$this->builder->searchWhere('type', $type);
|
|
@@ -46,7 +46,7 @@ class FleetFilter extends Filter
|
|
|
46
46
|
$this->builder->whereHas(
|
|
47
47
|
'zone',
|
|
48
48
|
function ($query) use ($zone) {
|
|
49
|
-
$query->where('
|
|
49
|
+
$query->where('zone_uuid', $zone);
|
|
50
50
|
}
|
|
51
51
|
);
|
|
52
52
|
}
|
|
@@ -59,6 +59,8 @@ class FleetFilter extends Filter
|
|
|
59
59
|
$query->where('uuid', $fleet);
|
|
60
60
|
}
|
|
61
61
|
);
|
|
62
|
+
|
|
63
|
+
$this->builder->searchWhere('parent_fleet_uuid', $fleet);
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
public function vendor(?string $vendor)
|
|
@@ -71,11 +73,6 @@ class FleetFilter extends Filter
|
|
|
71
73
|
);
|
|
72
74
|
}
|
|
73
75
|
|
|
74
|
-
public function internalId(?string $internalId)
|
|
75
|
-
{
|
|
76
|
-
$this->builder->searchWhere('internal_id', $internalId);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
76
|
public function publicId(?string $publicId)
|
|
80
77
|
{
|
|
81
78
|
$this->builder->searchWhere('public_id', $publicId);
|
|
@@ -86,6 +83,11 @@ class FleetFilter extends Filter
|
|
|
86
83
|
$this->builder->searchWhere('task', $task);
|
|
87
84
|
}
|
|
88
85
|
|
|
86
|
+
public function name(?string $name)
|
|
87
|
+
{
|
|
88
|
+
$this->builder->searchWhere('name', $name);
|
|
89
|
+
}
|
|
90
|
+
|
|
89
91
|
public function status(?string $status)
|
|
90
92
|
{
|
|
91
93
|
$this->builder->searchWhere('status', $status);
|
|
@@ -23,11 +23,23 @@ class FuelReportFilter extends Filter
|
|
|
23
23
|
$this->builder->searchWhere('public_id', $publicId);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
public function volume(?string $volume)
|
|
27
|
+
{
|
|
28
|
+
$this->builder->searchWhere('volume', $volume);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public function odometer(?string $odometer)
|
|
32
|
+
{
|
|
33
|
+
$this->builder->searchWhere('odometer', $odometer);
|
|
34
|
+
}
|
|
35
|
+
|
|
26
36
|
public function reporter(?string $reporter)
|
|
27
37
|
{
|
|
28
38
|
$this->builder->whereHas('reportedBy', function ($q) use ($reporter) {
|
|
29
39
|
if (Str::isUuid($reporter)) {
|
|
30
40
|
$q->where('uuid', $reporter);
|
|
41
|
+
} elseif (Utils::isPublicId($reporter)) {
|
|
42
|
+
$q->where('public_id', $reporter);
|
|
31
43
|
} else {
|
|
32
44
|
$q->search($reporter);
|
|
33
45
|
}
|
|
@@ -55,4 +67,43 @@ class FuelReportFilter extends Filter
|
|
|
55
67
|
$this->builder->whereDate('updated_at', $updatedAt);
|
|
56
68
|
}
|
|
57
69
|
}
|
|
70
|
+
|
|
71
|
+
public function driver(?string $driver)
|
|
72
|
+
{
|
|
73
|
+
$this->builder->whereHas('driver', function ($q) use ($driver) {
|
|
74
|
+
if (Str::isUuid($driver)) {
|
|
75
|
+
$q->where('uuid', $driver);
|
|
76
|
+
} elseif (Utils::isPublicId($driver)) {
|
|
77
|
+
$q->where('public_id', $driver);
|
|
78
|
+
} else {
|
|
79
|
+
$q->search($driver);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
public function vehicle(?string $vehicle)
|
|
85
|
+
{
|
|
86
|
+
$this->builder->whereHas('vehicle', function ($q) use ($vehicle) {
|
|
87
|
+
if (Str::isUuid($vehicle)) {
|
|
88
|
+
$q->where('uuid', $vehicle);
|
|
89
|
+
} elseif (Utils::isPublicId($vehicle)) {
|
|
90
|
+
$q->where('public_id', $vehicle);
|
|
91
|
+
} else {
|
|
92
|
+
$q->search($vehicle);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
public function status($status)
|
|
98
|
+
{
|
|
99
|
+
if (Str::contains($status, ',')) {
|
|
100
|
+
$status = explode(',', $status);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (is_array($status)) {
|
|
104
|
+
$this->builder->whereIn('status', $status);
|
|
105
|
+
} else {
|
|
106
|
+
$this->builder->where('status', $status);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
58
109
|
}
|
|
@@ -23,24 +23,80 @@ class IssueFilter extends Filter
|
|
|
23
23
|
$this->builder->searchWhere('public_id', $publicId);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
public function priority($priority)
|
|
27
|
+
{
|
|
28
|
+
if (Str::contains($priority, ',')) {
|
|
29
|
+
$priority = explode(',', $priority);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (is_array($priority)) {
|
|
33
|
+
$this->builder->whereIn('priority', $priority);
|
|
34
|
+
} else {
|
|
35
|
+
$this->builder->where('priority', $priority);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public function status($status)
|
|
40
|
+
{
|
|
41
|
+
if (Str::contains($status, ',')) {
|
|
42
|
+
$status = explode(',', $status);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (is_array($status)) {
|
|
46
|
+
$this->builder->whereIn('status', $status);
|
|
47
|
+
} else {
|
|
48
|
+
$this->builder->where('status', $status);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public function assignee(?string $assignee)
|
|
53
|
+
{
|
|
54
|
+
$this->builder->whereHas('assignedTo', function ($q) use ($assignee) {
|
|
55
|
+
if (Str::isUuid($assignee)) {
|
|
56
|
+
$q->where('uuid', $assignee);
|
|
57
|
+
} elseif (Utils::isPublicId($assignee)) {
|
|
58
|
+
$q->where('public_id', $assignee);
|
|
59
|
+
} else {
|
|
60
|
+
$q->search($assignee);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
26
65
|
public function reporter(?string $reporter)
|
|
27
66
|
{
|
|
28
67
|
$this->builder->whereHas('reportedBy', function ($q) use ($reporter) {
|
|
29
68
|
if (Str::isUuid($reporter)) {
|
|
30
69
|
$q->where('uuid', $reporter);
|
|
70
|
+
} elseif (Utils::isPublicId($reporter)) {
|
|
71
|
+
$q->where('public_id', $reporter);
|
|
31
72
|
} else {
|
|
32
73
|
$q->search($reporter);
|
|
33
74
|
}
|
|
34
75
|
});
|
|
35
76
|
}
|
|
36
77
|
|
|
37
|
-
public function
|
|
78
|
+
public function driver(?string $driver)
|
|
38
79
|
{
|
|
39
|
-
$this->builder->whereHas('
|
|
40
|
-
if (Str::isUuid($
|
|
41
|
-
$q->where('uuid', $
|
|
80
|
+
$this->builder->whereHas('driver', function ($q) use ($driver) {
|
|
81
|
+
if (Str::isUuid($driver)) {
|
|
82
|
+
$q->where('uuid', $driver);
|
|
83
|
+
} elseif (Utils::isPublicId($driver)) {
|
|
84
|
+
$q->where('public_id', $driver);
|
|
42
85
|
} else {
|
|
43
|
-
$q->search($
|
|
86
|
+
$q->search($driver);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
public function vehicle(?string $vehicle)
|
|
92
|
+
{
|
|
93
|
+
$this->builder->whereHas('vehicle', function ($q) use ($vehicle) {
|
|
94
|
+
if (Str::isUuid($vehicle)) {
|
|
95
|
+
$q->where('uuid', $vehicle);
|
|
96
|
+
} elseif (Utils::isPublicId($vehicle)) {
|
|
97
|
+
$q->where('public_id', $vehicle);
|
|
98
|
+
} else {
|
|
99
|
+
$q->search($vehicle);
|
|
44
100
|
}
|
|
45
101
|
});
|
|
46
102
|
}
|
|
@@ -20,14 +20,14 @@ class PlaceFilter extends Filter
|
|
|
20
20
|
$this->builder->search($searchQuery);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
public function
|
|
23
|
+
public function publicId(?string $publicId)
|
|
24
24
|
{
|
|
25
|
-
$this->builder->searchWhere('
|
|
25
|
+
$this->builder->searchWhere('public_id', $publicId);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
public function
|
|
28
|
+
public function postalCode(?string $postalCode)
|
|
29
29
|
{
|
|
30
|
-
$this->builder->searchWhere('
|
|
30
|
+
$this->builder->searchWhere('postal_code', $postalCode);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
public function phone(?string $phone)
|
|
@@ -35,9 +35,29 @@ class PlaceFilter extends Filter
|
|
|
35
35
|
$this->builder->searchWhere('phone', $phone);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
public function
|
|
38
|
+
public function city(?string $city)
|
|
39
|
+
{
|
|
40
|
+
$this->builder->searchWhere('city', $city);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public function neighborhood(?string $neighborhood)
|
|
44
|
+
{
|
|
45
|
+
$this->builder->searchWhere('neighborhood', $neighborhood);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public function state(?string $state)
|
|
49
|
+
{
|
|
50
|
+
$this->builder->searchWhere('province', $state);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public function name(?string $name)
|
|
39
54
|
{
|
|
40
|
-
$this->builder->searchWhere('
|
|
55
|
+
$this->builder->searchWhere('name', $name);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public function address(?string $address)
|
|
59
|
+
{
|
|
60
|
+
$this->builder->searchWhere(['street1', 'street2'], $address);
|
|
41
61
|
}
|
|
42
62
|
|
|
43
63
|
public function country(?string $country)
|
|
@@ -45,6 +65,28 @@ class PlaceFilter extends Filter
|
|
|
45
65
|
$this->builder->where('country', $country);
|
|
46
66
|
}
|
|
47
67
|
|
|
68
|
+
public function createdAt($createdAt)
|
|
69
|
+
{
|
|
70
|
+
$createdAt = Utils::dateRange($createdAt);
|
|
71
|
+
|
|
72
|
+
if (is_array($createdAt)) {
|
|
73
|
+
$this->builder->whereBetween('created_at', $createdAt);
|
|
74
|
+
} else {
|
|
75
|
+
$this->builder->whereDate('created_at', $createdAt);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
public function updatedAt($updatedAt)
|
|
80
|
+
{
|
|
81
|
+
$updatedAt = Utils::dateRange($updatedAt);
|
|
82
|
+
|
|
83
|
+
if (is_array($updatedAt)) {
|
|
84
|
+
$this->builder->whereBetween('updated_at', $updatedAt);
|
|
85
|
+
} else {
|
|
86
|
+
$this->builder->whereDate('updated_at', $updatedAt);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
48
90
|
public function within($within)
|
|
49
91
|
{
|
|
50
92
|
// search for places within a radius of center coordinates
|
|
@@ -17,9 +17,9 @@ class VehicleFilter extends Filter
|
|
|
17
17
|
$this->builder->search($query);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
public function
|
|
20
|
+
public function display_name(?string $display_name)
|
|
21
21
|
{
|
|
22
|
-
$this->builder->searchWhere(['year', '
|
|
22
|
+
$this->builder->searchWhere(['year', 'make', 'model', 'plate_number'], $display_name);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
public function vin(?string $vin)
|
|
@@ -37,14 +37,19 @@ class VehicleFilter extends Filter
|
|
|
37
37
|
$this->builder->searchWhere('plate_number', $plateNumber);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
public function vehicleMake(?string $
|
|
40
|
+
public function vehicleMake(?string $vehicleMake)
|
|
41
41
|
{
|
|
42
|
-
$this->builder->searchWhere('make', $
|
|
42
|
+
$this->builder->searchWhere('make', $vehicleMake);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
public function vehicleModel(?string $
|
|
45
|
+
public function vehicleModel(?string $vehicle_model)
|
|
46
46
|
{
|
|
47
|
-
$this->builder->searchWhere('model', $
|
|
47
|
+
$this->builder->searchWhere('model', $vehicle_model);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public function vehicleYear(?string $vehicleYear)
|
|
51
|
+
{
|
|
52
|
+
$this->builder->searchWhere('year', $vehicleYear);
|
|
48
53
|
}
|
|
49
54
|
|
|
50
55
|
public function driver(?string $driverId)
|
|
@@ -57,6 +62,16 @@ class VehicleFilter extends Filter
|
|
|
57
62
|
);
|
|
58
63
|
}
|
|
59
64
|
|
|
65
|
+
public function vendor(?string $vendorId)
|
|
66
|
+
{
|
|
67
|
+
$this->builder->whereHas(
|
|
68
|
+
'vendor',
|
|
69
|
+
function ($query) use ($vendorId) {
|
|
70
|
+
$query->where('uuid', $vendorId);
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
|
|
60
75
|
public function driverUuid(?string $driverId)
|
|
61
76
|
{
|
|
62
77
|
$this->builder->whereHas(
|