Add notes.

This commit is contained in:
Dennis Eichhorn 2023-06-05 03:38:09 +02:00
parent c22b2890a7
commit 64b6bd4ea9
3 changed files with 67 additions and 2 deletions

View File

@ -548,8 +548,8 @@
"primary": true,
"autoincrement": true
},
"fleetmgmt_vehicle_note_item": {
"name": "fleetmgmt_vehicle_note_item",
"fleetmgmt_vehicle_note_vehicle": {
"name": "fleetmgmt_vehicle_note_vehicle",
"type": "INT",
"null": false,
"foreignTable": "fleetmgmt_vehicle",

View File

@ -1323,4 +1323,62 @@ final class ApiController extends Controller
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 [];
}
}

View File

@ -16,6 +16,7 @@ namespace Modules\FleetManagement\Models;
use Modules\Media\Models\MediaMapper;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
use Modules\Editor\Models\EditorDocMapper;
/**
* Mapper class.
@ -67,6 +68,12 @@ final class VehicleMapper extends DataMapperFactory
'self' => 'fleetmgmt_vehicle_attr_item',
'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',
],
];
/**