Beispiel #1
0
 function Set_getResponsibleUser($v, $f, &$arFields)
 {
     global $DB;
     $err_mess = CAllTicket::err_mess() . "<br>Function: Set_getResponsibleUser<br>Line: ";
     // если обращение создается сотрудником техподдержки, администратором или демо пользователем
     $f->RESPONSIBLE_USER_ID = null;
     if ($v->bSupportTeam || $v->bAdmin || $v->Demo) {
         $f->FromArray($arFields, "RESPONSIBLE_USER_ID", array(CSupportTableFields::MORE0));
     }
     if ($f->RESPONSIBLE_USER_ID == null) {
         unset($arFields["RESPONSIBLE_USER_ID"]);
     }
     /*
     получим идентификаторы события и ответственного в зависимости от
     	1) Категории
     	2) Критичности
     	3) Источника
     */
     $strSql = "\n\t\t\tSELECT ID, C_TYPE, RESPONSIBLE_USER_ID, EVENT1, EVENT2, EVENT3\n\t\t\tFROM b_ticket_dictionary\n\t\t\tWHERE\n\t\t\t\t(ID=" . $f->CATEGORY_ID . " AND C_TYPE='C') OR\n\t\t\t\t(ID=" . $f->CRITICALITY_ID . " AND C_TYPE='K') OR\n\t\t\t\t(ID=" . $f->SOURCE_ID . " AND C_TYPE='SR')\n\t\t\tORDER BY\n\t\t\t\tC_TYPE\n\t\t";
     $z = $DB->Query($strSql, false, $err_mess . __LINE__);
     $v->category_set = false;
     while ($zr = $z->Fetch()) {
         // если
         //    1) ответственный определен в справочнике
         //    2) до сих пор он не был определен
         //    3) не был задан явно пользователем имеющим на это права
         if ($zr["C_TYPE"] == "C") {
             $v->T_EVENT1 = trim($zr["EVENT1"]);
             $v->T_EVENT2 = trim($zr["EVENT2"]);
             $v->T_EVENT3 = trim($zr["EVENT3"]);
             $v->category_set = true;
         }
         if ($f->RESPONSIBLE_USER_ID == null && intval($zr["RESPONSIBLE_USER_ID"]) > 0) {
             $RU_ID = intval($zr["RESPONSIBLE_USER_ID"]);
             if (CTicket::IsSupportTeam($RU_ID) || CTicket::IsAdmin($RU_ID)) {
                 $f->RESPONSIBLE_USER_ID = $RU_ID;
             }
             break;
         }
     }
     // если ответственный явно не определен то
     if ($f->RESPONSIBLE_USER_ID == null) {
         // ответственный из настроек SLA
         $rsSLA = CTicketSLA::GetByID($f->SLA_ID);
         if ($rsSLA !== false && ($arSLA = $rsSLA->Fetch())) {
             if (intval($arSLA["RESPONSIBLE_USER_ID"]) > 0) {
                 $f->RESPONSIBLE_USER_ID = $arSLA["RESPONSIBLE_USER_ID"];
             }
         }
     }
     // ответственный из настроек модуля
     if ($f->RESPONSIBLE_USER_ID == null) {
         // берем из настроек модуля ответственного по умолчанию
         $RU_ID = intval(COption::GetOptionString("support", "DEFAULT_RESPONSIBLE_ID"));
         $f->RESPONSIBLE_USER_ID = $RU_ID;
     }
 }
Beispiel #2
0
function Support_GetSLAInfo($ID, &$name, &$description, $safe_for_html=true)
{
	static $arrSLA;
	$name = "";
	$description = "";
	if (intval($ID)>0)
	{
		if (is_array($arrSLA) && in_array($ID, array_keys($arrSLA)))
		{
			$name = $arrSLA[$ID]["NAME"];
			$description = $arrSLA[$ID]["DESCRIPTION"];
		}
		else
		{
			$rs = CTicketSLA::GetByID($ID);
			$ar = $rs->Fetch();
			$name = $ar["NAME"];
			$description = $ar["DESCRIPTION"];
			$arrSLA[$ar["ID"]] = array("NAME" => $ar["NAME"], "DESCRIPTION" => $ar["DESCRIPTION"]);
		}
		if ($safe_for_html)
		{
			$name = htmlspecialcharsbx($name);
			$description = htmlspecialcharsbx($description);
		}
	}
}
Beispiel #3
0
}
$arParams["SET_SHOW_USER_FIELD_T"] = $UFAT;
$rsTicket = CTicket::GetByID($arParams["ID"], SITE_ID, $check_rights = "Y", $get_user_name = "N", $get_extra_names = "N", array("SELECT" => $UFA));
if ($arTicket = $rsTicket->GetNext()) {
    foreach ($UFA as $k => $v) {
        $arParams[$v] = $arTicket[$v];
    }
    //+Ticket and user names
    $arResult["TICKET"] = $arTicket + _GetUserInfo($arTicket["RESPONSIBLE_USER_ID"], "RESPONSIBLE") + _GetUserInfo($arTicket["OWNER_USER_ID"], "OWNER") + _GetUserInfo($arTicket["CREATED_USER_ID"], "CREATED") + _GetUserInfo($arTicket["MODIFIED_USER_ID"], "MODIFIED_BY");
    //Dictionary table
    $arDictionary = array("C" => array("CATEGORY", intval($arTicket["CATEGORY_ID"])), "K" => array("CRITICALITY", intval($arTicket["CRITICALITY_ID"])), "S" => array("STATUS", intval($arTicket["STATUS_ID"])), "M" => array("MARK", intval($arTicket["MARK_ID"])), "SR" => array("SOURCE", intval($arTicket["SOURCE_ID"])));
    //+Ticket dictionary
    $arResult["TICKET"] += _GetDictionaryInfoEx($arDictionary);
    //+Sla
    $arResult["TICKET"]["SLA_NAME"] = $arResult["TICKET"]["SLA_DESCRIPTION"] = "";
    $rsSla = CTicketSLA::GetByID($arTicket["SLA_ID"]);
    if ($rsSla && ($arSla = $rsSla->Fetch())) {
        $arResult["TICKET"]["SLA_NAME"] = htmlspecialcharsbx($arSla["NAME"]);
        $arResult["TICKET"]["SLA_DESCRIPTION"] = htmlspecialcharsbx($arSla["DESCRIPTION"]);
    }
    //Messages files
    $arMessagesFiles = array();
    $rsFiles = CTicket::GetFileList($v1 = "s_id", $v2 = "asc", array("TICKET_ID" => $arParams["ID"]));
    while ($arFile = $rsFiles->Fetch()) {
        $name = strlen($arFile["ORIGINAL_NAME"]) > 0 ? $arFile["ORIGINAL_NAME"] : $arFile["FILE_NAME"];
        if (strlen($arFile["EXTENSION_SUFFIX"]) > 0) {
            $suffix_length = strlen($arFile["EXTENSION_SUFFIX"]);
            $name = substr($name, 0, strlen($name) - $suffix_length);
        }
        $arMessagesFiles[$arFile["MESSAGE_ID"]][] = array("HASH" => $arFile["HASH"], "NAME" => htmlspecialcharsbx($name), "FILE_SIZE" => $arFile["FILE_SIZE"]);
    }
    $arrSites[$ar["ID"]] = $ar;
}
$arCategory = $arMark = $arCriticality = array();
$rs = CTicketDictionary::GetList($v3 = "s_dropdown", $v4, array("TYPE" => "C"), $v5);
while ($ar = $rs->Fetch()) {
    $arCategory[] = $ar;
}
$rs = CTicketDictionary::GetList($v3 = "s_dropdown", $v4, array("TYPE" => "K"), $v5);
while ($ar = $rs->Fetch()) {
    $arCriticality[] = $ar;
}
$rs = CTicketDictionary::GetList($v3 = "s_dropdown", $v4, array("TYPE" => "M"), $v5);
while ($ar = $rs->Fetch()) {
    $arMark[] = $ar;
}
$rs = CTicketSLA::GetByID($ID);
if (!$rs || !$rs->ExtractFields()) {
    $ID = 0;
    $str_PRIORITY = 100;
    for ($i = 0; $i <= 6; $i++) {
        $arSHEDULE[$i]["OPEN_TIME"] = "24H";
    }
} else {
    $arGROUPS = CTicketSLA::GetGroupArray($ID);
    $arSHEDULE = CTicketSLA::GetSheduleArray($ID);
    $arSITES = CTicketSLA::GetSiteArray($ID);
    $arCATEGORIES = CTicketSLA::GetCategoryArray($ID);
    $arCRITICALITIES = CTicketSLA::GetCriticalityArray($ID);
    $arMARKS = CTicketSLA::GetMarkArray($ID);
}
if ($message) {