• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Link/Task/TaskCollection.php
  • Класс: BitrixImV2LinkTaskTaskCollection
  • Вызов: TaskCollection::processFilters
static function processFilters(array $filter, array $order): array
{
	$result = [];

	if (isset($filter['CHAT_ID']))
	{
		$result['IM_CHAT_CHAT_ID'] = (int)$filter['CHAT_ID'];
	}
	if (isset($filter['USER_ID']))
	{
		$usersIds = $filter['USER_ID'];
		if (!empty($usersIds))
		{
			$result['::SUBFILTER-MEMBER'] = [
				'::LOGIC' => 'OR',
				'CREATED_BY' => $usersIds,
				'RESPONSIBLE_ID' => $usersIds,
				'ACCOMPLICE' => $usersIds,
				'AUDITOR' => $usersIds,
			];
		}
	}
	if (isset($filter['DATE_FROM']))
	{
		$result['>=CREATED_DATE'] = $filter['DATE_FROM'];
	}
	if (isset($filter['DATE_TO']))
	{
		$result['<=CREATED_DATE'] = $filter['DATE_TO'];
	}
	if (isset($filter['SEARCH_TASK_NAME']))
	{
		$result['::SUBFILTER-FULL_SEARCH_INDEX'] = [
			'*FULL_SEARCH_INDEX' => SearchIndex::prepareStringToSearch($filter['SEARCH_TASK_NAME'])
		];
	}
	if (isset($filter['LAST_ID']))
	{
		$operator = '<';
		if (isset($order['IM_CHAT_ID']) && $order['IM_CHAT_ID'] === 'ASC')
		{
			$operator = '>';
		}
		$result["{$operator}IM_CHAT_ID"] = (int)$filter['LAST_ID'];
	}

	return $result;
}