- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/service/taskservice.php
- Класс: BitrixTasksScrumServiceTaskService
- Вызов: TaskService::getChecklistCounts
private function getChecklistCounts(array $taskIds): array
{
try
{
$checkList = [];
$query = new Query(CheckListTable::getEntity());
$query->setSelect(['TASK_ID', 'IS_COMPLETE', new ExpressionField('CNT', 'COUNT(TASK_ID)')]);
$query->setFilter(['TASK_ID' => $taskIds]);
$query->setGroup(['TASK_ID', 'IS_COMPLETE']);
$query->registerRuntimeField('', new ReferenceField(
'IT',
CheckListTreeTable::class,
Join::on('this.ID', 'ref.CHILD_ID')->where('ref.LEVEL', 1),
['join_type' => 'INNER']
));
$result = $query->exec();
while ($row = $result->fetch())
{
$checkList[$row['TASK_ID']][$row['IS_COMPLETE'] == 'Y' ? 'complete' : 'progress'] = $row['CNT'];
}
return $checkList;
}
catch (Exception $exception)
{
$message = $exception->getMessage().$exception->getTraceAsString();
$this->errorCollection->setError(new Error($message, self::ERROR_COULD_NOT_COUNT_CHECKLIST_FILES));
return [];
}
}