• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/queuemanager.php
  • Класс: BitrixImOpenLinesQueueManager
  • Вызов: QueueManager::getParentDepartments
static function getParentDepartments($idDepartment, $recursion = false, $includeCurrentDepartment = false): array
{
	$result = [];
	$idDepartment = (int)$idDepartment;

	$structureDepartments = self::getStructureDepartments();
	$currentDepartment = $structureDepartments[$idDepartment];

	foreach ($structureDepartments as $department)
	{
		if($department['id'] === $currentDepartment['parent'])
		{
			$result[$department['id']] = $department;
		}
	}

	if(
		$recursion === true &&
		!empty($result)
	)
	{
		foreach ($result as $department)
		{
			$parentDepartments = self::getParentDepartments($department['id'], $recursion, false);
			if(!empty($parentDepartments))
			{
				foreach ($parentDepartments as $id=>$parentDepartment)
				{
					$result[$id] = $parentDepartment;
				}
			}
		}
	}

	if($includeCurrentDepartment === true)
	{
		$result[$idDepartment] = $currentDepartment;
	}

	return $result;
}