%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_geral.inc.php |
<?php //chamados abertos (opened) $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' ".$entidade." GROUP BY MONTH ORDER BY MONTH ASC "; $resultm = $DB->query($querym) or die('erro'); $arr_grfm = array(); while ($row_result = $DB->fetchAssoc($resultm)) { $v_row_result = $row_result['month_l']; $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); $opened = array_sum($quantm); //array to compare months $DB->dataSeek($resultm, 0); $arr_month = array(); while ($row_result = $DB->fetchAssoc($resultm)) { $v_row_result = $row_result['month_l']; $arr_month[$v_row_result] = 0; } // late tickets $arr_grfa = array(); $DB->dataSeek($resultm, 0); while ($row_result = $DB->fetchAssoc($resultm)) { $querya2 = " SELECT DISTINCT DATE_FORMAT( date, '%b-%y' ) AS month_l, DATE_FORMAT( date, '%y-%m' ) AS month, count(id) AS nb FROM glpi_tickets WHERE solvedate IS NOT NULL AND time_to_resolve IS NOT NULL AND solvedate > time_to_resolve AND DATE_FORMAT( date, '%b-%y' ) = '".$row_result['month_l']."' ".$entidade." GROUP BY month ORDER BY month"; $resulta2 = $DB->query($querya2) or die('erronb'); $row_result2 = $DB->fetchAssoc($resulta2); $v_row_result = $row_result['month_l']; if($row_result2['nb'] != '') { $arr_grfa[$v_row_result] = $row_result2['nb']; } else { $arr_grfa[$v_row_result] = 0; } } $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); $late = array_sum($quanta); // solved $arr_grfs = array(); $DB->dataSeek($resultm, 0); while ($row_result = $DB->fetchAssoc($resultm)) { $querys2 = " SELECT DISTINCT DATE_FORMAT( date, '%b-%y' ) AS month_l, DATE_FORMAT( date, '%y-%m' ) AS month, count(id) AS nb FROM glpi_tickets WHERE glpi_tickets.is_deleted = '0' AND glpi_tickets.solvedate IS NOT NULL AND DATE_FORMAT( date, '%b-%y' ) = '".$row_result['month_l']."' ".$entidade." GROUP BY month ORDER BY month"; $results2 = $DB->query($querys2) or die('erronb'); $row_result2 = $DB->fetchAssoc($results2); $v_row_result = $row_result['month_l']; if($row_result2['nb'] != '') { $arr_grfs[$v_row_result] = $row_result2['nb']; } else { $arr_grfs[$v_row_result] = 0; } } $grfs = array_keys($arr_grfs) ; $quants = array_values($arr_grfs) ; $grfs3 = json_encode($grfs); $quants2 = implode(',',$quants); $solved = array_sum($quants); // fechados mensais $arr_grff = array(); $DB->dataSeek($resultm, 0); while ($row_result = $DB->fetchAssoc($resultm)) { $queryf = " SELECT DISTINCT DATE_FORMAT(date, '%b-%y') as month_l, DATE_FORMAT(date, '%y-%m') as month, COUNT(id) as nb FROM glpi_tickets WHERE glpi_tickets.is_deleted = '0' AND glpi_tickets.closedate IS NOT NULL AND DATE_FORMAT( date, '%b-%y' ) = '".$row_result['month_l']."' ".$entidade." GROUP BY month ORDER BY month "; $resultf = $DB->query($queryf) or die('errof'); $row_resultf = $DB->fetchAssoc($resultf); $v_row_result = $row_result['month_l']; if($row_resultf['nb'] != '') { $arr_grff[$v_row_result] = $row_resultf['nb']; } else { $arr_grff[$v_row_result] = 0; } } $grff = array_keys($arr_grff) ; $quantf = array_values($arr_grff) ; $grff3 = json_encode($grff); $quantf2 = implode(',',$quantf); $closed = array_sum($quantf); //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 ".$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); } $arr_sat = array_merge($arr_month, $arr_grfsat); $grfsat = array_keys($arr_sat) ; $quantsat = array_values($arr_sat); $grfsat3 = json_encode($grfsat); $quantsat2 = implode(',',$quantsat); $satisf = round(array_sum($quantsat),0); echo " <script type='text/javascript'> $(function () { $('#graf_linhas').highcharts({ chart: {"; if(array_sum($quantsat) != 0) { echo "type: 'line', \n"; } else { echo "type: 'areaspline',"; } echo "height: 460 }, title: { text: '".__('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')." (".$satisf.")', 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')." (".$opened.")', dataLabels: { enabled: true, //color: '#000000', style: { //fontSize: '11px', //fontFamily: 'Verdana, sans-serif', //fontWeight: 'bold' } }, data: [$quantm2] }, { name: '".__('Solved','dashboard')." (".$solved.")', dataLabels: { enabled: false, //color: '#000', style: { //fontSize: '11px', //fontFamily: 'Verdana, sans-serif', //fontWeight: 'bold' }, }, data: [$quants2] }, { name: '".__('Late','dashboard')." (".$late.")', dataLabels: { enabled: true, //color: '#800000', style: { //fontSize: '11px', //fontFamily: 'Verdana, sans-serif', //fontWeight: 'bold' }, }, data: [$quanta2] }, { name: '".__('Closed','dashboard')." (".$closed.")', data: [$quantf2] }, ] }); }); </script> "; ?>