• Модуль: 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;
}