diff --git a/modules/sendmail/Controllers/SendMessageExchangeController.php b/modules/sendmail/Controllers/SendMessageExchangeController.php index e458f53a069e509f98145646bf2800645d5c112e..24121084798b349557a334e31fdc5afc9e2d8bd3 100755 --- a/modules/sendmail/Controllers/SendMessageExchangeController.php +++ b/modules/sendmail/Controllers/SendMessageExchangeController.php @@ -376,7 +376,7 @@ class SendMessageExchangeController $contentObject->OriginatingSystemId = $aArgs['OriginatingSystemId']; $contentObject->OriginatingAgencyArchiveUnitIdentifier = $aArgs['OriginatingAgencyArchiveUnitIdentifier']; $contentObject->DocumentType = $aArgs['DocumentType']; - $contentObject->Status = \Status\models\StatusModel::getById(['id' => $aArgs['Status']])[0]['label_status']; + $contentObject->Status = \Status\models\StatusModel::getById(['id' => $aArgs['Status']])['label_status']; $userInfos = \User\models\UserModel::getByLogin(['login' => $aArgs['Writer']]); $writer = new stdClass(); diff --git a/rest/index.php b/rest/index.php index d563786b4a6b433aaa115cffd1210c4773ce15e9..b070c88b0b10cd58e6dffc90dacb02fa67988d7c 100755 --- a/rest/index.php +++ b/rest/index.php @@ -249,7 +249,7 @@ $app->get('/resources/{resId}/isAllowed', \Resource\controllers\ResController::c //ResourcesList $app->get('/resourcesList/users/{userId}/groups/{groupId}/baskets/{basketId}', \Resource\controllers\ResourceListController::class . ':get'); -$app->get('/resourcesList/users/{userId}/groups/{groupId}/baskets/{basketId}/entities', \Resource\controllers\ResourceListController::class . ':getEntities'); +$app->get('/resourcesList/users/{userId}/groups/{groupId}/baskets/{basketId}/filters', \Resource\controllers\ResourceListController::class . ':getFilters'); //Attachments $app->post('/attachments', \Attachment\controllers\AttachmentController::class . ':create'); diff --git a/src/app/resource/controllers/ResourceListController.php b/src/app/resource/controllers/ResourceListController.php index 55a96378205eca35d8e9ae94c05dd9e96b4f399e..64b2177e34f0e77fc1b12ad4a7abaa9f9241518d 100644 --- a/src/app/resource/controllers/ResourceListController.php +++ b/src/app/resource/controllers/ResourceListController.php @@ -21,12 +21,14 @@ use Basket\models\RedirectBasketModel; use Entity\models\EntityModel; use Group\models\GroupModel; use Note\models\NoteModel; +use Priority\models\PriorityModel; use Resource\models\ResModel; use Resource\models\ResourceListModel; use Slim\Http\Request; use Slim\Http\Response; use SrcCore\controllers\PreparedClauseController; use SrcCore\models\ValidatorModel; +use Status\models\StatusModel; use User\models\UserModel; class ResourceListController @@ -54,13 +56,10 @@ class ResourceListController if (!empty($data['delayed']) && $data['delayed'] == 'true') { $where[] = 'process_limit_date < CURRENT_TIMESTAMP'; } - if (!empty($data['reference'])) { - $where[] = 'alt_identifier ilike ?'; - $queryData[] = "%{$data['reference']}%"; - } - if (!empty($data['subject']) && mb_strlen($data['subject']) >= 3) { - $where[] = 'subject ilike ?'; - $queryData[] = "%{$data['subject']}%"; + if (!empty($data['search']) && mb_strlen($data['search']) >= 2) { + $where[] = '(alt_identifier ilike ? OR subject ilike ?)'; + $queryData[] = "%{$data['search']}%"; + $queryData[] = "%{$data['search']}%"; } if (!empty($data['priorities'])) { $where[] = 'priority in (?)'; @@ -134,7 +133,7 @@ class ResourceListController return $response->withJson(['resources' => $resources, 'count' => $count, 'basketLabel' => $basket['basket_name']]); } - public function getEntities(Request $request, Response $response, array $aArgs) + public function getFilters(Request $request, Response $response, array $aArgs) { $currentUser = UserModel::getByLogin(['login' => $GLOBALS['userId'], 'select' => ['id']]); @@ -145,15 +144,14 @@ class ResourceListController $basket = BasketModel::getById(['id' => $aArgs['basketId'], 'select' => ['basket_clause']]); $user = UserModel::getById(['id' => $aArgs['userId'], 'select' => ['user_id']]); - $whereClause = PreparedClauseController::getPreparedClause(['clause' => $basket['basket_clause'], 'login' => $user['user_id']]); + + $entities = []; $rawEntities = ResModel::getOnView([ 'select' => ['count(res_id)', 'destination'], 'where' => [$whereClause], 'groupBy' => ['destination'] ]); - - $entities = []; foreach ($rawEntities as $key => $value) { $entity = EntityModel::getByEntityId(['select' => ['entity_label'], 'entityId' => $value['destination']]); $entities[] = [ @@ -163,7 +161,56 @@ class ResourceListController ]; } - return $response->withJson(['entities' => $entities]); + $priorities = []; + $rawPriorities = ResModel::getOnView([ + 'select' => ['count(res_id)', 'priority'], + 'where' => [$whereClause], + 'groupBy' => ['priority'] + ]); + foreach ($rawPriorities as $key => $value) { + $priority = PriorityModel::getById(['select' => ['label'], 'id' => $value['priority']]); + $priorities[] = [ + 'id' => $value['priority'], + 'label' => $priority['label'], + 'count' => $value['count'] + ]; + } + + $categories = []; + $allCategories = ResModel::getCategories(); + $rawCategories = ResModel::getOnView([ + 'select' => ['count(res_id)', 'category_id'], + 'where' => [$whereClause], + 'groupBy' => ['category_id'] + ]); + foreach ($rawCategories as $key => $value) { + foreach ($allCategories as $category) { + if ($value['category_id'] == $category['id']) { + $categories[] = [ + 'id' => $value['category_id'], + 'label' => $category['label'], + 'count' => $value['count'] + ]; + } + } + } + + $statuses = []; + $rawStatuses = ResModel::getOnView([ + 'select' => ['count(res_id)', 'status'], + 'where' => [$whereClause], + 'groupBy' => ['status'] + ]); + foreach ($rawStatuses as $key => $value) { + $status = StatusModel::getById(['select' => ['label_status'], 'id' => $value['status']]); + $statuses[] = [ + 'id' => $value['status'], + 'label' => $status['label_status'], + 'count' => $value['count'] + ]; + } + + return $response->withJson(['entities' => $entities, 'priorities' => $priorities, 'categories' => $categories, 'statuses' => $statuses]); } private static function listControl(array $aArgs) diff --git a/src/app/status/controllers/StatusController.php b/src/app/status/controllers/StatusController.php index 5599719dcbbd5b7955ded634597ce83eb4e614d1..c13acab54d599bd8d52a2be29cf9fcf3539068b3 100755 --- a/src/app/status/controllers/StatusController.php +++ b/src/app/status/controllers/StatusController.php @@ -92,7 +92,7 @@ class StatusController StatusModel::create($aArgs); - $return['status'] = StatusModel::getById(['id' => $aArgs['id']])[0]; + $return['status'] = StatusModel::getById(['id' => $aArgs['id']]); HistoryController::add([ 'tableName' => 'status', @@ -190,7 +190,7 @@ class StatusController if (!empty($obj)) { array_push( $errors, - _ID . ' ' . $obj[0]['id'] . ' ' . _ALREADY_EXISTS + _ID . ' ' . $obj['id'] . ' ' . _ALREADY_EXISTS ); } } elseif ($mode == 'update') { diff --git a/src/app/status/models/StatusModelAbstract.php b/src/app/status/models/StatusModelAbstract.php index 89cfc8d4c8c27dded9101b5b5666ccd3863275ce..51600bd30d0765de262add1e43c959a7fdc11f1a 100755 --- a/src/app/status/models/StatusModelAbstract.php +++ b/src/app/status/models/StatusModelAbstract.php @@ -44,7 +44,11 @@ abstract class StatusModelAbstract 'data' => [$aArgs['id']] ]); - return $aReturn; + if (empty($aReturn[0])) { + return []; + } + + return $aReturn[0]; } public static function getByIdentifier(array $aArgs)