• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/controller/stage.php
  • Класс: BitrixRpaControllerStage
  • Вызов: Stage::prepareData
public function prepareData(BitrixRpaModelStage $stage, bool $isFullInfo = true): array
{
	$data = $this->convertKeysToCamelCase($stage->collectValues());
	$data['color'] = $stage->getColor();
	$data['isFirst'] = $stage->isFirst();
	$data['isSuccess'] = $stage->isSuccess();
	$data['isFail'] = $stage->isFail();
	if($isFullInfo)
	{
		$data['tasks'] = [];
		$data['robotsCount'] = 0;
		$taskManager = Driver::getInstance()->getTaskManager();
		if($taskManager)
		{
			$data['tasks'] = $taskManager->getTypeStageTasks($stage->getTypeId(), $stage->getId());
			$data['robotsCount'] = $taskManager->countTypeStageRobots($stage->getTypeId(), $stage->getId());
		}
		$userPermissions = Driver::getInstance()->getUserPermissions();
		if($userPermissions->canModifyType($stage->getTypeId()))
		{
			$settings = $stage->getFieldSettings(false);
			foreach($settings as $visibility => $fields)
			{
				$data['fields'][$visibility] = $fields;
			}
		}
		//$data['settingsUrl'] = Driver::getInstance()->getUrlManager()->getStageDetailUrl($stage->getId());
		$data['possibleNextStages'] = array_values($stage->getPossibleNextStageIds());
		$canModifyItemsInStage = $userPermissions->canModifyItemsInStage($stage->getType(), $stage->getId());
		$canMoveFromStage = $userPermissions->canMoveFromStage($stage->getType(), $stage->getId());
		$data['permissions'] = [
			//'canAddItem' => //$canModifyItemsInStage,
			'droppable' => ($canModifyItemsInStage || $canMoveFromStage || $userPermissions->canMoveToStage($stage)),
			'canMoveFrom' => $canMoveFromStage,
		];
		if($canModifyItemsInStage && !UserPermissions::canMoveAnywhere())
		{
			foreach($stage->getUserFieldCollection() as $userField)
			{
				if($userField->isVisible())
				{
					$data['userFields'][$userField->getName()] = [
						'name' => $userField->getName(),
						'title' => $userField->getTitle(),
						'mandatory' => $userField->isMandatory(),
					];
				}
			}
		}
	}

	return $data;
}