Current Path : /var/www/html/clients/old.e-nkama.ru/e-nkama_bitrix/bitrix/modules/support/admin/ |
Current File : /var/www/html/clients/old.e-nkama.ru/e-nkama_bitrix/bitrix/modules/support/admin/ticket_graph.php |
<? /* ############################################## # Bitrix: SiteManager # # Copyright (c) 2004 Bitrix # # http://www.bitrix.ru # # mailto:admin@bitrix.ru # ############################################## */ 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"); // ñîçäàåì èçîáðàæåíèå $ImageHendle = CreateImageHandle($width, $height); $arrX=Array(); // ìàññèâ òî÷åê ãðàôèêà ïî X $arrY=Array(); // ìàññèâ òî÷åê ãðàôèêà ïî Y $arrayX=Array(); // ìàññèâ òî÷åê íà îñè X (äåëåíèÿ) $arrayY=Array(); // ìàññèâ òî÷åê íà îñè Y (äåëåíèÿ) /****************************************************** Ñîáèðàåì òî÷êè ãðàôèêà *******************************************************/ $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, ); $rsTickets = CTicket::GetDynamicList($by="s_date_create", $order="asc", $arFilter); while ($rsTickets->ExtractFields("f_",false)) { $date = mktime(0,0,0,$f_CREATE_MONTH,$f_CREATE_DAY,$f_CREATE_YEAR); $date_tmp = 0; // åñëè äàòû ïðîïóùåíû (èäóò íå ïî ïîðÿäêó) òî $next_date = AddTime($prev_date,1,"D"); if ($date>$next_date && intval($prev_date)>0) { // çàïîëíÿåì ïðîïóùåííûå äàòû $date_tmp = $next_date; while ($date_tmp<$date) { $arrX[] = $date_tmp; if ($find_all=="Y") $arrY_all[] = 0; if ($find_open=="Y") $arrY_open[] = 0; if ($find_close=="Y") $arrY_close[] = 0; $date_tmp = AddTime($date_tmp,1,"D"); } } $arrX[] = $date; if ($find_all=="Y") $arrY_all[] = intval($f_ALL_TICKETS); if ($find_open=="Y") $arrY_open[] = intval($f_OPEN_TICKETS); if ($find_close=="Y") $arrY_close[] = intval($f_CLOSE_TICKETS); $prev_date = $date; } /****************************************************** Ôîðìèðóåì îñü X *******************************************************/ $arrayX = GetArrayX($arrX, $MinX, $MaxX); if ($find_mess=="Y" || $find_overdue_mess=="Y") { $arFilter = Array( "SITE" => $find_site, "DATE_CREATE_1" => $find_date1, "DATE_CREATE_2" => $find_date2, "OWNER_ID" => $find_responsible_id, "OWNER" => $find_responsible, "OWNER_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, "IS_HIDDEN" => "N", "IS_LOG" => "N", "IS_OVERDUE" => "N" ); $rsMess = CTicket::GetMessageDynamicList($v1="s_date_create", $v2="asc", $arFilter); while ($arMess = $rsMess->Fetch()) { $date = mktime(0,0,0,$arMess["CREATE_MONTH"], $arMess["CREATE_DAY"], $arMess["CREATE_YEAR"]); $arrMessages[$date] = $arMess["COUNTER"]; $arrOverdueMessages[$date] = $arMess["COUNTER_OVERDUE"]; } foreach($arrX as $t) { $arrY_mess[] = intval($arrMessages[$t]); $arrY_overdue_mess[] = intval($arrOverdueMessages[$t]); } } /****************************************************** Ôîðìèðóåì îñü Y *******************************************************/ $arrY = array(); if ($find_all=="Y") $arrY = array_merge($arrY,$arrY_all); if ($find_open=="Y") $arrY = array_merge($arrY,$arrY_open); if ($find_close=="Y") $arrY = array_merge($arrY,$arrY_close); if ($find_mess=="Y") $arrY = array_merge($arrY,$arrY_mess); if ($find_overdue_mess=="Y") $arrY = array_merge($arrY,$arrY_overdue_mess); $arrayY = GetArrayY($arrY, $MinY, $MaxY); //while (list($key, $value) = each($arrX)) echo date("d.m.Y",$value)." = ".$arrY_all[$key]."<br>"; //EchoGraphData($arrayX, $MinX, $MaxX, $arrayY, $MinY, $MaxY, $arrX, $arrY); /****************************************************** Ðèñóåì êîîðäèíàòíóþ ñåòêó *******************************************************/ DrawCoordinatGrid($arrayX, $arrayY, $width, $height, $ImageHendle); /****************************************************** Ðèñóåì ãðàôèêè *******************************************************/ if ($find_all=="Y") Graf($arrX, $arrY_all, $ImageHendle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["ALL_TICKET"]); if ($find_open=="Y") Graf($arrX, $arrY_open, $ImageHendle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["OPEN_TICKET"]); if ($find_close=="Y") Graf($arrX, $arrY_close, $ImageHendle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["CLOSE_TICKET"]); if ($find_mess=="Y") Graf($arrX, $arrY_mess, $ImageHendle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["MESSAGES"]); if ($find_overdue_mess=="Y") Graf($arrX, $arrY_overdue_mess, $ImageHendle, $MinX, $MaxX, $MinY, $MaxY, $arrColor["OVERDUE_MESSAGES"]); /****************************************************** Îòîáðàæàåì èçîáðàæåíèå *******************************************************/ ShowImageHeader($ImageHendle); ?>