@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.
Files changed (154) hide show
  1. package/addon/components/contact-form-panel.hbs +28 -6
  2. package/addon/components/driver-form-panel.hbs +10 -0
  3. package/addon/components/driver-form-panel.js +51 -0
  4. package/addon/components/driver-panel/details.hbs +1 -5
  5. package/addon/components/driver-panel.hbs +21 -3
  6. package/addon/components/fleet-form-panel.hbs +60 -6
  7. package/addon/components/fleet-listing-panel.hbs +2 -2
  8. package/addon/components/fleet-panel/details.hbs +1 -1
  9. package/addon/components/fuel-report-form-panel.hbs +84 -8
  10. package/addon/components/fuel-report-form-panel.js +6 -0
  11. package/addon/components/fuel-report-panel/details.hbs +4 -0
  12. package/addon/components/issue-form-panel.hbs +99 -11
  13. package/addon/components/issue-form-panel.js +5 -13
  14. package/addon/components/layout/fleet-ops-sidebar/fleet-listing.hbs +1 -0
  15. package/addon/components/layout/fleet-ops-sidebar/fleet-listing.js +3 -0
  16. package/addon/components/layout/fleet-ops-sidebar.hbs +4 -4
  17. package/addon/components/layout/fleet-ops-sidebar.js +10 -0
  18. package/addon/components/live-map-drawer.hbs +1 -1
  19. package/addon/components/live-map.hbs +1 -1
  20. package/addon/components/modals/driver-assign-vehicle.hbs +2 -11
  21. package/addon/components/modals/driver-assign-vendor.hbs +1 -9
  22. package/addon/components/modals/fuel-report-details.hbs +4 -0
  23. package/addon/components/order/schedule-card.hbs +32 -4
  24. package/addon/components/order/schedule-card.js +155 -5
  25. package/addon/components/place-form-panel.hbs +14 -7
  26. package/addon/components/place-form-panel.js +71 -0
  27. package/addon/components/place-panel/details.hbs +9 -19
  28. package/addon/components/vehicle-form-panel.hbs +67 -7
  29. package/addon/components/vehicle-form-panel.js +37 -0
  30. package/addon/components/vehicle-panel/details.hbs +9 -5
  31. package/addon/components/vehicle-panel.hbs +18 -4
  32. package/addon/components/vendor-form-panel/create-form.hbs +72 -11
  33. package/addon/components/vendor-form-panel/edit-form.hbs +1 -1
  34. package/addon/components/vendor-form-panel.hbs +70 -30
  35. package/addon/components/vendor-form-panel.js +4 -40
  36. package/addon/components/vendor-panel/details.hbs +2 -2
  37. package/addon/components/vendor-panel.hbs +16 -2
  38. package/addon/controllers/management/contacts/index.js +49 -3
  39. package/addon/controllers/management/drivers/index.js +7 -0
  40. package/addon/controllers/management/fleets/index.js +19 -23
  41. package/addon/controllers/management/fuel-reports/index/new.js +1 -1
  42. package/addon/controllers/management/fuel-reports/index.js +80 -20
  43. package/addon/controllers/management/issues/index/new.js +2 -2
  44. package/addon/controllers/management/issues/index.js +72 -45
  45. package/addon/controllers/management/places/index.js +65 -18
  46. package/addon/controllers/management/vehicles/index.js +56 -4
  47. package/addon/controllers/management/vendors/index.js +70 -8
  48. package/addon/controllers/operations/orders/index.js +42 -1
  49. package/addon/controllers/operations/service-rates/index.js +7 -0
  50. package/addon/routes/management/contacts/index.js +8 -0
  51. package/addon/routes/management/fleets/index.js +8 -2
  52. package/addon/routes/management/fuel-reports/index.js +6 -0
  53. package/addon/routes/management/issues/index.js +9 -1
  54. package/addon/routes/management/places/index.js +11 -1
  55. package/addon/routes/management/vehicles/index.js +1 -1
  56. package/addon/routes/management/vendors/index.js +8 -0
  57. package/addon/routes/operations/scheduler/index.js +1 -1
  58. package/addon/templates/management/contacts/index.hbs +1 -0
  59. package/addon/templates/management/drivers/index.hbs +2 -1
  60. package/addon/templates/management/fleets/index.hbs +23 -3
  61. package/addon/templates/management/fuel-reports/index.hbs +1 -0
  62. package/addon/templates/management/issues/index.hbs +22 -2
  63. package/addon/templates/management/places/index.hbs +9 -1
  64. package/addon/templates/management/vehicles/index.hbs +22 -2
  65. package/addon/templates/management/vendors/index.hbs +22 -2
  66. package/addon/templates/operations/orders/index.hbs +1 -1
  67. package/addon/templates/operations/service-rates/index.hbs +11 -3
  68. package/addon/utils/get-issue-categories.js +30 -0
  69. package/addon/utils/get-issue-types.js +3 -0
  70. package/addon/utils/get-vendor-status-options.js +3 -0
  71. package/addon/utils/get-vendor-type-options.js +41 -0
  72. package/app/components/layout/fleet-ops-sidebar/fleet-listing.js +1 -0
  73. package/app/utils/get-issue-categories.js +1 -0
  74. package/app/utils/get-issue-types.js +1 -0
  75. package/app/utils/get-vendor-categories.js +1 -0
  76. package/app/utils/get-vendor-status-options.js +1 -0
  77. package/app/utils/get-vendor-type-options.js +1 -0
  78. package/app/utils/get-vendor-types.js +1 -0
  79. package/composer.json +1 -1
  80. package/extension.json +1 -1
  81. package/package.json +4 -4
  82. package/server/migrations/2023_04_27_053456_create_contacts_table.php +2 -2
  83. package/server/migrations/2023_04_27_053456_create_drivers_table.php +5 -5
  84. package/server/migrations/2023_04_27_053456_create_entities_table.php +5 -5
  85. package/server/migrations/2023_04_27_053456_create_fleet_drivers_table.php +2 -2
  86. package/server/migrations/2023_04_27_053456_create_fleets_table.php +3 -3
  87. package/server/migrations/2023_04_27_053456_create_fuel_reports_table.php +3 -3
  88. package/server/migrations/2023_04_27_053456_create_issues_table.php +4 -4
  89. package/server/migrations/2023_04_27_053456_create_orders_table.php +8 -8
  90. package/server/migrations/2023_04_27_053456_create_payloads_table.php +5 -5
  91. package/server/migrations/2023_04_27_053456_create_places_table.php +1 -1
  92. package/server/migrations/2023_04_27_053456_create_purchase_rates_table.php +4 -4
  93. package/server/migrations/2023_04_27_053456_create_service_areas_table.php +2 -2
  94. package/server/migrations/2023_04_27_053456_create_service_quote_items_table.php +1 -1
  95. package/server/migrations/2023_04_27_053456_create_service_quotes_table.php +3 -3
  96. package/server/migrations/2023_04_27_053456_create_service_rate_fees_table.php +1 -1
  97. package/server/migrations/2023_04_27_053456_create_service_rate_parcel_fees_table.php +1 -1
  98. package/server/migrations/2023_04_27_053456_create_service_rates_table.php +3 -3
  99. package/server/migrations/2023_04_27_053456_create_tracking_numbers_table.php +3 -3
  100. package/server/migrations/2023_04_27_053456_create_tracking_statuses_table.php +2 -2
  101. package/server/migrations/2023_04_27_053456_create_vehicles_table.php +3 -3
  102. package/server/migrations/2023_04_27_053456_create_vendors_table.php +5 -5
  103. package/server/migrations/2023_04_27_053456_create_waypoints_table.php +4 -4
  104. package/server/migrations/2023_04_27_053456_create_zones_table.php +2 -2
  105. package/server/migrations/2023_11_09_041807_add_status_column_to_fuel_reports_table.php +32 -0
  106. package/server/migrations/2023_11_15_062814_add_comments_column_and_resolved_at_column_to_vehicle_device_events_table.php +33 -0
  107. package/server/migrations/2023_11_17_053001_add_category_uuid_to_entities_table.php +33 -0
  108. package/server/src/Http/Controllers/Api/v1/DriverController.php +2 -2
  109. package/server/src/Http/Controllers/Api/v1/EntityController.php +2 -0
  110. package/server/src/Http/Controllers/Api/v1/VehicleController.php +2 -2
  111. package/server/src/Http/Controllers/Internal/v1/DriverController.php +5 -14
  112. package/server/src/Http/Controllers/Internal/v1/OrderController.php +1 -3
  113. package/server/src/Http/Filter/ContactFilter.php +10 -0
  114. package/server/src/Http/Filter/FleetFilter.php +8 -6
  115. package/server/src/Http/Filter/FuelReportFilter.php +51 -0
  116. package/server/src/Http/Filter/IssueFilter.php +61 -5
  117. package/server/src/Http/Filter/PlaceFilter.php +48 -6
  118. package/server/src/Http/Filter/VehicleFilter.php +21 -6
  119. package/server/src/Http/Filter/VendorFilter.php +11 -8
  120. package/server/src/Http/Middleware/TransformLocationMiddleware.php +1 -1
  121. package/server/src/Http/Resources/Internal/v1/IntegratedVendorFacilitator.php +17 -18
  122. package/server/src/Http/Resources/v1/Contact.php +16 -19
  123. package/server/src/Http/Resources/v1/CurrentJob.php +13 -16
  124. package/server/src/Http/Resources/v1/Driver.php +59 -57
  125. package/server/src/Http/Resources/v1/Entity.php +30 -33
  126. package/server/src/Http/Resources/v1/Fleet.php +19 -17
  127. package/server/src/Http/Resources/v1/FuelReport.php +16 -14
  128. package/server/src/Http/Resources/v1/Order.php +1 -1
  129. package/server/src/Http/Resources/v1/Payload.php +21 -24
  130. package/server/src/Http/Resources/v1/Place.php +27 -30
  131. package/server/src/Http/Resources/v1/Proof.php +13 -16
  132. package/server/src/Http/Resources/v1/PurchaseRate.php +14 -17
  133. package/server/src/Http/Resources/v1/ServiceArea.php +13 -16
  134. package/server/src/Http/Resources/v1/ServiceQuote.php +15 -18
  135. package/server/src/Http/Resources/v1/ServiceRate.php +33 -36
  136. package/server/src/Http/Resources/v1/ServiceRateFee.php +14 -17
  137. package/server/src/Http/Resources/v1/ServiceRateParcelFee.php +9 -12
  138. package/server/src/Http/Resources/v1/TrackingNumber.php +18 -21
  139. package/server/src/Http/Resources/v1/TrackingStatus.php +18 -21
  140. package/server/src/Http/Resources/v1/Vehicle.php +31 -34
  141. package/server/src/Http/Resources/v1/VehicleDevice.php +23 -25
  142. package/server/src/Http/Resources/v1/VehicleWithoutDriver.php +38 -32
  143. package/server/src/Http/Resources/v1/Vendor.php +31 -26
  144. package/server/src/Http/Resources/v1/Zone.php +14 -17
  145. package/server/src/Models/Driver.php +23 -1
  146. package/server/src/Models/Entity.php +18 -23
  147. package/server/src/Models/FuelReport.php +1 -0
  148. package/server/src/Models/IntegratedVendor.php +6 -1
  149. package/server/src/Models/Order.php +2 -2
  150. package/server/src/Models/Place.php +2 -2
  151. package/server/src/Models/Vehicle.php +4 -2
  152. package/server/src/Models/VehicleDeviceEvent.php +1 -0
  153. package/server/src/Models/Vendor.php +1 -1
  154. 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->string('company_uuid', 191)->nullable()->index('tracking_statuses_company_uuid_foreign');
22
- $table->string('tracking_number_uuid', 191)->nullable()->index('tracking_statuses_tracking_number_uuid_foreign');
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->string('company_uuid', 191)->nullable()->index();
22
- $table->string('vendor_uuid', 191)->nullable()->index('vehicles_vendor_uuid_foreign');
23
- $table->string('photo_uuid', 191)->nullable()->index('vehicles_photo_uuid_foreign');
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->string('company_uuid', 191)->nullable()->index();
22
- $table->string('place_uuid', 191)->nullable()->index('vendors_place_uuid_foreign');
23
- $table->string('type_uuid', 191)->nullable()->index('vendors_type_uuid_foreign');
24
- $table->string('connect_company_uuid', 191)->nullable()->index('vendors_connect_company_uuid_foreign');
25
- $table->string('logo_uuid', 191)->nullable()->index('vendors_logo_uuid_foreign');
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->string('company_uuid', 191)->nullable()->index('waypoints_company_uuid_foreign');
22
- $table->string('place_uuid', 191)->nullable()->index('waypoints_place_uuid_foreign');
23
- $table->string('payload_uuid', 191)->nullable()->index('waypoints_payload_uuid_foreign');
24
- $table->string('tracking_number_uuid', 191)->nullable()->index();
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->string('company_uuid', 191)->nullable()->index('zones_company_uuid_foreign');
22
- $table->string('service_area_uuid', 191)->nullable()->index();
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', 'location', 'meta', 'avatar_uuid', 'photo_uuid'])
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', 'location', 'meta', 'avatar_uuid', 'photo_uuid'])
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['phone'] ?? Str::random(14);
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', 'location', 'meta', 'avatar_uuid', 'photo_uuid'])->toArray();
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('uuid', $zone);
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 assignee(?string $assignee)
78
+ public function driver(?string $driver)
38
79
  {
39
- $this->builder->whereHas('assignedBy', function ($q) use ($assignee) {
40
- if (Str::isUuid($assignee)) {
41
- $q->where('uuid', $assignee);
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($assignee);
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 internalId(?string $internalId)
23
+ public function publicId(?string $publicId)
24
24
  {
25
- $this->builder->searchWhere('internal_id', $internalId);
25
+ $this->builder->searchWhere('public_id', $publicId);
26
26
  }
27
27
 
28
- public function publicId(?string $publicId)
28
+ public function postalCode(?string $postalCode)
29
29
  {
30
- $this->builder->searchWhere('public_id', $publicId);
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 email(?string $email)
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('email', $email);
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 name(?string $name)
20
+ public function display_name(?string $display_name)
21
21
  {
22
- $this->builder->searchWhere(['year', 'model_make_display', 'make', 'model', 'trim', 'plate_number'], $name);
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 $make)
40
+ public function vehicleMake(?string $vehicleMake)
41
41
  {
42
- $this->builder->searchWhere('make', $make);
42
+ $this->builder->searchWhere('make', $vehicleMake);
43
43
  }
44
44
 
45
- public function vehicleModel(?string $model)
45
+ public function vehicleModel(?string $vehicle_model)
46
46
  {
47
- $this->builder->searchWhere('model', $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(