- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/service/taskservice.php
- Класс: BitrixTasksScrumServiceTaskService
- Вызов: TaskService::createItem
static function createItem(
EntityForm $entity,
int $taskId,
array $fields,
array $previousFields = [],
int $epicId = 0,
int $sort = 1
): void
{
$itemService = new ItemService();
$item = $itemService->getItemBySourceId($taskId);
if (!$itemService->getErrors() && $item->isEmpty())
{
$pushService = (Loader::includeModule('pull') ? new PushService() : null);
$scrumItem = new ItemForm();
$createdBy = (($fields['CREATED_BY'] ?? null) ? $fields['CREATED_BY'] : $previousFields['CREATED_BY']);
$scrumItem->setCreatedBy($createdBy);
$scrumItem->setEntityId($entity->getId());
$scrumItem->setSourceId($taskId);
$scrumItem->setSort($sort);
$epicId = (is_numeric($fields['EPIC'] ?? null) ? (int) $fields['EPIC'] : $epicId);
$scrumItem->setEpicId($epicId);
$itemService->createTaskItem($scrumItem, $pushService);
if (!$itemService->getErrors() && $entity->isActiveSprint())
{
$kanbanService = new KanbanService();
if (!$kanbanService->isTaskInKanban($entity->getId(), $scrumItem->getSourceId()))
{
$kanbanService->addTasksToKanban($entity->getId(), [$scrumItem->getSourceId()]);
}
}
}
}