• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/service/kanbanservice.php
  • Класс: BitrixTasksScrumServiceKanbanService
  • Вызов: KanbanService::moveTask
public function moveTask(int $taskId, int $stageId): bool
{
	$itemService = new ItemService();
	$entityService = new EntityService();

	$scrumItem = $itemService->getItemBySourceId($taskId);
	if ($itemService->getErrors() || $scrumItem->isEmpty())
	{
		return false;
	}

	$entity = $entityService->getEntityById($scrumItem->getEntityId());
	if ($entityService->getErrors() || $entity->isEmpty())
	{
		return false;
	}

	if ($entity->getEntityType() === EntityForm::BACKLOG_TYPE)
	{
		return false;
	}

	$taskObject = new CTasks;

	$queryObject = TaskStageTable::getList([
		'filter' => [
			'TASK_ID' => $taskId,
			'=STAGE.ENTITY_TYPE' => StagesTable::WORK_MODE_ACTIVE_SPRINT,
			'STAGE.ENTITY_ID' => $entity->getId()
		]
	]);
	if ($taskStage = $queryObject->fetch())
	{
		TaskStageTable::update($taskStage['ID'], [
			'STAGE_ID' => $stageId,
		]);

		$taskObject->update($taskId, ['STAGE_ID' => $stageId]);
	}

	return true;
}