Your IP : 172.28.240.42


Current Path : /var/www/html/clients/old.e-nkama.ru/e-nkama_bitrix/bitrix/modules/support/admin/
Upload File :
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);
?>