mirror of
https://github.com/Karaka-Management/oms-FleetManagement.git
synced 2026-02-15 12:58:41 +00:00
Merge branch 'develop' of https://github.com/Karaka-Management/oms-FleetManagement into develop
This commit is contained in:
commit
f3ff7eec1f
|
|
@ -548,8 +548,8 @@
|
||||||
"primary": true,
|
"primary": true,
|
||||||
"autoincrement": true
|
"autoincrement": true
|
||||||
},
|
},
|
||||||
"fleetmgmt_vehicle_note_item": {
|
"fleetmgmt_vehicle_note_vehicle": {
|
||||||
"name": "fleetmgmt_vehicle_note_item",
|
"name": "fleetmgmt_vehicle_note_vehicle",
|
||||||
"type": "INT",
|
"type": "INT",
|
||||||
"null": false,
|
"null": false,
|
||||||
"foreignTable": "fleetmgmt_vehicle",
|
"foreignTable": "fleetmgmt_vehicle",
|
||||||
|
|
|
||||||
|
|
@ -1323,4 +1323,62 @@ final class ApiController extends Controller
|
||||||
|
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Api method to create item files
|
||||||
|
*
|
||||||
|
* @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['vehicle_note_create'] = new FormValidation($val);
|
||||||
|
$response->header->status = RequestStatusCode::R_400;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$request->setData('virtualpath', '/Modules/FleetManagement/Items/' . $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, VehicleMapper::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 [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -187,6 +187,7 @@ final class BackendController extends Controller
|
||||||
$view->setTemplate('/Modules/FleetManagement/Theme/Backend/vehicle-profile');
|
$view->setTemplate('/Modules/FleetManagement/Theme/Backend/vehicle-profile');
|
||||||
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003502001, $request, $response);
|
$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()
|
$vehicle = VehicleMapper::get()
|
||||||
->with('attributes')
|
->with('attributes')
|
||||||
->with('attributes/type')
|
->with('attributes/type')
|
||||||
|
|
|
||||||
|
|
@ -44,8 +44,6 @@ class Vehicle implements \JsonSerializable
|
||||||
|
|
||||||
public array $milage = [];
|
public array $milage = [];
|
||||||
|
|
||||||
public array $notes = [];
|
|
||||||
|
|
||||||
public int $unit = 0;
|
public int $unit = 0;
|
||||||
|
|
||||||
public ?int $responsible = null;
|
public ?int $responsible = null;
|
||||||
|
|
@ -78,5 +76,6 @@ class Vehicle implements \JsonSerializable
|
||||||
}
|
}
|
||||||
|
|
||||||
use \Modules\Media\Models\MediaListTrait;
|
use \Modules\Media\Models\MediaListTrait;
|
||||||
|
use \Modules\Editor\Models\EditorDocListTrait;
|
||||||
use \Modules\Attribute\Models\AttributeHolderTrait;
|
use \Modules\Attribute\Models\AttributeHolderTrait;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ namespace Modules\FleetManagement\Models;
|
||||||
|
|
||||||
use Modules\Media\Models\MediaMapper;
|
use Modules\Media\Models\MediaMapper;
|
||||||
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
|
||||||
|
use Modules\Editor\Models\EditorDocMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mapper class.
|
* Mapper class.
|
||||||
|
|
@ -67,6 +68,12 @@ final class VehicleMapper extends DataMapperFactory
|
||||||
'self' => 'fleetmgmt_vehicle_attr_item',
|
'self' => 'fleetmgmt_vehicle_attr_item',
|
||||||
'external' => null,
|
'external' => null,
|
||||||
],
|
],
|
||||||
|
'notes' => [
|
||||||
|
'mapper' => EditorDocMapper::class, /* mapper of the related object */
|
||||||
|
'table' => 'bizexpenses_expense_note', /* table of the related object, null if no relation table is used (many->1) */
|
||||||
|
'external' => 'bizexpenses_expense_note_doc',
|
||||||
|
'self' => 'bizexpenses_expense_note_expense',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user