@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
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Issues" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
3
|
+
<FiltersPicker
|
|
4
|
+
@columns={{this.columns}}
|
|
5
|
+
@onApply={{fn this.filters.apply this}}
|
|
6
|
+
@onClear={{fn this.filters.reset this}}
|
|
7
|
+
@onFilterClear={{this.filters.clear}}
|
|
8
|
+
@onChange={{this.filters.set}}
|
|
9
|
+
@buttonWrapperClass="mr-2"
|
|
10
|
+
/>
|
|
3
11
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
12
|
{{#if (safe-has this.table "selectedRows")}}
|
|
5
13
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
@@ -17,7 +25,19 @@
|
|
|
17
25
|
</Layout::Section::Header>
|
|
18
26
|
|
|
19
27
|
<Layout::Section::Body>
|
|
20
|
-
<Table
|
|
28
|
+
<Table
|
|
29
|
+
@rows={{@model}}
|
|
30
|
+
@columns={{this.columns}}
|
|
31
|
+
@selectable={{true}}
|
|
32
|
+
@canSelectAll={{true}}
|
|
33
|
+
@onSetup={{fn (mut this.table)}}
|
|
34
|
+
@pagination={{true}}
|
|
35
|
+
@paginationMeta={{@model.meta}}
|
|
36
|
+
@page={{this.page}}
|
|
37
|
+
@onPageChange={{fn (mut this.page)}}
|
|
38
|
+
@tfootVerticalOffset="53"
|
|
39
|
+
@tfootVerticalOffsetElements=".next-view-section-subheader"
|
|
40
|
+
/>
|
|
21
41
|
</Layout::Section::Body>
|
|
22
42
|
|
|
23
43
|
{{outlet}}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Places" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
3
|
+
<FiltersPicker
|
|
4
|
+
@columns={{this.columns}}
|
|
5
|
+
@onApply={{fn this.filters.apply this}}
|
|
6
|
+
@onClear={{fn this.filters.reset this}}
|
|
7
|
+
@onFilterClear={{this.filters.clear}}
|
|
8
|
+
@onChange={{this.filters.set}}
|
|
9
|
+
@buttonWrapperClass="mr-2"
|
|
10
|
+
/>
|
|
3
11
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
12
|
{{#if (safe-has this.table "selectedRows")}}
|
|
5
13
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Vehicles" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
3
|
+
<FiltersPicker
|
|
4
|
+
@columns={{this.columns}}
|
|
5
|
+
@onApply={{fn this.filters.apply this}}
|
|
6
|
+
@onClear={{fn this.filters.reset this}}
|
|
7
|
+
@onFilterClear={{this.filters.clear}}
|
|
8
|
+
@onChange={{this.filters.set}}
|
|
9
|
+
@buttonWrapperClass="mr-2"
|
|
10
|
+
/>
|
|
3
11
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
12
|
{{#if (safe-has this.table "selectedRows")}}
|
|
5
13
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
@@ -17,6 +25,18 @@
|
|
|
17
25
|
</Layout::Section::Header>
|
|
18
26
|
|
|
19
27
|
<Layout::Section::Body>
|
|
20
|
-
<Table
|
|
28
|
+
<Table
|
|
29
|
+
@rows={{@model}}
|
|
30
|
+
@columns={{this.columns}}
|
|
31
|
+
@selectable={{true}}
|
|
32
|
+
@canSelectAll={{true}}
|
|
33
|
+
@onSetup={{fn (mut this.table)}}
|
|
34
|
+
@pagination={{true}}
|
|
35
|
+
@paginationMeta={{@model.meta}}
|
|
36
|
+
@page={{this.page}}
|
|
37
|
+
@onPageChange={{fn (mut this.page)}}
|
|
38
|
+
@tfootVerticalOffset="53"
|
|
39
|
+
@tfootVerticalOffsetElements=".next-view-section-subheader"
|
|
40
|
+
/>
|
|
21
41
|
</Layout::Section::Body>
|
|
22
42
|
{{outlet}}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Vendors" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
3
|
+
<FiltersPicker
|
|
4
|
+
@columns={{this.columns}}
|
|
5
|
+
@onApply={{fn this.filters.apply this}}
|
|
6
|
+
@onClear={{fn this.filters.reset this}}
|
|
7
|
+
@onFilterClear={{this.filters.clear}}
|
|
8
|
+
@onChange={{this.filters.set}}
|
|
9
|
+
@buttonWrapperClass="mr-2"
|
|
10
|
+
/>
|
|
3
11
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
12
|
{{#if (safe-has this.table "selectedRows")}}
|
|
5
13
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
@@ -17,6 +25,18 @@
|
|
|
17
25
|
</Layout::Section::Header>
|
|
18
26
|
|
|
19
27
|
<Layout::Section::Body>
|
|
20
|
-
<Table
|
|
28
|
+
<Table
|
|
29
|
+
@rows={{this.rows}}
|
|
30
|
+
@columns={{this.columns}}
|
|
31
|
+
@selectable={{true}}
|
|
32
|
+
@canSelectAll={{true}}
|
|
33
|
+
@onSetup={{fn (mut this.table)}}
|
|
34
|
+
@pagination={{true}}
|
|
35
|
+
@paginationMeta={{@model.meta}}
|
|
36
|
+
@page={{this.page}}
|
|
37
|
+
@onPageChange={{fn (mut this.page)}}
|
|
38
|
+
@tfootVerticalOffset="53"
|
|
39
|
+
@tfootVerticalOffsetElements=".next-view-section-subheader"
|
|
40
|
+
/>
|
|
21
41
|
</Layout::Section::Body>
|
|
22
42
|
{{outlet}}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<GlobalSearch @visible={{this.isSearchVisible}} @onPressOrder={{this.viewOrder}} />
|
|
16
16
|
<MapContainer::Toolbar @activeOrdersCount={{this.activeOrdersCount}} @liveMap={{this.liveMap}} @map={{this.leafletMap}} @onPressViewOrders={{this.toggleOrdersPanel}} @onPressSearch={{this.toggleSearch}} @onPressCreateOrder={{this.createOrder}} @onPressLiveMapDrawerToggle={{this.onPressLiveMapDrawerToggle}} />
|
|
17
17
|
<OrderListOverlay @noBackdrop={{true}} @fullHeight={{true}} @outView={{not this.isOrdersPanelVisible}} @width={{if (media 'isMobile') "100%" "338px"}} @onPressCancel={{this.hideOrdersPanel}} @onPressCreateOrder={{this.createOrder}} @onPressViewOrder={{this.viewOrder}} @onPressCreateFleet={{this.fleetController.createFleet}} @onPressManageFleet={{this.fleetController.viewFleet}} @onPressCancelOrders={{this.bulkCancelOrders}} @onPressDeleteOrders={{this.bulkDeleteOrders}} />
|
|
18
|
-
<LiveMap id="leafletMap" class="next-leaflet-container-map" @lat={{1.3521}} @lng={{103.8198}} @zoom={{12}} @zoomControl={{false}} @onLoad={{this.setMapReference}} @onDrawerReady={{this.setDrawerContext}} {{set-container-dimensions}} />
|
|
18
|
+
<LiveMap id="leafletMap" class="next-leaflet-container-map" @lat={{1.3521}} @lng={{103.8198}} @zoom={{12}} @zoomControl={{false}} @onLoad={{this.setMapReference}} @onDrawerReady={{this.setDrawerContext}} @isDrawerMinimized={{not this.drawerOpen}} @onDrawerResizeEnd={{this.onDrawerResizeEnd}} @onDrawerTabChanged={{this.onDrawerTabChanged}} @drawerTab={{this.drawerTab}} {{set-container-dimensions}} />
|
|
19
19
|
</MapContainer>
|
|
20
20
|
{{/if}}
|
|
21
21
|
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
<Layout::Section::Header @title="Service Rates" @searchQuery={{this.query}} @onSearch={{perform this.search}}>
|
|
2
|
-
<
|
|
2
|
+
<Button @icon="refresh" @onClick={{this.reload}} @helpText="Reload data" class="mr-2" />
|
|
3
|
+
<FiltersPicker
|
|
4
|
+
@columns={{this.columns}}
|
|
5
|
+
@onApply={{fn this.filters.apply this}}
|
|
6
|
+
@onClear={{fn this.filters.reset this}}
|
|
7
|
+
@onFilterClear={{this.filters.clear}}
|
|
8
|
+
@onChange={{this.filters.set}}
|
|
9
|
+
@buttonWrapperClass="mr-2"
|
|
10
|
+
/>
|
|
3
11
|
<VisibleColumnPicker @columns={{this.columns}} @onChange={{fn (mut this.columns)}} class="mr-2" />
|
|
4
|
-
|
|
12
|
+
{{#if (safe-has this.table "selectedRows")}}
|
|
5
13
|
<DropdownButton @icon="layer-group" @text="Bulk Action" @type="magic" @size="sm" @buttonWrapperClass="mr-2" @contentClass="dropdown-menu" as |dd|>
|
|
6
14
|
<div class="next-dd-menu mt-2 mx-0">
|
|
7
15
|
<div class="px-1">
|
|
@@ -12,7 +20,7 @@
|
|
|
12
20
|
</div>
|
|
13
21
|
</DropdownButton>
|
|
14
22
|
{{/if}}
|
|
15
|
-
<Button @icon="plus" @iconPrefix="fas" @type="primary" @text="New" class="mr-2" @onClick={{transition-to
|
|
23
|
+
<Button @icon="plus" @iconPrefix="fas" @type="primary" @text="New" class="mr-2" @onClick={{transition-to "operations.service-rates.index.new"}} />
|
|
16
24
|
<Button @icon="long-arrow-up" @iconClass="rotate-icon-45" @text="Export" />
|
|
17
25
|
</Layout::Section::Header>
|
|
18
26
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { isNone } from '@ember/utils';
|
|
2
|
+
|
|
3
|
+
export default function getIssueCategories(type = null, options) {
|
|
4
|
+
const issueCategories = {
|
|
5
|
+
vehicle: ['Mechanical Problems', 'Cosmetic Damages', 'Tire Issues', 'Electronics and Instruments', 'Maintenance Alerts', 'Fuel Efficiency Issues'],
|
|
6
|
+
driver: ['Behavior Concerns', 'Documentation', 'Time Management', 'Communication', 'Training Needs', 'Health and Safety Violations'],
|
|
7
|
+
route: ['Inefficient Routes', 'Safety Concerns', 'Blocked Routes', 'Environmental Considerations', 'Unfavorable Weather Conditions'],
|
|
8
|
+
'payload-cargo': ['Damaged Goods', 'Misplaced Goods', 'Documentation Issues', 'Temperature-Sensitive Goods', 'Incorrect Cargo Loading'],
|
|
9
|
+
'software-technical': ['Bugs', 'UI/UX Concerns', 'Integration Failures', 'Performance', 'Feature Requests', 'Security Vulnerabilities'],
|
|
10
|
+
operational: ['Compliance', 'Resource Allocation', 'Cost Overruns', 'Communication', 'Vendor Management Issues'],
|
|
11
|
+
customer: ['Service Quality', 'Billing Discrepancies', 'Communication Breakdown', 'Feedback and Suggestions', 'Order Errors'],
|
|
12
|
+
security: ['Unauthorized Access', 'Data Concerns', 'Physical Security', 'Data Integrity Issues'],
|
|
13
|
+
'environmental-sustainability': ['Fuel Consumption', 'Carbon Footprint', 'Waste Management', 'Green Initiatives Opportunities'],
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
if (!isNone(type) && typeof type === 'object' && options === undefined) {
|
|
17
|
+
options = type;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (!isNone(options) && typeof options === 'object' && options.fullObject === true) {
|
|
21
|
+
return issueCategories;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (type) {
|
|
25
|
+
return issueCategories[type] || [];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const allIssueCategories = Object.values(issueCategories).flat();
|
|
29
|
+
return allIssueCategories;
|
|
30
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export default function getVendorTypeOptions() {
|
|
2
|
+
return [
|
|
3
|
+
'carrier-trucking-company',
|
|
4
|
+
'carrier-shipping-line',
|
|
5
|
+
'carrier-air-cargo',
|
|
6
|
+
'carrier-rail',
|
|
7
|
+
'freight-forwarder',
|
|
8
|
+
'warehouse-provider',
|
|
9
|
+
'broker',
|
|
10
|
+
'maintenance-repair-facility',
|
|
11
|
+
'fuel-station',
|
|
12
|
+
'tire-service-provider',
|
|
13
|
+
'equipment-rental',
|
|
14
|
+
'customs-broker',
|
|
15
|
+
'third-party-logistics-provider',
|
|
16
|
+
'technology-provider',
|
|
17
|
+
'consultant',
|
|
18
|
+
'insurance-provider',
|
|
19
|
+
'last-mile-delivery-service',
|
|
20
|
+
'packing-crating-service',
|
|
21
|
+
'intermodal-operator',
|
|
22
|
+
'drayage-service-provider',
|
|
23
|
+
'cold-chain-provider',
|
|
24
|
+
'hazardous-material-specialist',
|
|
25
|
+
'parcel-courier',
|
|
26
|
+
'bulk-material-handler',
|
|
27
|
+
'towing-service',
|
|
28
|
+
'cargo-inspector',
|
|
29
|
+
'pallet-provider',
|
|
30
|
+
'label-packaging-material-supplier',
|
|
31
|
+
'driver-leasing-service',
|
|
32
|
+
'vehicle-manufacturer',
|
|
33
|
+
'vehicle-dealership',
|
|
34
|
+
'parts-supplier',
|
|
35
|
+
'logistics-association',
|
|
36
|
+
'regulatory-body',
|
|
37
|
+
'training-certification-provider',
|
|
38
|
+
'general-vendor',
|
|
39
|
+
'ecommerce',
|
|
40
|
+
];
|
|
41
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/components/layout/fleet-ops-sidebar/fleet-listing';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/utils/get-issue-categories';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/utils/get-issue-types';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/utils/get-vendor-categories';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/utils/get-vendor-status-options';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/utils/get-vendor-type-options';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@fleetbase/fleetops-engine/utils/get-vendor-types';
|
package/composer.json
CHANGED
package/extension.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fleetbase/fleetops-engine",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"description": "Fleet & Transport Management Extension for Fleetbase",
|
|
5
5
|
"fleetbase": {
|
|
6
6
|
"route": "fleet-ops",
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"publish:github": "npm config set '@fleetbase:registry' https://npm.pkg.github.com/ && npm publish"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@fleetbase/ember-core": "^0.1.
|
|
43
|
-
"@fleetbase/ember-ui": "^0.2.
|
|
44
|
-
"@fleetbase/fleetops-data": "^0.1.
|
|
42
|
+
"@fleetbase/ember-core": "^0.1.8",
|
|
43
|
+
"@fleetbase/ember-ui": "^0.2.6",
|
|
44
|
+
"@fleetbase/fleetops-data": "^0.1.5",
|
|
45
45
|
"@fleetbase/leaflet-routing-machine": "^3.2.16",
|
|
46
46
|
"@fortawesome/ember-fontawesome": "^0.4.1",
|
|
47
47
|
"@fortawesome/fontawesome-svg-core": "^6.4.0",
|
|
@@ -19,9 +19,9 @@ return new class extends Migration
|
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->unique();
|
|
21
21
|
$table->string('internal_id')->nullable();
|
|
22
|
-
$table->
|
|
22
|
+
$table->uuid('company_uuid')->nullable()->index('contacts_company_uuid_foreign');
|
|
23
23
|
$table->char('user_uuid', 36)->nullable()->index();
|
|
24
|
-
$table->
|
|
24
|
+
$table->uuid('photo_uuid')->nullable()->index('contacts_photo_uuid_foreign');
|
|
25
25
|
$table->string('name')->nullable();
|
|
26
26
|
$table->string('title')->nullable();
|
|
27
27
|
$table->string('email', 191)->nullable()->index();
|
|
@@ -19,12 +19,12 @@ return new class extends Migration
|
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->unique();
|
|
21
21
|
$table->string('internal_id')->nullable();
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
24
|
-
$table->
|
|
22
|
+
$table->uuid('company_uuid')->nullable()->index('drivers_company_uuid_foreign');
|
|
23
|
+
$table->uuid('vehicle_uuid')->nullable()->index('drivers_vehicle_uuid_foreign');
|
|
24
|
+
$table->uuid('vendor_uuid')->nullable()->index('drivers_vendor_uuid_foreign');
|
|
25
25
|
$table->string('vendor_type')->nullable();
|
|
26
|
-
$table->
|
|
27
|
-
$table->
|
|
26
|
+
$table->uuid('current_job_uuid')->nullable()->index('drivers_current_job_uuid_foreign');
|
|
27
|
+
$table->uuid('user_uuid')->nullable()->index();
|
|
28
28
|
$table->string('auth_token')->nullable();
|
|
29
29
|
$table->string('drivers_license_number')->nullable();
|
|
30
30
|
$table->string('signup_token_used')->nullable();
|
|
@@ -18,13 +18,13 @@ 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->
|
|
24
|
-
$table->
|
|
21
|
+
$table->uuid('payload_uuid')->nullable()->index('entities_payload_uuid_foreign');
|
|
22
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
23
|
+
$table->uuid('driver_assigned_uuid')->nullable()->index('entities_driver_assigned_uuid_foreign');
|
|
24
|
+
$table->uuid('destination_uuid')->nullable()->index();
|
|
25
25
|
$table->string('customer_uuid')->nullable();
|
|
26
26
|
$table->string('customer_type')->nullable();
|
|
27
|
-
$table->
|
|
27
|
+
$table->uuid('tracking_number_uuid')->nullable()->index('entities_tracking_number_uuid_foreign');
|
|
28
28
|
$table->mediumText('photo_uuid')->nullable();
|
|
29
29
|
$table->string('_import_id', 191)->nullable()->index();
|
|
30
30
|
$table->string('internal_id', 191)->nullable()->index();
|
|
@@ -17,8 +17,8 @@ return new class extends Migration
|
|
|
17
17
|
$table->increments('id');
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
|
-
$table->
|
|
21
|
-
$table->
|
|
20
|
+
$table->uuid('fleet_uuid')->nullable()->index();
|
|
21
|
+
$table->uuid('driver_uuid')->nullable()->index();
|
|
22
22
|
$table->softDeletes();
|
|
23
23
|
$table->timestamp('created_at')->nullable()->index();
|
|
24
24
|
$table->timestamp('updated_at')->nullable();
|
|
@@ -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()->unique();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
22
|
+
$table->uuid('service_area_uuid')->nullable()->index('fleets_service_area_uuid_foreign');
|
|
23
|
+
$table->uuid('zone_uuid')->nullable()->index('fleets_zone_uuid_foreign');
|
|
24
24
|
$table->string('image_uuid')->nullable();
|
|
25
25
|
$table->string('name')->nullable();
|
|
26
26
|
$table->string('color')->nullable();
|
|
@@ -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()->unique();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
22
|
+
$table->uuid('driver_uuid')->nullable()->index('fuel_reports_driver_uuid_foreign');
|
|
23
|
+
$table->uuid('vehicle_uuid')->nullable()->index('fuel_reports_vehicle_uuid_foreign');
|
|
24
24
|
$table->string('odometer')->nullable();
|
|
25
25
|
$table->point('location');
|
|
26
26
|
$table->string('latitude')->nullable();
|
|
@@ -19,10 +19,10 @@ return new class extends Migration
|
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->unique();
|
|
21
21
|
$table->string('issue_id', 191)->nullable()->unique();
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
24
|
-
$table->
|
|
25
|
-
$table->
|
|
22
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
23
|
+
$table->uuid('driver_uuid')->nullable()->index('issues_driver_uuid_foreign');
|
|
24
|
+
$table->uuid('vehicle_uuid')->nullable()->index('issues_vehicle_uuid_foreign');
|
|
25
|
+
$table->uuid('assigned_to_uuid')->nullable()->index('issues_assigned_to_uuid_foreign');
|
|
26
26
|
$table->string('odometer')->nullable();
|
|
27
27
|
$table->point('location');
|
|
28
28
|
$table->string('latitude')->nullable();
|
|
@@ -18,21 +18,21 @@ return new class extends Migration
|
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->unique();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->unique();
|
|
21
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
22
22
|
$table->char('created_by_uuid', 36)->nullable()->index();
|
|
23
23
|
$table->char('updated_by_uuid', 36)->nullable()->index();
|
|
24
24
|
$table->string('internal_id')->nullable();
|
|
25
|
-
$table->
|
|
25
|
+
$table->uuid('customer_uuid')->nullable()->index();
|
|
26
26
|
$table->string('customer_type')->nullable();
|
|
27
27
|
$table->string('facilitator_uuid')->nullable();
|
|
28
28
|
$table->string('facilitator_type')->nullable();
|
|
29
|
-
$table->
|
|
30
|
-
$table->
|
|
29
|
+
$table->uuid('session_uuid')->nullable()->index('orders_session_uuid_foreign');
|
|
30
|
+
$table->uuid('payload_uuid')->nullable()->index('orders_payload_uuid_foreign');
|
|
31
31
|
$table->char('route_uuid', 36)->nullable()->index('orders_route_uuid_foreign');
|
|
32
|
-
$table->
|
|
33
|
-
$table->
|
|
34
|
-
$table->
|
|
35
|
-
$table->
|
|
32
|
+
$table->uuid('transaction_uuid')->nullable()->index('orders_transaction_uuid_foreign');
|
|
33
|
+
$table->uuid('purchase_rate_uuid')->nullable()->index('orders_purchase_rate_uuid_foreign');
|
|
34
|
+
$table->uuid('tracking_number_uuid')->nullable()->index('orders_tracking_number_uuid_foreign');
|
|
35
|
+
$table->uuid('driver_assigned_uuid')->nullable()->index('orders_driver_assigned_uuid_foreign');
|
|
36
36
|
$table->json('meta')->nullable();
|
|
37
37
|
$table->json('options')->nullable();
|
|
38
38
|
$table->boolean('dispatched')->default(false);
|
|
@@ -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()->index();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
24
|
-
$table->
|
|
25
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
22
|
+
$table->uuid('pickup_uuid')->nullable()->index('payloads_from_place_uuid_index');
|
|
23
|
+
$table->uuid('dropoff_uuid')->nullable()->index('payloads_to_place_uuid_index');
|
|
24
|
+
$table->uuid('return_uuid')->nullable()->index('payloads_return_uuid_foreign');
|
|
25
|
+
$table->uuid('current_waypoint_uuid')->nullable()->index();
|
|
26
26
|
$table->string('provider', 191)->nullable()->index();
|
|
27
27
|
$table->string('payment_method')->nullable();
|
|
28
28
|
$table->integer('cod_amount')->nullable();
|
|
@@ -19,7 +19,7 @@ return new class extends Migration
|
|
|
19
19
|
$table->string('uuid', 191)->nullable()->unique();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->unique();
|
|
21
21
|
$table->string('_import_id', 191)->nullable()->index();
|
|
22
|
-
$table->
|
|
22
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
23
23
|
$table->char('owner_uuid', 36)->nullable()->index();
|
|
24
24
|
$table->string('owner_type')->nullable();
|
|
25
25
|
$table->string('name')->nullable();
|
|
@@ -21,10 +21,10 @@ return new class extends Migration
|
|
|
21
21
|
$table->json('meta')->nullable();
|
|
22
22
|
$table->string('customer_uuid')->nullable();
|
|
23
23
|
$table->string('customer_type')->nullable();
|
|
24
|
-
$table->
|
|
25
|
-
$table->
|
|
26
|
-
$table->
|
|
27
|
-
$table->
|
|
24
|
+
$table->uuid('company_uuid')->nullable()->index('purchase_rates_company_uuid_foreign');
|
|
25
|
+
$table->uuid('transaction_uuid')->nullable()->index('purchase_rates_transaction_uuid_foreign');
|
|
26
|
+
$table->uuid('service_quote_uuid')->nullable()->index('purchase_rates_service_quote_uuid_foreign');
|
|
27
|
+
$table->uuid('payload_uuid')->nullable()->index('purchase_rates_payload_uuid_foreign');
|
|
28
28
|
$table->string('status')->nullable();
|
|
29
29
|
$table->softDeletes();
|
|
30
30
|
$table->timestamp('created_at')->nullable()->index();
|
|
@@ -18,14 +18,14 @@ 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->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index('service_areas_company_uuid_foreign');
|
|
22
22
|
$table->string('name')->nullable();
|
|
23
23
|
$table->string('type')->nullable();
|
|
24
24
|
$table->string('country')->nullable();
|
|
25
25
|
$table->multiPolygon('border')->nullable();
|
|
26
26
|
$table->string('color')->nullable();
|
|
27
27
|
$table->string('stroke_color')->nullable();
|
|
28
|
-
$table->
|
|
28
|
+
$table->uuid('parent_uuid')->nullable()->index('service_areas_parent_uuid_foreign');
|
|
29
29
|
$table->string('status')->nullable();
|
|
30
30
|
$table->softDeletes();
|
|
31
31
|
$table->timestamp('created_at')->nullable()->index();
|
|
@@ -17,7 +17,7 @@ return new class extends Migration
|
|
|
17
17
|
$table->increments('id');
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
|
-
$table->
|
|
20
|
+
$table->uuid('service_quote_uuid')->nullable()->index();
|
|
21
21
|
$table->string('amount')->nullable();
|
|
22
22
|
$table->string('currency')->nullable();
|
|
23
23
|
$table->string('details')->nullable();
|
|
@@ -19,9 +19,9 @@ return new class extends Migration
|
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
20
|
$table->string('public_id', 191)->nullable()->unique();
|
|
21
21
|
$table->string('request_id', 191)->nullable()->index('service_quotes_request_id_foreign');
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
24
|
-
$table->
|
|
22
|
+
$table->uuid('company_uuid')->nullable()->index('service_quotes_company_uuid_foreign');
|
|
23
|
+
$table->uuid('payload_uuid')->nullable()->index('service_quotes_payload_uuid_foreign');
|
|
24
|
+
$table->uuid('service_rate_uuid')->nullable()->index();
|
|
25
25
|
$table->integer('amount')->nullable();
|
|
26
26
|
$table->string('currency')->nullable();
|
|
27
27
|
$table->json('meta')->nullable();
|
|
@@ -17,7 +17,7 @@ return new class extends Migration
|
|
|
17
17
|
$table->increments('id');
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
|
-
$table->
|
|
20
|
+
$table->uuid('service_rate_uuid')->nullable()->index();
|
|
21
21
|
$table->integer('distance')->nullable();
|
|
22
22
|
$table->integer('min')->nullable();
|
|
23
23
|
$table->integer('max')->nullable();
|
|
@@ -17,7 +17,7 @@ return new class extends Migration
|
|
|
17
17
|
$table->increments('id');
|
|
18
18
|
$table->string('_key')->nullable();
|
|
19
19
|
$table->string('uuid', 191)->nullable()->index();
|
|
20
|
-
$table->
|
|
20
|
+
$table->uuid('service_rate_uuid')->nullable()->index();
|
|
21
21
|
$table->string('size')->nullable();
|
|
22
22
|
$table->string('length')->nullable();
|
|
23
23
|
$table->string('width')->nullable();
|
|
@@ -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()->unique();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
23
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
22
|
+
$table->uuid('service_area_uuid')->nullable()->index();
|
|
23
|
+
$table->uuid('zone_uuid')->nullable()->index();
|
|
24
24
|
$table->string('service_name')->nullable();
|
|
25
25
|
$table->string('service_type', 191)->nullable()->index();
|
|
26
26
|
$table->integer('base_fee')->default(0)->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', 191)->nullable()->unique();
|
|
21
|
-
$table->
|
|
22
|
-
$table->
|
|
21
|
+
$table->uuid('company_uuid')->nullable()->index();
|
|
22
|
+
$table->uuid('owner_uuid')->nullable()->index('tracking_numbers_owner_uuid_foreign');
|
|
23
23
|
$table->string('owner_type')->nullable();
|
|
24
|
-
$table->
|
|
24
|
+
$table->uuid('status_uuid')->nullable()->index('tracking_numbers_status_uuid_foreign');
|
|
25
25
|
$table->string('tracking_number', 191)->nullable()->index();
|
|
26
26
|
$table->string('region')->nullable();
|
|
27
27
|
$table->mediumText('qr_code')->nullable();
|