- Модуль: 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;
}