- Модуль: support
- Путь к файлу: ~/bitrix/modules/support/classes/general/sla.php
- Класс: CAllTicketSLA
- Вызов: CAllTicketSLA::GetForUser
static function GetForUser($siteID=false, $userID=false)
{
$err_mess = (CAllTicketSLA::err_mess())."
Function: GetForUser
Line: ";
global $DB, $USER, $APPLICATION;
$slaID = 1; // default SLA
$arrGroups = array();
if (!is_object($USER)) $USER = new CUser;
if ($userID===false && is_object($USER)) $userID = $USER->GetID();
if ($siteID==false) $siteID = SITE_ID;
$userID = intval($userID);
if ($userID>0) $arrGroups = CUser::GetUserGroup($userID);
if (count($arrGroups)<=0) $arrGroups[] = 2;
$arSla2Site = array();
$rs = $DB->Query("SELECT SLA_ID, SITE_ID FROM b_ticket_sla_2_site", false, $err_mess.__LINE__);
while ($ar = $rs->Fetch()) $arSla2Site[$ar["SLA_ID"]][] = $ar["SITE_ID"];
$strSql = "
SELECT
SG.SLA_ID
FROM
b_ticket_sla_2_user_group SG
INNER JOIN b_ticket_sla S ON (S.ID = SG.SLA_ID)
WHERE
SG.GROUP_ID in (".implode(",",$arrGroups).")
GROUP BY
SG.SLA_ID, S.PRIORITY
ORDER BY
S.PRIORITY DESC
";
$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
while ($ar = $rs->Fetch())
{
if (is_array($arSla2Site[$ar["SLA_ID"]]) && (in_array($siteID, $arSla2Site[$ar["SLA_ID"]]) || in_array("ALL", $arSla2Site[$ar["SLA_ID"]])))
{
$slaID = $ar["SLA_ID"];
break;
}
}
return $slaID;
}