• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/Kanban/ControllerStrategy/ListStrategy.php
  • Класс: BitrixCrmMobileKanbanControllerStrategyListStrategy
  • Вызов: ListStrategy::prepareActivityFilter
protected function prepareActivityFilter(&$filter): void
{
	if(isset($filter['=ACTIVITY_COUNTER']))
	{
		if(is_array($filter['=ACTIVITY_COUNTER']))
		{
			$counterTypeId = EntityCounterType::joinType(
				array_filter($filter['=ACTIVITY_COUNTER'], 'is_numeric')
			);
		}
		else
		{
			$counterTypeId = (int)$filter['=ACTIVITY_COUNTER'];
		}

		if($counterTypeId > 0)
		{
			$counterUserIds = [];
			if(isset($filter['=ASSIGNED_BY_ID']))
			{
				if(is_array($filter['=ASSIGNED_BY_ID']))
				{
					$counterUserIds = array_filter($filter['=ASSIGNED_BY_ID'], 'is_numeric');
				}
				elseif($filter['=ASSIGNED_BY_ID'] > 0)
				{
					$counterUserIds[] = (int)$filter['=ASSIGNED_BY_ID'];
				}
			}

			$counter = EntityCounterFactory::create($this->getEntityTypeId(), $counterTypeId);
			$filter['@ID'] = new SqlExpression($counter->getEntityListSqlExpression([
				'USER_IDS' => $counterUserIds,
			]));

			unset($filter['=ASSIGNED_BY_ID'], $filter['=ACTIVITY_COUNTER']);
		}
	}
}