Задача:
получить список задач всех подчиненных пользователя, исключая те задачи, в которых он является участником (постановщик/наблюдатель/соисполнитель).
Т.е. те задачи которые Руководитель не видит в своем списке задач.
1. написал SQL (работает):
Теперь нужно его переложить в API.
Вот что у меня получилось:
Код рабочий, но что мне не нравится в этом коде:
1. перед ним приходится делать два запроса:
1.1. что бы получить это: MEMBER_LIST.TASK_ID' => array(1,2,3), // ID задач (исключаем задачи, где руководитель является участником)
1.2. что бы получить это:
"MEMBER_LIST.USER_ID" => array(774,680,775), // ID подчиненных
2. Результат выборки полученный в коде пп 1.1. будет постоянно увеличиваться.
получить список задач всех подчиненных пользователя, исключая те задачи, в которых он является участником (постановщик/наблюдатель/соисполнитель).
Т.е. те задачи которые Руководитель не видит в своем списке задач.
1. написал SQL (работает):
Код |
---|
SELECT _query.TASK_ID as `ID` FR OM ( SEL ECT `TASK_ID`, `USER_ID` FR OM `b_tasks_member` WH ERE `USER_ID` in (774,680,775) AND -- исключаем задачи, где руководитель является участником -- `TASK_ID` NOT IN ( SEL ECT `TASK_ID` FR OM `b_tasks_member` WHERE `USER_ID` = 775 ) ORDER BY `TASK_ID` DESC ) AS _query GROUP BY _query.`TASK_ID` |
Вот что у меня получилось:
Код |
---|
use Bitrix\Tasks\Internals\Task\MemberTable use Bitrix\Tasks\Internals\TaskTable; $params = array( '!=ZOMBIE' => 'Y', // не удаленные задачи "MEMBER_LIST.USER_ID" => array(774,680,775), // ID подчиненных '!=MEMBER_LIST.TASK_ID' => array(1,2,3), // ID задач (исключаем задачи, где руководитель является участником) ); $db = TaskTable::getList($params); |
1. перед ним приходится делать два запроса:
1.1. что бы получить это: MEMBER_LIST.TASK_ID' => array(1,2,3), // ID задач (исключаем задачи, где руководитель является участником)
Скрытый текст | ||
---|---|---|
|
"MEMBER_LIST.USER_ID" => array(774,680,775), // ID подчиненных
Скрытый текст | ||
---|---|---|
|
2. Результат выборки полученный в коде пп 1.1. будет постоянно увеличиваться.