mirror of
https://github.com/Karaka-Management/oms-EquipmentManagement.git
synced 2026-02-14 09:18:41 +00:00
loan/investment/fleetmgmt fixes
This commit is contained in:
parent
a944c777dd
commit
4d527776ed
|
|
@ -1,7 +1,7 @@
|
|||
[
|
||||
{
|
||||
"type": "type",
|
||||
"name": "vehicle_profile_image",
|
||||
"name": "equipment_profile_image",
|
||||
"l11n": [
|
||||
{
|
||||
"title": "Profile image",
|
||||
|
|
@ -16,15 +16,15 @@
|
|||
{
|
||||
"type": "collection",
|
||||
"create_directory": true,
|
||||
"name": "FleetManagement",
|
||||
"name": "EquipmentManagement",
|
||||
"virtualPath": "/Modules",
|
||||
"user": 1
|
||||
},
|
||||
{
|
||||
"type": "collection",
|
||||
"create_directory": true,
|
||||
"name": "Vehicle",
|
||||
"virtualPath": "/Modules/FleetManagement",
|
||||
"name": "Equipment",
|
||||
"virtualPath": "/Modules/EquipmentManagement",
|
||||
"user": 1
|
||||
}
|
||||
]
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Admin\Install
|
||||
* @package Modules\EquipmentManagement\Admin\Install
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,14 +12,14 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Admin\Install;
|
||||
namespace Modules\EquipmentManagement\Admin\Install;
|
||||
|
||||
use phpOMS\Application\ApplicationAbstract;
|
||||
|
||||
/**
|
||||
* Media class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Admin\Install
|
||||
* @package Modules\EquipmentManagement\Admin\Install
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
|
|||
|
|
@ -1,259 +1,152 @@
|
|||
[
|
||||
{
|
||||
"id": 1003501001,
|
||||
"id": 1008401001,
|
||||
"pid": "/",
|
||||
"type": 2,
|
||||
"subtype": 0,
|
||||
"name": "FleetManagement",
|
||||
"name": "EquipmentManagement",
|
||||
"uri": null,
|
||||
"target": "self",
|
||||
"icon": "fa fa-car",
|
||||
"icon": "fa fa-wrench",
|
||||
"order": 80,
|
||||
"from": "FleetManagement",
|
||||
"from": "EquipmentManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 0,
|
||||
"children": [
|
||||
{
|
||||
"id": 1003502001,
|
||||
"id": 1008402001,
|
||||
"pid": "/",
|
||||
"type": 2,
|
||||
"subtype": 1,
|
||||
"name": "Vehicles",
|
||||
"uri": "{/base}/fleet/vehicle/list",
|
||||
"name": "Equipments",
|
||||
"uri": "{/base}/equipment/equipment/list",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 1,
|
||||
"from": "FleetManagement",
|
||||
"from": "EquipmentManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 1003501001,
|
||||
"parent": 1008401001,
|
||||
"children": [
|
||||
{
|
||||
"id": 1003502101,
|
||||
"pid": "/fleet/vehicle",
|
||||
"id": 1008402101,
|
||||
"pid": "/equipment/equipment",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "List",
|
||||
"uri": "{/base}/fleet/vehicle/list",
|
||||
"uri": "{/base}/equipment/equipment/list",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 1,
|
||||
"from": "FleetManagement",
|
||||
"from": "EquipmentManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 1003502001,
|
||||
"parent": 1008402001,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": 1003502201,
|
||||
"pid": "/fleet/vehicle",
|
||||
"id": 1008402201,
|
||||
"pid": "/equipment/equipment",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "Create",
|
||||
"uri": "{/base}/fleet/vehicle/create?{?}",
|
||||
"uri": "{/base}/equipment/equipment/create?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 1,
|
||||
"from": "FleetManagement",
|
||||
"from": "EquipmentManagement",
|
||||
"permission": { "permission": 4, "category": null, "element": null },
|
||||
"parent": 1003502001,
|
||||
"parent": 1008402001,
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1003503001,
|
||||
"pid": "/",
|
||||
"type": 2,
|
||||
"subtype": 1,
|
||||
"name": "Drivers",
|
||||
"uri": "{/base}/fleet/driver/list",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 1,
|
||||
"from": "FleetManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 1003501001,
|
||||
"children": [
|
||||
{
|
||||
"id": 1003503101,
|
||||
"pid": "/fleet/driver",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "List",
|
||||
"uri": "{/base}/fleet/driver/list",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 1,
|
||||
"from": "FleetManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 1003503001,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": 1003503201,
|
||||
"pid": "/fleet/driver",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "Create",
|
||||
"uri": "{/base}/fleet/driver/create?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 1,
|
||||
"from": "FleetManagement",
|
||||
"permission": { "permission": 4, "category": null, "element": null },
|
||||
"parent": 1003503001,
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1003504001,
|
||||
"id": 1008404001,
|
||||
"pid": "/",
|
||||
"type": 2,
|
||||
"subtype": 1,
|
||||
"name": "Inspections",
|
||||
"uri": "{/base}/fleet/inspection/list",
|
||||
"uri": "{/base}/equipment/inspection/list",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 1,
|
||||
"from": "FleetManagement",
|
||||
"from": "EquipmentManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 1003501001,
|
||||
"parent": 1008401001,
|
||||
"children": [
|
||||
{
|
||||
"id": 1003504101,
|
||||
"pid": "/fleet/inspection",
|
||||
"id": 1008404101,
|
||||
"pid": "/equipment/inspection",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "List",
|
||||
"uri": "{/base}/fleet/inspection/list",
|
||||
"uri": "{/base}/equipment/inspection/list",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 1,
|
||||
"from": "FleetManagement",
|
||||
"from": "EquipmentManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 1003504001,
|
||||
"parent": 1008404001,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": 1003504201,
|
||||
"pid": "/fleet/inspection",
|
||||
"id": 1008404201,
|
||||
"pid": "/equipment/inspection",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "VehicleInspectionTypes",
|
||||
"uri": "{/base}/fleet/vehicle/inspection/type/list?{?}",
|
||||
"name": "EquipmentInspectionTypes",
|
||||
"uri": "{/base}/equipment/equipment/inspection/type/list?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 5,
|
||||
"from": "FleetManagement",
|
||||
"from": "EquipmentManagement",
|
||||
"permission": { "permission": 4, "category": null, "element": null },
|
||||
"parent": 1003504001,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": 1003504301,
|
||||
"pid": "/fleet/inspection",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "DriverInspectionTypes",
|
||||
"uri": "{/base}/fleet/driver/inspection/type/list?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 10,
|
||||
"from": "FleetManagement",
|
||||
"permission": { "permission": 4, "category": null, "element": null },
|
||||
"parent": 1003504001,
|
||||
"parent": 1008404001,
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1003505001,
|
||||
"id": 1008405001,
|
||||
"pid": "/",
|
||||
"type": 2,
|
||||
"subtype": 1,
|
||||
"name": "VehicleAttributes",
|
||||
"uri": "{/base}/fleet/vehicle/attribute/type/list?{?}",
|
||||
"name": "EquipmentAttributes",
|
||||
"uri": "{/base}/equipment/equipment/attribute/type/list?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 5,
|
||||
"from": "FleetManagement",
|
||||
"from": "EquipmentManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 1003501001,
|
||||
"parent": 1008401001,
|
||||
"children": [
|
||||
{
|
||||
"id": 1003505101,
|
||||
"pid": "/fleet/vehicle/attribute",
|
||||
"id": 1008405101,
|
||||
"pid": "/equipment/equipment/attribute",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "Types",
|
||||
"uri": "{/base}/fleet/vehicle/attribute/type/list?{?}",
|
||||
"uri": "{/base}/equipment/equipment/attribute/type/list?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 15,
|
||||
"from": "FleetManagement",
|
||||
"from": "EquipmentManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 1003505001,
|
||||
"parent": 1008405001,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": 1003505201,
|
||||
"pid": "/fleet/vehicle/attribute",
|
||||
"id": 1008405201,
|
||||
"pid": "/equipment/equipment/attribute",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "Values",
|
||||
"uri": "{/base}/fleet/vehicle/attribute/value/list?{?}",
|
||||
"uri": "{/base}/equipment/equipment/attribute/value/list?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 15,
|
||||
"from": "FleetManagement",
|
||||
"from": "EquipmentManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 1003505001,
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1003506001,
|
||||
"pid": "/",
|
||||
"type": 2,
|
||||
"subtype": 1,
|
||||
"name": "DriverAttributes",
|
||||
"uri": "{/base}/fleet/driver/attribute/type/list?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 5,
|
||||
"from": "FleetManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 1003501001,
|
||||
"children": [
|
||||
{
|
||||
"id": 1003506101,
|
||||
"pid": "/fleet/driver/attribute",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "Types",
|
||||
"uri": "{/base}/fleet/driver/attribute/type/list?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 15,
|
||||
"from": "FleetManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 1003506001,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": 1003506201,
|
||||
"pid": "/fleet/driver/attribute",
|
||||
"type": 3,
|
||||
"subtype": 1,
|
||||
"name": "Values",
|
||||
"uri": "{/base}/fleet/driver/attribute/value/list?{?}",
|
||||
"target": "self",
|
||||
"icon": null,
|
||||
"order": 15,
|
||||
"from": "FleetManagement",
|
||||
"permission": { "permission": 2, "category": null, "element": null },
|
||||
"parent": 1003506001,
|
||||
"parent": 1008405001,
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Admin\Install
|
||||
* @package Modules\EquipmentManagement\Admin\Install
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,14 +12,14 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Admin\Install;
|
||||
namespace Modules\EquipmentManagement\Admin\Install;
|
||||
|
||||
use phpOMS\Application\ApplicationAbstract;
|
||||
|
||||
/**
|
||||
* Navigation class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Admin\Install
|
||||
* @package Modules\EquipmentManagement\Admin\Install
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
|
|||
|
|
@ -1,285 +1,22 @@
|
|||
[
|
||||
{
|
||||
"name": "license_plate",
|
||||
"name": "is_gauge",
|
||||
"l11n": {
|
||||
"en": "License plate",
|
||||
"de": "Kennzeichen"
|
||||
},
|
||||
"value_type": 2,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "insurance_provider",
|
||||
"l11n": {
|
||||
"en": "Insurance provider",
|
||||
"de": "Versicherung"
|
||||
},
|
||||
"value_type": 2,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "insurance_number",
|
||||
"l11n": {
|
||||
"en": "Insurance number",
|
||||
"de": "Versicherungsnummer"
|
||||
},
|
||||
"value_type": 2,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "leasing_provider",
|
||||
"l11n": {
|
||||
"en": "Leasing provider",
|
||||
"de": "Leasingsnummer"
|
||||
},
|
||||
"value_type": 2,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "leasing_number",
|
||||
"l11n": {
|
||||
"en": "Leasing number",
|
||||
"de": "Leasingsnummer"
|
||||
},
|
||||
"value_type": 2,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "leasing_end",
|
||||
"l11n": {
|
||||
"en": "Leasing end",
|
||||
"de": "Leasingende"
|
||||
},
|
||||
"value_type": 4,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "leasing_milage",
|
||||
"l11n": {
|
||||
"en": "Leasing milage",
|
||||
"de": "Laufleistung"
|
||||
},
|
||||
"value_type": 1,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "insurance_milage",
|
||||
"l11n": {
|
||||
"en": "Insurance milage",
|
||||
"de": "Versicherungslaufleistung"
|
||||
},
|
||||
"value_type": 1,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "engine_size",
|
||||
"l11n": {
|
||||
"en": "Engine size",
|
||||
"de": "Hubraum"
|
||||
},
|
||||
"value_type": 2,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "vin",
|
||||
"l11n": {
|
||||
"en": "VIN",
|
||||
"de": "Fahrgestellnummer"
|
||||
},
|
||||
"value_type": 2,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "make",
|
||||
"l11n": {
|
||||
"en": "Make",
|
||||
"de": "Marke"
|
||||
},
|
||||
"value_type": 2,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "model",
|
||||
"l11n": {
|
||||
"en": "Model",
|
||||
"de": "Modell"
|
||||
},
|
||||
"value_type": 2,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "color",
|
||||
"l11n": {
|
||||
"en": "Color",
|
||||
"de": "Farbe"
|
||||
},
|
||||
"value_type": 2,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "build",
|
||||
"l11n": {
|
||||
"en": "Build year",
|
||||
"de": "Baujahr"
|
||||
},
|
||||
"value_type": 4,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "ownership_start",
|
||||
"l11n": {
|
||||
"en": "Ownership start",
|
||||
"de": "Besitzbeginn"
|
||||
},
|
||||
"value_type": 4,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "ownership_end",
|
||||
"l11n": {
|
||||
"en": "Ownership end",
|
||||
"de": "Besitzende"
|
||||
},
|
||||
"value_type": 4,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "fuel_type",
|
||||
"l11n": {
|
||||
"en": "Fuel type",
|
||||
"de": "Kraftstoffart"
|
||||
"en": "Gauge",
|
||||
"de": "Messgerät"
|
||||
},
|
||||
"value_type": 1,
|
||||
"is_custom_allowed": false,
|
||||
"validation_pattern": "",
|
||||
"is_required": true,
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": [
|
||||
{
|
||||
"value": 1,
|
||||
"l11n": {
|
||||
"en": "None",
|
||||
"de": "Kein"
|
||||
}
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"value": 2,
|
||||
"l11n": {
|
||||
"en": "Gas",
|
||||
"de": "Benzin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"value": 3,
|
||||
"l11n": {
|
||||
"en": "Diesel",
|
||||
"de": "Diesel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"value": 4,
|
||||
"l11n": {
|
||||
"en": "Electric",
|
||||
"de": "Elektro"
|
||||
}
|
||||
},
|
||||
{
|
||||
"value": 5,
|
||||
"l11n": {
|
||||
"en": "Hydrogen",
|
||||
"de": "Wasserstoff"
|
||||
}
|
||||
"value": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "purchase_price",
|
||||
"l11n": {
|
||||
"en": "Purchase price",
|
||||
"de": "Kaufpreis"
|
||||
},
|
||||
"value_type": 1,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
},
|
||||
{
|
||||
"name": "leasing_residual_value",
|
||||
"l11n": {
|
||||
"en": "Leasing residual value",
|
||||
"de": "Leasing Restwert"
|
||||
},
|
||||
"value_type": 1,
|
||||
"is_custom_allowed": true,
|
||||
"validation_pattern": "",
|
||||
"is_required": false,
|
||||
"default_value": "",
|
||||
"values": []
|
||||
}
|
||||
]
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,9 +0,0 @@
|
|||
[
|
||||
{
|
||||
"name": "license",
|
||||
"l11n": {
|
||||
"en": "License",
|
||||
"de": "Führerschein"
|
||||
}
|
||||
}
|
||||
]
|
||||
30
Admin/Install/equipmenttype.json
Normal file
30
Admin/Install/equipmenttype.json
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
[
|
||||
{
|
||||
"name": "scale",
|
||||
"l11n": {
|
||||
"en": "Scale",
|
||||
"de": "Waage"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ladder",
|
||||
"l11n": {
|
||||
"en": "Ladder",
|
||||
"de": "Leiter"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "drill",
|
||||
"l11n": {
|
||||
"en": "Drill",
|
||||
"de": "Bohrer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "saw",
|
||||
"l11n": {
|
||||
"en": "Saw",
|
||||
"de": "Säge"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1,135 +0,0 @@
|
|||
[
|
||||
{
|
||||
"name": "gasoline",
|
||||
"l11n": {
|
||||
"en": "Gasoline",
|
||||
"de": "Benzin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diesel",
|
||||
"l11n": {
|
||||
"en": "Diesel",
|
||||
"de": "Diesel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "electirc",
|
||||
"l11n": {
|
||||
"en": "Electric",
|
||||
"de": "Elektrisch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "hydrogen",
|
||||
"l11n": {
|
||||
"en": "Hydrogen",
|
||||
"de": "Wasserstoff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ethanol",
|
||||
"l11n": {
|
||||
"en": "Ethanol",
|
||||
"de": "Ethanol"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "kerosene",
|
||||
"l11n": {
|
||||
"en": "Kerosene",
|
||||
"de": "Kerosin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "lpg",
|
||||
"l11n": {
|
||||
"en": "LPG",
|
||||
"de": "Autogas"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "methanol",
|
||||
"l11n": {
|
||||
"en": "Methanol",
|
||||
"de": "Methanol"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "methane",
|
||||
"l11n": {
|
||||
"en": "Methane",
|
||||
"de": "Methan"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nitromethane",
|
||||
"l11n": {
|
||||
"en": "Nitromethane",
|
||||
"de": "Nitromethan"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "coal",
|
||||
"l11n": {
|
||||
"en": "Coal",
|
||||
"de": "Kohle"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "wood",
|
||||
"l11n": {
|
||||
"en": "Wood",
|
||||
"de": "Holz"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "petroleum",
|
||||
"l11n": {
|
||||
"en": "Petroleum",
|
||||
"de": "Petroleum"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "coaltar",
|
||||
"l11n": {
|
||||
"en": "Coaltar",
|
||||
"de": "Steinkohlenteer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "coke",
|
||||
"l11n": {
|
||||
"en": "Coke",
|
||||
"de": "Koks"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "charcoale",
|
||||
"l11n": {
|
||||
"en": "Charcoale",
|
||||
"de": "Holzkohle"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "naturalgas",
|
||||
"l11n": {
|
||||
"en": "Naturalgas",
|
||||
"de": "Erdgas"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "biogas",
|
||||
"l11n": {
|
||||
"en": "Biogas",
|
||||
"de": "Biogas"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "biodiesel",
|
||||
"l11n": {
|
||||
"en": "Biodiesel",
|
||||
"de": "Biodiesel"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1,37 +1,9 @@
|
|||
[
|
||||
{
|
||||
"name": "tire_change",
|
||||
"name": "tuv",
|
||||
"l11n": {
|
||||
"en": "Tire change",
|
||||
"de": "Reifenwechsel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "oil_change",
|
||||
"l11n": {
|
||||
"en": "Oil change",
|
||||
"de": "Ölwechsel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "mot",
|
||||
"l11n": {
|
||||
"en": "MOT test",
|
||||
"de": "TÜV"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "emissions_test",
|
||||
"l11n": {
|
||||
"en": "Emissions test",
|
||||
"de": "Abgasuntersuchung"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "general",
|
||||
"l11n": {
|
||||
"en": "General",
|
||||
"de": "Allgemein"
|
||||
"en": "TUV",
|
||||
"de": "TUV"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
[
|
||||
{
|
||||
"name": "car",
|
||||
"l11n": {
|
||||
"en": "Car",
|
||||
"de": "Auto"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "truck",
|
||||
"l11n": {
|
||||
"en": "Truck",
|
||||
"de": "LKW"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "motorcycle",
|
||||
"l11n": {
|
||||
"en": "Motorcycle",
|
||||
"de": "Motorrad"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bicycle",
|
||||
"l11n": {
|
||||
"en": "Bicycle",
|
||||
"de": "Fahrrad"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bus",
|
||||
"l11n": {
|
||||
"en": "Bus",
|
||||
"de": "Bus"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "boat",
|
||||
"l11n": {
|
||||
"en": "Boat",
|
||||
"de": "Boot"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "airplane",
|
||||
"l11n": {
|
||||
"en": "Airplane",
|
||||
"de": "Flugzeug"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "helicopter",
|
||||
"l11n": {
|
||||
"en": "Helicopter",
|
||||
"de": "Hubschrauber"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "train",
|
||||
"l11n": {
|
||||
"en": "Train",
|
||||
"de": "Zug"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "scooter",
|
||||
"l11n": {
|
||||
"en": "Scooter",
|
||||
"de": "Roller"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "moped",
|
||||
"l11n": {
|
||||
"en": "Moped",
|
||||
"de": "Moped"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tractor",
|
||||
"l11n": {
|
||||
"en": "Tractor",
|
||||
"de": "Traktor"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "forklift",
|
||||
"l11n": {
|
||||
"en": "Forklift",
|
||||
"de": "Gabelstapler"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Admin
|
||||
* @package Modules\EquipmentManagement\Admin
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Admin;
|
||||
namespace Modules\EquipmentManagement\Admin;
|
||||
|
||||
use phpOMS\Application\ApplicationAbstract;
|
||||
use phpOMS\Config\SettingsInterface;
|
||||
|
|
@ -25,7 +25,7 @@ use phpOMS\Uri\HttpUri;
|
|||
/**
|
||||
* Installer class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Admin
|
||||
* @package Modules\EquipmentManagement\Admin
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
@ -58,25 +58,15 @@ final class Installer extends InstallerAbstract
|
|||
$attrTypes = self::createAttributeTypes($app, $attributes);
|
||||
$attrValues = self::createAttributeValues($app, $attrTypes, $attributes);
|
||||
|
||||
/* Fuel types */
|
||||
$fileContent = \file_get_contents(__DIR__ . '/Install/fueltype.json');
|
||||
if ($fileContent === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var array $types */
|
||||
$types = \json_decode($fileContent, true);
|
||||
$fuelTypes = self::createFuelTypes($app, $types);
|
||||
|
||||
/* Vehicle types */
|
||||
$fileContent = \file_get_contents(__DIR__ . '/Install/vehicletype.json');
|
||||
/* Equipment types */
|
||||
$fileContent = \file_get_contents(__DIR__ . '/Install/equipmenttype.json');
|
||||
if ($fileContent === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var array $types */
|
||||
$types = \json_decode($fileContent, true);
|
||||
$vehicleTypes = self::createVehicleTypes($app, $types);
|
||||
$equipmentTypes = self::createEquipmentTypes($app, $types);
|
||||
|
||||
/* Inspection types */
|
||||
$fileContent = \file_get_contents(__DIR__ . '/Install/inspectiontype.json');
|
||||
|
|
@ -87,20 +77,10 @@ final class Installer extends InstallerAbstract
|
|||
/** @var array $types */
|
||||
$types = \json_decode($fileContent, true);
|
||||
$inspectionTypes = self::createInspectionTypes($app, $types);
|
||||
|
||||
/* Inspection types */
|
||||
$fileContent = \file_get_contents(__DIR__ . '/Install/driverinspectiontype.json');
|
||||
if ($fileContent === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var array $types */
|
||||
$types = \json_decode($fileContent, true);
|
||||
$inspectionTypes = self::createDriverInspectionTypes($app, $types);
|
||||
}
|
||||
|
||||
/**
|
||||
* Install fuel type
|
||||
* Install equipment type
|
||||
*
|
||||
* @param ApplicationAbstract $app Application
|
||||
* @param array $types Attribute definition
|
||||
|
|
@ -109,13 +89,13 @@ final class Installer extends InstallerAbstract
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private static function createFuelTypes(ApplicationAbstract $app, array $types) : array
|
||||
private static function createEquipmentTypes(ApplicationAbstract $app, array $types) : array
|
||||
{
|
||||
/** @var array<string, array> $fuelTypes */
|
||||
$fuelTypes = [];
|
||||
/** @var array<string, array> $equipmentTypes */
|
||||
$equipmentTypes = [];
|
||||
|
||||
/** @var \Modules\FleetManagement\Controller\ApiVehicleController $module */
|
||||
$module = $app->moduleManager->getModuleInstance('FleetManagement', 'ApiVehicle');
|
||||
/** @var \Modules\EquipmentManagement\Controller\ApiEquipmentController $module */
|
||||
$module = $app->moduleManager->getModuleInstance('EquipmentManagement', 'ApiEquipment');
|
||||
|
||||
/** @var array $type */
|
||||
foreach ($types as $type) {
|
||||
|
|
@ -127,14 +107,14 @@ final class Installer extends InstallerAbstract
|
|||
$request->setData('title', \reset($type['l11n']));
|
||||
$request->setData('language', \array_keys($type['l11n'])[0] ?? 'en');
|
||||
|
||||
$module->apiFuelTypeCreate($request, $response);
|
||||
$module->apiEquipmentTypeCreate($request, $response);
|
||||
|
||||
$responseData = $response->get('');
|
||||
if (!\is_array($responseData)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$fuelTypes[$type['name']] = !\is_array($responseData['response'])
|
||||
$equipmentTypes[$type['name']] = !\is_array($responseData['response'])
|
||||
? $responseData['response']->toArray()
|
||||
: $responseData['response'];
|
||||
|
||||
|
|
@ -151,74 +131,13 @@ final class Installer extends InstallerAbstract
|
|||
$request->header->account = 1;
|
||||
$request->setData('title', $l11n);
|
||||
$request->setData('language', $language);
|
||||
$request->setData('type', $fuelTypes[$type['name']]['id']);
|
||||
$request->setData('type', $equipmentTypes[$type['name']]['id']);
|
||||
|
||||
$module->apiFuelTypeL11nCreate($request, $response);
|
||||
$module->apiEquipmentTypeL11nCreate($request, $response);
|
||||
}
|
||||
}
|
||||
|
||||
return $fuelTypes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Install vehicle type
|
||||
*
|
||||
* @param ApplicationAbstract $app Application
|
||||
* @param array $types Attribute definition
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private static function createVehicleTypes(ApplicationAbstract $app, array $types) : array
|
||||
{
|
||||
/** @var array<string, array> $vehicleTypes */
|
||||
$vehicleTypes = [];
|
||||
|
||||
/** @var \Modules\FleetManagement\Controller\ApiVehicleController $module */
|
||||
$module = $app->moduleManager->getModuleInstance('FleetManagement', 'ApiVehicle');
|
||||
|
||||
/** @var array $type */
|
||||
foreach ($types as $type) {
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->header->account = 1;
|
||||
$request->setData('name', $type['name'] ?? '');
|
||||
$request->setData('title', \reset($type['l11n']));
|
||||
$request->setData('language', \array_keys($type['l11n'])[0] ?? 'en');
|
||||
|
||||
$module->apiVehicleTypeCreate($request, $response);
|
||||
|
||||
$responseData = $response->get('');
|
||||
if (!\is_array($responseData)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$vehicleTypes[$type['name']] = !\is_array($responseData['response'])
|
||||
? $responseData['response']->toArray()
|
||||
: $responseData['response'];
|
||||
|
||||
$isFirst = true;
|
||||
foreach ($type['l11n'] as $language => $l11n) {
|
||||
if ($isFirst) {
|
||||
$isFirst = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->header->account = 1;
|
||||
$request->setData('title', $l11n);
|
||||
$request->setData('language', $language);
|
||||
$request->setData('type', $vehicleTypes[$type['name']]['id']);
|
||||
|
||||
$module->apiVehicleTypeL11nCreate($request, $response);
|
||||
}
|
||||
}
|
||||
|
||||
return $vehicleTypes;
|
||||
return $equipmentTypes;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -236,8 +155,8 @@ final class Installer extends InstallerAbstract
|
|||
/** @var array<string, array> $inspectionTypes */
|
||||
$inspectionTypes = [];
|
||||
|
||||
/** @var \Modules\FleetManagement\Controller\ApiVehicleController $module */
|
||||
$module = $app->moduleManager->getModuleInstance('FleetManagement', 'ApiVehicle');
|
||||
/** @var \Modules\EquipmentManagement\Controller\ApiEquipmentController $module */
|
||||
$module = $app->moduleManager->getModuleInstance('EquipmentManagement', 'ApiEquipment');
|
||||
|
||||
/** @var array $type */
|
||||
foreach ($types as $type) {
|
||||
|
|
@ -282,67 +201,6 @@ final class Installer extends InstallerAbstract
|
|||
return $inspectionTypes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Install inspection type
|
||||
*
|
||||
* @param ApplicationAbstract $app Application
|
||||
* @param array $types Attribute definition
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private static function createDriverInspectionTypes(ApplicationAbstract $app, array $types) : array
|
||||
{
|
||||
/** @var array<string, array> $inspectionTypes */
|
||||
$inspectionTypes = [];
|
||||
|
||||
/** @var \Modules\FleetManagement\Controller\ApiVehicleController $module */
|
||||
$module = $app->moduleManager->getModuleInstance('FleetManagement', 'ApiDriver');
|
||||
|
||||
/** @var array $type */
|
||||
foreach ($types as $type) {
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->header->account = 1;
|
||||
$request->setData('name', $type['name'] ?? '');
|
||||
$request->setData('title', \reset($type['l11n']));
|
||||
$request->setData('language', \array_keys($type['l11n'])[0] ?? 'en');
|
||||
|
||||
$module->apiDriverInspectionTypeCreate($request, $response);
|
||||
|
||||
$responseData = $response->get('');
|
||||
if (!\is_array($responseData)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$inspectionTypes[$type['name']] = !\is_array($responseData['response'])
|
||||
? $responseData['response']->toArray()
|
||||
: $responseData['response'];
|
||||
|
||||
$isFirst = true;
|
||||
foreach ($type['l11n'] as $language => $l11n) {
|
||||
if ($isFirst) {
|
||||
$isFirst = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->header->account = 1;
|
||||
$request->setData('title', $l11n);
|
||||
$request->setData('language', $language);
|
||||
$request->setData('type', $inspectionTypes[$type['name']]['id']);
|
||||
|
||||
$module->apiDriverInspectionTypeL11nCreate($request, $response);
|
||||
}
|
||||
}
|
||||
|
||||
return $inspectionTypes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Install default attribute types
|
||||
*
|
||||
|
|
@ -358,8 +216,8 @@ final class Installer extends InstallerAbstract
|
|||
/** @var array<string, array> $itemAttrType */
|
||||
$itemAttrType = [];
|
||||
|
||||
/** @var \Modules\FleetManagement\Controller\ApiVehicleAttributeController $module */
|
||||
$module = $app->moduleManager->getModuleInstance('FleetManagement', 'ApiVehicleAttribute');
|
||||
/** @var \Modules\EquipmentManagement\Controller\ApiEquipmentAttributeController $module */
|
||||
$module = $app->moduleManager->getModuleInstance('EquipmentManagement', 'ApiEquipmentAttribute');
|
||||
|
||||
/** @var array $attribute */
|
||||
foreach ($attributes as $attribute) {
|
||||
|
|
@ -375,7 +233,7 @@ final class Installer extends InstallerAbstract
|
|||
$request->setData('validation_pattern', $attribute['validation_pattern'] ?? '');
|
||||
$request->setData('datatype', (int) $attribute['value_type']);
|
||||
|
||||
$module->apiVehicleAttributeTypeCreate($request, $response);
|
||||
$module->apiEquipmentAttributeTypeCreate($request, $response);
|
||||
|
||||
$responseData = $response->get('');
|
||||
if (!\is_array($responseData)) {
|
||||
|
|
@ -401,7 +259,7 @@ final class Installer extends InstallerAbstract
|
|||
$request->setData('language', $language);
|
||||
$request->setData('type', $itemAttrType[$attribute['name']]['id']);
|
||||
|
||||
$module->apiVehicleAttributeTypeL11nCreate($request, $response);
|
||||
$module->apiEquipmentAttributeTypeL11nCreate($request, $response);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -424,8 +282,8 @@ final class Installer extends InstallerAbstract
|
|||
/** @var array<string, array> $itemAttrValue */
|
||||
$itemAttrValue = [];
|
||||
|
||||
/** @var \Modules\FleetManagement\Controller\ApiVehicleAttributeController $module */
|
||||
$module = $app->moduleManager->getModuleInstance('FleetManagement', 'ApiVehicleAttribute');
|
||||
/** @var \Modules\EquipmentManagement\Controller\ApiEquipmentAttributeController $module */
|
||||
$module = $app->moduleManager->getModuleInstance('EquipmentManagement', 'ApiEquipmentAttribute');
|
||||
|
||||
foreach ($attributes as $attribute) {
|
||||
$itemAttrValue[$attribute['name']] = [];
|
||||
|
|
@ -446,7 +304,7 @@ final class Installer extends InstallerAbstract
|
|||
$request->setData('language', \array_keys($value['l11n'])[0] ?? 'en');
|
||||
}
|
||||
|
||||
$module->apiVehicleAttributeValueCreate($request, $response);
|
||||
$module->apiEquipmentAttributeValueCreate($request, $response);
|
||||
|
||||
$responseData = $response->get('');
|
||||
if (!\is_array($responseData)) {
|
||||
|
|
@ -474,7 +332,7 @@ final class Installer extends InstallerAbstract
|
|||
$request->setData('language', $language);
|
||||
$request->setData('value', $attrValue['id']);
|
||||
|
||||
$module->apiVehicleAttributeValueL11nCreate($request, $response);
|
||||
$module->apiEquipmentAttributeValueL11nCreate($request, $response);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,104 +12,62 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
use Modules\FleetManagement\Controller\Controller;
|
||||
use Modules\FleetManagement\Models\PermissionCategory;
|
||||
use Modules\EquipmentManagement\Controller\Controller;
|
||||
use Modules\EquipmentManagement\Models\PermissionCategory;
|
||||
use phpOMS\Account\PermissionType;
|
||||
use phpOMS\Router\RouteVerb;
|
||||
|
||||
return [
|
||||
'^.*/fleet/vehicle/find.*$' => [
|
||||
'^.*/equipment/equipment/find.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\ApiVehicleController:apiVehicleFind',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\ApiEquipmentController:apiEquipmentFind',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => Controller::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/fleet/vehicle/attribute.*$' => [
|
||||
'^.*/equipment/equipment/attribute.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\ApiVehicleAttributeController:apiVehicleAttributeCreate',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\ApiEquipmentAttributeController:apiEquipmentAttributeCreate',
|
||||
'verb' => RouteVerb::PUT,
|
||||
'permission' => [
|
||||
'module' => Controller::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\ApiVehicleAttributeController:apiVehicleAttributeUpdate',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\ApiEquipmentAttributeController:apiEquipmentAttributeUpdate',
|
||||
'verb' => RouteVerb::SET,
|
||||
'permission' => [
|
||||
'module' => Controller::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/fleet/driver/attribute.*$' => [
|
||||
'^.*/equipment/equipment/note.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\ApiDriverAttributeController:apiDriverAttributeCreate',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\ApiEquipmentAttributeController:apiNoteCreate',
|
||||
'verb' => RouteVerb::PUT,
|
||||
'permission' => [
|
||||
'module' => Controller::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::DRIVER,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\ApiDriverAttributeController:apiDriverAttributeUpdate',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\ApiEquipmentAttributeController:apiNoteEdit',
|
||||
'verb' => RouteVerb::SET,
|
||||
'permission' => [
|
||||
'module' => Controller::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::DRIVER,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/fleet/vehicle/note.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\ApiVehicleAttributeController:apiNoteCreate',
|
||||
'verb' => RouteVerb::PUT,
|
||||
'permission' => [
|
||||
'module' => Controller::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
],
|
||||
],
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\ApiVehicleAttributeController:apiNoteEdit',
|
||||
'verb' => RouteVerb::SET,
|
||||
'permission' => [
|
||||
'module' => Controller::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/fleet/driver/note.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\ApiDriverAttributeController:apiNoteCreate',
|
||||
'verb' => RouteVerb::PUT,
|
||||
'permission' => [
|
||||
'module' => Controller::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::DRIVER,
|
||||
],
|
||||
],
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\ApiDriverAttributeController:apiNoteEdit',
|
||||
'verb' => RouteVerb::SET,
|
||||
'permission' => [
|
||||
'module' => Controller::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::DRIVER,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
|
|
|||
|
|
@ -12,156 +12,99 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
use Modules\FleetManagement\Controller\BackendController;
|
||||
use Modules\FleetManagement\Models\PermissionCategory;
|
||||
use Modules\EquipmentManagement\Controller\BackendController;
|
||||
use Modules\EquipmentManagement\Models\PermissionCategory;
|
||||
use phpOMS\Account\PermissionType;
|
||||
use phpOMS\Router\RouteVerb;
|
||||
|
||||
return [
|
||||
'^.*/fleet/vehicle/attribute/type/list.*$' => [
|
||||
'^.*/equipment/equipment/attribute/type/list.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementAttributeTypeList',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\BackendController:viewEquipmentManagementAttributeTypeList',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/fleet/vehicle/attribute/type\?.*$' => [
|
||||
'^.*/equipment/equipment/attribute/type\?.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementAttributeType',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\BackendController:viewEquipmentManagementAttributeType',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/fleet/vehicle/list.*$' => [
|
||||
'^.*/equipment/equipment/list.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleList',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\BackendController:viewEquipmentManagementEquipmentList',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/fleet/vehicle/create.*$' => [
|
||||
'^.*/equipment/equipment/create.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleCreate',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\BackendController:viewEquipmentManagementEquipmentCreate',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::CREATE,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/fleet/vehicle/profile.*$' => [
|
||||
'^.*/equipment/equipment/profile.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleProfile',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\BackendController:viewEquipmentManagementEquipmentProfile',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/fleet/driver/attribute/type/list.*$' => [
|
||||
'^.*/equipment/inspection/list.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementDriverAttributeTypeList',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\BackendController:viewEquipmentManagementEquipmentList',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/fleet/driver/attribute/type\?.*$' => [
|
||||
'^.*/equipment/inspection/create.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementDriverAttributeType',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/fleet/driver/list.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementDriverList',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/fleet/driver/create.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementDriverCreate',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\BackendController:viewEquipmentManagementEquipmentCreate',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::CREATE,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/fleet/driver/profile.*$' => [
|
||||
'^.*/equipment/inspection/profile.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementDriverProfile',
|
||||
'dest' => '\Modules\EquipmentManagement\Controller\BackendController:viewEquipmentManagementEquipmentProfile',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'^.*/fleet/inspection/list.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleList',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/fleet/inspection/create.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleCreate',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::CREATE,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
],
|
||||
],
|
||||
],
|
||||
'^.*/fleet/inspection/profile.*$' => [
|
||||
[
|
||||
'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleProfile',
|
||||
'verb' => RouteVerb::GET,
|
||||
'permission' => [
|
||||
'module' => BackendController::NAME,
|
||||
'type' => PermissionType::READ,
|
||||
'state' => PermissionCategory::VEHICLE,
|
||||
'state' => PermissionCategory::EQUIPMENT,
|
||||
],
|
||||
],
|
||||
],
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Admin
|
||||
* @package Modules\EquipmentManagement\Admin
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,14 +12,14 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Admin;
|
||||
namespace Modules\EquipmentManagement\Admin;
|
||||
|
||||
use phpOMS\Module\StatusAbstract;
|
||||
|
||||
/**
|
||||
* Status class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Admin
|
||||
* @package Modules\EquipmentManagement\Admin
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Admin
|
||||
* @package Modules\EquipmentManagement\Admin
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,14 +12,14 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Admin;
|
||||
namespace Modules\EquipmentManagement\Admin;
|
||||
|
||||
use phpOMS\Module\UninstallerAbstract;
|
||||
|
||||
/**
|
||||
* Uninstaller class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Admin
|
||||
* @package Modules\EquipmentManagement\Admin
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Admin
|
||||
* @package Modules\EquipmentManagement\Admin
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,14 +12,14 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Admin;
|
||||
namespace Modules\EquipmentManagement\Admin;
|
||||
|
||||
use phpOMS\Module\UpdaterAbstract;
|
||||
|
||||
/**
|
||||
* Updater class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Admin
|
||||
* @package Modules\EquipmentManagement\Admin
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
|
|||
|
|
@ -1,615 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Controller;
|
||||
|
||||
use Modules\Admin\Models\NullAccount;
|
||||
use Modules\FleetManagement\Models\Driver\DriverInspectionTypeL11nMapper;
|
||||
use Modules\FleetManagement\Models\Driver\DriverInspectionTypeMapper;
|
||||
use Modules\FleetManagement\Models\Driver\Driver;
|
||||
use Modules\FleetManagement\Models\Driver\DriverMapper;
|
||||
use Modules\FleetManagement\Models\Driver\DriverStatus;
|
||||
use Modules\Media\Models\CollectionMapper;
|
||||
use Modules\Media\Models\MediaMapper;
|
||||
use Modules\Media\Models\NullMedia;
|
||||
use Modules\Media\Models\PathSettings;
|
||||
use Modules\Media\Models\Reference;
|
||||
use Modules\Media\Models\ReferenceMapper;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
use phpOMS\Localization\BaseStringL11nType;
|
||||
use phpOMS\Localization\ISO639x1Enum;
|
||||
use phpOMS\Message\Http\RequestStatusCode;
|
||||
use phpOMS\Message\NotificationLevel;
|
||||
use phpOMS\Message\RequestAbstract;
|
||||
use phpOMS\Message\ResponseAbstract;
|
||||
use phpOMS\Model\Message\FormValidation;
|
||||
|
||||
/**
|
||||
* FleetManagement class.
|
||||
*
|
||||
* @package Modules\FleetManagement
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class ApiDriverController extends Controller
|
||||
{
|
||||
/**
|
||||
* Api method to create a driver
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiDriverCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateDriverCreate($request))) {
|
||||
$response->data[$request->uri->__toString()] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var Driver $driver */
|
||||
$driver = $this->createDriverFromRequest($request);
|
||||
$this->createModel($request->header->account, $driver, DriverMapper::class, 'driver', $request->getOrigin());
|
||||
|
||||
if (!empty($request->files)
|
||||
|| !empty($request->getDataJson('media'))
|
||||
) {
|
||||
$this->createDriverMedia($driver, $request);
|
||||
}
|
||||
|
||||
$this->fillJsonResponse(
|
||||
$request,
|
||||
$response,
|
||||
NotificationLevel::OK,
|
||||
'',
|
||||
$this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'SucessfulCreate'),
|
||||
$driver
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create driver from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return Driver Returns the created driver from the request
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function createDriverFromRequest(RequestAbstract $request) : Driver
|
||||
{
|
||||
$driver = new Driver();
|
||||
$driver->account = new NullAccount($request->getDataInt('account') ?? 1);
|
||||
$driver->status = (int) ($request->getDataInt('status') ?? DriverStatus::INACTIVE);
|
||||
|
||||
return $driver;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create media files for driver
|
||||
*
|
||||
* @param Driver $driver Driver
|
||||
* @param RequestAbstract $request Request incl. media do upload
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createDriverMedia(Driver $driver, RequestAbstract $request) : void
|
||||
{
|
||||
$path = $this->createDriverDir($driver);
|
||||
|
||||
if (!empty($uploadedFiles = $request->files)) {
|
||||
$uploaded = $this->app->moduleManager->get('Media')->uploadFiles(
|
||||
names: [],
|
||||
fileNames: [],
|
||||
files: $uploadedFiles,
|
||||
account: $request->header->account,
|
||||
basePath: __DIR__ . '/../../../Modules/Media/Files' . $path,
|
||||
virtualPath: $path,
|
||||
pathSettings: PathSettings::FILE_PATH
|
||||
);
|
||||
|
||||
$collection = null;
|
||||
foreach ($uploaded as $media) {
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$driver->id,
|
||||
$media->id,
|
||||
DriverMapper::class,
|
||||
'files',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
);
|
||||
|
||||
if ($collection === null) {
|
||||
/** @var \Modules\Media\Models\Collection $collection */
|
||||
$collection = MediaMapper::getParentCollection($path)->limit(1)->execute();
|
||||
|
||||
if ($collection->id === 0) {
|
||||
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
|
||||
$path,
|
||||
$request->header->account,
|
||||
__DIR__ . '/../../../Modules/Media/Files' . $path
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$collection->id,
|
||||
$media->id,
|
||||
CollectionMapper::class,
|
||||
'sources',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($mediaFiles = $request->getDataJson('media'))) {
|
||||
$collection = null;
|
||||
|
||||
foreach ($mediaFiles as $file) {
|
||||
/** @var \Modules\Media\Models\Media $media */
|
||||
$media = MediaMapper::get()->where('id', (int) $file)->limit(1)->execute();
|
||||
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$driver->id,
|
||||
$media->id,
|
||||
DriverMapper::class,
|
||||
'files',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
);
|
||||
|
||||
$ref = new Reference();
|
||||
$ref->name = $media->name;
|
||||
$ref->source = new NullMedia($media->id);
|
||||
$ref->createdBy = new NullAccount($request->header->account);
|
||||
$ref->setVirtualPath($path);
|
||||
|
||||
$this->createModel($request->header->account, $ref, ReferenceMapper::class, 'media_reference', $request->getOrigin());
|
||||
|
||||
if ($collection === null) {
|
||||
/** @var \Modules\Media\Models\Collection $collection */
|
||||
$collection = MediaMapper::getParentCollection($path)->limit(1)->execute();
|
||||
|
||||
if ($collection->id === 0) {
|
||||
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
|
||||
$path,
|
||||
$request->header->account,
|
||||
__DIR__ . '/../../../Modules/Media/Files' . $path
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$collection->id,
|
||||
$ref->id,
|
||||
CollectionMapper::class,
|
||||
'sources',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate driver create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool> Returns the validation array of the request
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateDriverCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['account'] = !$request->hasData('account'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create a bill
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiMediaAddToDriver(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateMediaAddToDriver($request))) {
|
||||
$response->data[$request->uri->__toString()] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var \Modules\FleetManagement\Models\Driver\Driver $driver */
|
||||
$driver = DriverMapper::get()->where('id', (int) $request->getData('driver'))->execute();
|
||||
$path = $this->createDriverDir($driver);
|
||||
|
||||
$uploaded = [];
|
||||
if (!empty($uploadedFiles = $request->files)) {
|
||||
$uploaded = $this->app->moduleManager->get('Media')->uploadFiles(
|
||||
names: [],
|
||||
fileNames: [],
|
||||
files: $uploadedFiles,
|
||||
account: $request->header->account,
|
||||
basePath: __DIR__ . '/../../../Modules/Media/Files' . $path,
|
||||
virtualPath: $path,
|
||||
pathSettings: PathSettings::FILE_PATH,
|
||||
hasAccountRelation: false,
|
||||
readContent: (bool) ($request->getData('parse_content') ?? false)
|
||||
);
|
||||
|
||||
$collection = null;
|
||||
foreach ($uploaded as $media) {
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$driver->id,
|
||||
$media->id,
|
||||
DriverMapper::class,
|
||||
'files',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
);
|
||||
|
||||
if ($request->hasData('type')) {
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$media->id,
|
||||
$request->getDataInt('type'),
|
||||
MediaMapper::class,
|
||||
'types',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
);
|
||||
}
|
||||
|
||||
if ($collection === null) {
|
||||
/** @var \Modules\Media\Models\Collection $collection */
|
||||
$collection = MediaMapper::getParentCollection($path)->limit(1)->execute();
|
||||
|
||||
if ($collection->id === 0) {
|
||||
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
|
||||
$path,
|
||||
$request->header->account,
|
||||
__DIR__ . '/../../../Modules/Media/Files' . $path,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$collection->id,
|
||||
$media->id,
|
||||
CollectionMapper::class,
|
||||
'sources',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($mediaFiles = $request->getDataJson('media'))) {
|
||||
foreach ($mediaFiles as $media) {
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$driver->id,
|
||||
(int) $media,
|
||||
DriverMapper::class,
|
||||
'files',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Media', 'Media added to driver.', [
|
||||
'upload' => $uploaded,
|
||||
'media' => $mediaFiles,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create media directory path
|
||||
*
|
||||
* @param Driver $driver Driver
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createDriverDir(Driver $driver) : string
|
||||
{
|
||||
return '/Modules/FleetManagement/Driver/'
|
||||
. $this->app->unitId . '/'
|
||||
. $driver->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to validate bill creation from request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateMediaAddToDriver(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['media'] = (!$request->hasData('media') && empty($request->files)))
|
||||
|| ($val['driver'] = !$request->hasData('driver'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create a driver
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiDriverInspectionTypeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateDriverInspectionTypeCreate($request))) {
|
||||
$response->data[$request->uri->__toString()] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var BaseStringL11nType $driver */
|
||||
$driver = $this->createDriverInspectionTypeFromRequest($request);
|
||||
$this->createModel($request->header->account, $driver, DriverInspectionTypeMapper::class, 'driver_inspection_type', $request->getOrigin());
|
||||
|
||||
$this->fillJsonResponse(
|
||||
$request,
|
||||
$response,
|
||||
NotificationLevel::OK,
|
||||
'',
|
||||
$this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'SucessfulCreate'),
|
||||
$driver
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create driver from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return BaseStringL11nType Returns the created driver from the request
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function createDriverInspectionTypeFromRequest(RequestAbstract $request) : BaseStringL11nType
|
||||
{
|
||||
$type = new BaseStringL11nType();
|
||||
$type->title = $request->getDataString('name') ?? '';
|
||||
$type->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN);
|
||||
|
||||
return $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate driver create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool> Returns the validation array of the request
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateDriverInspectionTypeCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['name'] = !$request->hasData('name'))
|
||||
|| ($val['title'] = !$request->hasData('title'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create driver attribute l11n
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiDriverInspectionTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateDriverInspectionTypeL11nCreate($request))) {
|
||||
$response->data['driver_inspection_type_l11n_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$typeL11n = $this->createDriverInspectionTypeL11nFromRequest($request);
|
||||
$this->createModel($request->header->account, $typeL11n, DriverInspectionTypeL11nMapper::class, 'driver_inspection_type_l11n', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $typeL11n);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create driver attribute l11n from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return BaseStringL11n
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createDriverInspectionTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n
|
||||
{
|
||||
$typeL11n = new BaseStringL11n();
|
||||
$typeL11n->ref = $request->getDataInt('type') ?? 0;
|
||||
$typeL11n->setLanguage(
|
||||
$request->getDataString('language') ?? $request->header->l11n->language
|
||||
);
|
||||
$typeL11n->content = $request->getDataString('title') ?? '';
|
||||
|
||||
return $typeL11n;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate driver attribute l11n create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateDriverInspectionTypeL11nCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['title'] = !$request->hasData('title'))
|
||||
|| ($val['type'] = !$request->hasData('type'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create notes
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiNoteCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateNoteCreate($request))) {
|
||||
$response->data['driver_note_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$request->setData('virtualpath', '/Modules/FleetManagement/Driver/' . $request->getData('id'), true);
|
||||
$this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data);
|
||||
|
||||
if ($response->header->status !== RequestStatusCode::R_200) {
|
||||
return;
|
||||
}
|
||||
|
||||
$responseData = $response->get($request->uri->__toString());
|
||||
if (!\is_array($responseData)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$model = $responseData['response'];
|
||||
$this->createModelRelation($request->header->account, (int) $request->getData('id'), $model->id, DriverMapper::class, 'notes', '', $request->getOrigin());
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate item note create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateNoteCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['id'] = !$request->hasData('id'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to update note
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiNoteEdit(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
$this->app->moduleManager->get('Editor', 'Api')->apiEditorUpdate($request, $response, $data);
|
||||
|
||||
if ($response->header->status !== RequestStatusCode::R_200) {
|
||||
return;
|
||||
}
|
||||
|
||||
$responseData = $response->get($request->uri->__toString());
|
||||
if (!\is_array($responseData)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement
|
||||
* @package Modules\EquipmentManagement
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,18 +12,18 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Controller;
|
||||
namespace Modules\EquipmentManagement\Controller;
|
||||
|
||||
use Modules\Attribute\Models\Attribute;
|
||||
use Modules\Attribute\Models\AttributeType;
|
||||
use Modules\Attribute\Models\AttributeValue;
|
||||
use Modules\Attribute\Models\NullAttributeType;
|
||||
use Modules\Attribute\Models\NullAttributeValue;
|
||||
use Modules\FleetManagement\Models\Driver\DriverAttributeMapper;
|
||||
use Modules\FleetManagement\Models\Driver\DriverAttributeTypeL11nMapper;
|
||||
use Modules\FleetManagement\Models\Driver\DriverAttributeTypeMapper;
|
||||
use Modules\FleetManagement\Models\Driver\DriverAttributeValueL11nMapper;
|
||||
use Modules\FleetManagement\Models\Driver\DriverAttributeValueMapper;
|
||||
use Modules\EquipmentManagement\Models\EquipmentAttributeMapper;
|
||||
use Modules\EquipmentManagement\Models\EquipmentAttributeTypeL11nMapper;
|
||||
use Modules\EquipmentManagement\Models\EquipmentAttributeTypeMapper;
|
||||
use Modules\EquipmentManagement\Models\EquipmentAttributeValueL11nMapper;
|
||||
use Modules\EquipmentManagement\Models\EquipmentAttributeValueMapper;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
use phpOMS\Localization\ISO639x1Enum;
|
||||
use phpOMS\Message\Http\RequestStatusCode;
|
||||
|
|
@ -33,17 +33,17 @@ use phpOMS\Message\ResponseAbstract;
|
|||
use phpOMS\Model\Message\FormValidation;
|
||||
|
||||
/**
|
||||
* FleetManagement class.
|
||||
* EquipmentManagement class.
|
||||
*
|
||||
* @package Modules\FleetManagement
|
||||
* @package Modules\EquipmentManagement
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class ApiDriverAttributeController extends Controller
|
||||
final class ApiEquipmentAttributeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Api method to create driver attribute
|
||||
* Api method to create equipment attribute
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -55,23 +55,23 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiDriverAttributeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
public function apiEquipmentAttributeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateDriverAttributeCreate($request))) {
|
||||
if (!empty($val = $this->validateEquipmentAttributeCreate($request))) {
|
||||
$response->data['attribute_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$attribute = $this->createDriverAttributeFromRequest($request);
|
||||
$this->createModel($request->header->account, $attribute, DriverAttributeMapper::class, 'attribute', $request->getOrigin());
|
||||
$attribute = $this->createEquipmentAttributeFromRequest($request);
|
||||
$this->createModel($request->header->account, $attribute, EquipmentAttributeMapper::class, 'attribute', $request->getOrigin());
|
||||
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute', 'Attribute successfully created', $attribute);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create driver attribute from request.
|
||||
* Method to create equipment attribute from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -79,10 +79,10 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createDriverAttributeFromRequest(RequestAbstract $request) : Attribute
|
||||
private function createEquipmentAttributeFromRequest(RequestAbstract $request) : Attribute
|
||||
{
|
||||
$attribute = new Attribute();
|
||||
$attribute->ref = (int) $request->getData('driver');
|
||||
$attribute->ref = (int) $request->getData('equipment');
|
||||
$attribute->type = new NullAttributeType((int) $request->getData('type'));
|
||||
|
||||
if ($request->hasData('value')) {
|
||||
|
|
@ -100,7 +100,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Validate driver attribute create request
|
||||
* Validate equipment attribute create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -108,12 +108,12 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateDriverAttributeCreate(RequestAbstract $request) : array
|
||||
private function validateEquipmentAttributeCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['type'] = !$request->hasData('type'))
|
||||
|| ($val['value'] = (!$request->hasData('value') && !$request->hasData('custom')))
|
||||
|| ($val['driver'] = !$request->hasData('driver'))
|
||||
|| ($val['equipment'] = !$request->hasData('equipment'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
|
@ -122,7 +122,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Api method to create driver attribute
|
||||
* Api method to create equipment attribute
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -134,34 +134,34 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiDriverAttributeUpdate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
public function apiEquipmentAttributeUpdate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateDriverAttributeUpdate($request))) {
|
||||
if (!empty($val = $this->validateEquipmentAttributeUpdate($request))) {
|
||||
$response->data['attribute_update'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$old = DriverAttributeMapper::get()
|
||||
$old = EquipmentAttributeMapper::get()
|
||||
->with('type')
|
||||
->with('type/defaults')
|
||||
->with('value')
|
||||
->where('id', (int) $request->getData('id'))
|
||||
->execute();
|
||||
|
||||
$new = $this->updateDriverAttributeFromRequest($request, $old->deepClone());
|
||||
$this->updateModel($request->header->account, $old, $new, DriverAttributeMapper::class, 'attribute', $request->getOrigin());
|
||||
$new = $this->updateEquipmentAttributeFromRequest($request, $old->deepClone());
|
||||
$this->updateModel($request->header->account, $old, $new, EquipmentAttributeMapper::class, 'attribute', $request->getOrigin());
|
||||
|
||||
if ($new->value->getValue() !== $old->value->getValue()) {
|
||||
$this->updateModel($request->header->account, $old->value, $new->value, DriverAttributeValueMapper::class, 'attribute_value', $request->getOrigin());
|
||||
$this->updateModel($request->header->account, $old->value, $new->value, EquipmentAttributeValueMapper::class, 'attribute_value', $request->getOrigin());
|
||||
}
|
||||
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute', 'Attribute successfully updated', $new);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create driver attribute from request.
|
||||
* Method to create equipment attribute from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -169,7 +169,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function updateDriverAttributeFromRequest(RequestAbstract $request, Attribute $attribute) : Attribute
|
||||
private function updateEquipmentAttributeFromRequest(RequestAbstract $request, Attribute $attribute) : Attribute
|
||||
{
|
||||
if ($attribute->type->custom) {
|
||||
if ($request->hasData('value')) {
|
||||
|
|
@ -192,7 +192,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Validate driver attribute create request
|
||||
* Validate equipment attribute create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -200,7 +200,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateDriverAttributeUpdate(RequestAbstract $request) : array
|
||||
private function validateEquipmentAttributeUpdate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['id'] = !$request->hasData('id'))
|
||||
|
|
@ -212,7 +212,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Api method to create driver attribute l11n
|
||||
* Api method to create equipment attribute l11n
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -224,22 +224,22 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiDriverAttributeTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
public function apiEquipmentAttributeTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateDriverAttributeTypeL11nCreate($request))) {
|
||||
if (!empty($val = $this->validateEquipmentAttributeTypeL11nCreate($request))) {
|
||||
$response->data['attr_type_l11n_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$attrL11n = $this->createDriverAttributeTypeL11nFromRequest($request);
|
||||
$this->createModel($request->header->account, $attrL11n, DriverAttributeTypeL11nMapper::class, 'attr_type_l11n', $request->getOrigin());
|
||||
$attrL11n = $this->createEquipmentAttributeTypeL11nFromRequest($request);
|
||||
$this->createModel($request->header->account, $attrL11n, EquipmentAttributeTypeL11nMapper::class, 'attr_type_l11n', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $attrL11n);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create driver attribute l11n from request.
|
||||
* Method to create equipment attribute l11n from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -247,7 +247,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createDriverAttributeTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n
|
||||
private function createEquipmentAttributeTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n
|
||||
{
|
||||
$attrL11n = new BaseStringL11n();
|
||||
$attrL11n->ref = $request->getDataInt('type') ?? 0;
|
||||
|
|
@ -260,7 +260,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Validate driver attribute l11n create request
|
||||
* Validate equipment attribute l11n create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -268,7 +268,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateDriverAttributeTypeL11nCreate(RequestAbstract $request) : array
|
||||
private function validateEquipmentAttributeTypeL11nCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['title'] = !$request->hasData('title'))
|
||||
|
|
@ -281,7 +281,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Api method to create driver attribute type
|
||||
* Api method to create equipment attribute type
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -293,9 +293,9 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiDriverAttributeTypeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
public function apiEquipmentAttributeTypeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateDriverAttributeTypeCreate($request))) {
|
||||
if (!empty($val = $this->validateEquipmentAttributeTypeCreate($request))) {
|
||||
$response->data['attr_type_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
|
|
@ -303,13 +303,13 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
$attrType = $this->createAttributeTypeFromRequest($request);
|
||||
$this->createModel($request->header->account, $attrType, DriverAttributeTypeMapper::class, 'attr_type', $request->getOrigin());
|
||||
$this->createModel($request->header->account, $attrType, EquipmentAttributeTypeMapper::class, 'attr_type', $request->getOrigin());
|
||||
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute type', 'Attribute type successfully created', $attrType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create driver attribute from request.
|
||||
* Method to create equipment attribute from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -331,7 +331,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Validate driver attribute create request
|
||||
* Validate equipment attribute create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -339,7 +339,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateDriverAttributeTypeCreate(RequestAbstract $request) : array
|
||||
private function validateEquipmentAttributeTypeCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['title'] = !$request->hasData('title'))
|
||||
|
|
@ -352,7 +352,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Api method to create driver attribute value
|
||||
* Api method to create equipment attribute value
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -364,9 +364,9 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiDriverAttributeValueCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
public function apiEquipmentAttributeValueCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateDriverAttributeValueCreate($request))) {
|
||||
if (!empty($val = $this->validateEquipmentAttributeValueCreate($request))) {
|
||||
$response->data['attr_value_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
|
|
@ -374,14 +374,14 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
$attrValue = $this->createAttributeValueFromRequest($request);
|
||||
$this->createModel($request->header->account, $attrValue, DriverAttributeValueMapper::class, 'attr_value', $request->getOrigin());
|
||||
$this->createModel($request->header->account, $attrValue, EquipmentAttributeValueMapper::class, 'attr_value', $request->getOrigin());
|
||||
|
||||
if ($attrValue->isDefault) {
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
(int) $request->getData('type'),
|
||||
$attrValue->id,
|
||||
DriverAttributeTypeMapper::class, 'defaults', '', $request->getOrigin()
|
||||
EquipmentAttributeTypeMapper::class, 'defaults', '', $request->getOrigin()
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -389,7 +389,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Method to create driver attribute value from request.
|
||||
* Method to create equipment attribute value from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -400,7 +400,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
private function createAttributeValueFromRequest(RequestAbstract $request) : AttributeValue
|
||||
{
|
||||
/** @var AttributeType $type */
|
||||
$type = DriverAttributeTypeMapper::get()
|
||||
$type = EquipmentAttributeTypeMapper::get()
|
||||
->where('id', $request->getDataInt('type') ?? 0)
|
||||
->execute();
|
||||
|
||||
|
|
@ -416,7 +416,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Validate driver attribute value create request
|
||||
* Validate equipment attribute value create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -424,7 +424,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateDriverAttributeValueCreate(RequestAbstract $request) : array
|
||||
private function validateEquipmentAttributeValueCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['type'] = !$request->hasData('type'))
|
||||
|
|
@ -437,7 +437,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Api method to create driver attribute l11n
|
||||
* Api method to create equipment attribute l11n
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -449,9 +449,9 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiDriverAttributeValueL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
public function apiEquipmentAttributeValueL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateDriverAttributeValueL11nCreate($request))) {
|
||||
if (!empty($val = $this->validateEquipmentAttributeValueL11nCreate($request))) {
|
||||
$response->data['attr_value_l11n_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
|
|
@ -459,12 +459,12 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
$attrL11n = $this->createAttributeValueL11nFromRequest($request);
|
||||
$this->createModel($request->header->account, $attrL11n, DriverAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin());
|
||||
$this->createModel($request->header->account, $attrL11n, EquipmentAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $attrL11n);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create driver attribute l11n from request.
|
||||
* Method to create equipment attribute l11n from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -485,7 +485,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Validate driver attribute l11n create request
|
||||
* Validate equipment attribute l11n create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -493,7 +493,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateDriverAttributeValueL11nCreate(RequestAbstract $request) : array
|
||||
private function validateEquipmentAttributeValueL11nCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['title'] = !$request->hasData('title'))
|
||||
|
|
@ -506,7 +506,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Api method to handle api driver attributes
|
||||
* Api method to handle api equipment attributes
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -518,9 +518,9 @@ final class ApiDriverAttributeController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiDriverAttribute(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
public function apiEquipmentAttribute(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateDriverAttributeValueL11nCreate($request))) {
|
||||
if (!empty($val = $this->validateEquipmentAttributeValueL11nCreate($request))) {
|
||||
$response->data['attr_value_l11n_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
|
|
@ -528,7 +528,7 @@ final class ApiDriverAttributeController extends Controller
|
|||
}
|
||||
|
||||
$attrL11n = $this->createAttributeValueL11nFromRequest($request);
|
||||
$this->createModel($request->header->account, $attrL11n, DriverAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin());
|
||||
$this->createModel($request->header->account, $attrL11n, EquipmentAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $attrL11n);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement
|
||||
* @package Modules\EquipmentManagement
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,18 +12,16 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Controller;
|
||||
namespace Modules\EquipmentManagement\Controller;
|
||||
|
||||
use Modules\Admin\Models\NullAccount;
|
||||
use Modules\FleetManagement\Models\FuelTypeL11nMapper;
|
||||
use Modules\FleetManagement\Models\FuelTypeMapper;
|
||||
use Modules\FleetManagement\Models\InspectionTypeL11nMapper;
|
||||
use Modules\FleetManagement\Models\InspectionTypeMapper;
|
||||
use Modules\FleetManagement\Models\Vehicle;
|
||||
use Modules\FleetManagement\Models\VehicleMapper;
|
||||
use Modules\FleetManagement\Models\VehicleStatus;
|
||||
use Modules\FleetManagement\Models\VehicleTypeL11nMapper;
|
||||
use Modules\FleetManagement\Models\VehicleTypeMapper;
|
||||
use Modules\EquipmentManagement\Models\InspectionTypeL11nMapper;
|
||||
use Modules\EquipmentManagement\Models\InspectionTypeMapper;
|
||||
use Modules\EquipmentManagement\Models\Equipment;
|
||||
use Modules\EquipmentManagement\Models\EquipmentMapper;
|
||||
use Modules\EquipmentManagement\Models\EquipmentStatus;
|
||||
use Modules\EquipmentManagement\Models\EquipmentTypeL11nMapper;
|
||||
use Modules\EquipmentManagement\Models\EquipmentTypeMapper;
|
||||
use Modules\Media\Models\CollectionMapper;
|
||||
use Modules\Media\Models\MediaMapper;
|
||||
use Modules\Media\Models\NullMedia;
|
||||
|
|
@ -41,17 +39,17 @@ use phpOMS\Message\ResponseAbstract;
|
|||
use phpOMS\Model\Message\FormValidation;
|
||||
|
||||
/**
|
||||
* FleetManagement class.
|
||||
* EquipmentManagement class.
|
||||
*
|
||||
* @package Modules\FleetManagement
|
||||
* @package Modules\EquipmentManagement
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class ApiVehicleController extends Controller
|
||||
final class ApiEquipmentController extends Controller
|
||||
{
|
||||
/**
|
||||
* Api method to create a vehicle
|
||||
* Api method to create a equipment
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -63,18 +61,18 @@ final class ApiVehicleController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiVehicleTypeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
public function apiEquipmentTypeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateVehicleTypeCreate($request))) {
|
||||
if (!empty($val = $this->validateEquipmentTypeCreate($request))) {
|
||||
$response->data[$request->uri->__toString()] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var BaseStringL11nType $vehicle */
|
||||
$vehicle = $this->createVehicleTypeFromRequest($request);
|
||||
$this->createModel($request->header->account, $vehicle, VehicleTypeMapper::class, 'vehicle_type', $request->getOrigin());
|
||||
/** @var BaseStringL11nType $equipment */
|
||||
$equipment = $this->createEquipmentTypeFromRequest($request);
|
||||
$this->createModel($request->header->account, $equipment, EquipmentTypeMapper::class, 'equipment_type', $request->getOrigin());
|
||||
|
||||
$this->fillJsonResponse(
|
||||
$request,
|
||||
|
|
@ -82,20 +80,20 @@ final class ApiVehicleController extends Controller
|
|||
NotificationLevel::OK,
|
||||
'',
|
||||
$this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'SucessfulCreate'),
|
||||
$vehicle
|
||||
$equipment
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle from request.
|
||||
* Method to create equipment from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return BaseStringL11nType Returns the created vehicle from the request
|
||||
* @return BaseStringL11nType Returns the created equipment from the request
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function createVehicleTypeFromRequest(RequestAbstract $request) : BaseStringL11nType
|
||||
public function createEquipmentTypeFromRequest(RequestAbstract $request) : BaseStringL11nType
|
||||
{
|
||||
$type = new BaseStringL11nType();
|
||||
$type->title = $request->getDataString('name') ?? '';
|
||||
|
|
@ -105,7 +103,7 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle create request
|
||||
* Validate equipment create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -113,7 +111,7 @@ final class ApiVehicleController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateVehicleTypeCreate(RequestAbstract $request) : array
|
||||
private function validateEquipmentTypeCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['name'] = !$request->hasData('name'))
|
||||
|
|
@ -126,7 +124,7 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Api method to create vehicle attribute l11n
|
||||
* Api method to create equipment attribute l11n
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -138,22 +136,22 @@ final class ApiVehicleController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiVehicleTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
public function apiEquipmentTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateVehicleTypeL11nCreate($request))) {
|
||||
$response->data['vehicle_type_l11n_create'] = new FormValidation($val);
|
||||
if (!empty($val = $this->validateEquipmentTypeL11nCreate($request))) {
|
||||
$response->data['equipment_type_l11n_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$typeL11n = $this->createVehicleTypeL11nFromRequest($request);
|
||||
$this->createModel($request->header->account, $typeL11n, VehicleTypeL11nMapper::class, 'vehicle_type_l11n', $request->getOrigin());
|
||||
$typeL11n = $this->createEquipmentTypeL11nFromRequest($request);
|
||||
$this->createModel($request->header->account, $typeL11n, EquipmentTypeL11nMapper::class, 'equipment_type_l11n', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $typeL11n);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle attribute l11n from request.
|
||||
* Method to create equipment attribute l11n from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -161,7 +159,7 @@ final class ApiVehicleController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createVehicleTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n
|
||||
private function createEquipmentTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n
|
||||
{
|
||||
$typeL11n = new BaseStringL11n();
|
||||
$typeL11n->ref = $request->getDataInt('type') ?? 0;
|
||||
|
|
@ -174,7 +172,7 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle attribute l11n create request
|
||||
* Validate equipment attribute l11n create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -182,7 +180,7 @@ final class ApiVehicleController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateVehicleTypeL11nCreate(RequestAbstract $request) : array
|
||||
private function validateEquipmentTypeL11nCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['title'] = !$request->hasData('title'))
|
||||
|
|
@ -195,7 +193,7 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Api method to create a vehicle
|
||||
* Api method to create a equipment
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -207,167 +205,23 @@ final class ApiVehicleController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiFuelTypeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
public function apiEquipmentCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateFuelTypeCreate($request))) {
|
||||
if (!empty($val = $this->validateEquipmentCreate($request))) {
|
||||
$response->data[$request->uri->__toString()] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var BaseStringL11nType $vehicle */
|
||||
$vehicle = $this->createFuelTypeFromRequest($request);
|
||||
$this->createModel($request->header->account, $vehicle, FuelTypeMapper::class, 'fuel_type', $request->getOrigin());
|
||||
|
||||
$this->fillJsonResponse(
|
||||
$request,
|
||||
$response,
|
||||
NotificationLevel::OK,
|
||||
'',
|
||||
$this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'SucessfulCreate'),
|
||||
$vehicle
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return BaseStringL11nType Returns the created vehicle from the request
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function createFuelTypeFromRequest(RequestAbstract $request) : BaseStringL11nType
|
||||
{
|
||||
$type = new BaseStringL11nType();
|
||||
$type->title = $request->getDataString('name') ?? '';
|
||||
$type->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN);
|
||||
|
||||
return $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool> Returns the validation array of the request
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateFuelTypeCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['name'] = !$request->hasData('name'))
|
||||
|| ($val['title'] = !$request->hasData('title'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create vehicle attribute l11n
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiFuelTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateFuelTypeL11nCreate($request))) {
|
||||
$response->data['fuel_type_l11n_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$typeL11n = $this->createFuelTypeL11nFromRequest($request);
|
||||
$this->createModel($request->header->account, $typeL11n, FuelTypeL11nMapper::class, 'fuel_type_l11n', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $typeL11n);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle attribute l11n from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return BaseStringL11n
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createFuelTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n
|
||||
{
|
||||
$typeL11n = new BaseStringL11n();
|
||||
$typeL11n->ref = $request->getDataInt('type') ?? 0;
|
||||
$typeL11n->setLanguage(
|
||||
$request->getDataString('language') ?? $request->header->l11n->language
|
||||
);
|
||||
$typeL11n->content = $request->getDataString('title') ?? '';
|
||||
|
||||
return $typeL11n;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle attribute l11n create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateFuelTypeL11nCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['title'] = !$request->hasData('title'))
|
||||
|| ($val['type'] = !$request->hasData('type'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create a vehicle
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiVehicleCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateVehicleCreate($request))) {
|
||||
$response->data[$request->uri->__toString()] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var Vehicle $vehicle */
|
||||
$vehicle = $this->createVehicleFromRequest($request);
|
||||
$this->createModel($request->header->account, $vehicle, VehicleMapper::class, 'vehicle', $request->getOrigin());
|
||||
/** @var Equipment $equipment */
|
||||
$equipment = $this->createEquipmentFromRequest($request);
|
||||
$this->createModel($request->header->account, $equipment, EquipmentMapper::class, 'equipment', $request->getOrigin());
|
||||
|
||||
if (!empty($request->files)
|
||||
|| !empty($request->getDataJson('media'))
|
||||
) {
|
||||
$this->createVehicleMedia($vehicle, $request);
|
||||
$this->createEquipmentMedia($equipment, $request);
|
||||
}
|
||||
|
||||
$this->fillJsonResponse(
|
||||
|
|
@ -376,45 +230,44 @@ final class ApiVehicleController extends Controller
|
|||
NotificationLevel::OK,
|
||||
'',
|
||||
$this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'SucessfulCreate'),
|
||||
$vehicle
|
||||
$equipment
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle from request.
|
||||
* Method to create equipment from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return Vehicle Returns the created vehicle from the request
|
||||
* @return Equipment Returns the created equipment from the request
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function createVehicleFromRequest(RequestAbstract $request) : Vehicle
|
||||
public function createEquipmentFromRequest(RequestAbstract $request) : Equipment
|
||||
{
|
||||
$vehicle = new Vehicle();
|
||||
$vehicle->name = $request->getDataString('name') ?? '';
|
||||
$vehicle->info = $request->getDataString('info') ?? '';
|
||||
$vehicle->type = new NullBaseStringL11nType((int) ($request->getDataInt('type') ?? 0));
|
||||
$vehicle->fuelType = new NullBaseStringL11nType((int) ($request->getDataInt('fuel') ?? 0));
|
||||
$vehicle->status = (int) ($request->getDataInt('status') ?? VehicleStatus::INACTIVE);
|
||||
$vehicle->unit = $request->getDataInt('unit') ?? $this->app->unitId;
|
||||
$equipment = new Equipment();
|
||||
$equipment->name = $request->getDataString('name') ?? '';
|
||||
$equipment->info = $request->getDataString('info') ?? '';
|
||||
$equipment->type = new NullBaseStringL11nType((int) ($request->getDataInt('type') ?? 0));
|
||||
$equipment->status = (int) ($request->getDataInt('status') ?? EquipmentStatus::INACTIVE);
|
||||
$equipment->unit = $request->getDataInt('unit') ?? $this->app->unitId;
|
||||
|
||||
return $vehicle;
|
||||
return $equipment;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create media files for vehicle
|
||||
* Create media files for equipment
|
||||
*
|
||||
* @param Vehicle $vehicle Vehicle
|
||||
* @param Equipment $equipment Equipment
|
||||
* @param RequestAbstract $request Request incl. media do upload
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createVehicleMedia(Vehicle $vehicle, RequestAbstract $request) : void
|
||||
private function createEquipmentMedia(Equipment $equipment, RequestAbstract $request) : void
|
||||
{
|
||||
$path = $this->createVehicleDir($vehicle);
|
||||
$path = $this->createEquipmentDir($equipment);
|
||||
|
||||
if (!empty($uploadedFiles = $request->files)) {
|
||||
$uploaded = $this->app->moduleManager->get('Media')->uploadFiles(
|
||||
|
|
@ -431,9 +284,9 @@ final class ApiVehicleController extends Controller
|
|||
foreach ($uploaded as $media) {
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$vehicle->id,
|
||||
$equipment->id,
|
||||
$media->id,
|
||||
VehicleMapper::class,
|
||||
EquipmentMapper::class,
|
||||
'files',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
|
|
@ -473,9 +326,9 @@ final class ApiVehicleController extends Controller
|
|||
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$vehicle->id,
|
||||
$equipment->id,
|
||||
$media->id,
|
||||
VehicleMapper::class,
|
||||
EquipmentMapper::class,
|
||||
'files',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
|
|
@ -516,7 +369,7 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle create request
|
||||
* Validate equipment create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -524,7 +377,7 @@ final class ApiVehicleController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateVehicleCreate(RequestAbstract $request) : array
|
||||
private function validateEquipmentCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['name'] = !$request->hasData('name'))
|
||||
|
|
@ -549,18 +402,18 @@ final class ApiVehicleController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiMediaAddToVehicle(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
public function apiMediaAddToEquipment(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateMediaAddToVehicle($request))) {
|
||||
if (!empty($val = $this->validateMediaAddToEquipment($request))) {
|
||||
$response->data[$request->uri->__toString()] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var \Modules\FleetManagement\Models\Vehicle $vehicle */
|
||||
$vehicle = VehicleMapper::get()->where('id', (int) $request->getData('vehicle'))->execute();
|
||||
$path = $this->createVehicleDir($vehicle);
|
||||
/** @var \Modules\EquipmentManagement\Models\Equipment $equipment */
|
||||
$equipment = EquipmentMapper::get()->where('id', (int) $request->getData('equipment'))->execute();
|
||||
$path = $this->createEquipmentDir($equipment);
|
||||
|
||||
$uploaded = [];
|
||||
if (!empty($uploadedFiles = $request->files)) {
|
||||
|
|
@ -580,9 +433,9 @@ final class ApiVehicleController extends Controller
|
|||
foreach ($uploaded as $media) {
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$vehicle->id,
|
||||
$equipment->id,
|
||||
$media->id,
|
||||
VehicleMapper::class,
|
||||
EquipmentMapper::class,
|
||||
'files',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
|
|
@ -629,9 +482,9 @@ final class ApiVehicleController extends Controller
|
|||
foreach ($mediaFiles as $media) {
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
$vehicle->id,
|
||||
$equipment->id,
|
||||
(int) $media,
|
||||
VehicleMapper::class,
|
||||
EquipmentMapper::class,
|
||||
'files',
|
||||
'',
|
||||
$request->getOrigin()
|
||||
|
|
@ -639,7 +492,7 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Media', 'Media added to vehicle.', [
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Media', 'Media added to equipment.', [
|
||||
'upload' => $uploaded,
|
||||
'media' => $mediaFiles,
|
||||
]);
|
||||
|
|
@ -648,17 +501,17 @@ final class ApiVehicleController extends Controller
|
|||
/**
|
||||
* Create media directory path
|
||||
*
|
||||
* @param Vehicle $vehicle Vehicle
|
||||
* @param Equipment $equipment Equipment
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createVehicleDir(Vehicle $vehicle) : string
|
||||
private function createEquipmentDir(Equipment $equipment) : string
|
||||
{
|
||||
return '/Modules/FleetManagement/Vehicle/'
|
||||
return '/Modules/EquipmentManagement/Equipment/'
|
||||
. $this->app->unitId . '/'
|
||||
. $vehicle->id;
|
||||
. $equipment->id;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -670,11 +523,11 @@ final class ApiVehicleController extends Controller
|
|||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateMediaAddToVehicle(RequestAbstract $request) : array
|
||||
private function validateMediaAddToEquipment(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['media'] = (!$request->hasData('media') && empty($request->files)))
|
||||
|| ($val['vehicle'] = !$request->hasData('vehicle'))
|
||||
|| ($val['equipment'] = !$request->hasData('equipment'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
|
@ -683,7 +536,7 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Api method to create a vehicle
|
||||
* Api method to create a equipment
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -719,11 +572,11 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle from request.
|
||||
* Method to create equipment from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return BaseStringL11nType Returns the created vehicle from the request
|
||||
* @return BaseStringL11nType Returns the created equipment from the request
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
|
|
@ -737,7 +590,7 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle create request
|
||||
* Validate equipment create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -758,7 +611,7 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Api method to create vehicle attribute l11n
|
||||
* Api method to create equipment attribute l11n
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -785,7 +638,7 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle attribute l11n from request.
|
||||
* Method to create equipment attribute l11n from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -806,7 +659,7 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle attribute l11n create request
|
||||
* Validate equipment attribute l11n create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
|
|
@ -842,13 +695,13 @@ final class ApiVehicleController extends Controller
|
|||
public function apiNoteCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateNoteCreate($request))) {
|
||||
$response->data['vehicle_note_create'] = new FormValidation($val);
|
||||
$response->data['equipment_note_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$request->setData('virtualpath', '/Modules/FleetManagement/Vehicle/' . $request->getData('id'), true);
|
||||
$request->setData('virtualpath', '/Modules/EquipmentManagement/Equipment/' . $request->getData('id'), true);
|
||||
$this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data);
|
||||
|
||||
if ($response->header->status !== RequestStatusCode::R_200) {
|
||||
|
|
@ -861,7 +714,7 @@ final class ApiVehicleController extends Controller
|
|||
}
|
||||
|
||||
$model = $responseData['response'];
|
||||
$this->createModelRelation($request->header->account, (int) $request->getData('id'), $model->id, VehicleMapper::class, 'notes', '', $request->getOrigin());
|
||||
$this->createModelRelation($request->header->account, (int) $request->getData('id'), $model->id, EquipmentMapper::class, 'notes', '', $request->getOrigin());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1,534 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Controller;
|
||||
|
||||
use Modules\Attribute\Models\Attribute;
|
||||
use Modules\Attribute\Models\AttributeType;
|
||||
use Modules\Attribute\Models\AttributeValue;
|
||||
use Modules\Attribute\Models\NullAttributeType;
|
||||
use Modules\Attribute\Models\NullAttributeValue;
|
||||
use Modules\FleetManagement\Models\VehicleAttributeMapper;
|
||||
use Modules\FleetManagement\Models\VehicleAttributeTypeL11nMapper;
|
||||
use Modules\FleetManagement\Models\VehicleAttributeTypeMapper;
|
||||
use Modules\FleetManagement\Models\VehicleAttributeValueL11nMapper;
|
||||
use Modules\FleetManagement\Models\VehicleAttributeValueMapper;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
use phpOMS\Localization\ISO639x1Enum;
|
||||
use phpOMS\Message\Http\RequestStatusCode;
|
||||
use phpOMS\Message\NotificationLevel;
|
||||
use phpOMS\Message\RequestAbstract;
|
||||
use phpOMS\Message\ResponseAbstract;
|
||||
use phpOMS\Model\Message\FormValidation;
|
||||
|
||||
/**
|
||||
* FleetManagement class.
|
||||
*
|
||||
* @package Modules\FleetManagement
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class ApiVehicleAttributeController extends Controller
|
||||
{
|
||||
/**
|
||||
* Api method to create vehicle attribute
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiVehicleAttributeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateVehicleAttributeCreate($request))) {
|
||||
$response->data['attribute_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$attribute = $this->createVehicleAttributeFromRequest($request);
|
||||
$this->createModel($request->header->account, $attribute, VehicleAttributeMapper::class, 'attribute', $request->getOrigin());
|
||||
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute', 'Attribute successfully created', $attribute);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle attribute from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return Attribute
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createVehicleAttributeFromRequest(RequestAbstract $request) : Attribute
|
||||
{
|
||||
$attribute = new Attribute();
|
||||
$attribute->ref = (int) $request->getData('vehicle');
|
||||
$attribute->type = new NullAttributeType((int) $request->getData('type'));
|
||||
|
||||
if ($request->hasData('value')) {
|
||||
$attribute->value = new NullAttributeValue((int) $request->getData('value'));
|
||||
} else {
|
||||
$newRequest = clone $request;
|
||||
$newRequest->setData('value', $request->getData('custom'), true);
|
||||
|
||||
$value = $this->createAttributeValueFromRequest($newRequest);
|
||||
|
||||
$attribute->value = $value;
|
||||
}
|
||||
|
||||
return $attribute;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle attribute create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateVehicleAttributeCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['type'] = !$request->hasData('type'))
|
||||
|| ($val['value'] = (!$request->hasData('value') && !$request->hasData('custom')))
|
||||
|| ($val['vehicle'] = !$request->hasData('vehicle'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create vehicle attribute
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiVehicleAttributeUpdate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateVehicleAttributeUpdate($request))) {
|
||||
$response->data['attribute_update'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$old = VehicleAttributeMapper::get()
|
||||
->with('type')
|
||||
->with('type/defaults')
|
||||
->with('value')
|
||||
->where('id', (int) $request->getData('id'))
|
||||
->execute();
|
||||
|
||||
$new = $this->updateVehicleAttributeFromRequest($request, $old->deepClone());
|
||||
$this->updateModel($request->header->account, $old, $new, VehicleAttributeMapper::class, 'attribute', $request->getOrigin());
|
||||
|
||||
if ($new->value->getValue() !== $old->value->getValue()) {
|
||||
$this->updateModel($request->header->account, $old->value, $new->value, VehicleAttributeValueMapper::class, 'attribute_value', $request->getOrigin());
|
||||
}
|
||||
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute', 'Attribute successfully updated', $new);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle attribute from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return Attribute
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function updateVehicleAttributeFromRequest(RequestAbstract $request, Attribute $attribute) : Attribute
|
||||
{
|
||||
if ($attribute->type->custom) {
|
||||
if ($request->hasData('value')) {
|
||||
// @question: we are overwriting the old value, could there be a use case where we want to create a new value and keep the old one?
|
||||
$attribute->value->setValue($request->getData('value'), $attribute->type->datatype);
|
||||
}
|
||||
} else {
|
||||
if ($request->hasData('value')) {
|
||||
// @todo: fix by only accepting the value id to be used
|
||||
// this is a workaround for now because the front end doesn't allow to dynamically show default values.
|
||||
$value = $attribute->type->getDefaultByValue($request->getData('value'));
|
||||
|
||||
if ($value->id !== 0) {
|
||||
$attribute->value = $attribute->type->getDefaultByValue($request->getData('value'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $attribute;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle attribute create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateVehicleAttributeUpdate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['id'] = !$request->hasData('id'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create vehicle attribute l11n
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiVehicleAttributeTypeL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateVehicleAttributeTypeL11nCreate($request))) {
|
||||
$response->data['attr_type_l11n_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$attrL11n = $this->createVehicleAttributeTypeL11nFromRequest($request);
|
||||
$this->createModel($request->header->account, $attrL11n, VehicleAttributeTypeL11nMapper::class, 'attr_type_l11n', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $attrL11n);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle attribute l11n from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return BaseStringL11n
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createVehicleAttributeTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n
|
||||
{
|
||||
$attrL11n = new BaseStringL11n();
|
||||
$attrL11n->ref = $request->getDataInt('type') ?? 0;
|
||||
$attrL11n->setLanguage(
|
||||
$request->getDataString('language') ?? $request->header->l11n->language
|
||||
);
|
||||
$attrL11n->content = $request->getDataString('title') ?? '';
|
||||
|
||||
return $attrL11n;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle attribute l11n create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateVehicleAttributeTypeL11nCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['title'] = !$request->hasData('title'))
|
||||
|| ($val['type'] = !$request->hasData('type'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create vehicle attribute type
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiVehicleAttributeTypeCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateVehicleAttributeTypeCreate($request))) {
|
||||
$response->data['attr_type_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$attrType = $this->createAttributeTypeFromRequest($request);
|
||||
$this->createModel($request->header->account, $attrType, VehicleAttributeTypeMapper::class, 'attr_type', $request->getOrigin());
|
||||
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute type', 'Attribute type successfully created', $attrType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle attribute from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return AttributeType
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createAttributeTypeFromRequest(RequestAbstract $request) : AttributeType
|
||||
{
|
||||
$attrType = new AttributeType($request->getDataString('name') ?? '');
|
||||
$attrType->datatype = $request->getDataInt('datatype') ?? 0;
|
||||
$attrType->custom = $request->getDataBool('custom') ?? false;
|
||||
$attrType->isRequired = (bool) ($request->getData('is_required') ?? false);
|
||||
$attrType->validationPattern = $request->getDataString('validation_pattern') ?? '';
|
||||
$attrType->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN);
|
||||
$attrType->setFields($request->getDataInt('fields') ?? 0);
|
||||
|
||||
return $attrType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle attribute create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateVehicleAttributeTypeCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['title'] = !$request->hasData('title'))
|
||||
|| ($val['name'] = !$request->hasData('name'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create vehicle attribute value
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiVehicleAttributeValueCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateVehicleAttributeValueCreate($request))) {
|
||||
$response->data['attr_value_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$attrValue = $this->createAttributeValueFromRequest($request);
|
||||
$this->createModel($request->header->account, $attrValue, VehicleAttributeValueMapper::class, 'attr_value', $request->getOrigin());
|
||||
|
||||
if ($attrValue->isDefault) {
|
||||
$this->createModelRelation(
|
||||
$request->header->account,
|
||||
(int) $request->getData('type'),
|
||||
$attrValue->id,
|
||||
VehicleAttributeTypeMapper::class, 'defaults', '', $request->getOrigin()
|
||||
);
|
||||
}
|
||||
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Attribute value', 'Attribute value successfully created', $attrValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle attribute value from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return AttributeValue
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createAttributeValueFromRequest(RequestAbstract $request) : AttributeValue
|
||||
{
|
||||
/** @var AttributeType $type */
|
||||
$type = VehicleAttributeTypeMapper::get()
|
||||
->where('id', $request->getDataInt('type') ?? 0)
|
||||
->execute();
|
||||
|
||||
$attrValue = new AttributeValue();
|
||||
$attrValue->isDefault = $request->getDataBool('default') ?? false;
|
||||
$attrValue->setValue($request->getData('value'), $type->datatype);
|
||||
|
||||
if ($request->hasData('title')) {
|
||||
$attrValue->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN);
|
||||
}
|
||||
|
||||
return $attrValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle attribute value create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateVehicleAttributeValueCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['type'] = !$request->hasData('type'))
|
||||
|| ($val['value'] = !$request->hasData('value'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to create vehicle attribute l11n
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiVehicleAttributeValueL11nCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateVehicleAttributeValueL11nCreate($request))) {
|
||||
$response->data['attr_value_l11n_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$attrL11n = $this->createAttributeValueL11nFromRequest($request);
|
||||
$this->createModel($request->header->account, $attrL11n, VehicleAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $attrL11n);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create vehicle attribute l11n from request.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return BaseStringL11n
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function createAttributeValueL11nFromRequest(RequestAbstract $request) : BaseStringL11n
|
||||
{
|
||||
$attrL11n = new BaseStringL11n();
|
||||
$attrL11n->ref = $request->getDataInt('value') ?? 0;
|
||||
$attrL11n->setLanguage(
|
||||
$request->getDataString('language') ?? $request->header->l11n->language
|
||||
);
|
||||
$attrL11n->content = $request->getDataString('title') ?? '';
|
||||
|
||||
return $attrL11n;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate vehicle attribute l11n create request
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
*
|
||||
* @return array<string, bool>
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private function validateVehicleAttributeValueL11nCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (($val['title'] = !$request->hasData('title'))
|
||||
|| ($val['value'] = !$request->hasData('value'))
|
||||
) {
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Api method to handle api vehicle attributes
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @api
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function apiVehicleAttribute(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void
|
||||
{
|
||||
if (!empty($val = $this->validateVehicleAttributeValueL11nCreate($request))) {
|
||||
$response->data['attr_value_l11n_create'] = new FormValidation($val);
|
||||
$response->header->status = RequestStatusCode::R_400;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$attrL11n = $this->createAttributeValueL11nFromRequest($request);
|
||||
$this->createModel($request->header->account, $attrL11n, VehicleAttributeValueL11nMapper::class, 'attr_value_l11n', $request->getOrigin());
|
||||
$this->fillJsonResponse($request, $response, NotificationLevel::OK, 'Localization', 'Localization successfully created', $attrL11n);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement
|
||||
* @package Modules\EquipmentManagement
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,14 +12,14 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Controller;
|
||||
namespace Modules\EquipmentManagement\Controller;
|
||||
|
||||
use Modules\Admin\Models\LocalizationMapper;
|
||||
use Modules\Admin\Models\SettingsEnum;
|
||||
use Modules\FleetManagement\Models\VehicleAttributeTypeL11nMapper;
|
||||
use Modules\FleetManagement\Models\VehicleAttributeTypeMapper;
|
||||
use Modules\FleetManagement\Models\VehicleMapper;
|
||||
use Modules\FleetManagement\Models\VehicleTypeMapper;
|
||||
use Modules\EquipmentManagement\Models\EquipmentAttributeTypeL11nMapper;
|
||||
use Modules\EquipmentManagement\Models\EquipmentAttributeTypeMapper;
|
||||
use Modules\EquipmentManagement\Models\EquipmentMapper;
|
||||
use Modules\EquipmentManagement\Models\EquipmentTypeMapper;
|
||||
use Modules\Media\Models\MediaMapper;
|
||||
use Modules\Media\Models\MediaTypeMapper;
|
||||
use Modules\Organization\Models\UnitMapper;
|
||||
|
|
@ -30,9 +30,9 @@ use phpOMS\Message\ResponseAbstract;
|
|||
use phpOMS\Views\View;
|
||||
|
||||
/**
|
||||
* FleetManagement class.
|
||||
* EquipmentManagement class.
|
||||
*
|
||||
* @package Modules\FleetManagement
|
||||
* @package Modules\EquipmentManagement
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
@ -52,14 +52,14 @@ final class BackendController extends Controller
|
|||
* @since 1.0.0
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function viewFleetManagementAttributeTypeList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface
|
||||
public function viewEquipmentManagementAttributeTypeList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
$view->setTemplate('/Modules/FleetManagement/Theme/Backend/attribute-type-list');
|
||||
$view->setTemplate('/Modules/EquipmentManagement/Theme/Backend/attribute-type-list');
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003503001, $request, $response);
|
||||
|
||||
/** @var \Modules\Attribute\Models\AttributeType[] $attributes */
|
||||
$attributes = VehicleAttributeTypeMapper::getAll()
|
||||
$attributes = EquipmentAttributeTypeMapper::getAll()
|
||||
->with('l11n')
|
||||
->where('l11n/language', $response->header->l11n->language)
|
||||
->execute();
|
||||
|
|
@ -81,50 +81,21 @@ final class BackendController extends Controller
|
|||
* @since 1.0.0
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function viewFleetManagementVehicleList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface
|
||||
public function viewEquipmentManagementEquipmentList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/FleetManagement/Theme/Backend/vehicle-list');
|
||||
$view->setTemplate('/Modules/EquipmentManagement/Theme/Backend/equipment-list');
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003502001, $request, $response);
|
||||
|
||||
$list = VehicleMapper::getAll()
|
||||
$list = EquipmentMapper::getAll()
|
||||
->with('type')
|
||||
->with('type/l11n')
|
||||
->where('type/l11n/language', $response->header->l11n->language)
|
||||
->sort('id', 'DESC')
|
||||
->execute();
|
||||
|
||||
$view->data['vehicles'] = $list;
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return RenderableInterface Returns a renderable object
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function viewFleetManagementDriverList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/FleetManagement/Theme/Backend/driver-list');
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003502001, $request, $response);
|
||||
|
||||
$list = DriverMapper::getAll()
|
||||
->with('account')
|
||||
->sort('id', 'DESC')
|
||||
->execute();
|
||||
|
||||
$view->data['drivers'] = $list;
|
||||
$view->data['equipments'] = $list;
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
|
@ -141,20 +112,20 @@ final class BackendController extends Controller
|
|||
* @since 1.0.0
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function viewFleetManagementAttributeType(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface
|
||||
public function viewEquipmentManagementAttributeType(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
$view->setTemplate('/Modules/FleetManagement/Theme/Backend/attribute-type');
|
||||
$view->setTemplate('/Modules/EquipmentManagement/Theme/Backend/attribute-type');
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1004801001, $request, $response);
|
||||
|
||||
/** @var \Modules\Attribute\Models\AttributeType $attribute */
|
||||
$attribute = VehicleAttributeTypeMapper::get()
|
||||
$attribute = EquipmentAttributeTypeMapper::get()
|
||||
->with('l11n')
|
||||
->where('id', (int) $request->getData('id'))
|
||||
->where('l11n/language', $response->header->l11n->language)
|
||||
->execute();
|
||||
|
||||
$l11ns = VehicleAttributeTypeL11nMapper::getAll()
|
||||
$l11ns = EquipmentAttributeTypeL11nMapper::getAll()
|
||||
->where('ref', $attribute->id)
|
||||
->execute();
|
||||
|
||||
|
|
@ -176,11 +147,11 @@ final class BackendController extends Controller
|
|||
* @since 1.0.0
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function viewFleetManagementVehicleCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface
|
||||
public function viewEquipmentManagementEquipmentCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/FleetManagement/Theme/Backend/vehicle-profile');
|
||||
$view->setTemplate('/Modules/EquipmentManagement/Theme/Backend/equipment-profile');
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003502001, $request, $response);
|
||||
|
||||
/** @var \Model\Setting $settings */
|
||||
|
|
@ -192,7 +163,7 @@ final class BackendController extends Controller
|
|||
$view->data['attributeView']->data['defaultlocalization'] = LocalizationMapper::get()->where('id', (int) $settings->id)->execute();
|
||||
|
||||
$view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response);
|
||||
$view->data['vehicle-notes'] = new \Modules\Editor\Theme\Backend\Components\Compound\BaseView($this->app->l11nManager, $request, $response);
|
||||
$view->data['equipment-notes'] = new \Modules\Editor\Theme\Backend\Components\Compound\BaseView($this->app->l11nManager, $request, $response);
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
|
@ -209,15 +180,15 @@ final class BackendController extends Controller
|
|||
* @since 1.0.0
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function viewFleetManagementVehicleProfile(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface
|
||||
public function viewEquipmentManagementEquipmentProfile(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/FleetManagement/Theme/Backend/vehicle-profile');
|
||||
$view->setTemplate('/Modules/EquipmentManagement/Theme/Backend/equipment-profile');
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003502001, $request, $response);
|
||||
|
||||
// @todo: This langauge filtering doesn't work. But it was working with the old mappers. Maybe there is a bug in the where() definition. Need to inspect the actual query.
|
||||
$vehicle = VehicleMapper::get()
|
||||
$equipment = EquipmentMapper::get()
|
||||
->with('attributes')
|
||||
->with('attributes/type')
|
||||
->with('attributes/value')
|
||||
|
|
@ -234,36 +205,36 @@ final class BackendController extends Controller
|
|||
->where('attributes/type/l11n/language', $response->header->l11n->language)
|
||||
->execute();
|
||||
|
||||
$view->data['vehicle'] = $vehicle;
|
||||
$view->data['equipment'] = $equipment;
|
||||
|
||||
$query = new Builder($this->app->dbPool->get());
|
||||
$results = $query->selectAs(VehicleMapper::HAS_MANY['files']['external'], 'file')
|
||||
->from(VehicleMapper::TABLE)
|
||||
->leftJoin(VehicleMapper::HAS_MANY['files']['table'])
|
||||
->on(VehicleMapper::HAS_MANY['files']['table'] . '.' . VehicleMapper::HAS_MANY['files']['self'], '=', VehicleMapper::TABLE . '.' . VehicleMapper::PRIMARYFIELD)
|
||||
$results = $query->selectAs(EquipmentMapper::HAS_MANY['files']['external'], 'file')
|
||||
->from(EquipmentMapper::TABLE)
|
||||
->leftJoin(EquipmentMapper::HAS_MANY['files']['table'])
|
||||
->on(EquipmentMapper::HAS_MANY['files']['table'] . '.' . EquipmentMapper::HAS_MANY['files']['self'], '=', EquipmentMapper::TABLE . '.' . EquipmentMapper::PRIMARYFIELD)
|
||||
->leftJoin(MediaMapper::TABLE)
|
||||
->on(VehicleMapper::HAS_MANY['files']['table'] . '.' . VehicleMapper::HAS_MANY['files']['external'], '=', MediaMapper::TABLE . '.' . MediaMapper::PRIMARYFIELD)
|
||||
->on(EquipmentMapper::HAS_MANY['files']['table'] . '.' . EquipmentMapper::HAS_MANY['files']['external'], '=', MediaMapper::TABLE . '.' . MediaMapper::PRIMARYFIELD)
|
||||
->leftJoin(MediaMapper::HAS_MANY['types']['table'])
|
||||
->on(MediaMapper::TABLE . '.' . MediaMapper::PRIMARYFIELD, '=', MediaMapper::HAS_MANY['types']['table'] . '.' . MediaMapper::HAS_MANY['types']['self'])
|
||||
->leftJoin(MediaTypeMapper::TABLE)
|
||||
->on(MediaMapper::HAS_MANY['types']['table'] . '.' . MediaMapper::HAS_MANY['types']['external'], '=', MediaTypeMapper::TABLE . '.' . MediaTypeMapper::PRIMARYFIELD)
|
||||
->where(VehicleMapper::HAS_MANY['files']['self'], '=', $vehicle->id)
|
||||
->where(MediaTypeMapper::TABLE . '.' . MediaTypeMapper::getColumnByMember('name'), '=', 'vehicle_profile_image');
|
||||
->where(EquipmentMapper::HAS_MANY['files']['self'], '=', $equipment->id)
|
||||
->where(MediaTypeMapper::TABLE . '.' . MediaTypeMapper::getColumnByMember('name'), '=', 'equipment_profile_image');
|
||||
|
||||
$vehicleImage = MediaMapper::get()
|
||||
$equipmentImage = MediaMapper::get()
|
||||
->with('types')
|
||||
->where('id', $results)
|
||||
->limit(1)
|
||||
->execute();
|
||||
|
||||
$view->data['vehicleImage'] = $vehicleImage;
|
||||
$view->data['equipmentImage'] = $equipmentImage;
|
||||
|
||||
$vehicleTypes = VehicleTypeMapper::getAll()
|
||||
$equipmentTypes = EquipmentTypeMapper::getAll()
|
||||
->with('l11n')
|
||||
->where('l11n/language', $response->header->l11n->language)
|
||||
->execute();
|
||||
|
||||
$view->data['types'] = $vehicleTypes;
|
||||
$view->data['types'] = $equipmentTypes;
|
||||
|
||||
$units = UnitMapper::getAll()
|
||||
->execute();
|
||||
|
|
@ -279,76 +250,7 @@ final class BackendController extends Controller
|
|||
$view->data['attributeView']->data['defaultlocalization'] = LocalizationMapper::get()->where('id', (int) $settings->id)->execute();
|
||||
|
||||
$view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response);
|
||||
$view->data['vehicle-notes'] = new \Modules\Editor\Theme\Backend\Components\Compound\BaseView($this->app->l11nManager, $request, $response);
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* Routing end-point for application behaviour.
|
||||
*
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return RenderableInterface Returns a renderable object
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function viewFleetManagementDriverProfile(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app->l11nManager, $request, $response);
|
||||
|
||||
$view->setTemplate('/Modules/FleetManagement/Theme/Backend/driver-profile');
|
||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003502001, $request, $response);
|
||||
|
||||
// @todo: This langauge filtering doesn't work. But it was working with the old mappers. Maybe there is a bug in the where() definition. Need to inspect the actual query.
|
||||
$driver = DriverMapper::get()
|
||||
->with('attributes')
|
||||
->with('attributes/type')
|
||||
->with('attributes/value')
|
||||
->with('attributes/type/l11n')
|
||||
->with('files')
|
||||
->with('files/types')
|
||||
->where('id', (int) $request->getData('id'))
|
||||
->where('attributes/type/l11n/language', $response->header->l11n->language)
|
||||
->execute();
|
||||
|
||||
$view->data['driver'] = $driver;
|
||||
|
||||
$query = new Builder($this->app->dbPool->get());
|
||||
$results = $query->selectAs(DriverMapper::HAS_MANY['files']['external'], 'file')
|
||||
->from(DriverMapper::TABLE)
|
||||
->leftJoin(DriverMapper::HAS_MANY['files']['table'])
|
||||
->on(DriverMapper::HAS_MANY['files']['table'] . '.' . DriverMapper::HAS_MANY['files']['self'], '=', DriverMapper::TABLE . '.' . DriverMapper::PRIMARYFIELD)
|
||||
->leftJoin(MediaMapper::TABLE)
|
||||
->on(DriverMapper::HAS_MANY['files']['table'] . '.' . DriverMapper::HAS_MANY['files']['external'], '=', MediaMapper::TABLE . '.' . MediaMapper::PRIMARYFIELD)
|
||||
->leftJoin(MediaMapper::HAS_MANY['types']['table'])
|
||||
->on(MediaMapper::TABLE . '.' . MediaMapper::PRIMARYFIELD, '=', MediaMapper::HAS_MANY['types']['table'] . '.' . MediaMapper::HAS_MANY['types']['self'])
|
||||
->leftJoin(MediaTypeMapper::TABLE)
|
||||
->on(MediaMapper::HAS_MANY['types']['table'] . '.' . MediaMapper::HAS_MANY['types']['external'], '=', MediaTypeMapper::TABLE . '.' . MediaTypeMapper::PRIMARYFIELD)
|
||||
->where(DriverMapper::HAS_MANY['files']['self'], '=', $driver->id)
|
||||
->where(MediaTypeMapper::TABLE . '.' . MediaTypeMapper::getColumnByMember('name'), '=', 'driver_profile_image');
|
||||
|
||||
$driverImage = MediaMapper::get()
|
||||
->with('types')
|
||||
->where('id', $results)
|
||||
->limit(1)
|
||||
->execute();
|
||||
|
||||
$view->data['driverImage'] = $driverImage;
|
||||
|
||||
/** @var \Model\Setting $settings */
|
||||
$settings = $this->app->appSettings->get(null, [
|
||||
SettingsEnum::DEFAULT_LOCALIZATION,
|
||||
]);
|
||||
|
||||
$view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response);
|
||||
$view->data['attributeView']->data['defaultlocalization'] = LocalizationMapper::get()->where('id', (int) $settings->id)->execute();
|
||||
|
||||
$view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response);
|
||||
$view->data['driver-notes'] = new \Modules\Editor\Theme\Backend\Components\Compound\BaseView($this->app->l11nManager, $request, $response);
|
||||
$view->data['equipment-notes'] = new \Modules\Editor\Theme\Backend\Components\Compound\BaseView($this->app->l11nManager, $request, $response);
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement
|
||||
* @package Modules\EquipmentManagement
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,14 +12,14 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Controller;
|
||||
namespace Modules\EquipmentManagement\Controller;
|
||||
|
||||
use phpOMS\Module\ModuleAbstract;
|
||||
|
||||
/**
|
||||
* FleetManagement class.
|
||||
* EquipmentManagement class.
|
||||
*
|
||||
* @package Modules\FleetManagement
|
||||
* @package Modules\EquipmentManagement
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
@ -48,7 +48,7 @@ class Controller extends ModuleAbstract
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const NAME = 'FleetManagement';
|
||||
public const NAME = 'EquipmentManagement';
|
||||
|
||||
/**
|
||||
* Module id.
|
||||
|
|
@ -56,7 +56,7 @@ class Controller extends ModuleAbstract
|
|||
* @var int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const ID = 1003500000;
|
||||
public const ID = 1008400000;
|
||||
|
||||
/**
|
||||
* Providing.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
/**
|
||||
* class.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
/**
|
||||
* class.
|
||||
|
|
|
|||
|
|
@ -1,79 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use Modules\Admin\Models\Account;
|
||||
|
||||
/**
|
||||
* Driver class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
class Driver
|
||||
{
|
||||
/**
|
||||
* ID value.
|
||||
*
|
||||
* @var int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public int $id = 0;
|
||||
|
||||
/**
|
||||
* Status value.
|
||||
*
|
||||
* @var int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public int $status = DriverStatus::ACTIVE;
|
||||
|
||||
/**
|
||||
* Account associated with the client.
|
||||
*
|
||||
* @var Account
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public Account $account;
|
||||
|
||||
public array $licenses = [];
|
||||
|
||||
public array $inspections = [];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() : array
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'status' => $this->status,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function jsonSerialize() : mixed
|
||||
{
|
||||
return $this->toArray();
|
||||
}
|
||||
|
||||
use \Modules\Media\Models\MediaListTrait;
|
||||
use \Modules\Editor\Models\EditorDocListTrait;
|
||||
use \Modules\Attribute\Models\AttributeHolderTrait;
|
||||
}
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use Modules\Attribute\Models\Attribute;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
|
||||
/**
|
||||
* Fleet mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of Attribute
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class DriverAttributeMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_driver_attr_id' => ['name' => 'fleetmgmt_driver_attr_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_driver_attr_driver' => ['name' => 'fleetmgmt_driver_attr_driver', 'type' => 'int', 'internal' => 'ref'],
|
||||
'fleetmgmt_driver_attr_type' => ['name' => 'fleetmgmt_driver_attr_type', 'type' => 'int', 'internal' => 'type'],
|
||||
'fleetmgmt_driver_attr_value' => ['name' => 'fleetmgmt_driver_attr_value', 'type' => 'int', 'internal' => 'value'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has one relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, external:string, by?:string, column?:string, conditional?:bool}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const OWNS_ONE = [
|
||||
'type' => [
|
||||
'mapper' => DriverAttributeTypeMapper::class,
|
||||
'external' => 'fleetmgmt_driver_attr_type',
|
||||
],
|
||||
'value' => [
|
||||
'mapper' => DriverAttributeValueMapper::class,
|
||||
'external' => 'fleetmgmt_driver_attr_value',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var class-string<T>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = Attribute::class;
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_driver_attr';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_driver_attr_id';
|
||||
}
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
|
||||
/**
|
||||
* Driver mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of BaseStringL11n
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class DriverAttributeTypeL11nMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_driver_attr_type_l11n_id' => ['name' => 'fleetmgmt_driver_attr_type_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_driver_attr_type_l11n_title' => ['name' => 'fleetmgmt_driver_attr_type_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
|
||||
'fleetmgmt_driver_attr_type_l11n_type' => ['name' => 'fleetmgmt_driver_attr_type_l11n_type', 'type' => 'int', 'internal' => 'ref'],
|
||||
'fleetmgmt_driver_attr_type_l11n_lang' => ['name' => 'fleetmgmt_driver_attr_type_l11n_lang', 'type' => 'string', 'internal' => 'language'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_driver_attr_type_l11n';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_driver_attr_type_l11n_id';
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var class-string<T>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = BaseStringL11n::class;
|
||||
}
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use Modules\Attribute\Models\AttributeType;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
|
||||
/**
|
||||
* Driver mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of AttributeType
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class DriverAttributeTypeMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_driver_attr_type_id' => ['name' => 'fleetmgmt_driver_attr_type_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_driver_attr_type_name' => ['name' => 'fleetmgmt_driver_attr_type_name', 'type' => 'string', 'internal' => 'name', 'autocomplete' => true],
|
||||
'fleetmgmt_driver_attr_type_datatype' => ['name' => 'fleetmgmt_driver_attr_type_datatype', 'type' => 'int', 'internal' => 'datatype'],
|
||||
'fleetmgmt_driver_attr_type_fields' => ['name' => 'fleetmgmt_driver_attr_type_fields', 'type' => 'int', 'internal' => 'fields'],
|
||||
'fleetmgmt_driver_attr_type_custom' => ['name' => 'fleetmgmt_driver_attr_type_custom', 'type' => 'bool', 'internal' => 'custom'],
|
||||
'fleetmgmt_driver_attr_type_pattern' => ['name' => 'fleetmgmt_driver_attr_type_pattern', 'type' => 'string', 'internal' => 'validationPattern'],
|
||||
'fleetmgmt_driver_attr_type_required' => ['name' => 'fleetmgmt_driver_attr_type_required', 'type' => 'bool', 'internal' => 'isRequired'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has many relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, table:string, self?:?string, external?:?string, column?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const HAS_MANY = [
|
||||
'l11n' => [
|
||||
'mapper' => DriverAttributeTypeL11nMapper::class,
|
||||
'table' => 'fleetmgmt_driver_attr_type_l11n',
|
||||
'self' => 'fleetmgmt_driver_attr_type_l11n_type',
|
||||
'column' => 'content',
|
||||
'external' => null,
|
||||
],
|
||||
'defaults' => [
|
||||
'mapper' => DriverAttributeValueMapper::class,
|
||||
'table' => 'fleetmgmt_driver_attr_default',
|
||||
'self' => 'fleetmgmt_driver_attr_default_type',
|
||||
'external' => 'fleetmgmt_driver_attr_default_value',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var class-string<T>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = AttributeType::class;
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_driver_attr_type';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_driver_attr_type_id';
|
||||
}
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
|
||||
/**
|
||||
* Driver mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of BaseStringL11n
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class DriverAttributeValueL11nMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_driver_attr_value_l11n_id' => ['name' => 'fleetmgmt_driver_attr_value_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_driver_attr_value_l11n_title' => ['name' => 'fleetmgmt_driver_attr_value_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
|
||||
'fleetmgmt_driver_attr_value_l11n_value' => ['name' => 'fleetmgmt_driver_attr_value_l11n_value', 'type' => 'int', 'internal' => 'ref'],
|
||||
'fleetmgmt_driver_attr_value_l11n_lang' => ['name' => 'fleetmgmt_driver_attr_value_l11n_lang', 'type' => 'string', 'internal' => 'language'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_driver_attr_value_l11n';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_driver_attr_value_l11n_id';
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var class-string<T>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = BaseStringL11n::class;
|
||||
}
|
||||
|
|
@ -1,89 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use Modules\Attribute\Models\AttributeValue;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
|
||||
/**
|
||||
* Driver mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of AttributeValue
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class DriverAttributeValueMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_driver_attr_value_id' => ['name' => 'fleetmgmt_driver_attr_value_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_driver_attr_value_default' => ['name' => 'fleetmgmt_driver_attr_value_default', 'type' => 'bool', 'internal' => 'isDefault'],
|
||||
'fleetmgmt_driver_attr_value_valueStr' => ['name' => 'fleetmgmt_driver_attr_value_valueStr', 'type' => 'string', 'internal' => 'valueStr'],
|
||||
'fleetmgmt_driver_attr_value_valueInt' => ['name' => 'fleetmgmt_driver_attr_value_valueInt', 'type' => 'int', 'internal' => 'valueInt'],
|
||||
'fleetmgmt_driver_attr_value_valueDec' => ['name' => 'fleetmgmt_driver_attr_value_valueDec', 'type' => 'float', 'internal' => 'valueDec'],
|
||||
'fleetmgmt_driver_attr_value_valueDat' => ['name' => 'fleetmgmt_driver_attr_value_valueDat', 'type' => 'DateTime', 'internal' => 'valueDat'],
|
||||
'fleetmgmt_driver_attr_value_unit' => ['name' => 'fleetmgmt_driver_attr_value_unit', 'type' => 'string', 'internal' => 'unit'],
|
||||
'fleetmgmt_driver_attr_value_deptype' => ['name' => 'fleetmgmt_driver_attr_value_deptype', 'type' => 'int', 'internal' => 'dependingAttributeType'],
|
||||
'fleetmgmt_driver_attr_value_depvalue' => ['name' => 'fleetmgmt_driver_attr_value_depvalue', 'type' => 'int', 'internal' => 'dependingAttributeValue'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has many relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, table:string, self?:?string, external?:?string, column?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const HAS_MANY = [
|
||||
'l11n' => [
|
||||
'mapper' => DriverAttributeValueL11nMapper::class,
|
||||
'table' => 'fleetmgmt_driver_attr_value_l11n',
|
||||
'self' => 'fleetmgmt_driver_attr_value_l11n_value',
|
||||
'external' => null,
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var class-string<T>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = AttributeValue::class;
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_driver_attr_value';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_driver_attr_value_id';
|
||||
}
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use phpOMS\Localization\BaseStringL11nType;
|
||||
|
||||
/**
|
||||
* Inspection class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
class DriverInspection implements \JsonSerializable
|
||||
{
|
||||
public int $id = 0;
|
||||
|
||||
public string $description = '';
|
||||
|
||||
public BaseStringL11nType $type;
|
||||
|
||||
public int $status = DriverInspectionStatus::TODO;
|
||||
|
||||
// Automatically get's filled from the previous inspection if available
|
||||
// Alternatively define default interval from inspection type?
|
||||
public ?\DateTime $next = null;
|
||||
|
||||
/**
|
||||
* Inspectio interval in months
|
||||
*
|
||||
* @var int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public int $interval = 0;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->type = new BaseStringL11nType();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function toArray() : array
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function jsonSerialize() : mixed
|
||||
{
|
||||
return $this->toArray();
|
||||
}
|
||||
|
||||
use \Modules\Media\Models\MediaListTrait;
|
||||
}
|
||||
|
|
@ -1,84 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
|
||||
/**
|
||||
* mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of DriverInspection
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class DriverInspectionMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_driver_inspection_id' => ['name' => 'fleetmgmt_driver_inspection_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_driver_inspection_description' => ['name' => 'fleetmgmt_driver_inspection_description', 'type' => 'string', 'internal' => 'description'],
|
||||
'fleetmgmt_driver_inspection_status' => ['name' => 'fleetmgmt_driver_inspection_status', 'type' => 'int', 'internal' => 'status'],
|
||||
'fleetmgmt_driver_inspection_interval' => ['name' => 'fleetmgmt_driver_inspection_interval', 'type' => 'int', 'internal' => 'interval'],
|
||||
'fleetmgmt_driver_inspection_next' => ['name' => 'fleetmgmt_driver_inspection_next', 'type' => 'DateTime', 'internal' => 'next'],
|
||||
'fleetmgmt_driver_inspection_type' => ['name' => 'fleetmgmt_driver_inspection_type', 'type' => 'int', 'internal' => 'type'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has one relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, external:string, by?:string, column?:string, conditional?:bool}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const OWNS_ONE = [
|
||||
'type' => [
|
||||
'mapper' => DriverInspectionTypeMapper::class,
|
||||
'external' => 'fleetmgmt_driver_inspection_type',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_driver_inspection';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_driver_inspection_id';
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var class-string<T>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = DriverInspection::class;
|
||||
}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use phpOMS\Stdlib\Base\Enum;
|
||||
|
||||
/**
|
||||
* Inspection status enum.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
abstract class DriverInspectionStatus extends Enum
|
||||
{
|
||||
public const DONE = 1;
|
||||
|
||||
public const PASSED = 2;
|
||||
|
||||
public const ONGOING = 4;
|
||||
|
||||
public const TODO = 5;
|
||||
}
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
|
||||
/**
|
||||
* mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of BaseStringL11n
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class DriverInspectionTypeL11nMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_driver_inspection_type_l11n_id' => ['name' => 'fleetmgmt_driver_inspection_type_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_driver_inspection_type_l11n_title' => ['name' => 'fleetmgmt_driver_inspection_type_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
|
||||
'fleetmgmt_driver_inspection_type_l11n_type' => ['name' => 'fleetmgmt_driver_inspection_type_l11n_type', 'type' => 'int', 'internal' => 'ref'],
|
||||
'fleetmgmt_driver_inspection_type_l11n_lang' => ['name' => 'fleetmgmt_driver_inspection_type_l11n_lang', 'type' => 'string', 'internal' => 'language'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_driver_inspection_type_l11n';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_driver_inspection_type_l11n_id';
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var class-string<T>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = BaseStringL11n::class;
|
||||
}
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11nType;
|
||||
|
||||
/**
|
||||
* Item mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of BaseStringL11nType
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class DriverInspectionTypeMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_driver_inspection_type_id' => ['name' => 'fleetmgmt_driver_inspection_type_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_driver_inspection_type_name' => ['name' => 'fleetmgmt_driver_inspection_type_name', 'type' => 'string', 'internal' => 'title', 'autocomplete' => true],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has many relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, table:string, self?:?string, external?:?string, column?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const HAS_MANY = [
|
||||
'l11n' => [
|
||||
'mapper' => DriverInspectionTypeL11nMapper::class,
|
||||
'table' => 'fleetmgmt_driver_inspection_type_l11n',
|
||||
'self' => 'fleetmgmt_driver_inspection_type_l11n_type',
|
||||
'column' => 'content',
|
||||
'external' => null,
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var class-string<T>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = BaseStringL11nType::class;
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_driver_inspection_type';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_driver_inspection_type_id';
|
||||
}
|
||||
|
|
@ -1,102 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use Modules\Admin\Models\AccountMapper;
|
||||
use Modules\Media\Models\MediaMapper;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use Modules\Editor\Models\EditorDocMapper;
|
||||
|
||||
/**
|
||||
* Mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of Driver
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class DriverMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_driver_id' => ['name' => 'fleetmgmt_driver_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_driver_status' => ['name' => 'fleetmgmt_driver_status', 'type' => 'int', 'internal' => 'status'],
|
||||
'fleetmgmt_driver_account' => ['name' => 'fleetmgmt_driver_account', 'type' => 'int', 'internal' => 'account'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has many relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, table:string, self?:?string, external?:?string, column?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const HAS_MANY = [
|
||||
'files' => [
|
||||
'mapper' => MediaMapper::class,
|
||||
'table' => 'fleetmgmt_driver_media',
|
||||
'external' => 'fleetmgmt_driver_media_media',
|
||||
'self' => 'fleetmgmt_driver_media_vehicle',
|
||||
],
|
||||
'attributes' => [
|
||||
'mapper' => DriverAttributeMapper::class,
|
||||
'table' => 'fleetmgmt_driver_attr',
|
||||
'self' => 'fleetmgmt_driver_attr_driver',
|
||||
'external' => null,
|
||||
],
|
||||
'notes' => [
|
||||
'mapper' => EditorDocMapper::class, /* mapper of the related object */
|
||||
'table' => 'fleetmgmt_driver_note', /* table of the related object, null if no relation table is used (many->1) */
|
||||
'external' => 'fleetmgmt_driver_note_doc',
|
||||
'self' => 'fleetmgmt_driver_note_driver',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has one relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, external:string, by?:string, column?:string, conditional?:bool}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const OWNS_ONE = [
|
||||
'account' => [
|
||||
'mapper' => AccountMapper::class,
|
||||
'external' => 'fleetmgmt_driver_account',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_driver';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_driver_id';
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
use phpOMS\Stdlib\Base\Enum;
|
||||
|
||||
/**
|
||||
* Driver status enum.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
abstract class DriverStatus extends Enum
|
||||
{
|
||||
public const ACTIVE = 1;
|
||||
|
||||
public const INACTIVE = 2;
|
||||
|
||||
public const SUSPENDED = 3;
|
||||
}
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
/**
|
||||
* Null model
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class NullDriver extends Driver
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param int $id Model id
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function __construct(int $id = 0)
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function jsonSerialize() : mixed
|
||||
{
|
||||
return ['id' => $this->id];
|
||||
}
|
||||
}
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models\Driver;
|
||||
|
||||
/**
|
||||
* Null model
|
||||
*
|
||||
* @package Modules\FleetManagement\Models\Driver
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class NullDriverInspection extends DriverInspection
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param int $id Model id
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public function __construct(int $id = 0)
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function jsonSerialize() : mixed
|
||||
{
|
||||
return ['id' => $this->id];
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,30 +12,28 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use phpOMS\Localization\BaseStringL11nType;
|
||||
|
||||
/**
|
||||
* Vehicle class.
|
||||
* Equipment class.
|
||||
*
|
||||
* @package Modules\Attribute\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
class Vehicle implements \JsonSerializable
|
||||
class Equipment implements \JsonSerializable
|
||||
{
|
||||
public int $id = 0;
|
||||
|
||||
public string $name = '';
|
||||
|
||||
public int $status = VehicleStatus::ACTIVE;
|
||||
public int $status = EquipmentStatus::ACTIVE;
|
||||
|
||||
public BaseStringL11nType $type;
|
||||
|
||||
public BaseStringL11nType $fuelType;
|
||||
|
||||
public string $info = '';
|
||||
|
||||
public array $drivers = [];
|
||||
|
|
@ -59,7 +57,6 @@ class Vehicle implements \JsonSerializable
|
|||
{
|
||||
$this->createdAt = new \DateTimeImmutable('now');
|
||||
$this->type = new BaseStringL11nType();
|
||||
$this->fuelType = new BaseStringL11nType();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use Modules\Attribute\Models\Attribute;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
|
|
@ -20,7 +20,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
|||
/**
|
||||
* Fleet mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
@ -28,7 +28,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
|||
* @template T of Attribute
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class VehicleAttributeMapper extends DataMapperFactory
|
||||
final class EquipmentAttributeMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
|
|
@ -37,10 +37,10 @@ final class VehicleAttributeMapper extends DataMapperFactory
|
|||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_vehicle_attr_id' => ['name' => 'fleetmgmt_vehicle_attr_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_vehicle_attr_vehicle' => ['name' => 'fleetmgmt_vehicle_attr_vehicle', 'type' => 'int', 'internal' => 'ref'],
|
||||
'fleetmgmt_vehicle_attr_type' => ['name' => 'fleetmgmt_vehicle_attr_type', 'type' => 'int', 'internal' => 'type'],
|
||||
'fleetmgmt_vehicle_attr_value' => ['name' => 'fleetmgmt_vehicle_attr_value', 'type' => 'int', 'internal' => 'value'],
|
||||
'equipmgmt_equipment_attr_id' => ['name' => 'equipmgmt_equipment_attr_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'equipmgmt_equipment_attr_equipment' => ['name' => 'equipmgmt_equipment_attr_equipment', 'type' => 'int', 'internal' => 'ref'],
|
||||
'equipmgmt_equipment_attr_type' => ['name' => 'equipmgmt_equipment_attr_type', 'type' => 'int', 'internal' => 'type'],
|
||||
'equipmgmt_equipment_attr_value' => ['name' => 'equipmgmt_equipment_attr_value', 'type' => 'int', 'internal' => 'value'],
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -51,12 +51,12 @@ final class VehicleAttributeMapper extends DataMapperFactory
|
|||
*/
|
||||
public const OWNS_ONE = [
|
||||
'type' => [
|
||||
'mapper' => VehicleAttributeTypeMapper::class,
|
||||
'external' => 'fleetmgmt_vehicle_attr_type',
|
||||
'mapper' => EquipmentAttributeTypeMapper::class,
|
||||
'external' => 'equipmgmt_equipment_attr_type',
|
||||
],
|
||||
'value' => [
|
||||
'mapper' => VehicleAttributeValueMapper::class,
|
||||
'external' => 'fleetmgmt_vehicle_attr_value',
|
||||
'mapper' => EquipmentAttributeValueMapper::class,
|
||||
'external' => 'equipmgmt_equipment_attr_value',
|
||||
],
|
||||
];
|
||||
|
||||
|
|
@ -74,7 +74,7 @@ final class VehicleAttributeMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_vehicle_attr';
|
||||
public const TABLE = 'equipmgmt_equipment_attr';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -82,5 +82,5 @@ final class VehicleAttributeMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_vehicle_attr_id';
|
||||
public const PRIMARYFIELD = 'equipmgmt_equipment_attr_id';
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,15 +12,15 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
|
||||
/**
|
||||
* Vehicle mapper class.
|
||||
* Equipment mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
@ -28,7 +28,7 @@ use phpOMS\Localization\BaseStringL11n;
|
|||
* @template T of BaseStringL11n
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class VehicleAttributeTypeL11nMapper extends DataMapperFactory
|
||||
final class EquipmentAttributeTypeL11nMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
|
|
@ -37,10 +37,10 @@ final class VehicleAttributeTypeL11nMapper extends DataMapperFactory
|
|||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_attr_type_l11n_id' => ['name' => 'fleetmgmt_attr_type_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_attr_type_l11n_title' => ['name' => 'fleetmgmt_attr_type_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
|
||||
'fleetmgmt_attr_type_l11n_type' => ['name' => 'fleetmgmt_attr_type_l11n_type', 'type' => 'int', 'internal' => 'ref'],
|
||||
'fleetmgmt_attr_type_l11n_lang' => ['name' => 'fleetmgmt_attr_type_l11n_lang', 'type' => 'string', 'internal' => 'language'],
|
||||
'equipmgmt_attr_type_l11n_id' => ['name' => 'equipmgmt_attr_type_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'equipmgmt_attr_type_l11n_title' => ['name' => 'equipmgmt_attr_type_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
|
||||
'equipmgmt_attr_type_l11n_type' => ['name' => 'equipmgmt_attr_type_l11n_type', 'type' => 'int', 'internal' => 'ref'],
|
||||
'equipmgmt_attr_type_l11n_lang' => ['name' => 'equipmgmt_attr_type_l11n_lang', 'type' => 'string', 'internal' => 'language'],
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -49,7 +49,7 @@ final class VehicleAttributeTypeL11nMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_attr_type_l11n';
|
||||
public const TABLE = 'equipmgmt_attr_type_l11n';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -57,7 +57,7 @@ final class VehicleAttributeTypeL11nMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_attr_type_l11n_id';
|
||||
public const PRIMARYFIELD = 'equipmgmt_attr_type_l11n_id';
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,15 +12,15 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use Modules\Attribute\Models\AttributeType;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
|
||||
/**
|
||||
* Vehicle mapper class.
|
||||
* Equipment mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
@ -28,7 +28,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
|||
* @template T of AttributeType
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class VehicleAttributeTypeMapper extends DataMapperFactory
|
||||
final class EquipmentAttributeTypeMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
|
|
@ -37,13 +37,13 @@ final class VehicleAttributeTypeMapper extends DataMapperFactory
|
|||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_attr_type_id' => ['name' => 'fleetmgmt_attr_type_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_attr_type_name' => ['name' => 'fleetmgmt_attr_type_name', 'type' => 'string', 'internal' => 'name', 'autocomplete' => true],
|
||||
'fleetmgmt_attr_type_datatype' => ['name' => 'fleetmgmt_attr_type_datatype', 'type' => 'int', 'internal' => 'datatype'],
|
||||
'fleetmgmt_attr_type_fields' => ['name' => 'fleetmgmt_attr_type_fields', 'type' => 'int', 'internal' => 'fields'],
|
||||
'fleetmgmt_attr_type_custom' => ['name' => 'fleetmgmt_attr_type_custom', 'type' => 'bool', 'internal' => 'custom'],
|
||||
'fleetmgmt_attr_type_pattern' => ['name' => 'fleetmgmt_attr_type_pattern', 'type' => 'string', 'internal' => 'validationPattern'],
|
||||
'fleetmgmt_attr_type_required' => ['name' => 'fleetmgmt_attr_type_required', 'type' => 'bool', 'internal' => 'isRequired'],
|
||||
'equipmgmt_attr_type_id' => ['name' => 'equipmgmt_attr_type_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'equipmgmt_attr_type_name' => ['name' => 'equipmgmt_attr_type_name', 'type' => 'string', 'internal' => 'name', 'autocomplete' => true],
|
||||
'equipmgmt_attr_type_datatype' => ['name' => 'equipmgmt_attr_type_datatype', 'type' => 'int', 'internal' => 'datatype'],
|
||||
'equipmgmt_attr_type_fields' => ['name' => 'equipmgmt_attr_type_fields', 'type' => 'int', 'internal' => 'fields'],
|
||||
'equipmgmt_attr_type_custom' => ['name' => 'equipmgmt_attr_type_custom', 'type' => 'bool', 'internal' => 'custom'],
|
||||
'equipmgmt_attr_type_pattern' => ['name' => 'equipmgmt_attr_type_pattern', 'type' => 'string', 'internal' => 'validationPattern'],
|
||||
'equipmgmt_attr_type_required' => ['name' => 'equipmgmt_attr_type_required', 'type' => 'bool', 'internal' => 'isRequired'],
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -54,17 +54,17 @@ final class VehicleAttributeTypeMapper extends DataMapperFactory
|
|||
*/
|
||||
public const HAS_MANY = [
|
||||
'l11n' => [
|
||||
'mapper' => VehicleAttributeTypeL11nMapper::class,
|
||||
'table' => 'fleetmgmt_attr_type_l11n',
|
||||
'self' => 'fleetmgmt_attr_type_l11n_type',
|
||||
'mapper' => EquipmentAttributeTypeL11nMapper::class,
|
||||
'table' => 'equipmgmt_attr_type_l11n',
|
||||
'self' => 'equipmgmt_attr_type_l11n_type',
|
||||
'column' => 'content',
|
||||
'external' => null,
|
||||
],
|
||||
'defaults' => [
|
||||
'mapper' => VehicleAttributeValueMapper::class,
|
||||
'table' => 'fleetmgmt_vehicle_attr_default',
|
||||
'self' => 'fleetmgmt_vehicle_attr_default_type',
|
||||
'external' => 'fleetmgmt_vehicle_attr_default_value',
|
||||
'mapper' => EquipmentAttributeValueMapper::class,
|
||||
'table' => 'equipmgmt_equipment_attr_default',
|
||||
'self' => 'equipmgmt_equipment_attr_default_type',
|
||||
'external' => 'equipmgmt_equipment_attr_default_value',
|
||||
],
|
||||
];
|
||||
|
||||
|
|
@ -82,7 +82,7 @@ final class VehicleAttributeTypeMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_attr_type';
|
||||
public const TABLE = 'equipmgmt_attr_type';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -90,5 +90,5 @@ final class VehicleAttributeTypeMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_attr_type_id';
|
||||
public const PRIMARYFIELD = 'equipmgmt_attr_type_id';
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,15 +12,15 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
|
||||
/**
|
||||
* Vehicle mapper class.
|
||||
* Equipment mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
@ -28,7 +28,7 @@ use phpOMS\Localization\BaseStringL11n;
|
|||
* @template T of BaseStringL11n
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class VehicleAttributeValueL11nMapper extends DataMapperFactory
|
||||
final class EquipmentAttributeValueL11nMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
|
|
@ -37,10 +37,10 @@ final class VehicleAttributeValueL11nMapper extends DataMapperFactory
|
|||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_attr_value_l11n_id' => ['name' => 'fleetmgmt_attr_value_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_attr_value_l11n_title' => ['name' => 'fleetmgmt_attr_value_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
|
||||
'fleetmgmt_attr_value_l11n_value' => ['name' => 'fleetmgmt_attr_value_l11n_value', 'type' => 'int', 'internal' => 'ref'],
|
||||
'fleetmgmt_attr_value_l11n_lang' => ['name' => 'fleetmgmt_attr_value_l11n_lang', 'type' => 'string', 'internal' => 'language'],
|
||||
'equipmgmt_attr_value_l11n_id' => ['name' => 'equipmgmt_attr_value_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'equipmgmt_attr_value_l11n_title' => ['name' => 'equipmgmt_attr_value_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
|
||||
'equipmgmt_attr_value_l11n_value' => ['name' => 'equipmgmt_attr_value_l11n_value', 'type' => 'int', 'internal' => 'ref'],
|
||||
'equipmgmt_attr_value_l11n_lang' => ['name' => 'equipmgmt_attr_value_l11n_lang', 'type' => 'string', 'internal' => 'language'],
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -49,7 +49,7 @@ final class VehicleAttributeValueL11nMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_attr_value_l11n';
|
||||
public const TABLE = 'equipmgmt_attr_value_l11n';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -57,7 +57,7 @@ final class VehicleAttributeValueL11nMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_attr_value_l11n_id';
|
||||
public const PRIMARYFIELD = 'equipmgmt_attr_value_l11n_id';
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
89
Models/EquipmentAttributeValueMapper.php
Normal file
89
Models/EquipmentAttributeValueMapper.php
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use Modules\Attribute\Models\AttributeValue;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
|
||||
/**
|
||||
* Equipment mapper class.
|
||||
*
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of AttributeValue
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class EquipmentAttributeValueMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'equipmgmt_attr_value_id' => ['name' => 'equipmgmt_attr_value_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'equipmgmt_attr_value_default' => ['name' => 'equipmgmt_attr_value_default', 'type' => 'bool', 'internal' => 'isDefault'],
|
||||
'equipmgmt_attr_value_valueStr' => ['name' => 'equipmgmt_attr_value_valueStr', 'type' => 'string', 'internal' => 'valueStr'],
|
||||
'equipmgmt_attr_value_valueInt' => ['name' => 'equipmgmt_attr_value_valueInt', 'type' => 'int', 'internal' => 'valueInt'],
|
||||
'equipmgmt_attr_value_valueDec' => ['name' => 'equipmgmt_attr_value_valueDec', 'type' => 'float', 'internal' => 'valueDec'],
|
||||
'equipmgmt_attr_value_valueDat' => ['name' => 'equipmgmt_attr_value_valueDat', 'type' => 'DateTime', 'internal' => 'valueDat'],
|
||||
'equipmgmt_attr_value_unit' => ['name' => 'equipmgmt_attr_value_unit', 'type' => 'string', 'internal' => 'unit'],
|
||||
'equipmgmt_attr_value_deptype' => ['name' => 'equipmgmt_attr_value_deptype', 'type' => 'int', 'internal' => 'dependingAttributeType'],
|
||||
'equipmgmt_attr_value_depvalue' => ['name' => 'equipmgmt_attr_value_depvalue', 'type' => 'int', 'internal' => 'dependingAttributeValue'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has many relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, table:string, self?:?string, external?:?string, column?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const HAS_MANY = [
|
||||
'l11n' => [
|
||||
'mapper' => EquipmentAttributeValueL11nMapper::class,
|
||||
'table' => 'equipmgmt_attr_value_l11n',
|
||||
'self' => 'equipmgmt_attr_value_l11n_value',
|
||||
'external' => null,
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var class-string<T>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = AttributeValue::class;
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'equipmgmt_attr_value';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'equipmgmt_attr_value_id';
|
||||
}
|
||||
114
Models/EquipmentMapper.php
Normal file
114
Models/EquipmentMapper.php
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use Modules\Media\Models\MediaMapper;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use Modules\Editor\Models\EditorDocMapper;
|
||||
|
||||
/**
|
||||
* Mapper class.
|
||||
*
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of Equipment
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class EquipmentMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'equipmgmt_equipment_id' => ['name' => 'equipmgmt_equipment_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'equipmgmt_equipment_name' => ['name' => 'equipmgmt_equipment_name', 'type' => 'string', 'internal' => 'name'],
|
||||
'equipmgmt_equipment_status' => ['name' => 'equipmgmt_equipment_status', 'type' => 'int', 'internal' => 'status'],
|
||||
'equipmgmt_equipment_info' => ['name' => 'equipmgmt_equipment_info', 'type' => 'string', 'internal' => 'info'],
|
||||
'equipmgmt_equipment_unit' => ['name' => 'equipmgmt_equipment_unit', 'type' => 'int', 'internal' => 'unit'],
|
||||
'equipmgmt_equipment_type' => ['name' => 'equipmgmt_equipment_type', 'type' => 'int', 'internal' => 'type'],
|
||||
'equipmgmt_equipment_responsible' => ['name' => 'equipmgmt_equipment_responsible', 'type' => 'int', 'internal' => 'responsible'],
|
||||
'equipmgmt_equipment_created_at' => ['name' => 'equipmgmt_equipment_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt', 'readonly' => true],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has many relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, table:string, self?:?string, external?:?string, column?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const HAS_MANY = [
|
||||
'files' => [
|
||||
'mapper' => MediaMapper::class,
|
||||
'table' => 'equipmgmt_equipment_media',
|
||||
'external' => 'equipmgmt_equipment_media_media',
|
||||
'self' => 'equipmgmt_equipment_media_equipment',
|
||||
],
|
||||
'attributes' => [
|
||||
'mapper' => EquipmentAttributeMapper::class,
|
||||
'table' => 'equipmgmt_equipment_attr',
|
||||
'self' => 'equipmgmt_equipment_attr_equipment',
|
||||
'external' => null,
|
||||
],
|
||||
'notes' => [
|
||||
'mapper' => EditorDocMapper::class, /* mapper of the related object */
|
||||
'table' => 'equipmgmt_equipment_note', /* table of the related object, null if no relation table is used (many->1) */
|
||||
'external' => 'equipmgmt_equipment_note_doc',
|
||||
'self' => 'equipmgmt_equipment_note_equipment',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has one relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, external:string, by?:string, column?:string, conditional?:bool}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const OWNS_ONE = [
|
||||
'type' => [
|
||||
'mapper' => EquipmentTypeMapper::class,
|
||||
'external' => 'equipmgmt_equipment_type',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'equipmgmt_equipment';
|
||||
|
||||
/**
|
||||
* Created at.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const CREATED_AT = 'equipmgmt_equipment_created_at';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'equipmgmt_equipment_id';
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,19 +12,19 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use phpOMS\Stdlib\Base\Enum;
|
||||
|
||||
/**
|
||||
* Vehicle status enum.
|
||||
* Equipment status enum.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
abstract class VehicleStatus extends Enum
|
||||
abstract class EquipmentStatus extends Enum
|
||||
{
|
||||
public const ACTIVE = 1;
|
||||
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
|
|
@ -20,7 +20,7 @@ use phpOMS\Localization\BaseStringL11n;
|
|||
/**
|
||||
* mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
@ -28,7 +28,7 @@ use phpOMS\Localization\BaseStringL11n;
|
|||
* @template T of BaseStringL11n
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class FuelTypeL11nMapper extends DataMapperFactory
|
||||
final class EquipmentTypeL11nMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
|
|
@ -37,10 +37,10 @@ final class FuelTypeL11nMapper extends DataMapperFactory
|
|||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_fuel_type_l11n_id' => ['name' => 'fleetmgmt_fuel_type_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_fuel_type_l11n_title' => ['name' => 'fleetmgmt_fuel_type_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
|
||||
'fleetmgmt_fuel_type_l11n_type' => ['name' => 'fleetmgmt_fuel_type_l11n_type', 'type' => 'int', 'internal' => 'ref'],
|
||||
'fleetmgmt_fuel_type_l11n_lang' => ['name' => 'fleetmgmt_fuel_type_l11n_lang', 'type' => 'string', 'internal' => 'language'],
|
||||
'equipmgmt_equipment_type_l11n_id' => ['name' => 'equipmgmt_equipment_type_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'equipmgmt_equipment_type_l11n_title' => ['name' => 'equipmgmt_equipment_type_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
|
||||
'equipmgmt_equipment_type_l11n_type' => ['name' => 'equipmgmt_equipment_type_l11n_type', 'type' => 'int', 'internal' => 'ref'],
|
||||
'equipmgmt_equipment_type_l11n_lang' => ['name' => 'equipmgmt_equipment_type_l11n_lang', 'type' => 'string', 'internal' => 'language'],
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -49,7 +49,7 @@ final class FuelTypeL11nMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_fuel_type_l11n';
|
||||
public const TABLE = 'equipmgmt_equipment_type_l11n';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -57,7 +57,7 @@ final class FuelTypeL11nMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_fuel_type_l11n_id';
|
||||
public const PRIMARYFIELD = 'equipmgmt_equipment_type_l11n_id';
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11nType;
|
||||
|
|
@ -20,7 +20,7 @@ use phpOMS\Localization\BaseStringL11nType;
|
|||
/**
|
||||
* Item mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
@ -28,7 +28,7 @@ use phpOMS\Localization\BaseStringL11nType;
|
|||
* @template T of BaseStringL11nType
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class VehicleTypeMapper extends DataMapperFactory
|
||||
final class EquipmentTypeMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
|
|
@ -37,8 +37,8 @@ final class VehicleTypeMapper extends DataMapperFactory
|
|||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_vehicle_type_id' => ['name' => 'fleetmgmt_vehicle_type_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_vehicle_type_name' => ['name' => 'fleetmgmt_vehicle_type_name', 'type' => 'string', 'internal' => 'title', 'autocomplete' => true],
|
||||
'equipmgmt_equipment_type_id' => ['name' => 'equipmgmt_equipment_type_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'equipmgmt_equipment_type_name' => ['name' => 'equipmgmt_equipment_type_name', 'type' => 'string', 'internal' => 'title', 'autocomplete' => true],
|
||||
|
||||
];
|
||||
|
||||
|
|
@ -50,9 +50,9 @@ final class VehicleTypeMapper extends DataMapperFactory
|
|||
*/
|
||||
public const HAS_MANY = [
|
||||
'l11n' => [
|
||||
'mapper' => VehicleTypeL11nMapper::class,
|
||||
'table' => 'fleetmgmt_vehicle_type_l11n',
|
||||
'self' => 'fleetmgmt_vehicle_type_l11n_type',
|
||||
'mapper' => EquipmentTypeL11nMapper::class,
|
||||
'table' => 'equipmgmt_equipment_type_l11n',
|
||||
'self' => 'equipmgmt_equipment_type_l11n_type',
|
||||
'column' => 'content',
|
||||
'external' => null,
|
||||
],
|
||||
|
|
@ -72,7 +72,7 @@ final class VehicleTypeMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_vehicle_type';
|
||||
public const TABLE = 'equipmgmt_equipment_type';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -80,5 +80,5 @@ final class VehicleTypeMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_vehicle_type_id';
|
||||
public const PRIMARYFIELD = 'equipmgmt_equipment_type_id';
|
||||
}
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11nType;
|
||||
|
||||
/**
|
||||
* Item mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of BaseStringL11nType
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class FuelTypeMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_fuel_type_id' => ['name' => 'fleetmgmt_fuel_type_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_fuel_type_name' => ['name' => 'fleetmgmt_fuel_type_name', 'type' => 'string', 'internal' => 'title', 'autocomplete' => true],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has many relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, table:string, self?:?string, external?:?string, column?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const HAS_MANY = [
|
||||
'l11n' => [
|
||||
'mapper' => FuelTypeL11nMapper::class,
|
||||
'table' => 'fleetmgmt_fuel_type_l11n',
|
||||
'self' => 'fleetmgmt_fuel_type_l11n_type',
|
||||
'column' => 'content',
|
||||
'external' => null,
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var class-string<T>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = BaseStringL11nType::class;
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_fuel_type';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_fuel_type_id';
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use phpOMS\Localization\BaseStringL11nType;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
|
|
@ -20,7 +20,7 @@ use phpOMS\Localization\BaseStringL11n;
|
|||
/**
|
||||
* mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
@ -37,12 +37,12 @@ final class InspectionMapper extends DataMapperFactory
|
|||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_vehicle_inspection_id' => ['name' => 'fleetmgmt_vehicle_inspection_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_vehicle_inspection_description' => ['name' => 'fleetmgmt_vehicle_inspection_description', 'type' => 'string', 'internal' => 'description'],
|
||||
'fleetmgmt_vehicle_inspection_status' => ['name' => 'fleetmgmt_vehicle_inspection_status', 'type' => 'int', 'internal' => 'status'],
|
||||
'fleetmgmt_vehicle_inspection_interval' => ['name' => 'fleetmgmt_vehicle_inspection_interval', 'type' => 'int', 'internal' => 'interval'],
|
||||
'fleetmgmt_vehicle_inspection_next' => ['name' => 'fleetmgmt_vehicle_inspection_next', 'type' => 'DateTime', 'internal' => 'next'],
|
||||
'fleetmgmt_vehicle_inspection_type' => ['name' => 'fleetmgmt_vehicle_inspection_type', 'type' => 'int', 'internal' => 'type'],
|
||||
'equipmgmt_equipment_inspection_id' => ['name' => 'equipmgmt_equipment_inspection_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'equipmgmt_equipment_inspection_description' => ['name' => 'equipmgmt_equipment_inspection_description', 'type' => 'string', 'internal' => 'description'],
|
||||
'equipmgmt_equipment_inspection_status' => ['name' => 'equipmgmt_equipment_inspection_status', 'type' => 'int', 'internal' => 'status'],
|
||||
'equipmgmt_equipment_inspection_interval' => ['name' => 'equipmgmt_equipment_inspection_interval', 'type' => 'int', 'internal' => 'interval'],
|
||||
'equipmgmt_equipment_inspection_next' => ['name' => 'equipmgmt_equipment_inspection_next', 'type' => 'DateTime', 'internal' => 'next'],
|
||||
'equipmgmt_equipment_inspection_type' => ['name' => 'equipmgmt_equipment_inspection_type', 'type' => 'int', 'internal' => 'type'],
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -54,7 +54,7 @@ final class InspectionMapper extends DataMapperFactory
|
|||
public const OWNS_ONE = [
|
||||
'type' => [
|
||||
'mapper' => InspectionTypeMapper::class,
|
||||
'external' => 'fleetmgmt_vehicle_inspection_type',
|
||||
'external' => 'equipmgmt_equipment_inspection_type',
|
||||
],
|
||||
];
|
||||
|
||||
|
|
@ -64,7 +64,7 @@ final class InspectionMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_vehicle_inspection';
|
||||
public const TABLE = 'equipmgmt_equipment_inspection';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -72,7 +72,7 @@ final class InspectionMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_vehicle_inspection_id';
|
||||
public const PRIMARYFIELD = 'equipmgmt_equipment_inspection_id';
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,14 +12,14 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use phpOMS\Stdlib\Base\Enum;
|
||||
|
||||
/**
|
||||
* Inspection status enum.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
|
|
@ -20,7 +20,7 @@ use phpOMS\Localization\BaseStringL11n;
|
|||
/**
|
||||
* mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
@ -37,10 +37,10 @@ final class InspectionTypeL11nMapper extends DataMapperFactory
|
|||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_inspection_type_l11n_id' => ['name' => 'fleetmgmt_inspection_type_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_inspection_type_l11n_title' => ['name' => 'fleetmgmt_inspection_type_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
|
||||
'fleetmgmt_inspection_type_l11n_type' => ['name' => 'fleetmgmt_inspection_type_l11n_type', 'type' => 'int', 'internal' => 'ref'],
|
||||
'fleetmgmt_inspection_type_l11n_lang' => ['name' => 'fleetmgmt_inspection_type_l11n_lang', 'type' => 'string', 'internal' => 'language'],
|
||||
'equipmgmt_inspection_type_l11n_id' => ['name' => 'equipmgmt_inspection_type_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'equipmgmt_inspection_type_l11n_title' => ['name' => 'equipmgmt_inspection_type_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
|
||||
'equipmgmt_inspection_type_l11n_type' => ['name' => 'equipmgmt_inspection_type_l11n_type', 'type' => 'int', 'internal' => 'ref'],
|
||||
'equipmgmt_inspection_type_l11n_lang' => ['name' => 'equipmgmt_inspection_type_l11n_lang', 'type' => 'string', 'internal' => 'language'],
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -49,7 +49,7 @@ final class InspectionTypeL11nMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_inspection_type_l11n';
|
||||
public const TABLE = 'equipmgmt_inspection_type_l11n';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -57,7 +57,7 @@ final class InspectionTypeL11nMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_inspection_type_l11n_id';
|
||||
public const PRIMARYFIELD = 'equipmgmt_inspection_type_l11n_id';
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11nType;
|
||||
|
|
@ -20,7 +20,7 @@ use phpOMS\Localization\BaseStringL11nType;
|
|||
/**
|
||||
* Item mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
@ -37,8 +37,8 @@ final class InspectionTypeMapper extends DataMapperFactory
|
|||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_inspection_type_id' => ['name' => 'fleetmgmt_inspection_type_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_inspection_type_name' => ['name' => 'fleetmgmt_inspection_type_name', 'type' => 'string', 'internal' => 'title', 'autocomplete' => true],
|
||||
'equipmgmt_inspection_type_id' => ['name' => 'equipmgmt_inspection_type_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'equipmgmt_inspection_type_name' => ['name' => 'equipmgmt_inspection_type_name', 'type' => 'string', 'internal' => 'title', 'autocomplete' => true],
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -50,8 +50,8 @@ final class InspectionTypeMapper extends DataMapperFactory
|
|||
public const HAS_MANY = [
|
||||
'l11n' => [
|
||||
'mapper' => InspectionTypeL11nMapper::class,
|
||||
'table' => 'fleetmgmt_inspection_type_l11n',
|
||||
'self' => 'fleetmgmt_inspection_type_l11n_type',
|
||||
'table' => 'equipmgmt_inspection_type_l11n',
|
||||
'self' => 'equipmgmt_inspection_type_l11n_type',
|
||||
'column' => 'content',
|
||||
'external' => null,
|
||||
],
|
||||
|
|
@ -71,7 +71,7 @@ final class InspectionTypeMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_inspection_type';
|
||||
public const TABLE = 'equipmgmt_inspection_type';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
|
|
@ -79,5 +79,5 @@ final class InspectionTypeMapper extends DataMapperFactory
|
|||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_inspection_type_id';
|
||||
public const PRIMARYFIELD = 'equipmgmt_inspection_type_id';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,17 +12,17 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
/**
|
||||
* Null model
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
final class NullVehicle extends Vehicle
|
||||
final class NullEquipment extends Equipment
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,12 +12,12 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
/**
|
||||
* Null model
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -12,37 +12,27 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
use phpOMS\Stdlib\Base\Enum;
|
||||
|
||||
/**
|
||||
* Permision state enum.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @package Modules\EquipmentManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*/
|
||||
abstract class PermissionCategory extends Enum
|
||||
{
|
||||
public const VEHICLE = 1;
|
||||
public const EQUIPMENT = 1;
|
||||
|
||||
public const FUEL_TYPE = 2;
|
||||
public const EQUIPMENT_TYPE = 3;
|
||||
|
||||
public const VEHICLE_TYPE = 3;
|
||||
public const EQUIPMENT_INSPECTION_TYPE = 4;
|
||||
|
||||
public const VEHICLE_INSPECTION_TYPE = 4;
|
||||
public const EQUIPMENT_INSPECTION = 5;
|
||||
|
||||
public const VEHICLE_INSPECTION = 5;
|
||||
|
||||
public const VEHICLE_ATTRIBUTE_TYPE = 6;
|
||||
|
||||
public const DRIVER = 7;
|
||||
|
||||
public const DRIVER_INSPECTION_TYPE = 8;
|
||||
|
||||
public const DRIVER_INSPECTION = 9;
|
||||
|
||||
public const DRIVER_ATTRIBUTE_TYPE = 10;
|
||||
public const EQUIPMENT_ATTRIBUTE_TYPE = 6;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,89 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
|
||||
use Modules\Attribute\Models\AttributeValue;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
|
||||
/**
|
||||
* Vehicle mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of AttributeValue
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class VehicleAttributeValueMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_attr_value_id' => ['name' => 'fleetmgmt_attr_value_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_attr_value_default' => ['name' => 'fleetmgmt_attr_value_default', 'type' => 'bool', 'internal' => 'isDefault'],
|
||||
'fleetmgmt_attr_value_valueStr' => ['name' => 'fleetmgmt_attr_value_valueStr', 'type' => 'string', 'internal' => 'valueStr'],
|
||||
'fleetmgmt_attr_value_valueInt' => ['name' => 'fleetmgmt_attr_value_valueInt', 'type' => 'int', 'internal' => 'valueInt'],
|
||||
'fleetmgmt_attr_value_valueDec' => ['name' => 'fleetmgmt_attr_value_valueDec', 'type' => 'float', 'internal' => 'valueDec'],
|
||||
'fleetmgmt_attr_value_valueDat' => ['name' => 'fleetmgmt_attr_value_valueDat', 'type' => 'DateTime', 'internal' => 'valueDat'],
|
||||
'fleetmgmt_attr_value_unit' => ['name' => 'fleetmgmt_attr_value_unit', 'type' => 'string', 'internal' => 'unit'],
|
||||
'fleetmgmt_attr_value_deptype' => ['name' => 'fleetmgmt_attr_value_deptype', 'type' => 'int', 'internal' => 'dependingAttributeType'],
|
||||
'fleetmgmt_attr_value_depvalue' => ['name' => 'fleetmgmt_attr_value_depvalue', 'type' => 'int', 'internal' => 'dependingAttributeValue'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has many relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, table:string, self?:?string, external?:?string, column?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const HAS_MANY = [
|
||||
'l11n' => [
|
||||
'mapper' => VehicleAttributeValueL11nMapper::class,
|
||||
'table' => 'fleetmgmt_attr_value_l11n',
|
||||
'self' => 'fleetmgmt_attr_value_l11n_value',
|
||||
'external' => null,
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var class-string<T>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = AttributeValue::class;
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_attr_value';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_attr_value_id';
|
||||
}
|
||||
|
|
@ -1,119 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
|
||||
use Modules\Media\Models\MediaMapper;
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use Modules\Editor\Models\EditorDocMapper;
|
||||
|
||||
/**
|
||||
* Mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of Vehicle
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class VehicleMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_vehicle_id' => ['name' => 'fleetmgmt_vehicle_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_vehicle_name' => ['name' => 'fleetmgmt_vehicle_name', 'type' => 'string', 'internal' => 'name'],
|
||||
'fleetmgmt_vehicle_status' => ['name' => 'fleetmgmt_vehicle_status', 'type' => 'int', 'internal' => 'status'],
|
||||
'fleetmgmt_vehicle_info' => ['name' => 'fleetmgmt_vehicle_info', 'type' => 'string', 'internal' => 'info'],
|
||||
'fleetmgmt_vehicle_unit' => ['name' => 'fleetmgmt_vehicle_unit', 'type' => 'int', 'internal' => 'unit'],
|
||||
'fleetmgmt_vehicle_type' => ['name' => 'fleetmgmt_vehicle_type', 'type' => 'int', 'internal' => 'type'],
|
||||
'fleetmgmt_vehicle_fuel' => ['name' => 'fleetmgmt_vehicle_fuel', 'type' => 'int', 'internal' => 'fuelType'],
|
||||
'fleetmgmt_vehicle_responsible' => ['name' => 'fleetmgmt_vehicle_responsible', 'type' => 'int', 'internal' => 'responsible'],
|
||||
'fleetmgmt_vehicle_created_at' => ['name' => 'fleetmgmt_vehicle_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt', 'readonly' => true],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has many relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, table:string, self?:?string, external?:?string, column?:string}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const HAS_MANY = [
|
||||
'files' => [
|
||||
'mapper' => MediaMapper::class,
|
||||
'table' => 'fleetmgmt_vehicle_media',
|
||||
'external' => 'fleetmgmt_vehicle_media_media',
|
||||
'self' => 'fleetmgmt_vehicle_media_vehicle',
|
||||
],
|
||||
'attributes' => [
|
||||
'mapper' => VehicleAttributeMapper::class,
|
||||
'table' => 'fleetmgmt_vehicle_attr',
|
||||
'self' => 'fleetmgmt_vehicle_attr_vehicle',
|
||||
'external' => null,
|
||||
],
|
||||
'notes' => [
|
||||
'mapper' => EditorDocMapper::class, /* mapper of the related object */
|
||||
'table' => 'fleetmgmt_vehicle_note', /* table of the related object, null if no relation table is used (many->1) */
|
||||
'external' => 'fleetmgmt_vehicle_note_doc',
|
||||
'self' => 'fleetmgmt_vehicle_note_vehicle',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Has one relation.
|
||||
*
|
||||
* @var array<string, array{mapper:class-string, external:string, by?:string, column?:string, conditional?:bool}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const OWNS_ONE = [
|
||||
'type' => [
|
||||
'mapper' => VehicleTypeMapper::class,
|
||||
'external' => 'fleetmgmt_vehicle_type',
|
||||
],
|
||||
'fuelType' => [
|
||||
'mapper' => FuelTypeMapper::class,
|
||||
'external' => 'fleetmgmt_vehicle_fuel',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_vehicle';
|
||||
|
||||
/**
|
||||
* Created at.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const CREATED_AT = 'fleetmgmt_vehicle_created_at';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_vehicle_id';
|
||||
}
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
|
||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||
use phpOMS\Localization\BaseStringL11n;
|
||||
|
||||
/**
|
||||
* mapper class.
|
||||
*
|
||||
* @package Modules\FleetManagement\Models
|
||||
* @license OMS License 2.0
|
||||
* @link https://jingga.app
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @template T of BaseStringL11n
|
||||
* @extends DataMapperFactory<T>
|
||||
*/
|
||||
final class VehicleTypeL11nMapper extends DataMapperFactory
|
||||
{
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array{name:string, type:string, internal:string, autocomplete?:bool, readonly?:bool, writeonly?:bool, annotations?:array}>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const COLUMNS = [
|
||||
'fleetmgmt_vehicle_type_l11n_id' => ['name' => 'fleetmgmt_vehicle_type_l11n_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'fleetmgmt_vehicle_type_l11n_title' => ['name' => 'fleetmgmt_vehicle_type_l11n_title', 'type' => 'string', 'internal' => 'content', 'autocomplete' => true],
|
||||
'fleetmgmt_vehicle_type_l11n_type' => ['name' => 'fleetmgmt_vehicle_type_l11n_type', 'type' => 'int', 'internal' => 'ref'],
|
||||
'fleetmgmt_vehicle_type_l11n_lang' => ['name' => 'fleetmgmt_vehicle_type_l11n_lang', 'type' => 'string', 'internal' => 'language'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const TABLE = 'fleetmgmt_vehicle_type_l11n';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const PRIMARYFIELD = 'fleetmgmt_vehicle_type_l11n_id';
|
||||
|
||||
/**
|
||||
* Model to use by the mapper.
|
||||
*
|
||||
* @var class-string<T>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public const MODEL = BaseStringL11n::class;
|
||||
}
|
||||
|
|
@ -13,12 +13,9 @@
|
|||
declare(strict_types=1);
|
||||
|
||||
return ['Navigation' => [
|
||||
'FleetManagement' => 'Fleet Management',
|
||||
'Vehicles' => 'Vehicles',
|
||||
'Drivers' => 'Drivers',
|
||||
'EquipmentManagement' => 'Equipment Management',
|
||||
'Equipments' => 'Equipments',
|
||||
'Inspections' => 'Inspections',
|
||||
'VehicleInspectionTypes' => 'Vehicle Inspection Types',
|
||||
'DriverInspectionTypes' => 'Driver Inspection Types',
|
||||
'VehicleAttributes' => 'Vehicle Attributes',
|
||||
'DriverAttributes' => 'Driver Attributes',
|
||||
'EquipmentInspectionTypes' => 'Equipment Inspection Types',
|
||||
'EquipmentAttributes' => 'Equipment Attributes',
|
||||
]];
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
return ['FleetManagement' => [
|
||||
'Vehicle' => 'Vehicle',
|
||||
'Vehicles' => 'Vehicles',
|
||||
return ['EquipmentManagement' => [
|
||||
'Equipment' => 'Equipment',
|
||||
'Equipments' => 'Equipments',
|
||||
'Status' => 'Status',
|
||||
'Name' => 'Name',
|
||||
'Type' => 'Type',
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ echo $this->data['nav']->render(); ?>
|
|||
<?php
|
||||
$count = 0;
|
||||
foreach ($attributes as $key => $value) : ++$count;
|
||||
$url = UriFactory::build('{/base}/fleet/vehicle/attribute/type?{?}&id=' . $value->id);
|
||||
$url = UriFactory::build('{/base}/fleet/equipment/attribute/type?{?}&id=' . $value->id);
|
||||
?>
|
||||
<tr data-href="<?= $url; ?>">
|
||||
<td><a href="<?= $url; ?>"><?= $value->id; ?></a>
|
||||
|
|
|
|||
|
|
@ -1,318 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\ClientManagement
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
use Modules\FleetManagement\Models\NullDriver;
|
||||
use Modules\FleetManagement\Models\DriverStatus;
|
||||
use Modules\Media\Models\NullMedia;
|
||||
use phpOMS\Uri\UriFactory;
|
||||
|
||||
$countryCodes = \phpOMS\Localization\ISO3166TwoEnum::getConstants();
|
||||
$countries = \phpOMS\Localization\ISO3166NameEnum::getConstants();
|
||||
$driverStatus = DriverStatus::getConstants();
|
||||
|
||||
/**
|
||||
* @var \Modules\FleetManagement\Models\Driver $driver
|
||||
*/
|
||||
$driver = $this->data['driver'] ?? new NullDriver();
|
||||
$files = $driver->files;
|
||||
$driverImage = $this->data['driverImage'] ?? new NullMedia();
|
||||
$attributeView = $this->data['attributeView'];
|
||||
|
||||
/**
|
||||
* @var \phpOMS\Views\View $this
|
||||
*/
|
||||
echo $this->data['nav']->render();
|
||||
?>
|
||||
<div class="tabview tab-2">
|
||||
<div class="box">
|
||||
<ul class="tab-links">
|
||||
<li><label for="c-tab-1"><?= $this->getHtml('Profile'); ?></label>
|
||||
<li><label for="c-tab-2"><?= $this->getHtml('Attributes'); ?></label>
|
||||
<li><label for="c-tab-3"><?= $this->getHtml('Files'); ?></label>
|
||||
<li><label for="c-tab-4"><?= $this->getHtml('Notes'); ?></label>
|
||||
<li><label for="c-tab-5"><?= $this->getHtml('Inspections'); ?></label>
|
||||
<li><label for="c-tab-7"><?= $this->getHtml('Milage'); ?></label>
|
||||
<li><label for="c-tab-8"><?= $this->getHtml('Costs'); ?></label>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tab-content">
|
||||
<input type="radio" id="c-tab-1" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-1' ? ' checked' : ''; ?>>
|
||||
<div class="tab">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<section class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('Profile'); ?></div>
|
||||
<div class="portlet-body">
|
||||
<div class="form-group">
|
||||
<label for="iFleetDriverProfileName"><?= $this->getHtml('Name'); ?></label>
|
||||
<input type="text" id="iFleetDriverProfileName" name="name" value="<?= $this->printHtml($driver->account->name1); ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iDriverStatus"><?= $this->getHtml('Status'); ?></label>
|
||||
<select id="iDriverStatus" name="driver_status">
|
||||
<?php foreach ($driverStatus as $status) : ?>
|
||||
<option value="<?= $status; ?>"<?= $status === $driver->status ? ' selected' : ''; ?>><?= $this->getHtml(':status' . $status); ?>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iDriverMake"><?= $this->getHtml('Make'); ?></label>
|
||||
<input type="text" id="iDriverMake" name="make" value="<?= $this->printHtml($driver->getAttribute('maker')->value->getValue()); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet-foot">
|
||||
<?php if ($driver->id === 0) : ?>
|
||||
<input id="iCreateSubmit" type="Submit" value="<?= $this->getHtml('Create', '0', '0'); ?>">
|
||||
<?php else : ?>
|
||||
<input id="iSaveSubmit" type="Submit" value="<?= $this->getHtml('Save', '0', '0'); ?>">
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="md-hidden col-md-6">
|
||||
<section class="portlet">
|
||||
<div class="portlet-body">
|
||||
<img width="100%" src="<?= $driverImage->id === 0
|
||||
? 'Web/Backend/img/logo_grey.png'
|
||||
: UriFactory::build($driverImage->getPath()); ?>"></a>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="radio" id="c-tab-2" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>>
|
||||
<div class="tab">
|
||||
<div class="row">
|
||||
<?= $attributeView->render(
|
||||
$driver->attributes,
|
||||
$this->data['attributeTypes'] ?? [],
|
||||
[],
|
||||
'{/api}fleet/driver/attribute'
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="radio" id="c-tab-3" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>>
|
||||
<div class="tab col-simple">
|
||||
<?= $this->data['media-upload']->render('driver-file', 'files', '', $driver->files); ?>
|
||||
</div>
|
||||
|
||||
<input type="radio" id="c-tab-4" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>>
|
||||
<div class="tab">
|
||||
<?= $this->data['driver-notes']->render('driver-notes', '', $driver->notes); ?>
|
||||
</div>
|
||||
|
||||
<input type="radio" id="c-tab-5" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>>
|
||||
<div class="tab">
|
||||
<div class="row">
|
||||
<a class="button" href="<?= UriFactory::build('{/app}/fleet/inspection/create?driver=' . $driver->id) ?>"><?= $this->getHtml('Create', '0', '0'); ?></a>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<section class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('Upcoming'); ?></div>
|
||||
<table id="upcomingInspections" class="default">
|
||||
<thead>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('Date'); ?>
|
||||
<td class="wf-100"><?= $this->getHtml('Type'); ?>
|
||||
<td><?= $this->getHtml('Responsible'); ?>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<td>
|
||||
<td>
|
||||
</table>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<section class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('History'); ?></div>
|
||||
<table id="historicInspections" class="default">
|
||||
<thead>
|
||||
<tr>
|
||||
<td><?= $this->getHtml('Date'); ?>
|
||||
<td class="wf-100"><?= $this->getHtml('Type'); ?>
|
||||
<td><?= $this->getHtml('Responsible'); ?>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<td>
|
||||
<td>
|
||||
</table>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="radio" id="c-tab-7" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-7' ? ' checked' : ''; ?>>
|
||||
<div class="tab">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<section class="portlet">
|
||||
<form id="milageForm" action="<?= UriFactory::build(''); ?>" method="post"
|
||||
data-ui-container="#milageTable tbody"
|
||||
data-add-form="milageForm"
|
||||
data-add-tpl="#milageTable tbody .oms-add-tpl-milage">
|
||||
<div class="portlet-head"><?= $this->getHtml('Milage'); ?></div>
|
||||
<div class="portlet-body">
|
||||
<div class="form-group">
|
||||
<label for="iAttributeId"><?= $this->getHtml('ID', '0', '0'); ?></label>
|
||||
<input type="text" id="iAttributeId" name="id" data-tpl-text="/id" data-tpl-value="/id" disabled>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iDriver"><?= $this->getHtml('Driver'); ?></label>
|
||||
<div class="ipt-wrap">
|
||||
<div class="ipt-first">
|
||||
<span class="input">
|
||||
<button type="button" formaction="">
|
||||
<i class="fa fa-book"></i>
|
||||
</button>
|
||||
<input type="text" id="iDriver" name="bill_client" value="">
|
||||
</span>
|
||||
</div>
|
||||
<?php if (0 > 0) : ?>
|
||||
<div class="ipt-second">
|
||||
<a class="button" href="<?= UriFactory::build('{/app}/sales/client/profile?id=' . 0); ?>"><?= $this->getHtml('Driver'); ?></a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iStartDate"><?= $this->getHtml('Start'); ?></label>
|
||||
<input type="datetime-local" id="iStartDate" name="bill_invoice_date"
|
||||
value="">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iEndDate"><?= $this->getHtml('End'); ?></label>
|
||||
<input type="datetime-local" id="iEndDate" name="bill_invoice_date"
|
||||
value="">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iFrom"><?= $this->getHtml('From'); ?></label>
|
||||
<input type="text" id="iFrom" name="bill_invoice_date"
|
||||
value="">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iTo"><?= $this->getHtml('To'); ?></label>
|
||||
<input type="text" id="iTo" name="bill_invoice_date"
|
||||
value="">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iMilage"><?= $this->getHtml('Milage'); ?></label>
|
||||
<input type="number" id="iMilage" name="bill_invoice_date"
|
||||
value="">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iMilageDescription"><?= $this->getHtml('Description'); ?></label>
|
||||
<pre class="textarea contenteditable" id="iMilageDescription" data-name="description" data-tpl-value="/value" contenteditable></pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet-foot">
|
||||
<input id="bAttributeAdd" formmethod="put" type="submit" class="add-form" value="<?= $this->getHtml('Add', '0', '0'); ?>">
|
||||
<input id="bAttributeSave" formmethod="post" type="submit" class="save-form hidden button save" value="<?= $this->getHtml('Update', '0', '0'); ?>">
|
||||
<input type="submit" class="cancel-form hidden button close" value="<?= $this->getHtml('Cancel', '0', '0'); ?>">
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<section class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('Milage'); ?><i class="lni lni-download download btn end-xs"></i></div>
|
||||
<div class="slider">
|
||||
<table id="milageTable" class="default"
|
||||
data-tag="form"
|
||||
data-ui-element="tr"
|
||||
data-add-tpl=".oms-add-tpl-milage"
|
||||
data-update-form="milageForm">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>
|
||||
<td><?= $this->getHtml('ID', '0', '0'); ?>
|
||||
<td class="wf-100"><?= $this->getHtml('Driver'); ?><i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||
<td><?= $this->getHtml('Milage'); ?><i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||
<td><?= $this->getHtml('Start'); ?><i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||
<td><?= $this->getHtml('End'); ?><i class="sort-asc fa fa-chevron-up"></i><i class="sort-desc fa fa-chevron-down"></i>
|
||||
<tbody>
|
||||
<template class="oms-add-tpl-milage">
|
||||
<tr data-id="" draggable="false">
|
||||
<td>
|
||||
<i class="fa fa-cogs btn update-form"></i>
|
||||
<input id="milageTable-remove-0" type="checkbox" class="hidden">
|
||||
<label for="milageTable-remove-0" class="checked-visibility-alt"><i class="fa fa-times btn form-action"></i></label>
|
||||
<span class="checked-visibility">
|
||||
<label for="milageTable-remove-0" class="link default"><?= $this->getHtml('Cancel', '0', '0'); ?></label>
|
||||
<label for="milageTable-remove-0" class="remove-form link cancel"><?= $this->getHtml('Delete', '0', '0'); ?></label>
|
||||
</span>
|
||||
<td data-tpl-text="/id" data-tpl-value="/id"></td>
|
||||
<td data-tpl-text="/type" data-tpl-value="/type" data-value=""></td>
|
||||
<td data-tpl-text="/value" data-tpl-value="/value"></td>
|
||||
<td data-tpl-text="/unit" data-tpl-value="/unit"></td>
|
||||
<td data-tpl-text="/unit" data-tpl-value="/unit"></td>
|
||||
</tr>
|
||||
</template>
|
||||
<?php $c = 0;
|
||||
$milage = [];
|
||||
foreach ($milage as $key => $value) : ++$c; ?>
|
||||
<tr data-id="<?= $value->id; ?>">
|
||||
<td>
|
||||
<i class="fa fa-cogs btn update-form"></i>
|
||||
<?php if (!$value->type->isRequired) : ?>
|
||||
<input id="milageTable-remove-<?= $value->id; ?>" type="checkbox" class="hidden">
|
||||
<label for="milageTable-remove-<?= $value->id; ?>" class="checked-visibility-alt"><i class="fa fa-times btn form-action"></i></label>
|
||||
<span class="checked-visibility">
|
||||
<label for="milageTable-remove-<?= $value->id; ?>" class="link default"><?= $this->getHtml('Cancel', '0', '0'); ?></label>
|
||||
<label for="milageTable-remove-<?= $value->id; ?>" class="remove-form link cancel"><?= $this->getHtml('Delete', '0', '0'); ?></label>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
<td data-tpl-text="/id" data-tpl-value="/id"><?= $value->id; ?>
|
||||
<td data-tpl-text="/type" data-tpl-value="/type" data-value="<?= $value->type->id; ?>"><?= $this->printHtml($value->type->getL11n()); ?>
|
||||
<td data-tpl-text="/value" data-tpl-value="/value"><?= $value->value->getValue() instanceof \DateTime ? $value->value->getValue()->format('Y-m-d') : $this->printHtml((string) $value->value->getValue()); ?>
|
||||
<td data-tpl-text="/unit" data-tpl-value="/unit" data-value="<?= $value->value->unit; ?>"><?= $this->printHtml($value->value->unit); ?>
|
||||
<td data-tpl-text="/unit" data-tpl-value="/unit" data-value="<?= $value->value->unit; ?>"><?= $this->printHtml($value->value->unit); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php if ($c === 0) : ?>
|
||||
<tr>
|
||||
<td colspan="6" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="radio" id="c-tab-8" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-8' ? ' checked' : ''; ?>>
|
||||
<div class="tab">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
10
Theme/Backend/driver-list.tpl.php → Theme/Backend/equipment-list.tpl.php
Normal file → Executable file
10
Theme/Backend/driver-list.tpl.php → Theme/Backend/equipment-list.tpl.php
Normal file → Executable file
|
|
@ -5,7 +5,7 @@
|
|||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\ClientManagement
|
||||
* @package Modules\EquipmentManagement
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
|
|
@ -16,13 +16,13 @@ declare(strict_types=1);
|
|||
use phpOMS\Uri\UriFactory;
|
||||
|
||||
/** @var \phpOMS\Views\View $this */
|
||||
$drivers = $this->data['drivers'] ?? [];
|
||||
$equipments = $this->data['equipments'] ?? [];
|
||||
|
||||
echo $this->data['nav']->render(); ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<section class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('Vehicles'); ?><i class="lni lni-download download btn end-xs"></i></div>
|
||||
<div class="portlet-head"><?= $this->getHtml('Equipments'); ?><i class="lni lni-download download btn end-xs"></i></div>
|
||||
<div class="slider">
|
||||
<table id="iSalesClientList" class="default sticky">
|
||||
<thead>
|
||||
|
|
@ -79,9 +79,9 @@ echo $this->data['nav']->render(); ?>
|
|||
<tbody>
|
||||
<?php
|
||||
$count = 0;
|
||||
foreach ($drivers as $key => $value) :
|
||||
foreach ($equipments as $key => $value) :
|
||||
++$count;
|
||||
$url = UriFactory::build('{/base}/fleet/driver/profile?{?}&id=' . $value->id);
|
||||
$url = UriFactory::build('{/base}/fleet/equipment/profile?{?}&id=' . $value->id);
|
||||
?>
|
||||
<tr data-href="<?= $url; ?>">
|
||||
<td>
|
||||
|
|
@ -12,22 +12,22 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
use Modules\FleetManagement\Models\NullVehicle;
|
||||
use Modules\FleetManagement\Models\VehicleStatus;
|
||||
use Modules\EquipmentManagement\Models\NullEquipment;
|
||||
use Modules\EquipmentManagement\Models\EquipmentStatus;
|
||||
use Modules\Media\Models\NullMedia;
|
||||
use phpOMS\Uri\UriFactory;
|
||||
|
||||
$countryCodes = \phpOMS\Localization\ISO3166TwoEnum::getConstants();
|
||||
$countries = \phpOMS\Localization\ISO3166NameEnum::getConstants();
|
||||
$vehicleStatus = VehicleStatus::getConstants();
|
||||
$equipmentStatus = EquipmentStatus::getConstants();
|
||||
|
||||
/**
|
||||
* @var \Modules\FleetManagement\Models\Vehicle $vehicle
|
||||
* @var \Modules\EquipmentManagement\Models\Equipment $equipment
|
||||
*/
|
||||
$vehicle = $this->data['vehicle'] ?? new NullVehicle();
|
||||
$files = $vehicle->files;
|
||||
$vehicleImage = $this->data['vehicleImage'] ?? new NullMedia();
|
||||
$vehicleTypes = $this->data['types'] ?? [];
|
||||
$equipment = $this->data['equipment'] ?? new NullEquipment();
|
||||
$files = $equipment->files;
|
||||
$equipmentImage = $this->data['equipmentImage'] ?? new NullMedia();
|
||||
$equipmentTypes = $this->data['types'] ?? [];
|
||||
$attributeView = $this->data['attributeView'];
|
||||
|
||||
/**
|
||||
|
|
@ -56,70 +56,70 @@ echo $this->data['nav']->render();
|
|||
<div class="portlet-head"><?= $this->getHtml('Profile'); ?></div>
|
||||
<div class="portlet-body">
|
||||
<div class="form-group">
|
||||
<label for="iFleetVehicleProfileName"><?= $this->getHtml('Name'); ?></label>
|
||||
<input type="text" id="iFleetVehicleProfileName" name="name" value="<?= $this->printHtml($vehicle->name); ?>">
|
||||
<label for="iEquipmentEquipmentProfileName"><?= $this->getHtml('Name'); ?></label>
|
||||
<input type="text" id="iEquipmentEquipmentProfileName" name="name" value="<?= $this->printHtml($equipment->name); ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iVehicleDriver"><?= $this->getHtml('Driver'); ?></label>
|
||||
<input type="text" id="iVehicleDriver" name="driver" value="" disabled>
|
||||
<label for="iEquipmentDriver"><?= $this->getHtml('Driver'); ?></label>
|
||||
<input type="text" id="iEquipmentDriver" name="driver" value="" disabled>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iVehicleVin"><?= $this->getHtml('Vin'); ?></label>
|
||||
<input type="text" id="iVehicleVin" name="vin" value="<?= $this->printHtml($vehicle->getAttribute('vin')->value->getValue()); ?>">
|
||||
<label for="iEquipmentVin"><?= $this->getHtml('Vin'); ?></label>
|
||||
<input type="text" id="iEquipmentVin" name="vin" value="<?= $this->printHtml($equipment->getAttribute('vin')->value->getValue()); ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iVehicleStatus"><?= $this->getHtml('Status'); ?></label>
|
||||
<select id="iVehicleStatus" name="vehicle_status">
|
||||
<?php foreach ($vehicleStatus as $status) : ?>
|
||||
<option value="<?= $status; ?>"<?= $status === $vehicle->status ? ' selected' : ''; ?>><?= $this->getHtml(':status' . $status); ?>
|
||||
<label for="iEquipmentStatus"><?= $this->getHtml('Status'); ?></label>
|
||||
<select id="iEquipmentStatus" name="equipment_status">
|
||||
<?php foreach ($equipmentStatus as $status) : ?>
|
||||
<option value="<?= $status; ?>"<?= $status === $equipment->status ? ' selected' : ''; ?>><?= $this->getHtml(':status' . $status); ?>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iVehicleEnd"><?= $this->getHtml('Type'); ?></label>
|
||||
<select id="iVehicleEnd" name="vehicle_type">
|
||||
<?php foreach ($vehicleTypes as $type) : ?>
|
||||
<option value="<?= $type->id; ?>"<?= $vehicle->type->id === $type->id ? ' selected' : ''; ?>><?= $this->printHtml($type->getL11n()); ?>
|
||||
<label for="iEquipmentEnd"><?= $this->getHtml('Type'); ?></label>
|
||||
<select id="iEquipmentEnd" name="equipment_type">
|
||||
<?php foreach ($equipmentTypes as $type) : ?>
|
||||
<option value="<?= $type->id; ?>"<?= $equipment->type->id === $type->id ? ' selected' : ''; ?>><?= $this->printHtml($type->getL11n()); ?>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iVehicleMake"><?= $this->getHtml('Make'); ?></label>
|
||||
<input type="text" id="iVehicleMake" name="make" value="<?= $this->printHtml($vehicle->getAttribute('maker')->value->getValue()); ?>">
|
||||
<label for="iEquipmentMake"><?= $this->getHtml('Make'); ?></label>
|
||||
<input type="text" id="iEquipmentMake" name="make" value="<?= $this->printHtml($equipment->getAttribute('maker')->value->getValue()); ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iVehicleModel"><?= $this->getHtml('Model'); ?></label>
|
||||
<input type="text" id="iVehicleModel" name="vehicle_model" value="<?= $this->printHtml($vehicle->getAttribute('vehicle_model')->value->getValue()); ?>">
|
||||
<label for="iEquipmentModel"><?= $this->getHtml('Model'); ?></label>
|
||||
<input type="text" id="iEquipmentModel" name="equipment_model" value="<?= $this->printHtml($equipment->getAttribute('equipment_model')->value->getValue()); ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iVehicleStart"><?= $this->getHtml('Start'); ?></label>
|
||||
<input type="datetime-local" id="iVehicleStart" name="ownership_start" value="<?= $vehicle->getAttribute('ownership_start')->value->getValue()?->format('Y-m-d\TH:i') ?? $vehicle->createdAt->format('Y-m-d\TH:i'); ?>">
|
||||
<label for="iEquipmentStart"><?= $this->getHtml('Start'); ?></label>
|
||||
<input type="datetime-local" id="iEquipmentStart" name="ownership_start" value="<?= $equipment->getAttribute('ownership_start')->value->getValue()?->format('Y-m-d\TH:i') ?? $equipment->createdAt->format('Y-m-d\TH:i'); ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iVehicleEnd"><?= $this->getHtml('End'); ?></label>
|
||||
<input type="datetime-local" id="iVehicleEnd" name="ownership_end" value="<?= $vehicle->getAttribute('ownership_end')->value->getValue()?->format('Y-m-d\TH:i'); ?>">
|
||||
<label for="iEquipmentEnd"><?= $this->getHtml('End'); ?></label>
|
||||
<input type="datetime-local" id="iEquipmentEnd" name="ownership_end" value="<?= $equipment->getAttribute('ownership_end')->value->getValue()?->format('Y-m-d\TH:i'); ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iVehiclePrice"><?= $this->getHtml('PurchasePrice'); ?></label>
|
||||
<input type="number" step="0.01" id="iVehiclePrice" name="purchase_price" value="<?= $this->printHtml($vehicle->getAttribute('purchase_price')->value->getValue()); ?>">
|
||||
<label for="iEquipmentPrice"><?= $this->getHtml('PurchasePrice'); ?></label>
|
||||
<input type="number" step="0.01" id="iEquipmentPrice" name="purchase_price" value="<?= $this->printHtml($equipment->getAttribute('purchase_price')->value->getValue()); ?>">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="iVehiclePrice"><?= $this->getHtml('LeasingFee'); ?></label>
|
||||
<input type="number" step="0.01" id="iVehiclePrice" name="leasing_fee" value="<?= $this->printHtml($vehicle->getAttribute('leasing_fee')->value->getValue()); ?>">
|
||||
<label for="iEquipmentPrice"><?= $this->getHtml('LeasingFee'); ?></label>
|
||||
<input type="number" step="0.01" id="iEquipmentPrice" name="leasing_fee" value="<?= $this->printHtml($equipment->getAttribute('leasing_fee')->value->getValue()); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet-foot">
|
||||
<?php if ($vehicle->id === 0) : ?>
|
||||
<?php if ($equipment->id === 0) : ?>
|
||||
<input id="iCreateSubmit" type="Submit" value="<?= $this->getHtml('Create', '0', '0'); ?>">
|
||||
<?php else : ?>
|
||||
<input id="iSaveSubmit" type="Submit" value="<?= $this->getHtml('Save', '0', '0'); ?>">
|
||||
|
|
@ -131,9 +131,9 @@ echo $this->data['nav']->render();
|
|||
<div class="col-xs-12 col-md-6">
|
||||
<section class="portlet">
|
||||
<div class="portlet-body">
|
||||
<img width="100%" src="<?= $vehicleImage->id === 0
|
||||
<img width="100%" src="<?= $equipmentImage->id === 0
|
||||
? 'Web/Backend/img/logo_grey.png'
|
||||
: UriFactory::build($vehicleImage->getPath()); ?>"></a>
|
||||
: UriFactory::build($equipmentImage->getPath()); ?>"></a>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
|
@ -144,10 +144,10 @@ echo $this->data['nav']->render();
|
|||
<div class="tab">
|
||||
<div class="row">
|
||||
<?= $attributeView->render(
|
||||
$vehicle->attributes,
|
||||
$equipment->attributes,
|
||||
$this->data['attributeTypes'] ?? [],
|
||||
$this->data['units'] ?? [],
|
||||
'{/api}fleet/vehicle/attribute'
|
||||
'{/api}fleet/equipment/attribute'
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
|
|
@ -155,18 +155,18 @@ echo $this->data['nav']->render();
|
|||
|
||||
<input type="radio" id="c-tab-3" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>>
|
||||
<div class="tab col-simple">
|
||||
<?= $this->data['media-upload']->render('vehicle-file', 'files', '', $vehicle->files); ?>
|
||||
<?= $this->data['media-upload']->render('equipment-file', 'files', '', $equipment->files); ?>
|
||||
</div>
|
||||
|
||||
<input type="radio" id="c-tab-4" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>>
|
||||
<div class="tab">
|
||||
<?= $this->data['vehicle-notes']->render('vehicle-notes', '', $vehicle->notes); ?>
|
||||
<?= $this->data['equipment-notes']->render('equipment-notes', '', $equipment->notes); ?>
|
||||
</div>
|
||||
|
||||
<input type="radio" id="c-tab-5" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>>
|
||||
<div class="tab">
|
||||
<div class="row">
|
||||
<a class="button" href="<?= UriFactory::build('{/app}/fleet/inspection/create?vehicle=' . $vehicle->id) ?>"><?= $this->getHtml('Create', '0', '0'); ?></a>
|
||||
<a class="button" href="<?= UriFactory::build('{/app}/fleet/inspection/create?equipment=' . $equipment->id) ?>"><?= $this->getHtml('Create', '0', '0'); ?></a>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
|
|
@ -1,100 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Jingga
|
||||
*
|
||||
* PHP Version 8.1
|
||||
*
|
||||
* @package Modules\ClientManagement
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 2.0
|
||||
* @version 1.0.0
|
||||
* @link https://jingga.app
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
use phpOMS\Uri\UriFactory;
|
||||
|
||||
/** @var \phpOMS\Views\View $this */
|
||||
$vehicles = $this->data['vehicles'] ?? [];
|
||||
|
||||
echo $this->data['nav']->render(); ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<section class="portlet">
|
||||
<div class="portlet-head"><?= $this->getHtml('Vehicles'); ?><i class="lni lni-download download btn end-xs"></i></div>
|
||||
<div class="slider">
|
||||
<table id="iSalesClientList" class="default sticky">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>
|
||||
<td><?= $this->getHtml('ID', '0', '0'); ?>
|
||||
<label for="iSalesClientList-sort-1">
|
||||
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-1">
|
||||
<i class="sort-asc fa fa-chevron-up"></i>
|
||||
</label>
|
||||
<label for="iSalesClientList-sort-2">
|
||||
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-2">
|
||||
<i class="sort-desc fa fa-chevron-down"></i>
|
||||
</label>
|
||||
<label>
|
||||
<i class="filter fa fa-filter"></i>
|
||||
</label>
|
||||
<td><?= $this->getHtml('Status'); ?>
|
||||
<label for="iSalesClientList-sort-3">
|
||||
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-3">
|
||||
<i class="sort-asc fa fa-chevron-up"></i>
|
||||
</label>
|
||||
<label for="iSalesClientList-sort-4">
|
||||
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-4">
|
||||
<i class="sort-desc fa fa-chevron-down"></i>
|
||||
</label>
|
||||
<label>
|
||||
<i class="filter fa fa-filter"></i>
|
||||
</label>
|
||||
<td class="wf-100"><?= $this->getHtml('Name'); ?>
|
||||
<label for="iSalesClientList-sort-5">
|
||||
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-5">
|
||||
<i class="sort-asc fa fa-chevron-up"></i>
|
||||
</label>
|
||||
<label for="iSalesClientList-sort-6">
|
||||
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-6">
|
||||
<i class="sort-desc fa fa-chevron-down"></i>
|
||||
</label>
|
||||
<label>
|
||||
<i class="filter fa fa-filter"></i>
|
||||
</label>
|
||||
<td><?= $this->getHtml('Type'); ?>
|
||||
<label for="iSalesClientList-sort-7">
|
||||
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-7">
|
||||
<i class="sort-asc fa fa-chevron-up"></i>
|
||||
</label>
|
||||
<label for="iSalesClientList-sort-8">
|
||||
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-8">
|
||||
<i class="sort-desc fa fa-chevron-down"></i>
|
||||
</label>
|
||||
<label>
|
||||
<i class="filter fa fa-filter"></i>
|
||||
</label>
|
||||
<tbody>
|
||||
<?php
|
||||
$count = 0;
|
||||
foreach ($vehicles as $key => $value) :
|
||||
++$count;
|
||||
$url = UriFactory::build('{/base}/fleet/vehicle/profile?{?}&id=' . $value->id);
|
||||
?>
|
||||
<tr data-href="<?= $url; ?>">
|
||||
<td>
|
||||
<td data-label="<?= $this->getHtml('ID', '0', '0'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml((string) $value->id); ?></a>
|
||||
<td data-label="<?= $this->getHtml('Status'); ?>"><a href="<?= $url; ?>"><?= $this->getHtml(':status' . $value->status); ?></a>
|
||||
<td data-label="<?= $this->getHtml('Name'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($value->name); ?></a>
|
||||
<td data-label="<?= $this->getHtml('Type'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($value->type->getL11n()); ?></a>
|
||||
<?php endforeach; ?>
|
||||
<?php if ($count === 0) : ?>
|
||||
<tr><td colspan="8" class="empty"><?= $this->getHtml('Empty', '0', '0'); ?>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
18
info.json
18
info.json
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
"name": {
|
||||
"id": 1003500000,
|
||||
"internal": "FleetManagement",
|
||||
"external": "Fleet Management"
|
||||
"id": 1008400000,
|
||||
"internal": "EquipmentManagement",
|
||||
"external": "Equipment Management"
|
||||
},
|
||||
"category": "Fleet",
|
||||
"category": "Equipment",
|
||||
"version": "1.0.0",
|
||||
"requirements": {
|
||||
"phpOMS": "1.0.0",
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
"website": "jingga.app"
|
||||
},
|
||||
"description": "The buisness module.",
|
||||
"directory": "FleetManagement",
|
||||
"directory": "EquipmentManagement",
|
||||
"dependencies": {
|
||||
"Admin": "1.0.0",
|
||||
"Profile": "1.0.0",
|
||||
|
|
@ -29,19 +29,19 @@
|
|||
"load": [
|
||||
{
|
||||
"pid": [
|
||||
"/fleet"
|
||||
"/equipment"
|
||||
],
|
||||
"type": 4,
|
||||
"for": 0,
|
||||
"from": "FleetManagement",
|
||||
"file": "FleetManagement"
|
||||
"from": "EquipmentManagement",
|
||||
"file": "EquipmentManagement"
|
||||
},
|
||||
{
|
||||
"pid": [
|
||||
"/"
|
||||
],
|
||||
"type": 5,
|
||||
"from": "FleetManagement",
|
||||
"from": "EquipmentManagement",
|
||||
"for": "Navigation",
|
||||
"file": "Navigation"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,14 +12,14 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\tests\Admin;
|
||||
namespace Modules\EquipmentManagement\tests\Admin;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class AdminTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
protected const NAME = 'FleetManagement';
|
||||
protected const NAME = 'EquipmentManagement';
|
||||
|
||||
protected const URI_LOAD = '';
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\tests\Controller;
|
||||
namespace Modules\EquipmentManagement\tests\Controller;
|
||||
|
||||
use Model\CoreSettings;
|
||||
use Modules\Admin\Models\AccountPermission;
|
||||
|
|
@ -30,7 +30,7 @@ use phpOMS\Router\WebRouter;
|
|||
use phpOMS\Utils\TestUtils;
|
||||
|
||||
/**
|
||||
* @testdox Modules\FleetManagement\tests\Controller\ApiControllerTest: FleetManagement api controller
|
||||
* @testdox Modules\EquipmentManagement\tests\Controller\ApiControllerTest: EquipmentManagement api controller
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
|
|
@ -39,7 +39,7 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
|
|||
protected ApplicationAbstract $app;
|
||||
|
||||
/**
|
||||
* @var \Modules\FleetManagement\Controller\ApiController
|
||||
* @var \Modules\EquipmentManagement\Controller\ApiController
|
||||
*/
|
||||
protected ModuleAbstract $module;
|
||||
|
||||
|
|
@ -83,7 +83,7 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
|
|||
$this->app->accountManager->add($account);
|
||||
$this->app->router = new WebRouter();
|
||||
|
||||
$this->module = $this->app->moduleManager->get('FleetManagement');
|
||||
$this->module = $this->app->moduleManager->get('EquipmentManagement');
|
||||
|
||||
TestUtils::setMember($this->module, 'app', $this->app);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@
|
|||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\FleetManagement\Models;
|
||||
namespace Modules\EquipmentManagement\Models;
|
||||
|
||||
class Vehicle
|
||||
class Equipment
|
||||
{
|
||||
public int $id = 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user