From caaeb69d1248d7a6e45bd29b71027d1459465422 Mon Sep 17 00:00:00 2001 From: Guillaume Heurtier <guillaume.heurtier@maarch.org> Date: Fri, 8 Nov 2019 11:10:37 +0100 Subject: [PATCH] FIX #11750 TIME 0:20 added doctypes id + renamed doctype to doctypes --- .../controllers/ResourceListController.php | 51 +++++++++++++------ 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/src/app/resource/controllers/ResourceListController.php b/src/app/resource/controllers/ResourceListController.php index a511350181f..87f03c477e3 100644 --- a/src/app/resource/controllers/ResourceListController.php +++ b/src/app/resource/controllers/ResourceListController.php @@ -22,6 +22,7 @@ use Basket\models\BasketModel; use Basket\models\GroupBasketModel; use Basket\models\RedirectBasketModel; use Contact\models\ContactModel; +use Doctype\models\DoctypeModel; use Entity\models\EntityModel; use Entity\models\ListInstanceModel; use Folder\models\FolderModel; @@ -980,12 +981,12 @@ class ResourceListController $whereCategories = $where; $whereStatuses = $where; $whereEntities = $where; - $whereDocType = $where; + $whereDocTypes = $where; $dataPriorities = $queryData; $dataCategories = $queryData; $dataStatuses = $queryData; $dataEntities = $queryData; - $dataDocType = $queryData; + $dataDocTypes = $queryData; if (isset($data['priorities'])) { if (empty($data['priorities'])) { @@ -1001,13 +1002,13 @@ class ResourceListController $dataCategories[] = explode(',', $replace); $dataStatuses[] = explode(',', $replace); $dataEntities[] = explode(',', $replace); - $dataDocType[] = explode(',', $replace); + $dataDocTypes[] = explode(',', $replace); } $whereCategories[] = $tmpWhere; $whereStatuses[] = $tmpWhere; $whereEntities[] = $tmpWhere; - $whereDocType[] = $tmpWhere; + $whereDocTypes[] = $tmpWhere; } if (isset($data['categories'])) { if (empty($data['categories'])) { @@ -1023,13 +1024,13 @@ class ResourceListController $dataPriorities[] = explode(',', $replace); $dataStatuses[] = explode(',', $replace); $dataEntities[] = explode(',', $replace); - $dataDocType[] = explode(',', $replace); + $dataDocTypes[] = explode(',', $replace); } $wherePriorities[] = $tmpWhere; $whereStatuses[] = $tmpWhere; $whereEntities[] = $tmpWhere; - $whereDocType[] = $tmpWhere; + $whereDocTypes[] = $tmpWhere; } if (!empty($data['statuses'])) { $wherePriorities[] = 'status in (?)'; @@ -1038,8 +1039,18 @@ class ResourceListController $dataCategories[] = explode(',', $data['statuses']); $whereEntities[] = 'status in (?)'; $dataEntities[] = explode(',', $data['statuses']); - $whereDocType[] = 'status in (?)'; - $dataDocType[] = explode(',', $data['statuses']); + $whereDocTypes[] = 'status in (?)'; + $dataDocTypes[] = explode(',', $data['statuses']); + } + if (!empty($data['doctypes'])) { + $wherePriorities[] = 'type_label in (?)'; + $dataPriorities[] = explode(',', $data['doctypes']); + $whereCategories[] = 'type_label in (?)'; + $dataCategories[] = explode(',', $data['doctypes']); + $whereEntities[] = 'type_label in (?)'; + $dataEntities[] = explode(',', $data['doctypes']); + $whereDocTypes[] = 'type_label in (?)'; + $dataDocTypes[] = explode(',', $data['doctypes']); } if (isset($data['entities'])) { if (empty($data['entities'])) { @@ -1055,13 +1066,13 @@ class ResourceListController $dataPriorities[] = explode(',', $replace); $dataCategories[] = explode(',', $replace); $dataStatuses[] = explode(',', $replace); - $dataDocType[] = explode(',', $replace); + $dataDocTypes[] = explode(',', $replace); } $wherePriorities[] = $tmpWhere; $whereCategories[] = $tmpWhere; $whereStatuses[] = $tmpWhere; - $whereDocType[] = $tmpWhere; + $whereDocTypes[] = $tmpWhere; } if (!empty($data['entitiesChildren'])) { $entities = explode(',', $data['entitiesChildren']); @@ -1077,6 +1088,8 @@ class ResourceListController $dataCategories[] = $entitiesChildren; $whereStatuses[] = 'destination in (?)'; $dataStatuses[] = $entitiesChildren; + $whereDocTypes[] = 'destination in (?)'; + $dataDocTypes[] = $entitiesChildren; } } @@ -1161,15 +1174,21 @@ class ResourceListController ]; } - $docType = []; + $docTypes = []; $rawDocType = ResModel::getOnView([ 'select' => ['count(res_id)', 'type_label'], - 'where' => $whereEntities, - 'data' => $dataEntities, + 'where' => $whereDocTypes, + 'data' => $dataDocTypes, 'groupBy' => ['type_label'] ]); foreach ($rawDocType as $key => $value) { - $docType[] = [ + $doc = DoctypeModel::get([ + 'select' => ['type_id'], + 'where' => ['description = ?'], + 'data' => [$value['type_label']] + ]); + $docTypes[] = [ + 'id' => empty($doc[0]['type_id']) ? null : $doc[0]['type_id'], 'label' => empty($value['type_label']) ? '_UNDEFINED' : $value['type_label'], 'count' => $value['count'] ]; @@ -1179,7 +1198,7 @@ class ResourceListController $categories = (count($categories) >= 2) ? $categories : []; $statuses = (count($statuses) >= 2) ? $statuses : []; $entities = (count($entities) >= 2) ? $entities : []; - $docType = (count($docType) >= 2) ? $docType : []; + $docTypes = (count($docTypes) >= 2) ? $docTypes : []; $entitiesChildren = []; foreach ($entities as $entity) { @@ -1207,7 +1226,7 @@ class ResourceListController 'categories' => $categories, 'statuses' => $statuses, 'entitiesChildren' => $entitiesChildren, - 'doctype' => $docType + 'doctypes' => $docTypes ]; } } -- GitLab