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

	foreach (self::getStructureDepartments() as $department)
	{
		if($department['parent'] === $idDepartment)
		{
			$result[$department['id']] = $department;
		}
	}

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

	if($includeCurrentDepartment === true)
	{
		$result[$idDepartment] = self::getStructureDepartments()[$idDepartment];
	}

	return $result;
}