• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/task.php
  • Класс: CTasks
  • Вызов: CTasks::getSelectionExpressionByType
static function getSelectionExpressionByType($type, $parameters)
{
	try
	{
		switch ($type)
		{
			case 'MEMBER':
			case 'ACCOMPLICE':
			case 'AUDITOR':
				$userIdsConditions = [];
				foreach ($parameters['USER_ID'] as $userId)
				{
					$userIdsConditions[] = "(TM.USER_ID = '" . intval($userId) . "')";
				}
				$typeCondition = ($parameters['TYPE_CONDITION'] ? ' AND TM.TYPE = ?s' : '');

				$sql = new SqlExpression(
					'SELECT TM.?# FROM ?# TM WHERE TM.?# = ?#.ID AND ('
					. implode(" OR ", $userIdsConditions)
					. ')'
					. $typeCondition,
					'TASK_ID',
					'b_tasks_member',
					'TASK_ID',
					'tasks_internals_task',
					($type == 'ACCOMPLICE' ? 'A' : 'U')
				);
				break;

			case 'TAG':
				$sql = new SqlExpression(
					'SELECT TT.?# FROM ?# TT WHERE TT.?# = ?#.ID AND TT.NAME = ?s',
					'TASK_ID',
					'b_tasks_tag',
					'TASK_ID',
					'tasks_internals_task',
					$parameters['NAME']
				);
				break;

			default:
				$sql = '';
				break;
		}
	}
	catch (Exception $ex)
	{
		$sql = '';
	}

	return $sql;
}