diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json index f82abda..e1f8747 100755 --- a/Admin/Install/Navigation.install.json +++ b/Admin/Install/Navigation.install.json @@ -5,7 +5,7 @@ "type": 2, "subtype": 1, "name": "Contract", - "uri": "{/base}/contract/list?{?}", + "uri": "{/base}/contract/list", "target": "self", "icon": null, "order": 45, @@ -19,7 +19,7 @@ "type": 3, "subtype": 1, "name": "Contracts", - "uri": "{/base}/contract/list?{?}", + "uri": "{/base}/contract/list", "target": "self", "icon": null, "order": 1, @@ -34,7 +34,7 @@ "type": 3, "subtype": 1, "name": "ContractTypes", - "uri": "{/base}/contract/type/list?{?}", + "uri": "{/base}/contract/type/list", "target": "self", "icon": null, "order": 1, @@ -49,7 +49,7 @@ "type": 3, "subtype": 1, "name": "Attributes", - "uri": "{/base}/contract/attribute/type/list?{?}", + "uri": "{/base}/contract/attribute/type/list", "target": "self", "icon": null, "order": 1, diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 7310302..808ed92 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -18,7 +18,6 @@ use Modules\Admin\Models\NullAccount; use Modules\ContractManagement\Models\Contract; use Modules\ContractManagement\Models\ContractMapper; use Modules\ContractManagement\Models\PermissionCategory; -use Modules\Media\Models\MediaMapper; use Modules\Media\Models\PathSettings; use Modules\Organization\Models\NullUnit; use phpOMS\Account\PermissionType; @@ -144,11 +143,9 @@ final class ApiController extends Controller */ public function apiContractDocumentCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void { - $uploadedFiles = $request->files; - - if (empty($uploadedFiles)) { + if (empty($request->files)) { $response->header->status = RequestStatusCode::R_400; - $this->createInvalidCreateResponse($request, $response, $uploadedFiles); + $this->createInvalidCreateResponse($request, $response, $request->files); return; } @@ -163,42 +160,25 @@ final class ApiController extends Controller $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( names: $request->getDataList('names'), fileNames: $request->getDataList('filenames'), - files: $uploadedFiles, + files: $request->files, account: $request->header->account, basePath: __DIR__ . '/../../../Modules/Media/Files' . $path, virtualPath: $path, pathSettings: PathSettings::FILE_PATH, - readContent: true + readContent: true, + type: $request->getDataInt('type'), + rel: $contract->id, + mapper: ContractMapper::class, + field: 'files' ); - if ($request->hasData('type')) { - foreach ($uploaded as $file) { - $this->createModelRelation( - $request->header->account, - $file->id, - $request->getDataInt('type'), - MediaMapper::class, - 'types', - '', - $request->getOrigin() - ); - } - } - - if (empty($uploaded)) { + if (empty($uploaded->sources)) { $this->createInvalidAddResponse($request, $response, []); return; } - $this->createModelRelation( - $request->header->account, - (int) $request->getData('contract'), - \reset($uploaded)->id, - ContractMapper::class, 'files', '', $request->getOrigin() - ); - - $this->createStandardUpdateResponse($request, $response, $uploaded); + $this->createStandardUpdateResponse($request, $response, $uploaded->sources); } /** diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 54b0dc7..07e309e 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -56,17 +56,14 @@ final class BackendController extends Controller $view->setTemplate('/Modules/ContractManagement/Theme/Backend/contract-list'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007901001, $request, $response); - $mapper = ContractMapper::getAll() + $view->data['contracts'] = ContractMapper::getAll() ->with('account') - ->limit(25); - - if ($request->getData('ptype') === 'p') { - $view->data['contracts'] = $mapper->where('id', $request->getDataInt('offset') ?? 0, '<')->execute(); - } elseif ($request->getData('ptype') === 'n') { - $view->data['contracts'] = $mapper->where('id', $request->getDataInt('offset') ?? 0, '>')->execute(); - } else { - $view->data['contracts'] = $mapper->where('id', 0, '>')->execute(); - } + ->limit(25) + ->paginate( + 'id', + $request->getDataString('ptype') ?? '', + $request->getDataInt('offset') + )->executeGetArray(); return $view; } @@ -90,18 +87,15 @@ final class BackendController extends Controller $view->setTemplate('/Modules/ContractManagement/Theme/Backend/contract-type-list'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007901001, $request, $response); - $mapper = ContractTypeMapper::getAll() + $view->data['types'] = ContractTypeMapper::getAll() ->with('l11n') ->where('l11n/language', $response->header->l11n->language) - ->limit(25); - - if ($request->getData('ptype') === 'p') { - $view->data['types'] = $mapper->where('id', $request->getDataInt('offset') ?? 0, '<')->execute(); - } elseif ($request->getData('ptype') === 'n') { - $view->data['types'] = $mapper->where('id', $request->getDataInt('offset') ?? 0, '>')->execute(); - } else { - $view->data['types'] = $mapper->where('id', 0, '>')->execute(); - } + ->limit(25) + ->paginate( + 'id', + $request->getDataString('ptype') ?? '', + $request->getDataInt('offset') + )->executeGetArray(); return $view; }