diff --git a/src/app/basket/models/BasketModelAbstract.php b/src/app/basket/models/BasketModelAbstract.php index 31e4b41be3d3d4db1039f8692678379762e8eeda..128f83c62ef9eb5c09da911f1d46ccedbe60f728 100644 --- a/src/app/basket/models/BasketModelAbstract.php +++ b/src/app/basket/models/BasketModelAbstract.php @@ -354,6 +354,12 @@ abstract class BasketModelAbstract ]); $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) { unset($aBaskets[$key]['groupserialid']); $aBaskets[$key]['groupSerialId'] = $value['groupserialid']; @@ -367,12 +373,12 @@ abstract class BasketModelAbstract ]); $aBaskets[$key]['userToDisplay'] = UserModel::getLabelledUserById(['userId' => $aBaskets2[0]['new_user']]); $aBaskets[$key]['enabled'] = true; - $userPref = UserBasketPreferenceModel::get([ - 'select' => [1], - 'where' => ['user_serial_id = ?', 'group_serial_id = ?', 'basket_id = ?'], - 'data' => [$user['id'], $value['groupserialid'], $value['basket_id']] - ]); - $aBaskets[$key]['allowed'] = !empty($userPref); + $aBaskets[$key]['allowed'] = false; + foreach ($userPrefs as $userPref) { + if ($userPref['group_serial_id'] == $value['groupserialid'] && $userPref['basket_id'] == $value['basket_id']) { + $aBaskets[$key]['allowed'] = true; + } + } } if (empty($aArgs['absenceUneeded'])) { $aBaskets = array_merge($aBaskets, BasketModel::getAbsBasketsByUserId(['userId' => $aArgs['userId']])); diff --git a/src/core/controllers/AutoCompleteController.php b/src/core/controllers/AutoCompleteController.php index 431451c2c9c91bb2a67b26a515ab396ebee56779..3266bfb4da359bce2a994039ce8ab56b981b2363 100644 --- a/src/core/controllers/AutoCompleteController.php +++ b/src/core/controllers/AutoCompleteController.php @@ -16,12 +16,12 @@ namespace SrcCore\controllers; use Contact\controllers\ContactGroupController; use Contact\models\ContactModel; -use Group\models\ServiceModel; use Respect\Validation\Validator; use Slim\Http\Request; use Slim\Http\Response; use Entity\models\EntityModel; use SrcCore\models\CoreConfigModel; +use SrcCore\models\DatabaseModel; use SrcCore\models\TextFormatModel; use Status\models\StatusModel; use User\models\UserEntityModel; @@ -89,12 +89,11 @@ class AutoCompleteController $data = []; foreach ($users as $value) { - $primaryEntity = UserModel::getPrimaryEntityByUserId(['userId' => $value['user_id']]); $data[] = [ 'type' => 'user', 'id' => $value['user_id'], 'idToDisplay' => "{$value['firstname']} {$value['lastname']}", - 'otherInfo' => $primaryEntity['entity_label'] + 'otherInfo' => '' ]; } @@ -139,25 +138,29 @@ class AutoCompleteController { $excludedUsers = ['superadmin']; - $users = UserModel::get([ - 'select' => ['user_id', 'firstname', 'lastname'], - 'where' => ['enabled = ?', 'status != ?', 'user_id not in (?)'], - 'data' => ['Y', 'DEL', $excludedUsers], - 'orderBy' => ['lastname'] + $users = DatabaseModel::select([ + 'select' => ['DISTINCT users.user_id', 'users.firstname', 'users.lastname'], + 'table' => ['users, usergroup_content, usergroups_services'], + 'where' => [ + '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 = []; - foreach ($users as $value) { - if (ServiceModel::hasService(['id' => 'visa_documents', 'userId' => $value['user_id'], 'location' => 'visa', 'type' => 'use']) - || ServiceModel::hasService(['id' => 'sign_document', 'userId' => $value['user_id'], 'location' => 'visa', 'type' => 'use'])) { - $primaryEntity = UserModel::getPrimaryEntityByUserId(['userId' => $value['user_id']]); - $data[] = [ - 'type' => 'user', - 'id' => $value['user_id'], - 'idToDisplay' => "{$value['firstname']} {$value['lastname']}", - 'otherInfo' => $primaryEntity['entity_label'] - ]; - } + foreach ($users as $key => $value) { + $data[] = [ + 'type' => 'user', + 'id' => $value['user_id'], + 'idToDisplay' => "{$value['firstname']} {$value['lastname']}", + 'otherInfo' => '' + ]; } return $response->withJson($data);