• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/integration/ui/entityselector/sprintselectorprovider.php
  • Класс: BitrixTasksIntegrationUIEntitySelectorSprintSelectorProvider
  • Вызов: SprintSelectorProvider::getSprints
private function getSprints(int $groupId, int $maxCount, ?SearchQuery $searchQuery = null): array
{
	$sprints = [];

	$entityService = new EntityService($GLOBALS['USER']->getId());

	$select = [
		'ID',
		'NAME',
		'DATE_START',
		'DATE_END',
	];

	$onlyCompleted = $this->getOption('onlyCompleted');
	$filter = [
		'=GROUP_ID' => $groupId,
		'=ENTITY_TYPE' => EntityForm::SPRINT_TYPE,
	];
	if ($onlyCompleted)
	{
		$filter['=STATUS'] = EntityForm::SPRINT_COMPLETED;
	}
	else
	{
		$filter['!=STATUS'] = EntityForm::SPRINT_PLANNED;
	}
	if ($searchQuery)
	{
		$filter['?NAME'] = $searchQuery->getQuery();
	}

	$order = ['DATE_END' => 'DESC'];

	$nav = $this->getNavigation($maxCount);

	$queryResult = $entityService->getList($nav, $filter, $select, $order);
	$n = 0;
	while ($sprintData = $queryResult->fetch())
	{
		if ($nav && (++$n > $nav->getPageSize()))
		{
			break;
		}

		$sprint = new EntityForm();

		$sprint->fillFromDatabase($sprintData);

		$sprints[] = $sprint;
	}

	return $sprints;
}