AuthForm(GetMessage("ACCESS_DENIED")); IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/include.php"); IncludeModuleLangFile(__FILE__); include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/colors.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/img.php"); /*************************************************************************** Функции ***************************************************************************/ function CheckFilter() // проверка введенных полей { global $strError, $FilterArr; reset($FilterArr); foreach ($FilterArr as $f) global $$f; $str = ""; $arMsg = Array(); if (trim($find_date1) <> '' || trim($find_date2) <> '') { $date_1_ok = false; $date1_stm = MkDateTime(ConvertDateTime($find_date1,"D.M.Y"),"d.m.Y"); $date2_stm = MkDateTime(ConvertDateTime($find_date2,"D.M.Y")." 23:59","d.m.Y H:i"); if (!$date1_stm && trim($find_date1) <> '') //$str.= GetMessage("SUP_WRONG_DATE_FROM")."
"; $arMsg[] = array("id"=>"find_date1", "text"=> GetMessage("SUP_WRONG_DATE_FROM")); else $date_1_ok = true; if (!$date2_stm && trim($find_date2) <> '') //$str.= GetMessage("SUP_WRONG_DATE_TILL")."
"; $arMsg[] = array("id"=>"find_date2", "text"=> GetMessage("SUP_WRONG_DATE_TILL")); elseif ($date_1_ok && $date2_stm <= $date1_stm && $date2_stm <> '') //$str.= GetMessage("SUP_FROM_TILL_DATE")."
"; $arMsg[] = array("id"=>"find_date2", "text"=> GetMessage("SUP_FROM_TILL_DATE")); } if(!empty($arMsg)) { $e = new CAdminException($arMsg); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } return true; } function fill_all_values($sid, $type, $mess=false, $site=false) { global $arrTickets, $arrT, $MESS; if(is_array($site)) { $site = implode("|", $site); } $z = ($type=="SLA") ? CTicketSLA::GetDropDown($site) : CTicketDictionary::GetList("s_dropdown", "asc", array("TYPE" => $type, "SITE" => $site)); if ($type!="SLA") { if ($mess===false) $mess = GetMessage("SUP_NO"); $arrTickets[$sid][0]["NAME"] = "(".$mess.")"; $arrTickets[$sid][0]["COUNTER_OPEN"] = $arrT[$sid][0]["COUNTER_OPEN"]; $arrTickets[$sid][0]["COUNTER_OPEN_RED"] = $arrT[$sid][0]["COUNTER_OPEN_RED"]; $arrTickets[$sid][0]["COUNTER_OPEN_GREEN"] = $arrT[$sid][0]["COUNTER_OPEN_GREEN"]; $arrTickets[$sid][0]["COUNTER_CLOSE"] = $arrT[$sid][0]["COUNTER_CLOSE"]; $arrTickets[$sid][0]["MESSAGES_OPEN"] = $arrT[$sid][0]["MESSAGES_OPEN"]; $arrTickets[$sid][0]["OVERDUE_MESSAGES_OPEN"] = $arrT[$sid][0]["OVERDUE_MESSAGES_OPEN"]; $arrTickets[$sid][0]["MESSAGES_CLOSE"] = $arrT[$sid][0]["MESSAGES_CLOSE"]; $arrTickets[$sid][0]["OVERDUE_MESSAGES_CLOSE"] = $arrT[$sid][0]["OVERDUE_MESSAGES_CLOSE"]; } while ($zr = $z->Fetch()) { $arrTickets[$sid][$zr["ID"]]["NAME"] = "[".$zr["ID"]."] ".htmlspecialcharsbx($zr["NAME"]); $arrTickets[$sid][$zr["ID"]]["COUNTER_OPEN"] = $arrT[$sid][$zr["ID"]]["COUNTER_OPEN"]; $arrTickets[$sid][$zr["ID"]]["COUNTER_OPEN_RED"] = $arrT[$sid][$zr["ID"]]["COUNTER_OPEN_RED"]; $arrTickets[$sid][$zr["ID"]]["COUNTER_OPEN_GREEN"] = $arrT[$sid][$zr["ID"]]["COUNTER_OPEN_GREEN"]; $arrTickets[$sid][$zr["ID"]]["COUNTER_CLOSE"] = $arrT[$sid][$zr["ID"]]["COUNTER_CLOSE"]; $arrTickets[$sid][$zr["ID"]]["MESSAGES_OPEN"] = $arrT[$sid][$zr["ID"]]["MESSAGES_OPEN"]; $arrTickets[$sid][$zr["ID"]]["OVERDUE_MESSAGES_OPEN"] = $arrT[$sid][$zr["ID"]]["OVERDUE_MESSAGES_OPEN"]; $arrTickets[$sid][$zr["ID"]]["MESSAGES_CLOSE"] = $arrT[$sid][$zr["ID"]]["MESSAGES_CLOSE"]; $arrTickets[$sid][$zr["ID"]]["OVERDUE_MESSAGES_CLOSE"] = $arrT[$sid][$zr["ID"]]["OVERDUE_MESSAGES_CLOSE"]; } } function sup_sort($a,$b) { $sort1 = intval($a["COUNTER_OPEN"])+intval($a["COUNTER_CLOSE"]); $sort2 = intval($b["COUNTER_OPEN"])+intval($b["COUNTER_CLOSE"]); if ($sort1==$sort2) return 0; if ($sort1<$sort2) return 1; else return -1; } /*************************************************************************** Обработка GET | POST ****************************************************************************/ $sTableID = "t_ticket_desktop"; $oSort = new CAdminSorting($sTableID);// инициализация сортировки $lAdmin = new CAdminList($sTableID, $oSort);// инициализация списка $filter = new CAdminFilter( $sTableID."_filter_id", array( GetMessage("SUP_F_SITE"), GetMessage("SUP_F_RESPONSIBLE"), ) ); if ($set_default=="Y" && !isset($_SESSION["SESS_ADMIN"][$sTableID]) || empty($_SESSION["SESS_ADMIN"][$sTableID]) ) { $find_date1_DAYS_TO_BACK=1; //$find_date2 = ConvertTimeStamp(time()-86400, "SHORT"); $set_filter = "Y"; } $FilterArr = Array( "find_date1","find_date2", "find_site", "find_responsible_id","find_responsible","find_responsible_exact_match", ); $lAdmin->InitFilter($FilterArr);//инициализация фильтра if ($bAdmin!="Y" && $bDemo!="Y") $find_responsible_id = $USER->GetID(); InitBVar($find_responsible_exact_match); if (CheckFilter()) { $arFilter = Array( "SITE" => $find_site, "DATE_CREATE_1" => $find_date1, "DATE_CREATE_2" => $find_date2, "RESPONSIBLE_ID" => $find_responsible_id, "RESPONSIBLE" => $find_responsible, "RESPONSIBLE_EXACT_MATCH" => $find_responsible_exact_match ); } else { if($e = $APPLICATION->GetException()) $message = new CAdminMessage(GetMessage("SUP_FILTER_ERROR"), $e); } global $by, $order; $rsTickets = CTicket::GetList($by, $order, $arFilter, null, "Y", "N", "N"); $OPEN_TICKETS = $CLOSE_TICKETS = 0; $arrTickets = array(); $arrValues = array( "STATUS", "CATEGORY", "CRITICALITY", "SOURCE", "MARK", "SLA", "DIFFICULTY" ); $arUsersID = array(); $arrT = array(); while ($arTicket = $rsTickets->Fetch()) { $mess_count = $arTicket["MESSAGES"]; $mess_overdue_count = $arTicket["OVERDUE_MESSAGES"]; if (intval($arTicket["RESPONSIBLE_USER_ID"])>0) { /*$rsUser = CUser::GetByID($arTicket["RESPONSIBLE_USER_ID"]); $arUser = $rsUser->Fetch(); $arrSupportUser[$arTicket["RESPONSIBLE_USER_ID"]] = $arUser;*/ $arUsersID[] = intval($arTicket["RESPONSIBLE_USER_ID"]); //$R_NAME = "[".$arTicket["RESPONSIBLE_USER_ID"]."] (".htmlspecialcharsbx($arUser["LOGIN"]).") ".htmlspecialcharsbx($arUser["NAME"])." ".htmlspecialcharsbx($arUser["LAST_NAME"]); } else { //$R_NAME = "(".GetMessage("SUP_NO").")"; $arrT["RESPONSIBLE"][intval($arTicket["RESPONSIBLE_USER_ID"])]["NAME"] = "(".GetMessage("SUP_NO").")"; } reset($arrValues); foreach ($arrValues as $v) $arrT[$v][intval($arTicket[$v."_ID"])]["ID"] = intval($arTicket[$v."_ID"]); if ($arTicket["DATE_CLOSE"] == '') { $OPEN_TICKETS++; $OPEN_MESSAGES += $mess_count; $OPEN_OVERDUE_MESSAGES += $mess_overdue_count; reset($arrValues); foreach ($arrValues as $v) { $arrT[$v][intval($arTicket[$v."_ID"])]["COUNTER_OPEN"] += 1; if ($arTicket["LAST_MESSAGE_BY_SUPPORT_TEAM"]=="Y") $arrT[$v][intval($arTicket[$v."_ID"])]["COUNTER_OPEN_GREEN"] += 1; elseif ($arTicket["LAST_MESSAGE_BY_SUPPORT_TEAM"]=="N") $arrT[$v][intval($arTicket[$v."_ID"])]["COUNTER_OPEN_RED"] += 1; } reset($arrValues); foreach ($arrValues as $v) { $arrT[$v][intval($arTicket[$v."_ID"])]["MESSAGES_OPEN"] += $mess_count; $arrT[$v][intval($arTicket[$v."_ID"])]["OVERDUE_MESSAGES_OPEN"] += $mess_overdue_count; } $arrT["RESPONSIBLE"][intval($arTicket["RESPONSIBLE_USER_ID"])]["COUNTER_OPEN"] += 1; $arrT["RESPONSIBLE"][intval($arTicket["RESPONSIBLE_USER_ID"])]["MESSAGES_OPEN"] += $mess_count; $arrT["RESPONSIBLE"][intval($arTicket["RESPONSIBLE_USER_ID"])]["OVERDUE_MESSAGES_OPEN"] += $mess_overdue_count; if ($arTicket["LAST_MESSAGE_BY_SUPPORT_TEAM"]=="Y") { $OPEN_TICKETS_GREEN++; $arrT["RESPONSIBLE"][intval($arTicket["RESPONSIBLE_USER_ID"])]["COUNTER_OPEN_GREEN"] += 1; } elseif ($arTicket["LAST_MESSAGE_BY_SUPPORT_TEAM"]!="Y") { $OPEN_TICKETS_RED++; $arrT["RESPONSIBLE"][intval($arTicket["RESPONSIBLE_USER_ID"])]["COUNTER_OPEN_RED"] += 1; } } else { $CLOSE_TICKETS++; $CLOSE_MESSAGES += $mess_count; $CLOSE_OVERDUE_MESSAGES += $mess_overdue_count; reset($arrValues); foreach ($arrValues as $v) $arrT[$v][intval($arTicket[$v."_ID"])]["COUNTER_CLOSE"] += 1; reset($arrValues); foreach ($arrValues as $v) { $arrT[$v][intval($arTicket[$v."_ID"])]["MESSAGES_CLOSE"] += $mess_count; $arrT[$v][intval($arTicket[$v."_ID"])]["OVERDUE_MESSAGES_CLOSE"] += $mess_overdue_count; } $arrT["RESPONSIBLE"][intval($arTicket["RESPONSIBLE_USER_ID"])]["COUNTER_CLOSE"] += 1; $arrT["RESPONSIBLE"][intval($arTicket["RESPONSIBLE_USER_ID"])]["MESSAGES_CLOSE"] += $mess_count; $arrT["RESPONSIBLE"][intval($arTicket["RESPONSIBLE_USER_ID"])]["OVERDUE_MESSAGES_CLOSE"] += $mess_overdue_count; } } if(count($arUsersID) > 0) { $arrSupportUser = array(); $arUsersID = array_unique($arUsersID); $strUsers = implode("|", $arUsersID); $rs = CUser::GetList('id', 'asc', array( "ID" => $strUsers), array("FIELDS"=>array("NAME","LAST_NAME","LOGIN","ID"))); while($ar = $rs->Fetch()) { $arrT["RESPONSIBLE"][$ar["ID"]]["NAME"] = "[" . $ar["ID"] . "] " . htmlspecialcharsbx("(" . $ar["LOGIN"] . ") " . $ar["NAME"] . " " . $ar["LAST_NAME"]); $arrSupportUser[$ar["ID"]] = $ar; } } // сортировка порядка вывода таблиц $arrTickets["RESPONSIBLE"] = $arrT["RESPONSIBLE"]; fill_all_values("CRITICALITY", "K", false, $find_site); fill_all_values("STATUS", "S", false, $find_site); fill_all_values("DIFFICULTY", "D", false, $find_site); fill_all_values("CATEGORY", "C", false, $find_site); fill_all_values("SOURCE", "SR", "web", $find_site); fill_all_values("MARK", "M", false, $find_site); fill_all_values("SLA", "SLA", false, $find_site); // сортировка значений внутри таблиц if (is_array($arrTickets["RESPONSIBLE"])) uasort($arrTickets["RESPONSIBLE"], "sup_sort"); if (is_array($arrTickets["CRITICALITY"])) uasort($arrTickets["CRITICALITY"], "sup_sort"); if (is_array($arrTickets["STATUS"])) uasort($arrTickets["STATUS"], "sup_sort"); if (is_array($arrTickets["DIFFICULTY"])) uasort($arrTickets["DIFFICULTY"], "sup_sort"); if (is_array($arrTickets["CATEGORY"])) uasort($arrTickets["CATEGORY"], "sup_sort"); if (is_array($arrTickets["SOURCE"])) uasort($arrTickets["SOURCE"], "sup_sort"); if (is_array($arrTickets["MARK"])) uasort($arrTickets["MARK"], "sup_sort"); if (is_array($arrTickets["SLA"])) uasort($arrTickets["SLA"], "sup_sort"); // filter parameters for ticket list urls $tlist_filter_pass = ''; $tlist_filter_pass_array = array(); foreach ($_GET as $k => $v) { if (mb_strpos($k, 'find_') === 0) { $tlist_filter_pass_array[$k] = $v; } } if (count($tlist_filter_pass_array)) { $tlist_filter_pass = '&' . http_build_query($tlist_filter_pass_array); $tlist_filter_pass = str_replace('find_date', 'find_date_create', $tlist_filter_pass); } $lAdmin->BeginCustomContent();?>

Show(); foreach ($arrTickets as $key => $arrR): $w1 = 45; $w2 = round((100-$w1)/8); if ($find_show_messages!="Y") $w2 = round((100-$w1)/5); ?>
">
">
">

Fatal error: Uncaught Error: Call to undefined function GetMessage() in D:\ktt\ttepla.com\public_html\bitrix\modules\support\admin\ticket_desktop.php:336 Stack trace: #0 {main} thrown in D:\ktt\ttepla.com\public_html\bitrix\modules\support\admin\ticket_desktop.php on line 336