*/ require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php"; require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/support/include.php"; $bDemo = CTicket::IsDemo() ? "Y" : "N"; $bAdmin = CTicket::IsAdmin() ? "Y" : "N"; $bSupportTeam = CTicket::IsSupportTeam() ? "Y" : "N"; if ($bAdmin != "Y" && $bSupportTeam != "Y" && $bDemo != "Y") { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } include $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/support/colors.php"; require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/img.php"; $diameter = intval($diameter) > 0 ? intval($diameter) : 180; InitBVar($find_responsible_exact_match); $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, "SLA" => $find_sla_id, "CATEGORY" => $find_category_id, "CRITICALITY" => $find_criticality_id, "STATUS" => $find_status_id, "MARK" => $find_mark_id, "SOURCE" => $find_source_id); $CHECK_RIGHTS = $bDemo == "Y" ? "N" : "Y"; $rsTickets = CTicket::GetList($by, $order, $arFilter, $is_filtered, $CHECK_RIGHTS, "N", "N"); $arrMess = array(); $arrMess["2_m"] = 0; $arrMess["3_m"] = 0; $arrMess["4_m"] = 0; $arrMess["5_m"] = 0; $arrMess["6_m"] = 0; $arrMess["7_m"] = 0; $arrMess["8_m"] = 0; $arrMess["9_m"] = 0; $arrMess["10_m"] = 0; while ($arTicket = $rsTickets->Fetch()) { if (strlen($arTicket["DATE_CLOSE"]) > 0) { $MC = $arTicket["MESSAGES"]; if ($MC <= 2) { $arrMess["2_m"] += 1;
//Get Tickets CPageOption::SetOptionString("main", "nav_page_in_session", "N"); $UFA = array(); $UFAT = array(); global $USER_FIELD_MANAGER; $arrUF = $USER_FIELD_MANAGER->GetUserFields("SUPPORT", 0, LANGUAGE_ID); if (isset($arParams["SET_SHOW_USER_FIELD"])) { foreach ($arParams["SET_SHOW_USER_FIELD"] as $k => $v) { if (strlen(trim($v)) > 0) { $UFAT[$v] = array("NAME_C" => $arrUF[$v]["LIST_COLUMN_LABEL"], "NAME_F" => $arrUF[$v]["EDIT_FORM_LABEL"], "ALL" => $arrUF[$v]); $UFA[] = $v; } } } $arParams["SET_SHOW_USER_FIELD_T"] = $UFAT; $rsTickets = CTicket::GetList($GLOBALS["by"], $GLOBALS["order"], $arFilter, $is_filtered, $check_rights = "Y", $get_user_name = "N", $get_dictionary_name = "N", false, array("SELECT" => $UFA)); $rsTickets->NavStart($arParams["TICKETS_PER_PAGE"]); //Result array $arResult = array("TICKETS" => array(), "TICKETS_COUNT" => $rsTickets->SelectedRowsCount(), "NAV_STRING" => $rsTickets->GetPageNavString(GetMessage("SUP_PAGES")), "CURRENT_PAGE" => htmlspecialcharsbx($APPLICATION->GetCurPage()), "NEW_TICKET_PAGE" => htmlspecialcharsbx(CComponentEngine::MakePathFromTemplate($arParams["TICKET_EDIT_TEMPLATE"], array("ID" => "0")))); //Get Dictionary Array $arTicketDictionary = CTicketDictionary::GetDropDownArray(); //Dictionary table $arDictType = array("C" => "CATEGORY", "K" => "CRITICALITY", "S" => "STATUS", "M" => "MARK", "SR" => "SOURCE"); while ($arTicket = $rsTickets->GetNext()) { $arUsersName = _GetUserInfo($arTicket["RESPONSIBLE_USER_ID"], "RESPONSIBLE") + _GetUserInfo($arTicket["OWNER_USER_ID"], "OWNER") + _GetUserInfo($arTicket["MODIFIED_USER_ID"], "MODIFIED"); $arDict = array(); foreach ($arDictType as $TYPE => $CODE) { $arDict += _GetDictionaryInfo($arTicket[$CODE . "_ID"], $TYPE, $CODE, $arTicketDictionary); } $url = CComponentEngine::MakePathFromTemplate($arParams["TICKET_EDIT_TEMPLATE"], array("ID" => $arTicket["ID"])); $arResult["TICKETS"][] = $arTicket + $arDict + $arUsersName + array("TICKET_EDIT_URL" => $url);
function GetByID($id, $lang = LANG, $checkRights = "Y", $get_user_name = "Y", $get_extra_names = "Y", $arParams = array()) { $by = $order = $is_filtered = null; return CTicket::GetList($by, $order, array("ID" => $id, "ID_EXACT_MATCH" => "Y"), $is_filtered, $checkRights, $get_user_name, $get_extra_names, $lang, $arParams); }
$arFilterFields = array_merge($FilterArr1, $FilterArr2); $lAdmin->InitFilter($arFilterFields); //инициализаци¤ фильтра 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, "SLA" => $find_sla_id, "CATEGORY" => $find_category_id, "CRITICALITY" => $find_criticality_id, "STATUS" => $find_status_id, "MARK" => $find_mark_id, "SOURCE" => $find_source_id); } else { if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("SUP_FILTER_ERROR"), $e); //$message = new CAdminMessage(GetMessage("SUP_FILTER_ERROR"), $e); } } $rsTickets = CTicket::GetList($by, $order, $arFilter, $is_filtered, "Y", "N", "N"); $OPEN_TICKETS = $CLOSE_TICKETS = 0; $arrTickets = array(); $arrTime = array(); $arrTime["1"] = 0; $arrTime["1_2"] = 0; $arrTime["2_3"] = 0; $arrTime["3_4"] = 0; $arrTime["4_5"] = 0; $arrTime["5_6"] = 0; $arrTime["6_7"] = 0; $arrTime["7"] = 0; $arrMess = array(); $arrMess["2_m"] = 0; $arrMess["3_m"] = 0; $arrMess["4_m"] = 0;
$arHeaders[] = array("id"=>"SUPPORT_DEADLINE", "content"=>GetMessage("SUP_DEADLINE"), "default"=>true, "sort" => "s_deadline"); } $USER_FIELD_MANAGER->AdminListAddHeaders( $entity_id, $arHeaders ); // заголовок списка $lAdmin->AddHeaders($arHeaders); $get_user_name = "N"; //$rsData = CTicket::GetList($by, $order, $arFilter, $is_filtered, "Y", $get_user_name, $get_extra_names); $rsData = CTicket::GetList( $by, $order, $arFilter, $is_filtered, "Y", $get_user_name, $get_extra_names, false, array( "SELECT" => $lAdmin->GetVisibleHeaderColumns(), 'NAV_PARAMS' => array('nPageSize' => COption::GetOptionString("support", "TICKETS_PER_PAGE")) ) ); $rsData = new CAdminResult($rsData, $sTableID); // установка строки навигации $lAdmin->NavText($rsData->GetNavPrint(GetMessage("SUP_PAGES"))); // построение списка $arRows = array(); $aUserIDs = array();
$sec = 7; } else { switch ($_POST["group_by"]) { case 'day': $sec = 1; break; case 'week': $sec = 7; break; case 'month': $sec = 30; break; } } $ttt = strtotime($date_from); while ($ttt <= strtotime($date_to)) { // $cnt++; $dt = date("Y-m-d", $ttt); // $total+=$tasks[$dt]; ?> <tr> <td><?php echo date("d.m.Y", $ttt); ?> </td> <?php foreach ($gm_employes as $k => $v) { $total_resp[$k] += $resp_tasks[$k][$dt]; ?> <td><?php echo round($resp_tasks[$k][$dt] / 60, 2);
$aFilter = $grid_options->GetFilter($arResult["FILTER"]); $aSortVal = $aSort['sort']; $sort_order = current($aSortVal); $sort_by = key($aSortVal); if (strlen($arParams["SITE_ID"]) > 0) $aFilter["LID"] = $arParams["SITE_ID"]; $rsTickets = CTicket::GetList( $sort_by, $sort_order, $aFilter, $is_filtered, $check_rights = "Y", $get_user_name = "N", $get_dictionary_name = "N", false, array( "SELECT" => $UFA, 'NAV_PARAMS' => array('nPageSize' => $arParams["TICKETS_PER_PAGE"], 'bShowAll' => false) ) ); $arTickets = array(); $arRespUserIDs = array(); $arGuestIDs = array(); $arUsersPref = array("RESPONSIBLE", "OWNER", "MODIFIED", "CREATED"); $arGuestsPref = array("OWNER", "CREATED"); while ($arTicket = $rsTickets->GetNext()) { $arTickets[] = $arTicket;
$arHeaders[] = array("id" => "MARK_ID", "content" => GetMessage("SUP_MARK"), "default" => false, "sort" => "s_mark"); if ($bADS) { $arHeaders[] = array("id" => "PROBLEM_TIME", "content" => GetMessage("SUP_PROBLEM_TIME"), "default" => false, "sort" => "s_problem_time"); } if ($bADS) { $arHeaders[] = array("id" => "COUPON", "content" => GetMessage("SUP_COUPON"), "default" => false, "sort" => "s_coupon"); } if ($bADS) { $arHeaders[] = array("id" => "SUPPORT_DEADLINE", "content" => GetMessage("SUP_DEADLINE"), "default" => true, "sort" => "s_deadline"); } $USER_FIELD_MANAGER->AdminListAddHeaders($entity_id, $arHeaders); // заголовок списка $lAdmin->AddHeaders($arHeaders); $get_user_name = "N"; //$rsData = CTicket::GetList($by, $order, $arFilter, $is_filtered, "Y", $get_user_name, $get_extra_names); $rsData = CTicket::GetList($by, $order, $arFilter, $is_filtered, "Y", $get_user_name, $get_extra_names, false, array("SELECT" => $lAdmin->GetVisibleHeaderColumns(), 'NAV_PARAMS' => array('nPageSize' => CAdminResult::GetNavSize($sTableID), 'bShowAll' => false))); $rsData = new CAdminResult($rsData, $sTableID); // установка строки навигации $lAdmin->NavText($rsData->GetNavPrint(GetMessage("SUP_PAGES"))); // построение списка $arRows = array(); $aUserIDs = array(); $arGuestIDs = array(); $arUsersPref = array("RESPONSIBLE", "OWNER", "CREATED", "MODIFIED"); $arGuestsPref = array("OWNER", "CREATED", "MODIFIED"); while ($arRes = $rsData->NavNext(true, "f_")) { $lamp = "/bitrix/images/support/{$f_LAMP}.gif"; $lamp_alt = GetMessage("SUP_" . strtoupper($f_LAMP) . "_ALT"); /*if ($get_user_name=="N") { Support_GetUserInfo($f_RESPONSIBLE_USER_ID, $f_RESPONSIBLE_LOGIN, $f_RESPONSIBLE_NAME);
} $arHeaders[] = array("id" => "MARK_ID", "content" => GetMessage("SUP_MARK"), "default" => false, "sort" => "s_mark"); if ($bADS) { $arHeaders[] = array("id" => "PROBLEM_TIME", "content" => GetMessage("SUP_PROBLEM_TIME"), "default" => false, "sort" => "s_problem_time"); } if ($bADS) { $arHeaders[] = array("id" => "COUPON", "content" => GetMessage("SUP_COUPON"), "default" => false, "sort" => "s_coupon"); } if ($bADS) { $arHeaders[] = array("id" => "SUPPORT_DEADLINE", "content" => GetMessage("SUP_DEADLINE"), "default" => true, "sort" => "s_deadline"); } $USER_FIELD_MANAGER->AdminListAddHeaders($entity_id, $arHeaders); // заголовок списка $lAdmin->AddHeaders($arHeaders); //$rsData = CTicket::GetList($by, $order, $arFilter, $is_filtered, "Y", $get_user_name, $get_extra_names); $rsData = CTicket::GetList($by, $order, $arFilter, $is_filtered, "Y", $get_user_name, $get_extra_names, false, array("SELECT" => $lAdmin->GetVisibleHeaderColumns())); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(COption::GetOptionString("support", "TICKETS_PER_PAGE")); // установка строки навигации $lAdmin->NavText($rsData->GetNavPrint(GetMessage("SUP_PAGES"))); // построение списка while ($arRes = $rsData->NavNext(true, "f_")) { $lamp = "/bitrix/images/support/{$f_LAMP}.gif"; $lamp_alt = GetMessage("SUP_" . strtoupper($f_LAMP) . "_ALT"); if ($get_user_name == "N") { Support_GetUserInfo($f_RESPONSIBLE_USER_ID, $f_RESPONSIBLE_LOGIN, $f_RESPONSIBLE_NAME); Support_GetUserInfo($f_OWNER_USER_ID, $f_OWNER_LOGIN, $f_OWNER_NAME); Support_GetUserInfo($f_MODIFIED_USER_ID, $f_MODIFIED_LOGIN, $f_MODIFIED_NAME); } if ($get_extra_names == "N") { Support_GetDictionaryInfo($f_CATEGORY_ID, "C", $TICKET_DICTIONARY, $f_CATEGORY_NAME, $f_CATEGORY_DESC, $f_CATEGORY_SID);
InitSorting(); //Filter $FilterArr = array("find_id", "find_id_exact_match", "find_site", "find_lamp", "find_close", "find_title", "find_title_exact_match", "find_message", "find_message_exact_match"); _InitFilter($FilterArr); InitBVar($_REQUEST["find_id_exact_match"]); InitBVar($_REQUEST["find_title_exact_match"]); InitBVar($_REQUEST["find_message_exact_match"]); $arFilter = array("ID" => $_REQUEST["find_id"], "ID_EXACT_MATCH" => $_REQUEST["find_id_exact_match"], "LAMP" => $_REQUEST["find_lamp"], "CLOSE" => $_REQUEST["find_close"], "TITLE" => $_REQUEST["find_title"], "TITLE_EXACT_MATCH" => $_REQUEST["find_title_exact_match"], "MESSAGE" => $_REQUEST["find_message"], "MESSAGE_EXACT_MATCH" => $_REQUEST["find_message_exact_match"]); //TICKET_EDIT_TEMPLATE $arParams["TICKET_EDIT_TEMPLATE"] = trim($arParams["TICKET_EDIT_TEMPLATE"]); $arParams["TICKET_EDIT_TEMPLATE"] = strlen($arParams["TICKET_EDIT_TEMPLATE"]) > 0 ? htmlspecialchars($arParams["TICKET_EDIT_TEMPLATE"]) : "ticket_edit.php?ID=#ID#"; //TICKETS_PER_PAGE $arParams["TICKETS_PER_PAGE"] = intval($arParams["TICKETS_PER_PAGE"]) <= 0 ? 50 : intval($arParams["TICKETS_PER_PAGE"]); //Get Tickets CPageOption::SetOptionString("main", "nav_page_in_session", "N"); $rsTickets = CTicket::GetList($_REQUEST["by"], $_REQUEST["order"], $arFilter, $is_filtered, $check_rights = "Y", $get_user_name = "N", $get_dictionary_name = "N"); $rsTickets->NavStart($arParams["TICKETS_PER_PAGE"]); //Result array $arResult = array("TICKETS" => array(), "TICKETS_COUNT" => $rsTickets->SelectedRowsCount(), "NAV_STRING" => $rsTickets->GetPageNavString(GetMessage("SUP_PAGES")), "CURRENT_PAGE" => htmlspecialchars($APPLICATION->GetCurPage()), "NEW_TICKET_PAGE" => htmlspecialchars(CComponentEngine::MakePathFromTemplate($arParams["TICKET_EDIT_TEMPLATE"], array("ID" => "0")))); //Get Dictionary Array $arTicketDictionary = CTicketDictionary::GetDropDownArray(); //Dictionary table $arDictType = array("C" => "CATEGORY", "K" => "CRITICALITY", "S" => "STATUS", "M" => "MARK", "SR" => "SOURCE"); while ($arTicket = $rsTickets->GetNext()) { $arUsersName = _GetUserInfo($arTicket["RESPONSIBLE_USER_ID"], "RESPONSIBLE") + _GetUserInfo($arTicket["OWNER_USER_ID"], "OWNER") + _GetUserInfo($arTicket["MODIFIED_USER_ID"], "MODIFIED"); $arDict = array(); foreach ($arDictType as $TYPE => $CODE) { $arDict += _GetDictionaryInfo($arTicket[$CODE . "_ID"], $TYPE, $CODE, $arTicketDictionary); } $url = CComponentEngine::MakePathFromTemplate($arParams["TICKET_EDIT_TEMPLATE"], array("ID" => $arTicket["ID"])); $arResult["TICKETS"][] = $arTicket + $arDict + $arUsersName + array("TICKET_EDIT_URL" => $url);