• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/service/kanbanservice.php
  • Класс: BitrixTasksScrumServiceKanbanService
  • Вызов: KanbanService::getStageIdsMapBetweenTwoSprints
public function getStageIdsMapBetweenTwoSprints(int $firstSprintId, int $secondSprintId): array
{
	$firstStages = [];
	$secondStages = [];

	$firstSprintId = (int) $firstSprintId;
	$secondSprintId = (int) $secondSprintId;

	$queryObject = StagesTable::getList([
		'select' => ['*'],
		'filter' => [
			'=ENTITY_TYPE' => StagesTable::WORK_MODE_ACTIVE_SPRINT,
			'ENTITY_ID' => [$firstSprintId, $secondSprintId],
		],
		'order' => ['SORT' => 'ASC']
	]);
	while ($stage = $queryObject->fetch())
	{
		$entityId = (int) $stage['ENTITY_ID'];

		if ($entityId === $firstSprintId)
		{
			$firstStages[] = $stage;
		}
		else if ($entityId === $secondSprintId)
		{
			$secondStages[] = $stage;
		}
	}

	$stageIdsMap = [];

	if (count($firstStages) !== count($secondStages))
	{
		return $stageIdsMap;
	}

	foreach ($firstStages as $firstStage)
	{
		foreach ($secondStages as $secondStage)
		{
			if (
				$firstStage['TITLE'] === $secondStage['TITLE']
				&& $firstStage['SYSTEM_TYPE'] === $secondStage['SYSTEM_TYPE']
			)
			{
				$stageIdsMap[$secondStage['ID']] = $firstStage['ID'];
			}
		}
	}

	return $stageIdsMap;
}