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