• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/Kanban/ControllerStrategy/KanbanStrategy.php
  • Класс: Bitrix\CrmMobile\Kanban\ControllerStrategy\KanbanStrategy
  • Вызов: KanbanStrategy::getList
public function getList(?PageNavigation $pageNavigation): array
{
	if (empty($this->params))
	{
		throw new ArgumentException('Set params first');
	}

	$contactDataProvider = new Client\DataProvider(\CCrmOwnerType::Contact);
	$companyDataProvider = new Client\DataProvider(\CCrmOwnerType::Company);

	$contactDataProvider->addFieldsToSelect(self::CLIENT_FIELDS_TO_SELECT);
	$companyDataProvider->addFieldsToSelect(self::CLIENT_FIELDS_TO_SELECT);

	$kanban = $this
		->getKanbanInstance()
		->setFieldsContext(Field::MOBILE_CONTEXT)
		->setContactEntityDataProvider($contactDataProvider)
		->setCompanyEntityDataProvider($companyDataProvider)
	;

	$searchContent = (string)($this->params['filter']['search'] ?? '');
	$filter = ['SEARCH_CONTENT' => $searchContent];

	$entityTypeId = $this->entityTypeId;
	$entity = $kanban->getEntity()->setGridIdInstance(new GridId($entityTypeId), $entityTypeId);
	$stageFieldName = $entity->getStageFieldName();

	$filterParams = $this->params['filterParams'];
	$statusId = ($filterParams['stageId'] ?? null);

	if($statusId)
	{
		$filter[$stageFieldName] = $statusId;
	}
	elseif (empty($filterParams['FILTER_PRESET_ID']))
	{
		$filterParams['FORCE_FILTER'] = 'Y';
	}

	if (isset($filterParams['ID']))
	{
		$filter['@ID'] = $filterParams['ID'];
	}

	$this->prepareFilter($entity);

	$currentPage = ($pageNavigation ? $pageNavigation->getCurrentPage() : 1);
	$itemsResult = $kanban->getItems($filter, $currentPage, ['filter' => $filterParams]);
	$this->prepareItemsResult($itemsResult['ITEMS'], $kanban);

	$this->prepareActivityCounters($itemsResult['ITEMS']);
	$this->prepareItemsBadges($itemsResult['ITEMS']);

	return $itemsResult['ITEMS'];
}