%PDF- %PDF-
Direktori : /proc/self/root/home/infra/dashboard/front/graphs/inc/ |
Current File : //proc/self/root/home/infra/dashboard/front/graphs/inc/graflinhas_sat_cham.inc.php |
<?php if($data_ini == $data_fin) { $datas = "LIKE '".$data_ini."%'"; } $data1 = $data_ini; $data2 = $data_fin; $unix_data1 = strtotime($data1); $unix_data2 = strtotime($data2); $interval = ($unix_data2 - $unix_data1) / 86400; // if exists satisfaction $query_if = " SELECT COUNT(id) AS id FROM glpi_ticketsatisfactions "; $result_if = $DB->query($query_if) or die('erro'); $sat_if = $DB->fetchAssoc($result_if); if($sat_if['id'] != 0) { if($interval >= "31") { $datas = "BETWEEN '".$data_ini." 00:00:00' AND '".$data_fin." 23:59:59'"; //chamados mensais $querym = " SELECT DISTINCT DATE_FORMAT(date, '%b-%y') as month_l, COUNT(id) as nb, DATE_FORMAT(date, '%y-%m') as month FROM glpi_tickets WHERE glpi_tickets.is_deleted = '0' AND glpi_tickets.date ".$datas." ".$entidade." GROUP BY month ORDER BY month "; $resultm = $DB->query($querym) or die('erro'); $contador = $DB->numrows($resultm); $arr_grfm = array(); while ($row_result = $DB->fetchAssoc($resultm)){ $v_row_result = $row_result['month_l']; $arr_grfm[$v_row_result] = $row_result['nb']; } } else { $datas = "BETWEEN '".$data_ini." 00:00:00' AND '".$data_fin." 23:59:59'"; $querym = " SELECT DISTINCT DATE_FORMAT(date, '%b-%d') as month_l, COUNT(id) as nb, DATE_FORMAT(date, '%y-%m-%d') as month FROM glpi_tickets WHERE glpi_tickets.is_deleted = '0' AND glpi_tickets.date ".$datas." ".$entidade." GROUP BY month ORDER BY month "; $resultm = $DB->query($querym) or die('erro'); $contador = $DB->numrows($resultm); $arr_grfm = array(); while ($row_result = $DB->fetchAssoc($resultm)){ $v_row_result = $row_result['month']; $arr_grfm[$v_row_result] = $row_result['nb']; } } $grfm = array_keys($arr_grfm) ; $quantm = array_values($arr_grfm) ; $grfm3 = json_encode($grfm); $quantm2 = implode(',',$quantm); $status = "('5','6')" ; //array to compare months $DB->dataSeek($resultm, 0); if($interval >= "31") { $arr_month = array(); while ($row_result = $DB->fetchAssoc($resultm)) { $v_row_result = $row_result['month_l']; $arr_month[$v_row_result] = 0; } } else { $arr_month = array(); while ($row_result = $DB->fetchAssoc($resultm)) { $v_row_result = $row_result['month']; $arr_month[$v_row_result] = 0; } } if($interval >= "31") { $datas = "BETWEEN '".$data_ini." 00:00:00' AND '".$data_fin." 23:59:59'"; //chamados abertos mensais $querya = " SELECT DISTINCT DATE_FORMAT(date, '%b-%y') as month_l, COUNT(id) as nb, DATE_FORMAT(date, '%y-%m') as month FROM glpi_tickets WHERE glpi_tickets.is_deleted = '0' AND glpi_tickets.status NOT IN ". $status ." AND glpi_tickets.date ".$datas." ".$entidade." GROUP BY month ORDER BY month "; $resulta = $DB->query($querya) or die('erro'); $arr_grfa = array(); while ($row_result = $DB->fetchAssoc($resulta)){ $v_row_result = $row_result['month_l']; $arr_grfa[$v_row_result] = $row_result['nb']; } } else { $datas = "BETWEEN '".$data_ini." 00:00:00' AND '".$data_fin." 23:59:59'"; $querya = " SELECT DISTINCT DATE_FORMAT(date, '%b-%d') as month_l, COUNT(id) as nb, DATE_FORMAT(date, '%y-%m-%d') as month FROM glpi_tickets WHERE glpi_tickets.is_deleted = '0' AND glpi_tickets.status NOT IN ". $status ." AND glpi_tickets.date ".$datas." ".$entidade." GROUP BY month ORDER BY month "; $resulta = $DB->query($querya) or die('erro'); $arr_grfa = array(); while ($row_result = $DB->fetchAssoc($resulta)){ $v_row_result = $row_result['month']; $arr_grfa[$v_row_result] = $row_result['nb']; } } $arr_open = array_merge($arr_month, $arr_grfa); $grfa = array_keys($arr_open) ; $quanta = array_values($arr_open) ; $grfa3 = json_encode($grfa); $quanta2 = implode(',',$quanta); if($interval >= "31") { $datas = "BETWEEN '".$data_ini." 00:00:00' AND '".$data_fin." 23:59:59'"; // fechados mensais $queryf = " SELECT DISTINCT DATE_FORMAT(date, '%b-%y') as month_l, COUNT(id) as nb, DATE_FORMAT(date, '%y-%m') as month FROM glpi_tickets WHERE glpi_tickets.is_deleted = '0' AND glpi_tickets.status IN ". $status ." AND glpi_tickets.date ".$datas." ".$entidade." GROUP BY month ORDER BY month "; $resultf = $DB->query($queryf) or die('erro'); $arr_grff = array(); while ($row_result = $DB->fetchAssoc($resultf)){ $v_row_result = $row_result['month_l']; $arr_grff[$v_row_result] = $row_result['nb']; } } else { $datas = "BETWEEN '".$data_ini." 00:00:00' AND '".$data_fin." 23:59:59'"; // fechados mensais $queryf = " SELECT DISTINCT DATE_FORMAT(date, '%b-%y-%d') as month_l, COUNT(id) as nb, DATE_FORMAT(date, '%y-%m-%d') as month FROM glpi_tickets WHERE glpi_tickets.is_deleted = '0' AND glpi_tickets.status IN ". $status ." AND glpi_tickets.date ".$datas." ".$entidade." GROUP BY month ORDER BY month "; $resultf = $DB->query($queryf) or die('erro'); $arr_grff = array(); while ($row_result = $DB->fetchAssoc($resultf)) { $v_row_result = $row_result['month']; $arr_grff[$v_row_result] = $row_result['nb']; } } $grff = array_keys($arr_grff) ; $quantf = array_values($arr_grff) ; $grff3 = json_encode($grff); $quantf2 = implode(',',$quantf); if($interval >= "31") { $datas = "BETWEEN '".$data_ini." 00:00:00' AND '".$data_fin." 23:59:59'"; //satisfaction % $query_sat = "SELECT DISTINCT DATE_FORMAT( glpi_tickets.date, '%b-%y' ) AS month_l, COUNT( glpi_tickets.id ) AS nb, DATE_FORMAT( glpi_tickets.date, '%y-%m' ) AS month , avg( `glpi_ticketsatisfactions`.satisfaction ) AS media FROM glpi_tickets, `glpi_ticketsatisfactions` WHERE glpi_tickets.is_deleted = '0' AND `glpi_ticketsatisfactions`.tickets_id = glpi_tickets.id AND glpi_tickets.date ".$datas." AND glpi_ticketsatisfactions.satisfaction <> 'NULL' ".$entidade." GROUP BY month ORDER BY month"; $result_sat = $DB->query($query_sat) or die('erro'); //array with satisfaction average $arr_grfsat = array(); while ($row_result1 = $DB->fetchAssoc($result_sat)) { $v_row_result1 = $row_result1['month_l']; $arr_grfsat[$v_row_result1] = round(($row_result1['media']/5)*100,1); } } else { //satisfaction % //$datas = "BETWEEN '".$data_ini." 00:00:00' AND '".$data_fin." 23:59:59'"; $query_sat = "SELECT DISTINCT DATE_FORMAT( glpi_tickets.date, '%b-%y-%d' ) AS month_l, COUNT( glpi_tickets.id ) AS nb, DATE_FORMAT( glpi_tickets.date, '%y-%m-%d' ) AS month, avg( `glpi_ticketsatisfactions`.satisfaction ) AS media FROM glpi_tickets, `glpi_ticketsatisfactions` WHERE glpi_tickets.is_deleted = '0' AND `glpi_ticketsatisfactions`.tickets_id = glpi_tickets.id AND glpi_tickets.date ".$datas." AND glpi_ticketsatisfactions.satisfaction <> 'NULL' ".$entidade." GROUP BY month ORDER BY month"; $result_sat = $DB->query($query_sat) or die('erro'); //array with satisfaction average $arr_grfsat = array(); while ($row_result1 = $DB->fetchAssoc($result_sat)) { $v_row_result1 = $row_result1['month']; $arr_grfsat[$v_row_result1] = round(($row_result1['media']/5)*100,1); } } $arr_sat = array_merge($arr_month, $arr_grfsat); //$arr_grfsat $grfsat = array_keys($arr_sat) ; $quantsat = array_values($arr_sat); $grfsat3 = json_encode($grfsat); $quantsat2 = implode(',',$quantsat); if($contador >= 1) { echo " <script type='text/javascript'> $(function () { //Highcharts.setOptions({ // colors: [ // '#4572A7', '#000099', '#89A54E', '#80699B', '#3D96AE', '#DB843D', '#92A8CD', '#A47D7C', '#B5CA92'] // }); $('#graf_sat').highcharts({ chart: {"; if(array_sum($quantsat) != 0) { echo "type: 'line', \n"; } else { echo "type: 'areaspline',"; } echo "height: 460 }, title: { text: '".__('Satisfaction','dashboard')." - ".__('Tickets','dashboard')."' }, legend: { layout: 'horizontal', align: 'center', verticalAlign: 'bottom', x: 0, y: 0, //floating: true, borderWidth: 0, //backgroundColor: '#FFFFFF', adjustChartSize: true }, xAxis: { categories: $grfm3, labels: { rotation: -55, align: 'right', style: { fontSize: '11px', fontFamily: 'Verdana, sans-serif' } } }, "; if(array_sum($quantsat) != 0) { echo " yAxis: [{ minPadding: 0, maxPadding: 0, min: 0, //max:1, showLastLabel:false, //tickInterval:1, title: { // Primary yAxis text: '".__('Tickets','dashboard')."' } }, { // Secondary yAxis title: { text: '".__('Satisfaction','dashboard')."', style: { color: '#4572A7' } }, labels: { format: '{value} %', style: { color: '#4572A7' } }, opposite: true }], "; } else { echo " yAxis: { minPadding: 0, maxPadding: 0, min: 0, //max:1, showLastLabel:false, //tickInterval:1, title: { // Primary yAxis text: '".__('Tickets','dashboard')."' } }, "; } echo "plotOptions: { column: { pointPadding: 0.2, borderWidth: 2, borderColor: 'white', shadow:true, showInLegend: true }, areaspline: { fillOpacity: 0.5 } }, tooltip: { shared: true }, credits: { enabled: false }, series: ["; if(array_sum($quantsat) != 0) { echo " { // satisfacao name: '".__('Satisfaction','dashboard')."', color: '#C4D9F1', type: 'column', yAxis: 1, data: [".$quantsat2."], tooltip: { valueSuffix: ' %' }, dataLabels: { enabled: true, //color: '#000099', align: 'center', x: 1, y: 1, format: '{y} %', style: { //fontSize: '11px', //fontFamily: 'Verdana, sans-serif' }, formatter: function () { return Highcharts.numberFormat(this.y, 0, '',''); } }, },"; } echo " { name: '".__('Opened','dashboard')."', color: '#4572A7', dataLabels: { enabled: true, // color: '#000000', style: { //fontSize: '11px', //fontFamily: 'Verdana, sans-serif', //fontWeight: 'bold' }, }, data: [$quantm2] }, { name: '".__('Closed','dashboard')."', color: '#89A54E', data: [$quantf2] }, { name: '".__('Late','dashboard')."', color: '#800000', dataLabels: { enabled: true, //color: '#800000', style: { //fontSize: '11px', //fontFamily: 'Verdana, sans-serif', //fontWeight: 'bold' }, }, data: [$quanta2] }] }); }); </script> "; } } ?>