This commit is contained in:
Dennis Eichhorn 2024-04-12 00:52:06 +00:00
parent 60d96c5d23
commit 8cef004fa3
3 changed files with 28 additions and 54 deletions

View File

@ -5,7 +5,7 @@
"type": 2, "type": 2,
"subtype": 1, "subtype": 1,
"name": "Contract", "name": "Contract",
"uri": "{/base}/contract/list?{?}", "uri": "{/base}/contract/list",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 45, "order": 45,
@ -19,7 +19,7 @@
"type": 3, "type": 3,
"subtype": 1, "subtype": 1,
"name": "Contracts", "name": "Contracts",
"uri": "{/base}/contract/list?{?}", "uri": "{/base}/contract/list",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 1, "order": 1,
@ -34,7 +34,7 @@
"type": 3, "type": 3,
"subtype": 1, "subtype": 1,
"name": "ContractTypes", "name": "ContractTypes",
"uri": "{/base}/contract/type/list?{?}", "uri": "{/base}/contract/type/list",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 1, "order": 1,
@ -49,7 +49,7 @@
"type": 3, "type": 3,
"subtype": 1, "subtype": 1,
"name": "Attributes", "name": "Attributes",
"uri": "{/base}/contract/attribute/type/list?{?}", "uri": "{/base}/contract/attribute/type/list",
"target": "self", "target": "self",
"icon": null, "icon": null,
"order": 1, "order": 1,

View File

@ -18,7 +18,6 @@ use Modules\Admin\Models\NullAccount;
use Modules\ContractManagement\Models\Contract; use Modules\ContractManagement\Models\Contract;
use Modules\ContractManagement\Models\ContractMapper; use Modules\ContractManagement\Models\ContractMapper;
use Modules\ContractManagement\Models\PermissionCategory; use Modules\ContractManagement\Models\PermissionCategory;
use Modules\Media\Models\MediaMapper;
use Modules\Media\Models\PathSettings; use Modules\Media\Models\PathSettings;
use Modules\Organization\Models\NullUnit; use Modules\Organization\Models\NullUnit;
use phpOMS\Account\PermissionType; use phpOMS\Account\PermissionType;
@ -144,11 +143,9 @@ final class ApiController extends Controller
*/ */
public function apiContractDocumentCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void public function apiContractDocumentCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : void
{ {
$uploadedFiles = $request->files; if (empty($request->files)) {
if (empty($uploadedFiles)) {
$response->header->status = RequestStatusCode::R_400; $response->header->status = RequestStatusCode::R_400;
$this->createInvalidCreateResponse($request, $response, $uploadedFiles); $this->createInvalidCreateResponse($request, $response, $request->files);
return; return;
} }
@ -163,42 +160,25 @@ final class ApiController extends Controller
$uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles(
names: $request->getDataList('names'), names: $request->getDataList('names'),
fileNames: $request->getDataList('filenames'), fileNames: $request->getDataList('filenames'),
files: $uploadedFiles, files: $request->files,
account: $request->header->account, account: $request->header->account,
basePath: __DIR__ . '/../../../Modules/Media/Files' . $path, basePath: __DIR__ . '/../../../Modules/Media/Files' . $path,
virtualPath: $path, virtualPath: $path,
pathSettings: PathSettings::FILE_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')) { if (empty($uploaded->sources)) {
foreach ($uploaded as $file) {
$this->createModelRelation(
$request->header->account,
$file->id,
$request->getDataInt('type'),
MediaMapper::class,
'types',
'',
$request->getOrigin()
);
}
}
if (empty($uploaded)) {
$this->createInvalidAddResponse($request, $response, []); $this->createInvalidAddResponse($request, $response, []);
return; return;
} }
$this->createModelRelation( $this->createStandardUpdateResponse($request, $response, $uploaded->sources);
$request->header->account,
(int) $request->getData('contract'),
\reset($uploaded)->id,
ContractMapper::class, 'files', '', $request->getOrigin()
);
$this->createStandardUpdateResponse($request, $response, $uploaded);
} }
/** /**

View File

@ -56,17 +56,14 @@ final class BackendController extends Controller
$view->setTemplate('/Modules/ContractManagement/Theme/Backend/contract-list'); $view->setTemplate('/Modules/ContractManagement/Theme/Backend/contract-list');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007901001, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007901001, $request, $response);
$mapper = ContractMapper::getAll() $view->data['contracts'] = ContractMapper::getAll()
->with('account') ->with('account')
->limit(25); ->limit(25)
->paginate(
if ($request->getData('ptype') === 'p') { 'id',
$view->data['contracts'] = $mapper->where('id', $request->getDataInt('offset') ?? 0, '<')->execute(); $request->getDataString('ptype') ?? '',
} elseif ($request->getData('ptype') === 'n') { $request->getDataInt('offset')
$view->data['contracts'] = $mapper->where('id', $request->getDataInt('offset') ?? 0, '>')->execute(); )->executeGetArray();
} else {
$view->data['contracts'] = $mapper->where('id', 0, '>')->execute();
}
return $view; return $view;
} }
@ -90,18 +87,15 @@ final class BackendController extends Controller
$view->setTemplate('/Modules/ContractManagement/Theme/Backend/contract-type-list'); $view->setTemplate('/Modules/ContractManagement/Theme/Backend/contract-type-list');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007901001, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007901001, $request, $response);
$mapper = ContractTypeMapper::getAll() $view->data['types'] = ContractTypeMapper::getAll()
->with('l11n') ->with('l11n')
->where('l11n/language', $response->header->l11n->language) ->where('l11n/language', $response->header->l11n->language)
->limit(25); ->limit(25)
->paginate(
if ($request->getData('ptype') === 'p') { 'id',
$view->data['types'] = $mapper->where('id', $request->getDataInt('offset') ?? 0, '<')->execute(); $request->getDataString('ptype') ?? '',
} elseif ($request->getData('ptype') === 'n') { $request->getDataInt('offset')
$view->data['types'] = $mapper->where('id', $request->getDataInt('offset') ?? 0, '>')->execute(); )->executeGetArray();
} else {
$view->data['types'] = $mapper->where('id', 0, '>')->execute();
}
return $view; return $view;
} }