• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/service/taskservice.php
  • Класс: BitrixTasksScrumServiceTaskService
  • Вызов: TaskService::updateScrumItem
static function updateScrumItem(int $taskId, $fields): void
{
	$isActiveSprintItem = false;

	$parentTaskId = (int) $fields['PARENT_ID'] ?? null;

	if ($parentTaskId)
	{
		$sprintService = new SprintService();
		$itemService = new ItemService();
		$scrumItem = $itemService->getItemBySourceId($parentTaskId);
		$sprint = $sprintService->getActiveSprintByGroupId($fields['GROUP_ID']);
		$isActiveSprintItem = ($sprint->getId() === $scrumItem->getEntityId());
		if ($sprint->isEmpty() || $scrumItem->isEmpty())
		{
			$isActiveSprintItem = false;
		}
		if ($isActiveSprintItem)
		{
			self::updateItem($sprint, $taskId, $fields);
		}
	}

	if (!$isActiveSprintItem)
	{
		$backlogService = new BacklogService();
		$backlog = $backlogService->getBacklogByGroupId($fields['GROUP_ID']);
		if (!$backlogService->getErrors() && !$backlog->isEmpty())
		{
			self::updateItem($backlog, $taskId, $fields);
		}
	}
}