28.04.202221:2128.04.2022 21:21:39
список подразделений пользователя
CIntranetUtils::GetUserDepartments($userId); |
список сотрудников подразделений
CIntranetUtils::GetDepartmentEmployees($arDepartments, $bRecursive = false, $bSkipSelf = false, $onlyActive = 'Y');
|
руководители отделов
CIntranetUtils::GetDepartmentManager($arDepartments, $skipUserId=false, $bRecursive=false); |
функция, которая запуская из БП
завершает все лиды колл-центра (аварийное завершение)
function FinishAllActiveCallCenterLeads(){
if(CModule::IncludeModule("intranet")){
$callcenterUsers = CIntranetUtils::GetDepartmentEmployees([21], true, false, "N");
$arUserIds = [];
while($arUser = $callcenterUsers->fetch()){
$arUserIds[] = $arUser["ID"];
}
if(!empty($arUserIds) && CModule::IncludeModule("crm")){
$arFilter = array(
"ASSIGNED_BY_ID" => $arUserIds,
"CHECK_PERMISSIONS"=>"N", //не проверять права доступа текущего пользователя
"STATUS_ID" => [1,3]
);
$arSelect = array(
"ID"
);
$res = CCrmLead::GetList(Array(), $arFilter, $arSelect);
$lead = new \CCrmLead( false );
while($row = $res->Fetch()){
$arUpdateData = array(
"STATUS_ID" => "CONVERTED"
);
$arOptions = array('DISABLE_USER_FIELD_CHECK'=>true);
$lead->Update($row["ID"], $arUpdateData, true, true, $arOptions);
if(!$lead->Update($row["ID"], $arUpdateData, true, true, $arOptions)){
//echo $lead->LAST_ERROR."<br>";
}
}
}
}
} |
28.04.202221:2128.04.2022 21:21:39