- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/service/taskservice.php
- Класс: BitrixTasksScrumServiceTaskService
- Вызов: TaskService::createScrumItem
static function createScrumItem(int $taskId, array $fields, $previousFields = []): void
{
$isBacklogTarget = true;
$parentTaskId = ($fields['PARENT_ID'] ?? null) ? $fields['PARENT_ID'] : ($previousFields['PARENT_ID'] ?? null);
if ($parentTaskId)
{
$itemService = new ItemService();
$parentScrumItem = $itemService->getItemBySourceId($parentTaskId);
if (!$parentScrumItem->isEmpty())
{
$taskService = new TaskService(UtilUser::getId());
$entityService = new EntityService();
$entity = $entityService->getEntityById($parentScrumItem->getEntityId());
if (!$entity->isEmpty())
{
$parentTaskId = $parentScrumItem->getSourceId();
$groupId = (int) $fields['GROUP_ID'];
if ($entity->getGroupId() === $groupId)
{
$sort = count($taskService->getSubTasksInfo($groupId, [$parentTaskId])[$parentTaskId]);
$sort = ($sort === 0 ? 1 : $sort);
self::createItem(
$entity,
$taskId,
$fields,
$previousFields,
$parentScrumItem->getEpicId(),
$sort
);
$isBacklogTarget = false;
}
}
}
}
if ($isBacklogTarget)
{
$backlogService = new BacklogService();
$backlog = $backlogService->getBacklogByGroupId($fields['GROUP_ID']);
if (!$backlog->isEmpty())
{
self::createItem($backlog, $taskId, $fields, $previousFields);
}
}
}