Skip to content
Snippets Groups Projects
Verified Commit 3da976a7 authored by Damien's avatar Damien
Browse files

FEAT #8101 Perf entities + users

parent 90f382a6
No related branches found
No related tags found
No related merge requests found
...@@ -354,6 +354,12 @@ abstract class BasketModelAbstract ...@@ -354,6 +354,12 @@ abstract class BasketModelAbstract
]); ]);
$user = UserModel::getByUserId(['userId' => $aArgs['userId'], 'select' => ['id']]); $user = UserModel::getByUserId(['userId' => $aArgs['userId'], 'select' => ['id']]);
$userPrefs = UserBasketPreferenceModel::get([
'select' => ['group_serial_id', 'basket_id'],
'where' => ['user_serial_id = ?'],
'data' => [$user['id']]
]);
foreach ($aBaskets as $key => $value) { foreach ($aBaskets as $key => $value) {
unset($aBaskets[$key]['groupserialid']); unset($aBaskets[$key]['groupserialid']);
$aBaskets[$key]['groupSerialId'] = $value['groupserialid']; $aBaskets[$key]['groupSerialId'] = $value['groupserialid'];
...@@ -367,12 +373,12 @@ abstract class BasketModelAbstract ...@@ -367,12 +373,12 @@ abstract class BasketModelAbstract
]); ]);
$aBaskets[$key]['userToDisplay'] = UserModel::getLabelledUserById(['userId' => $aBaskets2[0]['new_user']]); $aBaskets[$key]['userToDisplay'] = UserModel::getLabelledUserById(['userId' => $aBaskets2[0]['new_user']]);
$aBaskets[$key]['enabled'] = true; $aBaskets[$key]['enabled'] = true;
$userPref = UserBasketPreferenceModel::get([ $aBaskets[$key]['allowed'] = false;
'select' => [1], foreach ($userPrefs as $userPref) {
'where' => ['user_serial_id = ?', 'group_serial_id = ?', 'basket_id = ?'], if ($userPref['group_serial_id'] == $value['groupserialid'] && $userPref['basket_id'] == $value['basket_id']) {
'data' => [$user['id'], $value['groupserialid'], $value['basket_id']] $aBaskets[$key]['allowed'] = true;
]); }
$aBaskets[$key]['allowed'] = !empty($userPref); }
} }
if (empty($aArgs['absenceUneeded'])) { if (empty($aArgs['absenceUneeded'])) {
$aBaskets = array_merge($aBaskets, BasketModel::getAbsBasketsByUserId(['userId' => $aArgs['userId']])); $aBaskets = array_merge($aBaskets, BasketModel::getAbsBasketsByUserId(['userId' => $aArgs['userId']]));
......
...@@ -16,12 +16,12 @@ namespace SrcCore\controllers; ...@@ -16,12 +16,12 @@ namespace SrcCore\controllers;
use Contact\controllers\ContactGroupController; use Contact\controllers\ContactGroupController;
use Contact\models\ContactModel; use Contact\models\ContactModel;
use Group\models\ServiceModel;
use Respect\Validation\Validator; use Respect\Validation\Validator;
use Slim\Http\Request; use Slim\Http\Request;
use Slim\Http\Response; use Slim\Http\Response;
use Entity\models\EntityModel; use Entity\models\EntityModel;
use SrcCore\models\CoreConfigModel; use SrcCore\models\CoreConfigModel;
use SrcCore\models\DatabaseModel;
use SrcCore\models\TextFormatModel; use SrcCore\models\TextFormatModel;
use Status\models\StatusModel; use Status\models\StatusModel;
use User\models\UserEntityModel; use User\models\UserEntityModel;
...@@ -89,12 +89,11 @@ class AutoCompleteController ...@@ -89,12 +89,11 @@ class AutoCompleteController
$data = []; $data = [];
foreach ($users as $value) { foreach ($users as $value) {
$primaryEntity = UserModel::getPrimaryEntityByUserId(['userId' => $value['user_id']]);
$data[] = [ $data[] = [
'type' => 'user', 'type' => 'user',
'id' => $value['user_id'], 'id' => $value['user_id'],
'idToDisplay' => "{$value['firstname']} {$value['lastname']}", 'idToDisplay' => "{$value['firstname']} {$value['lastname']}",
'otherInfo' => $primaryEntity['entity_label'] 'otherInfo' => ''
]; ];
} }
...@@ -139,25 +138,29 @@ class AutoCompleteController ...@@ -139,25 +138,29 @@ class AutoCompleteController
{ {
$excludedUsers = ['superadmin']; $excludedUsers = ['superadmin'];
$users = UserModel::get([ $users = DatabaseModel::select([
'select' => ['user_id', 'firstname', 'lastname'], 'select' => ['DISTINCT users.user_id', 'users.firstname', 'users.lastname'],
'where' => ['enabled = ?', 'status != ?', 'user_id not in (?)'], 'table' => ['users, usergroup_content, usergroups_services'],
'data' => ['Y', 'DEL', $excludedUsers], 'where' => [
'orderBy' => ['lastname'] 'usergroup_content.group_id = usergroups_services.group_id',
'usergroup_content.user_id = users.user_id',
'usergroups_services.service_id in (?)',
'users.user_id not in (?)',
'users.enabled = ?',
'users.status != ?'
],
'data' => [['visa_documents', 'sign_document'], $excludedUsers, 'Y', 'DEL'],
'order_by' => ['users.lastname']
]); ]);
$data = []; $data = [];
foreach ($users as $value) { foreach ($users as $key => $value) {
if (ServiceModel::hasService(['id' => 'visa_documents', 'userId' => $value['user_id'], 'location' => 'visa', 'type' => 'use']) $data[] = [
|| ServiceModel::hasService(['id' => 'sign_document', 'userId' => $value['user_id'], 'location' => 'visa', 'type' => 'use'])) { 'type' => 'user',
$primaryEntity = UserModel::getPrimaryEntityByUserId(['userId' => $value['user_id']]); 'id' => $value['user_id'],
$data[] = [ 'idToDisplay' => "{$value['firstname']} {$value['lastname']}",
'type' => 'user', 'otherInfo' => ''
'id' => $value['user_id'], ];
'idToDisplay' => "{$value['firstname']} {$value['lastname']}",
'otherInfo' => $primaryEntity['entity_label']
];
}
} }
return $response->withJson($data); return $response->withJson($data);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment