• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/service/taskservice.php
  • Класс: BitrixTasksScrumServiceTaskService
  • Вызов: TaskService::moveTaskToBacklog
static function moveTaskToBacklog(int $taskId, int $groupId): void
{
	$itemService = new ItemService();
	$scrumItem = $itemService->getItemBySourceId($taskId);
	if (!$itemService->getErrors() && !$scrumItem->isEmpty())
	{
		$backlogService = new BacklogService();
		$backlog = $backlogService->getBacklogByGroupId($groupId);
		if (!$backlogService->getErrors() && !$backlog->isEmpty())
		{
			if ($backlog->getId() !== $scrumItem->getEntityId())
			{
				$sprintService = new SprintService();
				$sprint = $sprintService->getSprintById($scrumItem->getEntityId());
				if ($sprint->isActiveSprint())
				{
					$kanbanService = new KanbanService();
					if ($kanbanService->isTaskInFinishStatus($sprint->getId(), $scrumItem->getSourceId()))
					{
						$kanbanService->addTaskToNewStatus($sprint->getId(), $scrumItem->getSourceId());
					}
				}
				if ($sprint->isCompletedSprint())
				{
					$scrumItem->setEntityId($backlog->getId());
					$scrumItem->setSort(1);

					$pushService = (Loader::includeModule('pull') ? new PushService() : null);
					$itemService->changeItem($scrumItem, $pushService);
				}
			}
		}
	}
}