Цитата |
---|
Ахат Баязи написал: "MEMBER_LIST.USER_ID" => array(774,680,775), // ID подчиненных |
Это можно сократить зная коды подразделений пользователя для которого выполняется поиск.
В таблице b_user_access если установить ограничение по ACCESS_CODE = DR<ид подразделения где искомый сотрудник является руководителем> и выбрать USER_ID то вы получите всех подчиненных вашего пользователя.
Предположим у вас есть следующее:
- Иванов ид:1
- Петров ид:2
- Сидоров ид:3
- ГК (ид:1, руководитель Иванов)
-- Отдел логистики (ид:2, руководитель Петров, рядовой сотрудник Сидоров)
Тогда с таблице точно будут следующие записи (их будет больше но нам нужны только они):
1 intranet D1
1 intranet DR1
2 intranet D2
2 intranet DR1
2 intranet DR2
3 intranet D2
3 intranet DR1
3 intranet DR2
Тогда получается если мы хотим найти всех подчиненных пользователя Иванова нам нужно выполнить запрос на получение всех пользователей имеющих DR1 за исключением USER_ID = 1.
Если мы хотим получить всех непосредственных починенных (когда Петров будет подчиненным Иванова, а Сидоров уже не будет, так как его руководителем будет Петров), то тогда вместо DR используем D
Цитата |
---|
Ахат Баязи написал: 1.1. что бы получить это: MEMBER_LIST.TASK_ID' => array(1,2,3), // ID задач (исключаем задачи, где руководитель является участником) |
А вот тут очень хорошо поможет SqlExpression, который позволяет расширять D7 обычными sql выражениями