/** * Check if user is head of any company departmant * @param integer $userID User ID * @return boolean */ public static function isSupervisor($userID) { if (!Loader::includeModule('intranet')) { return false; } $dbResult = \CIntranetUtils::GetSubordinateDepartmentsList($userID); return is_array($dbResult->Fetch()); }
function GetSubordinateDepartmentsOld($USER_ID = null, $bRecursive = false) { global $USER; $arDpts = array(); if (!$USER_ID) { $USER_ID = $USER->GetID(); } if ($USER_ID) { $dbRes = CIntranetUtils::GetSubordinateDepartmentsList($USER_ID); while ($arRes = $dbRes->Fetch()) { $arDpts[] = $arRes['ID']; } if ($bRecursive && count($arDpts) > 0) { $arDpts = CIntranetUtils::GetIBlockSectionChildren($arDpts); } } return $arDpts; }
} $arResult["IS_ONLINE"] = $arResult["User"]["IS_ONLINE"] == "Y"; if (CModule::IncludeModule('intranet')) { $arResult['IS_HONOURED'] = CIntranetUtils::IsUserHonoured($arResult["User"]["ID"]); $arResult['IS_ABSENT'] = CIntranetUtils::IsUserAbsent($arResult["User"]["ID"], $arParams['CALENDAR_USER_IBLOCK_ID']); //departments and managers $obCache = new CPHPCache(); $path = "/user_card_" . intval($arResult["User"]["ID"] / 100); if ($arParams["CACHE_TIME"] == 0 || $obCache->StartDataCache($arParams["CACHE_TIME"], $arResult["User"]["ID"], $path)) { if ($arParams["CACHE_TIME"] > 0 && defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->StartTagCache($path); $GLOBALS["CACHE_MANAGER"]->RegisterTag("USER_CARD_" . intval($arResult["User"]["ID"] / 100)); } //departments $arResult['DEPARTMENTS'] = array(); $dbRes = CIntranetUtils::GetSubordinateDepartmentsList($arResult["User"]["ID"]); while ($arRes = $dbRes->GetNext()) { $arRes['URL'] = str_replace('#ID#', $arRes['ID'], $arParams['PATH_TO_CONPANY_DEPARTMENT']); $arResult['DEPARTMENTS'][$arRes['ID']] = $arRes; $arResult['DEPARTMENTS'][$arRes['ID']]['EMPLOYEE_COUNT'] = 0; $rsUsers = CIntranetUtils::GetDepartmentEmployees(array($arRes['ID']), $bRecursive = true); while ($arUser = $rsUsers->Fetch()) { if ($arUser['ID'] != $arResult["User"]["ID"]) { //self $arResult['DEPARTMENTS'][$arRes['ID']]['EMPLOYEE_COUNT']++; } } } //managers $arResult['MANAGERS'] = CIntranetUtils::GetDepartmentManager($arResult["User"]["UF_DEPARTMENT"], $arResult["User"]["ID"], true); if ($arParams["CACHE_TIME"] > 0) {
$arUser["IS_ONLINE"] = $arUser["IS_ONLINE"] == "Y"; if ($componentPage == "user") { if (CModule::IncludeModule('intranet')) { $arResult['IS_HONOURED'] = CIntranetUtils::IsUserHonoured($arUser["ID"]); //$arResult['IS_ABSENT'] = CIntranetUtils::IsUserAbsent($arUser["ID"], $arParams['CALENDAR_USER_IBLOCK_ID']); //departments and managers $obCache = new CPHPCache(); $path = "/user_card_" . intval($arUser["ID"] / 100); if ($arParams["CACHE_TIME"] == 0 || $obCache->StartDataCache($arParams["CACHE_TIME"], $arUser["ID"], $path)) { if ($arParams["CACHE_TIME"] > 0 && defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->StartTagCache($path); $GLOBALS["CACHE_MANAGER"]->RegisterTag("USER_CARD_" . intval($arUser["ID"] / 100)); } //departments $arResult['DEPARTMENTS'] = array(); $dbRes = CIntranetUtils::GetSubordinateDepartmentsList($arUser["ID"]); while ($arRes = $dbRes->GetNext()) { $arRes['URL'] = str_replace('#ID#', $arRes['ID'], $arParams['PATH_TO_COMPANY_DEPARTMENT']); $arResult['DEPARTMENTS'][$arRes['ID']] = $arRes; $arResult['DEPARTMENTS'][$arRes['ID']]['EMPLOYEE_COUNT'] = 0; $rsUsers1 = CIntranetUtils::GetDepartmentEmployees(array($arRes['ID']), $bRecursive = true); while ($arUser1 = $rsUsers1->Fetch()) { if ($arUser1['ID'] != $arUser["ID"]) { //self $arResult['DEPARTMENTS'][$arRes['ID']]['EMPLOYEE_COUNT']++; } } } //managers $arRes = CIntranetUtils::GetDepartmentManager($arUser["UF_DEPARTMENT"], $arUser["ID"], true); foreach ($arRes as $val) {