dashboard = $dashboard; require 'jpgraph/jpgraph_utils.inc.php'; require 'jpgraph/jpgraph.php'; require 'jpgraph/jpgraph_line.php'; } private function init() { ob_clean(); $this->gDateLocale = $gDateLocale; } public function graphChamadasNaoAtendidas($chamadasNaoClassificadas, $ultimosXMeses = 5, $showTitle = true) { $this->init(); $datay = array(); $datax = array(); $ts = time(); $labels = []; $n = count($chamadasNaoClassificadas); // Number of data points $datay[0] = 0; $datax[0] = '-'; $labels[0] = '-'; for ($i = 0; $i < $n; ++$i) { $datax[$i + 1] = $chamadasNaoClassificadas[$i]['timestamp']; $datay[$i + 1] = $chamadasNaoClassificadas[$i]['total']; $labels[$i + 1] = $chamadasNaoClassificadas[$i]['data']; } $datay[count($datay)] = max($datay) + min($datay); $datax[count($datax)] = '-'; $labels[count($labels)] = '-'; $ydata = array_values($datay); $width = (70 * $ultimosXMeses) + 100; $height = 250; $graph = new Graph($width, $height); $graph->SetScale('intlin'); $graph->SetMargin(40, 20, 20, 40); $graph->SetAxisStyle(AXSTYLE_SIMPLE); $graph->SetScale("textlin"); $graph->xaxis->SetTickLabels(array_values($labels)); if ($showTitle) { $graph->title->Set('Chamadas n�o classificadas'); } //$graph->subtitle->Set('(�ltimos ' . $ultimosXMeses . ' meses)'); if ($this->dashboard->getIsAgente()) { $graph->xaxis->title->Set($this->dashboard->getNome() . ' - ' . $this->dashboard->getRamalMonitorAgente()); } $graph->yaxis->title->Set('N� de Chamadas'); $lineplot = new LinePlot($ydata); $graph->Add($lineplot); echo $graph->Stroke(); } /** * * @param array $dadosDacs * @param string $type AccBarPlot|GroupBarPlot * @return string */ public function graphDacs($dadosDacs, $type = 'GroupBarPlot') { require_once ('jpgraph/jpgraph_bar.php'); $this->init(); if (empty($dadosDacs)) { return ""; } $xTitle = "Chamadas por Fila"; if ($this->dashboard->getIsAgente()) { $dacs = array_column($dadosDacs, 'dac'); $dac = array_search($this->dashboard->getDacAtual(), $dacs); if (!$dac) { $dac = array_search($this->dashboard->getDacPadrao(), $dacs); } $xTitle = ($this->dashboard->getNome() . ' - ' . $this->dashboard->getRamalMonitorAgente()); $dadosDacs = array($dadosDacs[$dac]); $atendidas = $dadosDacs[0]['atendidas']; $originadas = $dadosDacs[0]['originadas']; $abandonadas = $dadosDacs[0]['abandonadas']; $count = 5; } else { $count = count($dadosDacs); $atendidas = array_column($dadosDacs, 'atendidas'); $originadas = array_column($dadosDacs, 'originadas'); $abandonadas = array_column($dadosDacs, 'abandonadas'); } $width = (70 * $count) + 100; $height = 450; $graph = new Graph($width, $height, 'auto', 5); $graph->SetScale('textlin'); $graph->SetShadow(); $lbl = array_column($dadosDacs, 'dac'); $graph->xaxis->SetTickLabels($lbl); if (count($dadosDacs) > 1) { $graph->xaxis->SetLabelAngle(25); } $graph->SetMargin(40, 20, 0, 40); $graph->title->Set($xTitle); $graph->subtitle->Set('Atualizado em ' . date('d/m/Y H:i')); $plotAtendidas = new BarPlot($atendidas); $plotAtendidas->SetFillColor('green'); $plotAtendidas->SetLegend("Atendidas"); $plotOriginadas = new BarPlot($originadas); $plotOriginadas->SetFillColor('blue'); $plotOriginadas->SetLegend("Originadas"); $plotAbandonadas = new BarPlot($abandonadas); $plotAbandonadas->SetFillColor('orange'); $plotAbandonadas->SetLegend("Abandonadas"); $gbplot = new $type(array($plotAtendidas, $plotOriginadas, $plotAbandonadas)); if (strtolower($type) === strtolower('AccBarPlot')) { $gbplot->value->SetFormatCallback([$this, 'intval']); } $graph->Add($gbplot); $graph->legend->SetPos(0.5, 0.98, 'center', 'bottom'); echo $graph->Stroke(); } public function intval($aVal) { return number_format(intval($aVal)); } }