@fleetbase/fleetops-engine 0.4.4 → 0.4.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 +1 -0
- package/addon/components/driver-panel.hbs +1 -0
- package/addon/components/edit-order-route-panel.hbs +1 -0
- package/addon/components/fleet-form-panel.hbs +1 -0
- package/addon/components/fleet-panel.hbs +1 -0
- package/addon/components/fuel-report-form-panel.hbs +1 -0
- package/addon/components/fuel-report-panel.hbs +1 -0
- package/addon/components/issue-form-panel.hbs +1 -0
- package/addon/components/issue-panel.hbs +1 -0
- package/addon/components/place-form-panel.hbs +1 -0
- package/addon/components/place-panel.hbs +1 -0
- package/addon/components/vehicle-form-panel.hbs +1 -0
- package/addon/components/vehicle-panel.hbs +1 -0
- package/addon/components/vendor-form-panel.hbs +1 -0
- package/addon/components/vendor-panel.hbs +1 -0
- package/addon/components/widget/fleet-ops-key-metrics.hbs +19 -0
- package/addon/components/widget/fleet-ops-key-metrics.js +85 -0
- package/addon/controllers/operations/orders/index.js +1 -1
- package/addon/engine.js +18 -12
- package/addon/styles/fleetops-engine.css +2 -2
- package/app/components/widget/{issues.js → fleet-ops-key-metrics.js} +1 -1
- package/composer.json +6 -6
- package/extension.json +1 -1
- package/package.json +3 -4
- package/server/src/Casts/MultiPolygon.php +3 -3
- package/server/src/Casts/Point.php +2 -2
- package/server/src/Casts/Polygon.php +3 -3
- package/server/src/Console/Commands/DispatchAdhocOrders.php +1 -1
- package/server/src/Events/DriverSimulatedLocationChanged.php +1 -1
- package/server/src/Flow/Activity.php +12 -0
- package/server/src/Flow/Config.php +7 -0
- package/server/src/Flow/Logic.php +7 -0
- package/server/src/Http/Controllers/Api/v1/DriverController.php +2 -1
- package/server/src/Http/Controllers/Api/v1/OrderController.php +3 -3
- package/server/src/Http/Controllers/Api/v1/PlaceController.php +1 -1
- package/server/src/Http/Controllers/Api/v1/ServiceAreaController.php +1 -1
- package/server/src/Http/Controllers/Api/v1/TrackingStatusController.php +1 -1
- package/server/src/Http/Controllers/Api/v1/ZoneController.php +1 -1
- package/server/src/Http/Controllers/Internal/v1/DriverController.php +1 -1
- package/server/src/Http/Controllers/Internal/v1/GeocoderController.php +2 -2
- package/server/src/Http/Controllers/Internal/v1/MetricsController.php +6 -50
- package/server/src/Http/Controllers/Internal/v1/OrderController.php +2 -2
- package/server/src/Http/Controllers/Internal/v1/PlaceController.php +1 -1
- package/server/src/Http/Filter/PlaceFilter.php +1 -1
- package/server/src/Http/Resources/v1/Driver.php +1 -1
- package/server/src/Http/Resources/v1/FuelReport.php +1 -1
- package/server/src/Http/Resources/v1/Issue.php +1 -1
- package/server/src/Http/Resources/v1/Payload.php +1 -0
- package/server/src/Http/Resources/v1/Place.php +1 -1
- package/server/src/Http/Resources/v1/TrackingStatus.php +1 -1
- package/server/src/Http/Resources/v1/Vehicle.php +1 -1
- package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +1 -1
- package/server/src/Http/Resources/v1/Waypoint.php +2 -4
- package/server/src/Integrations/Lalamove/LalamoveDeliveryStop.php +2 -2
- package/server/src/Jobs/SimulateWaypointReached.php +2 -2
- package/server/src/Models/Contact.php +6 -18
- package/server/src/Models/Driver.php +7 -19
- package/server/src/Models/Fleet.php +6 -25
- package/server/src/Models/FuelReport.php +1 -1
- package/server/src/Models/Issue.php +1 -1
- package/server/src/Models/Order.php +15 -19
- package/server/src/Models/Payload.php +7 -7
- package/server/src/Models/Place.php +14 -14
- package/server/src/Models/Position.php +1 -1
- package/server/src/Models/ServiceArea.php +14 -14
- package/server/src/Models/TrackingNumber.php +1 -1
- package/server/src/Models/TrackingStatus.php +1 -1
- package/server/src/Models/Vehicle.php +7 -19
- package/server/src/Models/VehicleDeviceEvent.php +1 -1
- package/server/src/Models/Vendor.php +8 -25
- package/server/src/Models/Waypoint.php +6 -6
- package/server/src/Models/Zone.php +8 -8
- package/server/src/Observers/DriverObserver.php +1 -1
- package/server/src/Observers/TrackingNumberObserver.php +1 -1
- package/server/src/Rules/ResolvablePoint.php +1 -1
- package/server/src/Support/Encoding/Polyline.php +1 -1
- package/server/src/Support/OSRM.php +1 -1
- package/server/src/Support/Utils.php +60 -60
- package/server/src/Traits/HasTrackingNumber.php +3 -3
- package/server/src/routes.php +1 -4
- package/translations/en-us.yaml +1 -0
- package/addon/components/widget/fleet-ops-quickstart.hbs +0 -40
- package/addon/components/widget/fleet-ops-quickstart.js +0 -59
- package/addon/components/widget/issues.hbs +0 -1
- package/addon/components/widget/key-metrics.hbs +0 -121
- package/addon/components/widget/key-metrics.js +0 -46
- package/addon/components/widget/live-order-map.hbs +0 -59
- package/addon/components/widget/live-order-map.js +0 -11
- package/addon/components/widget/recent-orders.hbs +0 -35
- package/addon/components/widget/recent-orders.js +0 -24
- package/addon/components/widget/transaction-earnings.hbs +0 -1
- package/addon/components/widget/transactions.hbs +0 -36
- package/addon/components/widget/transactions.js +0 -29
- package/addon/components/widget/weekly-orders.hbs +0 -1
- package/addon/components/widget/weekly-orders.js +0 -3
- package/app/components/widget/key-metrics.js +0 -1
- package/app/components/widget/live-order-map.js +0 -1
- package/app/components/widget/recent-orders.js +0 -1
- package/app/components/widget/transaction-earnings.js +0 -1
- package/app/components/widget/transactions.js +0 -1
- package/app/components/widget/weekly-orders.js +0 -1
|
@@ -8,6 +8,12 @@ use Illuminate\Http\Request;
|
|
|
8
8
|
|
|
9
9
|
class MetricsController extends Controller
|
|
10
10
|
{
|
|
11
|
+
/**
|
|
12
|
+
* Gets all key metrics for the current session.
|
|
13
|
+
*
|
|
14
|
+
* @param \Illuminate\Http\Request $request
|
|
15
|
+
* @return \Illuminate\Http\Response
|
|
16
|
+
*/
|
|
11
17
|
public function all(Request $request)
|
|
12
18
|
{
|
|
13
19
|
$start = $request->date('start');
|
|
@@ -22,54 +28,4 @@ class MetricsController extends Controller
|
|
|
22
28
|
|
|
23
29
|
return response()->json($data);
|
|
24
30
|
}
|
|
25
|
-
|
|
26
|
-
public function dashboard(Request $request)
|
|
27
|
-
{
|
|
28
|
-
$start = $request->date('start');
|
|
29
|
-
$end = $request->date('end');
|
|
30
|
-
$discover = $request->array('discover', []);
|
|
31
|
-
$metrics = [];
|
|
32
|
-
|
|
33
|
-
try {
|
|
34
|
-
$metrics = Metrics::forCompany($request->user()->company, $start, $end)->with($discover)->get();
|
|
35
|
-
} catch (\Exception $e) {
|
|
36
|
-
return response()->error($e->getMessage());
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// metrics format map
|
|
40
|
-
$metricsFormats = [
|
|
41
|
-
'earnings' => 'money',
|
|
42
|
-
'fuel_costs' => 'money',
|
|
43
|
-
'total_distance_traveled' => 'meters',
|
|
44
|
-
];
|
|
45
|
-
|
|
46
|
-
// dashboard config
|
|
47
|
-
$dashboardConfig = [
|
|
48
|
-
[
|
|
49
|
-
'size' => 12,
|
|
50
|
-
'title' => 'Fleet-Ops Metrics',
|
|
51
|
-
'classList' => [],
|
|
52
|
-
'component' => null,
|
|
53
|
-
'queryParams' => [
|
|
54
|
-
'start' => ['component' => 'date-picker'],
|
|
55
|
-
'end' => ['component' => 'date-picker'],
|
|
56
|
-
],
|
|
57
|
-
'widgets' => collect($metrics)
|
|
58
|
-
->map(function ($value, $key) use ($metricsFormats) {
|
|
59
|
-
return [
|
|
60
|
-
'component' => 'count',
|
|
61
|
-
'options' => [
|
|
62
|
-
'format' => $metricsFormats[$key] ?? null,
|
|
63
|
-
'title' => str_replace('_', ' ', \Illuminate\Support\Str::title($key)),
|
|
64
|
-
'value' => $value,
|
|
65
|
-
],
|
|
66
|
-
];
|
|
67
|
-
})
|
|
68
|
-
->values()
|
|
69
|
-
->toArray(),
|
|
70
|
-
],
|
|
71
|
-
];
|
|
72
|
-
|
|
73
|
-
return response()->json(array_values($dashboardConfig));
|
|
74
|
-
}
|
|
75
31
|
}
|
|
@@ -381,7 +381,7 @@ class OrderController extends FleetOpsController
|
|
|
381
381
|
$flow = $activity = Flow::getNextActivity($order);
|
|
382
382
|
|
|
383
383
|
/**
|
|
384
|
-
* @var \
|
|
384
|
+
* @var \Fleetbase\LaravelMysqlSpatial\Types\Point
|
|
385
385
|
*/
|
|
386
386
|
$location = $order->getLastLocation();
|
|
387
387
|
|
|
@@ -453,7 +453,7 @@ class OrderController extends FleetOpsController
|
|
|
453
453
|
}
|
|
454
454
|
|
|
455
455
|
/**
|
|
456
|
-
* @var \
|
|
456
|
+
* @var \Fleetbase\LaravelMysqlSpatial\Types\Point
|
|
457
457
|
*/
|
|
458
458
|
$location = $order->getLastLocation();
|
|
459
459
|
|
|
@@ -8,7 +8,7 @@ use Fleetbase\FleetOps\Models\Place;
|
|
|
8
8
|
use Fleetbase\FleetOps\Support\Geocoding;
|
|
9
9
|
use Fleetbase\Http\Requests\ExportRequest;
|
|
10
10
|
use Fleetbase\Http\Requests\Internal\BulkDeleteRequest;
|
|
11
|
-
use
|
|
11
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
12
12
|
use Illuminate\Http\Request;
|
|
13
13
|
use Illuminate\Support\Str;
|
|
14
14
|
use Maatwebsite\Excel\Facades\Excel;
|
|
@@ -6,7 +6,7 @@ use Fleetbase\FleetOps\Models\ServiceArea;
|
|
|
6
6
|
use Fleetbase\FleetOps\Models\Zone;
|
|
7
7
|
use Fleetbase\FleetOps\Support\Utils;
|
|
8
8
|
use Fleetbase\Http\Filter\Filter;
|
|
9
|
-
use
|
|
9
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Geometry;
|
|
10
10
|
|
|
11
11
|
class PlaceFilter extends Filter
|
|
12
12
|
{
|
|
@@ -4,8 +4,8 @@ namespace Fleetbase\FleetOps\Http\Resources\v1;
|
|
|
4
4
|
|
|
5
5
|
use Fleetbase\FleetOps\Support\Utils;
|
|
6
6
|
use Fleetbase\Http\Resources\FleetbaseResource;
|
|
7
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
7
8
|
use Fleetbase\Support\Http;
|
|
8
|
-
use Grimzy\LaravelMysqlSpatial\Types\Point;
|
|
9
9
|
|
|
10
10
|
class Driver extends FleetbaseResource
|
|
11
11
|
{
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
namespace Fleetbase\FleetOps\Http\Resources\v1;
|
|
4
4
|
|
|
5
5
|
use Fleetbase\Http\Resources\FleetbaseResource;
|
|
6
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
6
7
|
use Fleetbase\Support\Http;
|
|
7
|
-
use Grimzy\LaravelMysqlSpatial\Types\Point;
|
|
8
8
|
|
|
9
9
|
class FuelReport extends FleetbaseResource
|
|
10
10
|
{
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
namespace Fleetbase\FleetOps\Http\Resources\v1;
|
|
4
4
|
|
|
5
5
|
use Fleetbase\Http\Resources\FleetbaseResource;
|
|
6
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
6
7
|
use Fleetbase\Support\Http;
|
|
7
|
-
use Grimzy\LaravelMysqlSpatial\Types\Point;
|
|
8
8
|
|
|
9
9
|
class Issue extends FleetbaseResource
|
|
10
10
|
{
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
namespace Fleetbase\FleetOps\Http\Resources\v1;
|
|
4
4
|
|
|
5
5
|
use Fleetbase\Http\Resources\FleetbaseResource;
|
|
6
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
6
7
|
use Fleetbase\Support\Http;
|
|
7
8
|
use Fleetbase\Support\Resolve;
|
|
8
|
-
use Grimzy\LaravelMysqlSpatial\Types\Point;
|
|
9
9
|
|
|
10
10
|
class Place extends FleetbaseResource
|
|
11
11
|
{
|
|
@@ -4,8 +4,8 @@ namespace Fleetbase\FleetOps\Http\Resources\v1;
|
|
|
4
4
|
|
|
5
5
|
use Fleetbase\FleetOps\Support\Utils;
|
|
6
6
|
use Fleetbase\Http\Resources\FleetbaseResource;
|
|
7
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
7
8
|
use Fleetbase\Support\Http;
|
|
8
|
-
use Grimzy\LaravelMysqlSpatial\Types\Point;
|
|
9
9
|
|
|
10
10
|
class TrackingStatus extends FleetbaseResource
|
|
11
11
|
{
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
namespace Fleetbase\FleetOps\Http\Resources\v1;
|
|
4
4
|
|
|
5
5
|
use Fleetbase\Http\Resources\FleetbaseResource;
|
|
6
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
6
7
|
use Fleetbase\Support\Http;
|
|
7
|
-
use Grimzy\LaravelMysqlSpatial\Types\Point;
|
|
8
8
|
|
|
9
9
|
class Vehicle extends FleetbaseResource
|
|
10
10
|
{
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
namespace Fleetbase\FleetOps\Http\Resources\v1;
|
|
4
4
|
|
|
5
5
|
use Fleetbase\Http\Resources\FleetbaseResource;
|
|
6
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
6
7
|
use Fleetbase\Support\Http;
|
|
7
|
-
use Grimzy\LaravelMysqlSpatial\Types\Point;
|
|
8
8
|
|
|
9
9
|
class VehicleWithoutDriver extends FleetbaseResource
|
|
10
10
|
{
|
|
@@ -4,9 +4,9 @@ namespace Fleetbase\FleetOps\Http\Resources\v1;
|
|
|
4
4
|
|
|
5
5
|
use Fleetbase\FleetOps\Models\Waypoint as WaypointModel;
|
|
6
6
|
use Fleetbase\Http\Resources\FleetbaseResource;
|
|
7
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
7
8
|
use Fleetbase\Support\Http;
|
|
8
9
|
use Fleetbase\Support\Resolve;
|
|
9
|
-
use Grimzy\LaravelMysqlSpatial\Types\Point;
|
|
10
10
|
|
|
11
11
|
class Waypoint extends FleetbaseResource
|
|
12
12
|
{
|
|
@@ -56,9 +56,7 @@ class Waypoint extends FleetbaseResource
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
/**
|
|
59
|
-
* Finds the waypoint got a payload and place
|
|
60
|
-
*
|
|
61
|
-
* @return WaypointModel|null
|
|
59
|
+
* Finds the waypoint got a payload and place.
|
|
62
60
|
*/
|
|
63
61
|
private function getWaypoint(): ?WaypointModel
|
|
64
62
|
{
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
namespace Fleetbase\FleetOps\Integrations\Lalamove;
|
|
4
4
|
|
|
5
5
|
use Fleetbase\FleetOps\Models\Place;
|
|
6
|
-
use
|
|
7
|
-
use
|
|
6
|
+
use Fleetbase\LaravelMysqlSpatial\Eloquent\SpatialExpression;
|
|
7
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
8
8
|
use Illuminate\Support\Str;
|
|
9
9
|
|
|
10
10
|
class LalamoveDeliveryStop
|
|
@@ -4,7 +4,7 @@ namespace Fleetbase\FleetOps\Jobs;
|
|
|
4
4
|
|
|
5
5
|
use Fleetbase\FleetOps\Events\DriverSimulatedLocationChanged;
|
|
6
6
|
use Fleetbase\FleetOps\Models\Driver;
|
|
7
|
-
use
|
|
7
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
8
8
|
use Illuminate\Bus\Queueable;
|
|
9
9
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
10
10
|
use Illuminate\Foundation\Bus\Dispatchable;
|
|
@@ -28,7 +28,7 @@ class SimulateWaypointReached implements ShouldQueue
|
|
|
28
28
|
public Driver $driver;
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
|
-
* @var \
|
|
31
|
+
* @var \Fleetbase\LaravelMysqlSpatial\Types\Point the waypoint that the driver is simulated to have reached
|
|
32
32
|
*/
|
|
33
33
|
public Point $waypoint;
|
|
34
34
|
|
|
@@ -13,6 +13,7 @@ use Fleetbase\Traits\Searchable;
|
|
|
13
13
|
use Fleetbase\Traits\SendsWebhooks;
|
|
14
14
|
use Fleetbase\Traits\TracksApiCredential;
|
|
15
15
|
use Illuminate\Notifications\Notifiable;
|
|
16
|
+
use Spatie\Activitylog\LogOptions;
|
|
16
17
|
use Spatie\Activitylog\Traits\CausesActivity;
|
|
17
18
|
use Spatie\Activitylog\Traits\LogsActivity;
|
|
18
19
|
use Spatie\Sluggable\HasSlug;
|
|
@@ -92,25 +93,12 @@ class Contact extends Model
|
|
|
92
93
|
protected $filterParams = ['place_uuid', 'customer_type', 'facilitator_type', 'place'];
|
|
93
94
|
|
|
94
95
|
/**
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
* @var array
|
|
96
|
+
* Get the activity log options for the model.
|
|
98
97
|
*/
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
*
|
|
104
|
-
* @var bool
|
|
105
|
-
*/
|
|
106
|
-
protected static $submitEmptyLogs = false;
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* The name of the subject to log.
|
|
110
|
-
*
|
|
111
|
-
* @var string
|
|
112
|
-
*/
|
|
113
|
-
protected static $logName = 'contact';
|
|
98
|
+
public function getActivitylogOptions(): LogOptions
|
|
99
|
+
{
|
|
100
|
+
return LogOptions::defaults()->logOnly(['*'])->logOnlyDirty();
|
|
101
|
+
}
|
|
114
102
|
|
|
115
103
|
/**
|
|
116
104
|
* Get the options for generating the slug.
|
|
@@ -7,6 +7,7 @@ use Fleetbase\FleetOps\Casts\Point;
|
|
|
7
7
|
use Fleetbase\FleetOps\Scopes\DriverScope;
|
|
8
8
|
use Fleetbase\FleetOps\Support\Utils;
|
|
9
9
|
use Fleetbase\FleetOps\Support\Utils as FleetOpsUtils;
|
|
10
|
+
use Fleetbase\LaravelMysqlSpatial\Eloquent\SpatialTrait;
|
|
10
11
|
use Fleetbase\Models\Model;
|
|
11
12
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
12
13
|
use Fleetbase\Traits\HasInternalId;
|
|
@@ -14,11 +15,11 @@ use Fleetbase\Traits\HasPublicId;
|
|
|
14
15
|
use Fleetbase\Traits\HasUuid;
|
|
15
16
|
use Fleetbase\Traits\SendsWebhooks;
|
|
16
17
|
use Fleetbase\Traits\TracksApiCredential;
|
|
17
|
-
use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;
|
|
18
18
|
use Illuminate\Broadcasting\Channel;
|
|
19
19
|
use Illuminate\Notifications\Notifiable;
|
|
20
20
|
use Illuminate\Support\Facades\DB;
|
|
21
21
|
use Illuminate\Support\Str;
|
|
22
|
+
use Spatie\Activitylog\LogOptions;
|
|
22
23
|
use Spatie\Activitylog\Traits\CausesActivity;
|
|
23
24
|
use Spatie\Activitylog\Traits\LogsActivity;
|
|
24
25
|
use Spatie\Sluggable\HasSlug;
|
|
@@ -157,25 +158,12 @@ class Driver extends Model
|
|
|
157
158
|
protected $filterParams = ['vendor', 'facilitator', 'customer', 'fleet', 'photo_uuid', 'avatar_uuid'];
|
|
158
159
|
|
|
159
160
|
/**
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
* @var array
|
|
161
|
+
* Get the activity log options for the model.
|
|
163
162
|
*/
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
*
|
|
169
|
-
* @var bool
|
|
170
|
-
*/
|
|
171
|
-
protected static $submitEmptyLogs = false;
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* The name of the subject to log.
|
|
175
|
-
*
|
|
176
|
-
* @var string
|
|
177
|
-
*/
|
|
178
|
-
protected static $logName = 'driver';
|
|
163
|
+
public function getActivitylogOptions(): LogOptions
|
|
164
|
+
{
|
|
165
|
+
return LogOptions::defaults()->logOnly(['*'])->logOnlyDirty();
|
|
166
|
+
}
|
|
179
167
|
|
|
180
168
|
/**
|
|
181
169
|
* Get the options for generating the slug.
|
|
@@ -10,6 +10,7 @@ use Fleetbase\Traits\Searchable;
|
|
|
10
10
|
use Fleetbase\Traits\SendsWebhooks;
|
|
11
11
|
use Fleetbase\Traits\TracksApiCredential;
|
|
12
12
|
use Illuminate\Notifications\Notifiable;
|
|
13
|
+
use Spatie\Activitylog\LogOptions;
|
|
13
14
|
use Spatie\Activitylog\Traits\LogsActivity;
|
|
14
15
|
use Spatie\Sluggable\HasSlug;
|
|
15
16
|
use Spatie\Sluggable\SlugOptions;
|
|
@@ -48,32 +49,12 @@ class Fleet extends Model
|
|
|
48
49
|
protected $searchableColumns = ['name'];
|
|
49
50
|
|
|
50
51
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* @var array
|
|
52
|
+
* Get the activity log options for the model.
|
|
54
53
|
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
*
|
|
60
|
-
* @var bool
|
|
61
|
-
*/
|
|
62
|
-
protected static $submitEmptyLogs = false;
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* We only want to log changed attributes.
|
|
66
|
-
*
|
|
67
|
-
* @var bool
|
|
68
|
-
*/
|
|
69
|
-
protected static $logOnlyDirty = true;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* The name of the subject to log.
|
|
73
|
-
*
|
|
74
|
-
* @var string
|
|
75
|
-
*/
|
|
76
|
-
protected static $logName = 'fleet';
|
|
54
|
+
public function getActivitylogOptions(): LogOptions
|
|
55
|
+
{
|
|
56
|
+
return LogOptions::defaults()->logOnly(['name', 'task', 'service_area_uuid', 'zone_uuid'])->logOnlyDirty();
|
|
57
|
+
}
|
|
77
58
|
|
|
78
59
|
/**
|
|
79
60
|
* The flug options for this model.
|
|
@@ -5,13 +5,13 @@ namespace Fleetbase\FleetOps\Models;
|
|
|
5
5
|
use Fleetbase\Casts\Json;
|
|
6
6
|
use Fleetbase\FleetOps\Casts\Point;
|
|
7
7
|
use Fleetbase\FleetOps\Support\Utils;
|
|
8
|
+
use Fleetbase\LaravelMysqlSpatial\Eloquent\SpatialTrait;
|
|
8
9
|
use Fleetbase\Models\Model;
|
|
9
10
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
10
11
|
use Fleetbase\Traits\HasPublicId;
|
|
11
12
|
use Fleetbase\Traits\HasUuid;
|
|
12
13
|
use Fleetbase\Traits\Searchable;
|
|
13
14
|
use Fleetbase\Traits\TracksApiCredential;
|
|
14
|
-
use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;
|
|
15
15
|
|
|
16
16
|
class FuelReport extends Model
|
|
17
17
|
{
|
|
@@ -4,12 +4,12 @@ namespace Fleetbase\FleetOps\Models;
|
|
|
4
4
|
|
|
5
5
|
use Fleetbase\Casts\Json;
|
|
6
6
|
use Fleetbase\FleetOps\Casts\Point;
|
|
7
|
+
use Fleetbase\LaravelMysqlSpatial\Eloquent\SpatialTrait;
|
|
7
8
|
use Fleetbase\Models\Model;
|
|
8
9
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
9
10
|
use Fleetbase\Traits\HasPublicId;
|
|
10
11
|
use Fleetbase\Traits\HasUuid;
|
|
11
12
|
use Fleetbase\Traits\TracksApiCredential;
|
|
12
|
-
use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;
|
|
13
13
|
use Illuminate\Support\Str;
|
|
14
14
|
|
|
15
15
|
class Issue extends Model
|
|
@@ -12,6 +12,7 @@ use Fleetbase\FleetOps\Events\OrderDriverAssigned;
|
|
|
12
12
|
use Fleetbase\FleetOps\Support\Flow;
|
|
13
13
|
use Fleetbase\FleetOps\Support\Utils;
|
|
14
14
|
use Fleetbase\FleetOps\Traits\HasTrackingNumber;
|
|
15
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
15
16
|
use Fleetbase\Models\Model;
|
|
16
17
|
use Fleetbase\Models\Transaction;
|
|
17
18
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
@@ -23,9 +24,9 @@ use Fleetbase\Traits\HasUuid;
|
|
|
23
24
|
use Fleetbase\Traits\Searchable;
|
|
24
25
|
use Fleetbase\Traits\SendsWebhooks;
|
|
25
26
|
use Fleetbase\Traits\TracksApiCredential;
|
|
26
|
-
use Grimzy\LaravelMysqlSpatial\Types\Point;
|
|
27
27
|
use Illuminate\Support\Carbon;
|
|
28
28
|
use Illuminate\Support\Str;
|
|
29
|
+
use Spatie\Activitylog\LogOptions;
|
|
29
30
|
use Spatie\Activitylog\Traits\LogsActivity;
|
|
30
31
|
|
|
31
32
|
class Order extends Model
|
|
@@ -201,25 +202,12 @@ class Order extends Model
|
|
|
201
202
|
];
|
|
202
203
|
|
|
203
204
|
/**
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
* @var array
|
|
207
|
-
*/
|
|
208
|
-
protected static $logAttributes = '*';
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Do not log empty changed.
|
|
212
|
-
*
|
|
213
|
-
* @var bool
|
|
205
|
+
* Get the activity log options for the model.
|
|
214
206
|
*/
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
*
|
|
220
|
-
* @var string
|
|
221
|
-
*/
|
|
222
|
-
protected static $logName = 'order';
|
|
207
|
+
public function getActivitylogOptions(): LogOptions
|
|
208
|
+
{
|
|
209
|
+
return LogOptions::defaults()->logOnly(['*'])->logOnlyDirty();
|
|
210
|
+
}
|
|
223
211
|
|
|
224
212
|
/**
|
|
225
213
|
* @return \Barryvdh\DomPDF\PDF
|
|
@@ -339,6 +327,14 @@ class Order extends Model
|
|
|
339
327
|
return $this->hasMany(\Fleetbase\Models\File::class, 'subject_uuid')->latest();
|
|
340
328
|
}
|
|
341
329
|
|
|
330
|
+
/**
|
|
331
|
+
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
|
332
|
+
*/
|
|
333
|
+
public function customFields()
|
|
334
|
+
{
|
|
335
|
+
return $this->hasMany(\Fleetbase\Models\CustomField::class, 'subject_uuid')->orderBy('order');
|
|
336
|
+
}
|
|
337
|
+
|
|
342
338
|
/**
|
|
343
339
|
* @return \Illuminate\Database\Eloquent\Relations\HasManyThrough
|
|
344
340
|
*/
|
|
@@ -5,13 +5,13 @@ namespace Fleetbase\FleetOps\Models;
|
|
|
5
5
|
use Fleetbase\Casts\Json;
|
|
6
6
|
use Fleetbase\FleetOps\Support\Utils;
|
|
7
7
|
use Fleetbase\Http\Resources\Internal\v1\Payload as PayloadResource;
|
|
8
|
+
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
8
9
|
use Fleetbase\Models\Model;
|
|
9
10
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
10
11
|
use Fleetbase\Traits\HasMetaAttributes;
|
|
11
12
|
use Fleetbase\Traits\HasPublicId;
|
|
12
13
|
use Fleetbase\Traits\HasUuid;
|
|
13
14
|
use Fleetbase\Traits\TracksApiCredential;
|
|
14
|
-
use Grimzy\LaravelMysqlSpatial\Types\Point;
|
|
15
15
|
use Illuminate\Support\Facades\DB;
|
|
16
16
|
use Illuminate\Support\Str;
|
|
17
17
|
|
|
@@ -562,7 +562,7 @@ class Payload extends Model
|
|
|
562
562
|
/**
|
|
563
563
|
* Get the pickup location for the payload.
|
|
564
564
|
*
|
|
565
|
-
* @return \
|
|
565
|
+
* @return \Fleetbase\LaravelMysqlSpatial\Types\Point
|
|
566
566
|
*/
|
|
567
567
|
public function getPickupLocation()
|
|
568
568
|
{
|
|
@@ -653,8 +653,8 @@ class Payload extends Model
|
|
|
653
653
|
/**
|
|
654
654
|
* Set the first waypoint and update activity.
|
|
655
655
|
*
|
|
656
|
-
* @param array
|
|
657
|
-
* @param \
|
|
656
|
+
* @param array $activity
|
|
657
|
+
* @param \Fleetbase\LaravelMysqlSpatial\Types\Point $location
|
|
658
658
|
*
|
|
659
659
|
* @return void
|
|
660
660
|
*/
|
|
@@ -682,9 +682,9 @@ class Payload extends Model
|
|
|
682
682
|
/**
|
|
683
683
|
* Update the current waypoint activity and it's entities.
|
|
684
684
|
*
|
|
685
|
-
* @param array
|
|
686
|
-
* @param \
|
|
687
|
-
* @param \Fleetbase\Models\Proof|string|null
|
|
685
|
+
* @param array $activity
|
|
686
|
+
* @param \Fleetbase\LaravelMysqlSpatial\Types\Point $location
|
|
687
|
+
* @param \Fleetbase\Models\Proof|string|null $proof resolvable proof of delivery/activity
|
|
688
688
|
*
|
|
689
689
|
* @return $this
|
|
690
690
|
*/
|
|
@@ -6,6 +6,7 @@ use Fleetbase\Casts\Json;
|
|
|
6
6
|
use Fleetbase\FleetOps\Casts\Point;
|
|
7
7
|
use Fleetbase\FleetOps\Support\Geocoding;
|
|
8
8
|
use Fleetbase\FleetOps\Support\Utils;
|
|
9
|
+
use Fleetbase\LaravelMysqlSpatial\Eloquent\SpatialTrait;
|
|
9
10
|
use Fleetbase\Models\Model;
|
|
10
11
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
11
12
|
use Fleetbase\Traits\HasMetaAttributes;
|
|
@@ -14,7 +15,6 @@ use Fleetbase\Traits\HasUuid;
|
|
|
14
15
|
use Fleetbase\Traits\Searchable;
|
|
15
16
|
use Fleetbase\Traits\SendsWebhooks;
|
|
16
17
|
use Fleetbase\Traits\TracksApiCredential;
|
|
17
|
-
use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;
|
|
18
18
|
use Illuminate\Support\Carbon;
|
|
19
19
|
use Illuminate\Support\Facades\DB;
|
|
20
20
|
use Illuminate\Support\Str;
|
|
@@ -171,7 +171,7 @@ class Place extends Model
|
|
|
171
171
|
/**
|
|
172
172
|
* Returns a Point instance from the location of the model.
|
|
173
173
|
*/
|
|
174
|
-
public function getLocationAsPoint(): \
|
|
174
|
+
public function getLocationAsPoint(): \Fleetbase\LaravelMysqlSpatial\Types\Point
|
|
175
175
|
{
|
|
176
176
|
return Utils::getPointFromCoordinates($this->location);
|
|
177
177
|
}
|
|
@@ -218,7 +218,7 @@ class Place extends Model
|
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
if ($coordinates = $address->getCoordinates()) {
|
|
221
|
-
$this->setAttribute('location', new \
|
|
221
|
+
$this->setAttribute('location', new \Fleetbase\LaravelMysqlSpatial\Types\Point($coordinates->getLatitude(), $coordinates->getLongitude()));
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
return $this;
|
|
@@ -245,7 +245,7 @@ class Place extends Model
|
|
|
245
245
|
$attributes['city'] = $address->getLocality();
|
|
246
246
|
$attributes['building'] = $address->getStreetNumber();
|
|
247
247
|
$attributes['country'] = $address->getCountry() instanceof \Geocoder\Model\Country ? $address->getCountry()->getCode() : null;
|
|
248
|
-
$attributes['location'] = new \
|
|
248
|
+
$attributes['location'] = new \Fleetbase\LaravelMysqlSpatial\Types\Point($coordinates->getLatitude(), $coordinates->getLongitude());
|
|
249
249
|
|
|
250
250
|
return $attributes;
|
|
251
251
|
}
|
|
@@ -303,7 +303,7 @@ class Place extends Model
|
|
|
303
303
|
*
|
|
304
304
|
* @return \Fleetbase\Models\Place|null
|
|
305
305
|
*/
|
|
306
|
-
public static function createFromReverseGeocodingLookup(\
|
|
306
|
+
public static function createFromReverseGeocodingLookup(\Fleetbase\LaravelMysqlSpatial\Types\Point $point, $saveInstance = false): ?Place
|
|
307
307
|
{
|
|
308
308
|
$results = Geocoding::reverseFromCoordinates($point->getLat(), $point->getLng());
|
|
309
309
|
$place = $results->first();
|
|
@@ -322,8 +322,8 @@ class Place extends Model
|
|
|
322
322
|
/**
|
|
323
323
|
* Creates a new Place instance from given coordinates.
|
|
324
324
|
*
|
|
325
|
-
* @param \
|
|
326
|
-
* @param bool
|
|
325
|
+
* @param \Fleetbase\LaravelMysqlSpatial\Types\Point|array $coordinates
|
|
326
|
+
* @param bool $saveInstance
|
|
327
327
|
*
|
|
328
328
|
* @return \Fleetbase\Models\Place|null
|
|
329
329
|
*/
|
|
@@ -332,15 +332,15 @@ class Place extends Model
|
|
|
332
332
|
$instance = new Place();
|
|
333
333
|
$point = Utils::getPointFromMixed($coordinates);
|
|
334
334
|
|
|
335
|
-
if ($coordinates instanceof \
|
|
335
|
+
if ($coordinates instanceof \Fleetbase\LaravelMysqlSpatial\Types\Point) {
|
|
336
336
|
$latitude = $coordinates->getLat();
|
|
337
337
|
$longitude = $coordinates->getLng();
|
|
338
|
-
} elseif ($point instanceof \
|
|
338
|
+
} elseif ($point instanceof \Fleetbase\LaravelMysqlSpatial\Types\Point) {
|
|
339
339
|
$latitude = $point->getLat();
|
|
340
340
|
$longitude = $point->getLng();
|
|
341
341
|
}
|
|
342
342
|
|
|
343
|
-
$instance->setAttribute('location', new \
|
|
343
|
+
$instance->setAttribute('location', new \Fleetbase\LaravelMysqlSpatial\Types\Point($latitude, $longitude));
|
|
344
344
|
$instance->fill($attributes);
|
|
345
345
|
|
|
346
346
|
$results = \Geocoder\Laravel\Facades\Geocoder::reverse($latitude, $longitude)->get();
|
|
@@ -361,8 +361,8 @@ class Place extends Model
|
|
|
361
361
|
/**
|
|
362
362
|
* Inserts a new place into the database using latitude and longitude coordinates.
|
|
363
363
|
*
|
|
364
|
-
* @param \
|
|
365
|
-
* @param \
|
|
364
|
+
* @param \Fleetbase\LaravelMysqlSpatial\Types\Point|array $coordinates
|
|
365
|
+
* @param \Fleetbase\LaravelMysqlSpatial\Types\Point|string|array $coordinates the coordinates to use for the new place
|
|
366
366
|
*
|
|
367
367
|
* @return mixed returns the UUID of the new place on success or false on failure
|
|
368
368
|
*/
|
|
@@ -371,11 +371,11 @@ class Place extends Model
|
|
|
371
371
|
$attributes = array_merge([], $attributes);
|
|
372
372
|
$point = Utils::getPointFromMixed($coordinates);
|
|
373
373
|
|
|
374
|
-
if ($coordinates instanceof \
|
|
374
|
+
if ($coordinates instanceof \Fleetbase\LaravelMysqlSpatial\Types\Point) {
|
|
375
375
|
$attributes['location'] = $coordinates;
|
|
376
376
|
$latitude = $coordinates->getLat();
|
|
377
377
|
$longitude = $coordinates->getLng();
|
|
378
|
-
} elseif ($point instanceof \
|
|
378
|
+
} elseif ($point instanceof \Fleetbase\LaravelMysqlSpatial\Types\Point) {
|
|
379
379
|
$attributes['location'] = $point;
|
|
380
380
|
$latitude = $point->getLat();
|
|
381
381
|
$longitude = $point->getLng();
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
namespace Fleetbase\FleetOps\Models;
|
|
4
4
|
|
|
5
|
+
use Fleetbase\LaravelMysqlSpatial\Eloquent\SpatialTrait;
|
|
5
6
|
use Fleetbase\Models\Model;
|
|
6
7
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
7
8
|
use Fleetbase\Traits\HasUuid;
|
|
8
9
|
use Fleetbase\Traits\TracksApiCredential;
|
|
9
|
-
use Grimzy\LaravelMysqlSpatial\Eloquent\SpatialTrait;
|
|
10
10
|
|
|
11
11
|
class Position extends Model
|
|
12
12
|
{
|