- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_user.php
- Класс: CTimeManUser
- Вызов: CTimeManUser::GetTasks
public function GetTasks($arIDs = [], $bOpened = false, $USER_ID = null)
{
$res = null;
if (!is_array($arIDs) && $arIDs <> '')
{
$arIDs = unserialize($arIDs, ['allowed_classes' => false]);
}
$arIDs = array_values($arIDs);
if (!$USER_ID)
{
$USER_ID = $this->USER_ID;
}
if (CBXFeatures::IsFeatureEnabled('Tasks') && CModule::IncludeModule('tasks'))
{
$res = [];
if (count($arIDs) > 0)
{
$arFilter = ['ID' => $arIDs];
if ($bOpened)
{
$arFilter['!STATUS'] = [4, 5, 7];
}
$dbRes = CTasks::GetList([], $arFilter);
while ($arRes = $dbRes->Fetch())
{
$arRes['ACCOMPLICES'] = $arRes['AUDITORS'] = [];
$rsMembers = CTaskMembers::GetList(
[],
['TASK_ID' => $arRes['ID']]
);
while ($arMember = $rsMembers->Fetch())
{
if ($arMember['TYPE'] == 'A')
{
$arRes['ACCOMPLICES'][] = $arMember['USER_ID'];
}
elseif ($arMember['TYPE'] == 'U')
{
$arRes['AUDITORS'][] = $arMember['USER_ID'];
}
}
// Permit only for responsible user, accomplices or auditors
$isPermited = (($arRes['RESPONSIBLE_ID'] == $USER_ID)
|| in_array($USER_ID, $arRes['ACCOMPLICES'])
|| in_array($USER_ID, $arRes['AUDITORS'])
);
if (!$isPermited)
{
continue;
}
$res[] = [
'ID' => $arRes['ID'],
'PRIORITY' => $arRes['PRIORITY'],
'STATUS' => $arRes['STATUS'],
'TITLE' => BitrixMainTextEmoji::decode($arRes['TITLE']),
'TASK_CONTROL' => $arRes['TASK_CONTROL'],
'URL' => str_replace(
['#USER_ID#', '#TASK_ID#'],
[$this->USER_ID, $arRes['ID']],
COption::GetOptionString('intranet', 'path_task_user_entry', '/company/personal/user/#USER_ID#/tasks/task/view/#TASK_ID#/')
),
];
}
}
}
return $res;
}