@fleetbase/fleetops-engine 0.3.4 → 0.3.6
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/README.md +4 -4
- package/addon/components/admin/navigator-app.hbs +5 -0
- package/addon/components/admin/navigator-app.js +27 -0
- package/addon/components/driver-form-panel.js +13 -19
- package/addon/components/fleet-listing-panel.hbs +2 -2
- 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 +2 -0
- package/addon/components/leaflet-draw-control.js +2 -3
- package/addon/components/live-map.js +7 -4
- package/addon/components/modals/driver-assign-order.hbs +2 -2
- package/addon/components/modals/order-import.hbs +5 -5
- package/addon/components/modals/order-new-activity.hbs +1 -1
- package/addon/components/order-config/entities-editor.js +3 -5
- package/addon/components/route-list.hbs +2 -2
- package/addon/components/vendor-form-panel.js +1 -1
- package/addon/controllers/application.js +2 -2
- package/addon/controllers/base-controller.js +31 -0
- package/addon/controllers/management/contacts/index/details.js +2 -2
- package/addon/controllers/management/contacts/index/edit.js +2 -2
- package/addon/controllers/management/contacts/index/new.js +2 -2
- package/addon/controllers/management/contacts/index.js +9 -2
- package/addon/controllers/management/drivers/index/details.js +2 -2
- package/addon/controllers/management/drivers/index/edit.js +28 -2
- package/addon/controllers/management/drivers/index/new.js +2 -2
- package/addon/controllers/management/drivers/index.js +18 -24
- package/addon/controllers/management/fleets/index/details.js +2 -2
- package/addon/controllers/management/fleets/index/edit.js +2 -2
- package/addon/controllers/management/fleets/index/new.js +2 -2
- package/addon/controllers/management/fleets/index.js +16 -9
- package/addon/controllers/management/fuel-reports/index/details.js +2 -2
- package/addon/controllers/management/fuel-reports/index/edit.js +2 -2
- package/addon/controllers/management/fuel-reports/index/new.js +2 -2
- package/addon/controllers/management/fuel-reports/index.js +9 -2
- package/addon/controllers/management/issues/index/details.js +2 -2
- package/addon/controllers/management/issues/index/edit.js +2 -2
- package/addon/controllers/management/issues/index/new.js +2 -2
- package/addon/controllers/management/issues/index.js +9 -9
- package/addon/controllers/management/places/index/details.js +2 -2
- package/addon/controllers/management/places/index/edit.js +2 -2
- package/addon/controllers/management/places/index/new.js +2 -2
- package/addon/controllers/management/places/index.js +8 -2
- package/addon/controllers/management/vehicles/index/details.js +2 -2
- package/addon/controllers/management/vehicles/index/edit.js +2 -2
- package/addon/controllers/management/vehicles/index/new.js +2 -2
- package/addon/controllers/management/vehicles/index.js +24 -32
- package/addon/controllers/management/vendors/index/details.js +2 -2
- package/addon/controllers/management/vendors/index/edit.js +2 -2
- package/addon/controllers/management/vendors/index/new.js +2 -2
- package/addon/controllers/management/vendors/index.js +9 -8
- package/addon/controllers/management.js +2 -2
- package/addon/controllers/operations/orders/index/config/types.js +2 -2
- package/addon/controllers/operations/orders/index/config.js +2 -2
- package/addon/controllers/operations/orders/index/new.js +64 -44
- package/addon/controllers/operations/orders/index/view.js +11 -4
- package/addon/controllers/operations/orders/index.js +2 -2
- package/addon/controllers/operations/scheduler/index.js +2 -2
- package/addon/controllers/operations/service-rates/index/edit.js +12 -18
- package/addon/controllers/operations/service-rates/index/new.js +16 -22
- package/addon/controllers/operations/service-rates/index.js +9 -2
- package/addon/engine.js +6 -0
- package/addon/helpers/waypoint-label.js +6 -1
- package/addon/routes/application.js +4 -15
- package/addon/routes/management/contacts/index.js +9 -5
- package/addon/routes/management/drivers/index.js +7 -3
- package/addon/routes/management/fleets/index.js +9 -5
- package/addon/routes/management/fuel-reports/index.js +9 -5
- package/addon/routes/management/issues/index.js +9 -5
- package/addon/routes/management/places/index.js +9 -5
- package/addon/routes/management/vehicles/index/details.js +2 -2
- package/addon/routes/management/vehicles/index.js +11 -2
- package/addon/routes/management/vendors/index.js +9 -6
- package/addon/routes/operations/orders/index/view.js +6 -2
- package/addon/routes/operations/orders/index.js +7 -1
- package/addon/routes/operations/orders.js +0 -1
- package/addon/routes/operations/service-rates/index.js +9 -27
- package/addon/routes/operations/service-rates.js +1 -8
- package/addon/styles/fleetops-engine.css +14 -7
- 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/new.hbs +7 -7
- package/addon/templates/operations/orders/index/view.hbs +17 -16
- package/addon/templates/operations/service-rates/index.hbs +11 -3
- package/addon/utils/waypoint-label.js +3 -0
- package/app/components/layout/fleet-ops-sidebar/fleet-listing.js +1 -0
- package/app/controllers/{operations/zones/index.js → base-controller.js} +1 -1
- package/app/utils/waypoint-label.js +1 -0
- package/composer.json +1 -1
- package/config/environment.js +11 -1
- package/extension.json +1 -1
- package/index.js +1 -0
- package/package.json +47 -41
- 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_17_053001_add_category_uuid_to_entities_table.php +33 -0
- package/server/migrations/2023_11_28_074244_add_supplier_uuid_column_to_entities_table.php +33 -0
- package/server/migrations/2023_12_14_100209_add_meta_column_on_driver_table.php +30 -0
- package/server/src/Http/Controllers/Api/v1/DriverController.php +7 -4
- package/server/src/Http/Controllers/Api/v1/EntityController.php +2 -0
- package/server/src/Http/Controllers/Api/v1/OrderController.php +118 -42
- package/server/src/Http/Controllers/Api/v1/PayloadController.php +41 -43
- package/server/src/Http/Controllers/Api/v1/TrackingStatusController.php +43 -2
- package/server/src/Http/Controllers/Internal/v1/DriverController.php +0 -1
- package/server/src/Http/Controllers/Internal/v1/MorphController.php +48 -16
- package/server/src/Http/Controllers/Internal/v1/NavigatorController.php +41 -0
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +3 -2
- package/server/src/Http/Controllers/Internal/v1/PlaceController.php +2 -2
- package/server/src/Http/Requests/CreateDriverRequest.php +2 -0
- package/server/src/Http/Requests/CreateOrderRequest.php +18 -4
- package/server/src/Http/Requests/CreatePayloadRequest.php +23 -7
- package/server/src/Http/Requests/CreatePlaceRequest.php +9 -5
- package/server/src/Http/Requests/CreateTrackingStatusRequest.php +69 -12
- package/server/src/Http/Requests/CreateVehicleRequest.php +5 -3
- package/server/src/Http/Resources/v1/Entity.php +3 -0
- package/server/src/Http/Resources/v1/Fleet.php +19 -17
- package/server/src/Http/Resources/v1/Order.php +3 -2
- package/server/src/Models/Driver.php +21 -2
- package/server/src/Models/Entity.php +18 -23
- package/server/src/Models/Order.php +2 -2
- package/server/src/Models/Payload.php +27 -9
- package/server/src/Models/Place.php +28 -5
- package/server/src/Models/TrackingStatus.php +9 -3
- package/server/src/Models/Vehicle.php +4 -2
- package/server/src/Models/VehicleDevice.php +28 -0
- package/server/src/Models/VehicleDeviceEvent.php +1 -1
- package/server/src/Models/Vendor.php +16 -0
- package/server/src/Observers/DriverObserver.php +1 -1
- package/server/src/routes.php +8 -0
- package/tsconfig.declarations.json +10 -0
- package/addon/components/file-icon.js +0 -1
- package/addon/controllers/operations/zones/index.js +0 -475
- package/addon/routes/operations/dispatch.js +0 -3
- package/addon/routes/operations/zones/index.js +0 -25
- package/addon/routes/operations/zones.js +0 -7
- package/addon/templates/operations/dispatch.hbs +0 -1
- package/addon/templates/operations/zones/index.hbs +0 -72
- package/addon/templates/operations/zones.hbs +0 -1
- package/app/components/file-icon.js +0 -1
|
@@ -273,6 +273,17 @@ class Payload extends Model
|
|
|
273
273
|
return $this;
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
+
public function setCurrentWaypoint(Place $destination, bool $save = true): Payload
|
|
277
|
+
{
|
|
278
|
+
$this->current_waypoint_uuid = $destination->uuid;
|
|
279
|
+
|
|
280
|
+
if ($this->save) {
|
|
281
|
+
$this->save();
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
return $this;
|
|
285
|
+
}
|
|
286
|
+
|
|
276
287
|
public function setWaypoints($waypoints = [])
|
|
277
288
|
{
|
|
278
289
|
if (!is_array($waypoints)) {
|
|
@@ -336,7 +347,7 @@ class Payload extends Model
|
|
|
336
347
|
$placeUuid = Place::insertFromMixed($attributes);
|
|
337
348
|
|
|
338
349
|
// if has a temporary uuid from search create meta attr for search_uuid
|
|
339
|
-
if (
|
|
350
|
+
if (Str::isUuid($placeUuid) && isset($attributes['uuid']) && $placeUuid !== $attributes['uuid']) {
|
|
340
351
|
$place = Place::where('uuid', $placeUuid)->first();
|
|
341
352
|
|
|
342
353
|
if ($place instanceof Place) {
|
|
@@ -544,7 +555,7 @@ class Payload extends Model
|
|
|
544
555
|
return $this->order;
|
|
545
556
|
}
|
|
546
557
|
|
|
547
|
-
public function setPlace($property, $place, $
|
|
558
|
+
public function setPlace($property, Place $place, array $options = [])
|
|
548
559
|
{
|
|
549
560
|
if (!$place) {
|
|
550
561
|
return;
|
|
@@ -552,6 +563,8 @@ class Payload extends Model
|
|
|
552
563
|
|
|
553
564
|
$attr = $property . '_uuid';
|
|
554
565
|
$instance = Place::createFromMixed($place);
|
|
566
|
+
$save = data_get($options, 'save', false);
|
|
567
|
+
$callback = data_get($options, 'callback', false);
|
|
555
568
|
|
|
556
569
|
if ($instance) {
|
|
557
570
|
if (Str::isUuid($instance)) {
|
|
@@ -567,10 +580,14 @@ class Payload extends Model
|
|
|
567
580
|
$this->save();
|
|
568
581
|
}
|
|
569
582
|
|
|
583
|
+
if (is_callable($callback)) {
|
|
584
|
+
$callback($instance, $this);
|
|
585
|
+
}
|
|
586
|
+
|
|
570
587
|
return $this;
|
|
571
588
|
}
|
|
572
589
|
|
|
573
|
-
public function setPickup($place, $
|
|
590
|
+
public function setPickup($place, array $options = [])
|
|
574
591
|
{
|
|
575
592
|
// if using the special [driver] value, set the meta `pickup_is_driver_location`
|
|
576
593
|
if ($place === '[driver]') {
|
|
@@ -579,22 +596,23 @@ class Payload extends Model
|
|
|
579
596
|
return;
|
|
580
597
|
}
|
|
581
598
|
|
|
582
|
-
return $this->setPlace('pickup', $place, $
|
|
599
|
+
return $this->setPlace('pickup', $place, $options);
|
|
583
600
|
}
|
|
584
601
|
|
|
585
|
-
public function setDropoff($place, $
|
|
602
|
+
public function setDropoff($place, array $options = [])
|
|
586
603
|
{
|
|
587
|
-
return $this->setPlace('dropoff', $place, $
|
|
604
|
+
return $this->setPlace('dropoff', $place, $options);
|
|
588
605
|
}
|
|
589
606
|
|
|
590
|
-
public function setReturn($place, $
|
|
607
|
+
public function setReturn($place, array $options = [])
|
|
591
608
|
{
|
|
592
|
-
return $this->setPlace('return', $place, $
|
|
609
|
+
return $this->setPlace('return', $place, $options);
|
|
593
610
|
}
|
|
594
611
|
|
|
612
|
+
// when an order only has waypoints -- no pickup/dropoff
|
|
595
613
|
public function getIsMultipleDropOrderAttribute()
|
|
596
614
|
{
|
|
597
|
-
return $this->waypoints && $this->waypoints->count() > 0;
|
|
615
|
+
return !$this->pickup && $this->waypoints && $this->waypoints->count() > 0;
|
|
598
616
|
}
|
|
599
617
|
|
|
600
618
|
/**
|
|
@@ -562,14 +562,30 @@ class Place extends Model
|
|
|
562
562
|
'province' => ['alias' => ['state']],
|
|
563
563
|
'postal_code' => ['alias' => ['postal', 'zip', 'zip_code']],
|
|
564
564
|
'phone' => ['alias' => ['phone', 'mobile', 'phone_number', 'number', 'cell', 'cell_phone', 'mobile_number', 'contact_number']],
|
|
565
|
+
'location' => ['alias' => ['position']],
|
|
566
|
+
'latitude' => ['alias' => ['lat', 'x']],
|
|
567
|
+
'longitude' => ['alias' => ['lon', 'lng', 'long', 'y']],
|
|
565
568
|
];
|
|
566
|
-
$address
|
|
569
|
+
$address = '';
|
|
570
|
+
$latitude = null;
|
|
571
|
+
$longitude = null;
|
|
567
572
|
|
|
568
573
|
foreach ($addressFields as $field => $options) {
|
|
569
574
|
if ($field === 'phone') {
|
|
570
575
|
continue;
|
|
571
576
|
}
|
|
572
|
-
|
|
577
|
+
|
|
578
|
+
if ($field === 'latitude') {
|
|
579
|
+
$latitude = Utils::or($row, array_merge([$field], $options['alias']));
|
|
580
|
+
continue;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
if ($field === 'longitude') {
|
|
584
|
+
$longitude = Utils::or($row, array_merge([$field], $options['alias']));
|
|
585
|
+
continue;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
$value = Utils::or($row, array_merge([$field], $options['alias']));
|
|
573
589
|
if ($value) {
|
|
574
590
|
$address .= $value . ' ';
|
|
575
591
|
}
|
|
@@ -577,6 +593,12 @@ class Place extends Model
|
|
|
577
593
|
|
|
578
594
|
$address = rtrim($address);
|
|
579
595
|
|
|
596
|
+
// if latitude and longitude provided
|
|
597
|
+
if ($latitude && $longitude) {
|
|
598
|
+
$address = $latitude . ', ' . $longitude;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
// if no address
|
|
580
602
|
if (!$address) {
|
|
581
603
|
return null;
|
|
582
604
|
}
|
|
@@ -584,8 +606,9 @@ class Place extends Model
|
|
|
584
606
|
$place = Place::createFromGeocodingLookup($address, false);
|
|
585
607
|
|
|
586
608
|
foreach ($addressFields as $field => $options) {
|
|
587
|
-
if (empty($place->{$field})) {
|
|
588
|
-
$value = Utils::or($row, $options['alias']);
|
|
609
|
+
if ($place->isFillable($field) && empty($place->{$field})) {
|
|
610
|
+
$value = Utils::or($row, array_merge([$field], $options['alias']));
|
|
611
|
+
|
|
589
612
|
if ($value) {
|
|
590
613
|
$place->{$field} = $value;
|
|
591
614
|
}
|
|
@@ -601,7 +624,7 @@ class Place extends Model
|
|
|
601
624
|
|
|
602
625
|
// set meta data
|
|
603
626
|
$meta = collect($row)->except(['name', ...$addressFields['street_number']['alias'], ...$addressFields['street2']['alias'], ...$addressFields['city']['alias'], ...$addressFields['neighborhood']['alias'], ...$addressFields['province']['alias'], ...$addressFields['postal_code']['alias'], ...$addressFields['phone']['alias']])->toArray();
|
|
604
|
-
$place->
|
|
627
|
+
$place->setMeta($meta);
|
|
605
628
|
|
|
606
629
|
// set the import id
|
|
607
630
|
$place->setAttribute('_import_id', $importId);
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
namespace Fleetbase\FleetOps\Models;
|
|
4
4
|
|
|
5
5
|
use Fleetbase\Casts\Json;
|
|
6
|
+
use Fleetbase\FleetOps\Casts\Point;
|
|
6
7
|
use Fleetbase\Models\Model;
|
|
7
8
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
8
9
|
use Fleetbase\Traits\HasMetaAttributes;
|
|
@@ -80,8 +81,8 @@ class TrackingStatus extends Model
|
|
|
80
81
|
* @var array
|
|
81
82
|
*/
|
|
82
83
|
protected $casts = [
|
|
83
|
-
'meta'
|
|
84
|
-
|
|
84
|
+
'meta' => Json::class,
|
|
85
|
+
'location' => Point::class,
|
|
85
86
|
];
|
|
86
87
|
|
|
87
88
|
/**
|
|
@@ -133,10 +134,15 @@ class TrackingStatus extends Model
|
|
|
133
134
|
$this->attributes['code'] = static::prepareCode($code);
|
|
134
135
|
}
|
|
135
136
|
|
|
137
|
+
public function setStatusAttribute($status)
|
|
138
|
+
{
|
|
139
|
+
$this->attributes['status'] = Str::title($status);
|
|
140
|
+
}
|
|
141
|
+
|
|
136
142
|
public static function prepareCode($string)
|
|
137
143
|
{
|
|
138
144
|
$string = str_replace(' ', '_', $string);
|
|
139
|
-
$string = preg_replace('/[^A-Za-z0-9\-]/', '', $string);
|
|
145
|
+
$string = preg_replace('/[^A-Za-z0-9\-_]/', '', $string);
|
|
140
146
|
$string = strtoupper($string);
|
|
141
147
|
|
|
142
148
|
return $string;
|
|
@@ -7,6 +7,7 @@ use Fleetbase\FleetOps\Casts\Point;
|
|
|
7
7
|
use Fleetbase\FleetOps\Support\Utils;
|
|
8
8
|
use Fleetbase\Models\Model;
|
|
9
9
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
10
|
+
use Fleetbase\Traits\HasMetaAttributes;
|
|
10
11
|
use Fleetbase\Traits\HasPublicId;
|
|
11
12
|
use Fleetbase\Traits\HasUuid;
|
|
12
13
|
use Fleetbase\Traits\Searchable;
|
|
@@ -27,6 +28,7 @@ class Vehicle extends Model
|
|
|
27
28
|
use Searchable;
|
|
28
29
|
use HasSlug;
|
|
29
30
|
use LogsActivity;
|
|
31
|
+
use HasMetaAttributes;
|
|
30
32
|
|
|
31
33
|
/**
|
|
32
34
|
* The database table used by the model.
|
|
@@ -54,7 +56,7 @@ class Vehicle extends Model
|
|
|
54
56
|
*
|
|
55
57
|
* @var array
|
|
56
58
|
*/
|
|
57
|
-
protected $filterParams = ['vendor', 'driver', 'driver_uuid'];
|
|
59
|
+
protected $filterParams = ['vendor', 'driver', 'driver_uuid', 'vehicle_make', 'vehicle_model'];
|
|
58
60
|
|
|
59
61
|
/**
|
|
60
62
|
* Relationships to auto load with driver.
|
|
@@ -165,7 +167,7 @@ class Vehicle extends Model
|
|
|
165
167
|
'location' => Point::class,
|
|
166
168
|
'meta' => Json::class,
|
|
167
169
|
'telematics' => Json::class,
|
|
168
|
-
'
|
|
170
|
+
'model_data' => Json::class,
|
|
169
171
|
'vin_data' => Json::class,
|
|
170
172
|
'online' => 'boolean',
|
|
171
173
|
];
|
|
@@ -92,4 +92,32 @@ class VehicleDevice extends Model
|
|
|
92
92
|
{
|
|
93
93
|
return $this->hasMany(VehicleDeviceEvent::class);
|
|
94
94
|
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Retrieve the associated Vehicle model for the current instance.
|
|
98
|
+
*
|
|
99
|
+
* @param \Closure|null $callback a callback function to be executed if a Vehicle model is found
|
|
100
|
+
*
|
|
101
|
+
* @return \App\Models\Vehicle|null the associated Vehicle model, or null if not found
|
|
102
|
+
*/
|
|
103
|
+
public function getVehicle(?\Closure $callback): ?Vehicle
|
|
104
|
+
{
|
|
105
|
+
$this->load(['vehicle']);
|
|
106
|
+
$vehicle = null;
|
|
107
|
+
|
|
108
|
+
if ($this->vehicle instanceof Vehicle) {
|
|
109
|
+
$vehicle = $this->vehicle;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// check if id is set
|
|
113
|
+
if (!$vehicle && $this->vehicle_uuid) {
|
|
114
|
+
$vehicle = Vehicle::where('uuid', $this->vehicle_uuid)->first();
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if ($vehicle && is_callable($callback)) {
|
|
118
|
+
$callback($vehicle);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return $vehicle;
|
|
122
|
+
}
|
|
95
123
|
}
|
|
@@ -182,6 +182,22 @@ class Vendor extends Model
|
|
|
182
182
|
return $this->belongsTo(\Fleetbase\Models\File::class);
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
+
/**
|
|
186
|
+
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
|
187
|
+
*/
|
|
188
|
+
public function facilitatorOrders()
|
|
189
|
+
{
|
|
190
|
+
return $this->hasMany(Order::class, 'facilitator_uuid', 'uuid');
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
|
195
|
+
*/
|
|
196
|
+
public function customerOrders()
|
|
197
|
+
{
|
|
198
|
+
return $this->hasMany(Order::class, 'customer_uuid')->whereNull('deleted_at')->withoutGlobalScopes();
|
|
199
|
+
}
|
|
200
|
+
|
|
185
201
|
/**
|
|
186
202
|
* Get the vendor logo url.
|
|
187
203
|
*
|
|
@@ -44,6 +44,6 @@ class DriverObserver
|
|
|
44
44
|
User::where(['uuid' => $driver->user_uuid, 'type' => 'driver'])->delete();
|
|
45
45
|
|
|
46
46
|
// also unassign them from any order they are assigned to
|
|
47
|
-
Order::where(['
|
|
47
|
+
Order::where(['driver_assigned_uuid' => $driver->uuid])->update(['driver_assigned_uuid' => null]);
|
|
48
48
|
}
|
|
49
49
|
}
|
package/server/src/routes.php
CHANGED
|
@@ -184,6 +184,14 @@ Route::prefix(config('fleetops.api.routing.prefix', null))->namespace('Fleetbase
|
|
|
184
184
|
*/
|
|
185
185
|
$router->prefix(config('fleetops.api.routing.internal_prefix', 'int'))->namespace('Internal')->group(
|
|
186
186
|
function ($router) {
|
|
187
|
+
$router->group(
|
|
188
|
+
['prefix' => 'v1/fleet-ops/navigator', 'namespace' => 'v1'],
|
|
189
|
+
function ($router) {
|
|
190
|
+
$router->get('get-link-app', 'NavigatorController@getLinkAppUrl');
|
|
191
|
+
$router->get('link-app', 'NavigatorController@linkApp');
|
|
192
|
+
}
|
|
193
|
+
);
|
|
194
|
+
|
|
187
195
|
$router->group(
|
|
188
196
|
['prefix' => 'v1', 'namespace' => 'v1', 'middleware' => ['fleetbase.protected', \Fleetbase\FleetOps\Http\Middleware\TransformLocationMiddleware::class]],
|
|
189
197
|
function ($router) {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from '@fleetbase/console/components/file-icon';
|