• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/classes/general/utils.php
  • Класс: CIntranetUtils
  • Вызов: CIntranetUtils::GetEmployeesCountForSorting
static function GetEmployeesCountForSorting($section_id = 0, $amount = 0, $arAccessUsers = false)
{
	if (null == self::$SECTIONS_SETTINGS_CACHE)
		self::_GetDeparmentsTree();

	if (is_array($arAccessUsers))
	{
		if (count($arAccessUsers) <= 0)
			return 0;
		if (in_array('*', $arAccessUsers))
			$arAccessUsers = false;
	}

	$cnt = 0;

	$arSection = self::$SECTIONS_SETTINGS_CACHE['DATA'][$section_id];

	if (is_array($arSection['EMPLOYEES']))
	{
		if (!is_array($arAccessUsers))
			$cnt = count($arSection['EMPLOYEES']);
		else
			$cnt += count(array_intersect($arSection['EMPLOYEES'], $arAccessUsers));
	}

	if (
		$arSection['UF_HEAD'] > 0 && !in_array($arSection['UF_HEAD'], $arSection['EMPLOYEES'])
		&& (
			!$arAccessUsers
			|| $arSection['UF_HEAD'] > 0 && is_array($arAccessUsers) && in_array($arSection['UF_HEAD'], $arAccessUsers)
		)
	)
	{
		$cnt++;
	}

	if (self::$SECTIONS_SETTINGS_CACHE['TREE'][$section_id])
	{
		foreach (self::$SECTIONS_SETTINGS_CACHE['TREE'][$section_id] as $dpt)
			$cnt += self::GetEmployeesCountForSorting ($dpt, 0, $arAccessUsers);
	}

	return $amount > 0 ? intval($cnt/$amount)+($cnt%$amount>0?1:0) : $cnt;
}