• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/model/stage.php
  • Класс: BitrixRpaModelStage
  • Вызов: Stage::getPossibleNextStageIds
public function getPossibleNextStageIds(bool $isFromCache = false): array
{
	if($this->possibleNextStageIds === null || !$isFromCache)
	{
		$this->possibleNextStageIds = [];
		if(UserPermissions::canMoveAnywhere())
		{
			$stages = clone $this->getType()->getStages();
			reset($stages);
			foreach($stages as $stage)
			{
				$stageid = $stage->getId();
				$this->possibleNextStageIds[$stageid] = $stageid;
			}
		}
		else
		{
			$list = StageToStageTable::getList([
				'filter' => [
					'=STAGE_ID' => $this->getId(),
				],
			]);
			while($setting = $list->fetch())
			{
				$stageId = (int) $setting['STAGE_TO_ID'];
				$this->possibleNextStageIds[$stageId] = $stageId;
			}

			if(UserPermissions::isAlwaysCanMoveToTheNextStage())
			{
				$stages = clone $this->getType()->getStages();
				reset($stages);
				$isStageReached = false;
				foreach($stages as $stage)
				{
					if($isStageReached)
					{
						$this->possibleNextStageIds[$stage->getId()] = $stage->getId();
						break;
					}
					if($stage === $this)
					{
						$isStageReached = true;
					}
				}
			}
		}
	}

	return $this->possibleNextStageIds;
}