- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/service/taskservice.php
- Класс: BitrixTasksScrumServiceTaskService
- Вызов: TaskService::getTaskIdsByFilter
public function getTaskIdsByFilter(
array $filter,
?PageNavigation $navigation = null,
array $entityIds = []
): array
{
$taskIds = [];
try
{
$filter['ONLY_ROOT_TASKS'] = ($filter['ONLY_ROOT_TASKS'] === 'N' ? 'N' : 'Y');
if ($entityIds)
{
$filter['SCRUM_ENTITY_IDS'] = $entityIds;
}
if ($navigation)
{
$navParams = [
'nPageSize' => $navigation->getLimit(),
'iNumPageSize' => $navigation->getOffset(),
'iNumPage' => $navigation->getCurrentPage(),
'getPlusOne' => true,
];
}
else
{
$navParams = [];
}
$getListParams = [
'select' => ['ID'],
'legacyFilter' => $filter,
'order' => ['SCRUM_ITEMS_SORT' => 'ASC'],
'group' => [],
'NAV_PARAMS' => $navParams,
];
$result = ManagerTask::getList($this->executiveUserId, $getListParams);
$tasks = array_values($result['DATA']);
if (count($tasks) <= 0)
{
return $taskIds;
}
$n = 0;
foreach ($tasks as $task)
{
if ($navigation && ++$n > $navigation->getLimit())
{
break;
}
$taskIds[] = $task['ID'];
}
if ($navigation)
{
$navigation->setRecordCount($navigation->getOffset() + $n);
}
return $taskIds;
}
catch (Exception $exception)
{
$message = $exception->getMessage().$exception->getTraceAsString();
$this->errorCollection->setError(
new Error(
$message,
self::ERROR_COULD_NOT_READ_TASK
)
);
return $taskIds;
}
}