• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/Controller/Category.php
  • Класс: BitrixCrmMobileControllerCategory
  • Вызов: Category::getCategoryFromCategorylessEntity
private function getCategoryFromCategorylessEntity(Factory $factory, int $categoryId = 0): DtoCategory
{
	$entityTypeId = $factory->getEntityTypeId();
	$permissions = $this->getCategoryPermissions($entityTypeId, $categoryId);

	$categoriesEnabled = $factory->isCategoriesEnabled();
	$stagesEnabled = $factory->isStagesEnabled();
	$tunnelsEnabled = $categoriesEnabled && $stagesEnabled;

	$stages = $factory->getStages($categoryId);
	$stageColors = $this->getStageColors($stages);
	$stagesBySemantics = $this->getStagesBySemantics($stages, [], $stageColors);

	return new DtoCategory([
		'id' => 0,
		'name' => $factory->getEntityDescriptionInPlural(),
		'isDefault' => true,
		'editable' => $this->canUserEditCategory(),
		'access' => $this->getAccess($permissions),
		'categoriesSupported' => $factory->isCategoriesSupported(),
		'categoriesEnabled' => $categoriesEnabled,
		'stagesEnabled' => $stagesEnabled,
		'tunnelsEnabled' => $tunnelsEnabled,
		'processStages' => $stagesBySemantics[PhaseSemantics::PROCESS] ?? [],
		'successStages' => $stagesBySemantics[PhaseSemantics::SUCCESS] ?? [],
		'failedStages' => $stagesBySemantics[PhaseSemantics::FAILURE] ?? [],
		'documentFields' => $this->getUsedDocumentFields($entityTypeId),
	]);
}