@media print { .headSite, #rodapeSite, .filtro { display: none; } } "; $linkGraph = ''; $printGraph = isset($_REQUEST['printGraph']) ? 1 : 0; if ($printGraph) { ob_clean(); $query = GetQuery($dataIni, $dataFim, $listaDacs); $result = pg_query($query); $arTotal = GetArHour(); $arOferecidas = GetArHour(); $arAtendidas = GetArHour(); $arAbandonadas = GetArHour(); $arTransbordadas = GetArHour(); $arEspera = GetArHour(); $arAtd30 = GetArHour(); $arTrf = GetArHour(); $arLabel = GetArHour(true); $somaTotal = 0; $somaTotalAtd = 0; $somaTotalAbd = 0; $somaTotalTrb = 0; $somaTotalAtd30 = 0; $somaTotalEsp = 0; $somaTotalTrf = 0; $dac = ""; // oferecidas originadas abandonadas nao_atendidas nao_atendidas atendidas efetuadas transbordadas // total_oferecidas total_originadas total_abandonadas total_nao_atendidas total_atendidas total_efetuadas total_transbordadas while ($row = pg_fetch_array($result, null, PGSQL_ASSOC)) { $hora = $row['hora']; $dias = $row['dias']; $arOferecidas[$hora] = $totalMedia ? round($row['avg_oferecidas']) : $row['total_oferecidas']; $arAtendidas[$hora] = $totalMedia ? round($row['avg_atendidas']) : $row['total_atendidas']; $arAbandonadas[$hora] = $totalMedia ? round($row['avg_abandonadas']) : $row['total_abandonadas']; $arTransbordadas[$hora] = $totalMedia ? round($row['avg_transbordadas']) : $row['total_transbordadas']; $arAtd30[$hora] = $totalMedia ? round($row['avg_atd_30']) : $row['total_atd_30']; $arEspera[$hora] = $totalMedia ? round($row['avg_esp']) : $row['total_esp']; $arTrf[$hora] = $totalMedia ? round($row['avg_trf']) : $row['total_trf']; /* * Totais do período. */ $somaTotal += $row['total_oferecidas']; $somaTotalAtd += $row['total_atendidas']; $somaTotalAbd += $row['total_abandonadas']; $somaTotalTrb += $row['total_transbordadas']; } $graph = new Graph(1080, 650); $graph->SetScale("intint"); $graph->SetShadow(); $graph->SetMargin(40, 20, 60, 40); $graph->title->Set(sprintf("%s De: %s Até: %s\nDac: %s Emitido: %s Usuário: %s", ($totalMedia ? "Média no Período" : "Totais Acumulados no Período"), $dataIni, $dataFim, GetNomeDac($listaDacs), date("d/m/Y H:i:s"), GetLogin())); $graph->xaxis->SetTickLabels($arLabel); $graph->legend->Pos(0.33, 0.85); $graph->legend->SetColumns(7); $graph->legend->SetFrameWeight(1); $mediaAtendimento = SecondToStrTime(!$somaAtendida ? 0 : round($somaAtendidaTempo / $somaAtendida)); $mediaOriginada = SecondToStrTime(!$somaOriginada ? 0 : round($somaOriginadaTempo / $somaOriginada)); $mediaEspera = SecondToStrTime(!$somaEspera ? 0 : round($somaEsperaTempo / $somaEspera)); $mediaAbandono = SecondToStrTime(!$somaAbandonada ? 0 : round($somaAbandonadaTempo / $somaAbandonada)); $labelX = sprintf('Totais Período: [%s] ATD[%s] ABD[%s] TRB[%s] Médias / %%: ATD[%s / %s%%] ABD[%s / %s%%] TRB[%s / %s%% ] ', $somaTotal, $somaTotalAtd, $somaTotalAbd, $somaTotalTrb, round($somaTotalAtd / $dias), round(($somaTotalAtd / $somaTotal) * 100.0), round($somaTotalAbd / $dias), round(($somaTotalAbd / $somaTotal) * 100.0), round($somaTotalTrb / $dias), round(($somaTotalTrb / $somaTotal) * 100.0) ); $graph->xaxis->title->Set($labelX); $graph->yaxis->title->Set('Chamadas/h'); $atdPlot = new BarPlot($arAtendidas); $atdPlot->SetLegend("Atendidas(ATD)"); $abdPlot = new BarPlot($arAbandonadas); $abdPlot->SetLegend("Abandonadas(ABD)"); $trbPlot = new BarPlot($arTransbordadas); $trbPlot->SetLegend("Transbordas(TRB)"); $gpBarPlot = new GroupBarPlot(array($atdPlot, $abdPlot, $trbPlot)); $graph->Add($gpBarPlot); $graph->img->SetAntiAliasing(false); $atdPlot->SetFillColor('green'); $atdPlot->value->Show(); $atdPlot->value->SetFormat("%d"); $atdPlot->value->SetAngle(45); $abdPlot->SetFillColor('red'); $abdPlot->value->Show(); $abdPlot->value->SetFormat("%d"); $abdPlot->value->SetAngle(45); $trbPlot->SetFillColor('yellow'); $trbPlot->value->Show(); $trbPlot->value->SetFormat("%d"); $trbPlot->value->SetAngle(45); $graph->Stroke(); exit; } else if (IsPostBack()) { if (!is_date($dataIni)) { $jsStartup[] = "alert('Data inicial inválida!');"; } else if (!is_date($dataFim)) { $jsStartup[] = "alert('Data final inválida!');"; } else { $linkGraph = sprintf('', $dataIni, $dataFim, $listaDacs, $totalMedia); } // echo GetQuery($dataIni, $dataFim, $listaDacs); } //carrega dacs $dacs = GetDac($dbcon, $listaDacs, '', 1); $smarty->assign('imp', $i); $smarty->assign('dacs', $dacs); $smarty->assign('dataIni', $dataIni); $smarty->assign('dataFim', $dataFim); $smarty->assign('erro', $erro); $smarty->assign('totalMedia', $totalMedia); $smarty->assign('linkGraph', $linkGraph); GetTemplate($smarty, 'analise/resumoOperacao.tpl'); function GetQuery($dataIni, $dataFim, $dac) { $dataIni = FormatDtMssql($dataIni); $dataFim = FormatDtMssql($dataFim); $query = "drop table if exists anl_operacao; create temporary table anl_operacao as select a.data_bilhete ,date_part('hour', a.calldate) as hora ,SUM (CASE WHEN EVENTO in('ABANDON', 'COMPLETEAGENT','COMPLETECALLER','TRANSFER','TRANSBORDANDO') THEN 1 ELSE 0 END) AS OFERECIDAS ,SUM (CASE WHEN EVENTO = 'ABANDON' THEN 1 ELSE 0 END) AS ABANDONADAS ,SUM (CASE WHEN EVENTO IN ('COMPLETEAGENT','COMPLETECALLER','TRANSFER') AND SUBSTRING(AGENTE,1,5) = 'Agent' THEN 1 ELSE 0 END) as ATENDIDAS ,SUM (CASE WHEN EVENTO IN ('TRANSBORDANDO') THEN 1 ELSE 0 END) AS TRANSBORDADAS ,SUM (CASE WHEN EVENTO IN ('COMPLETEAGENT','COMPLETECALLER','TRANSFER') AND strtoint(param1) <= '30' AND SUBSTRING(AGENTE,1,5) = 'Agent' THEN 1 ELSE 0 END) AS ATD_30 ,sum( case when(b.evento = 'TRANSFER')then 1 else 0 end) AS TRF ,sum( case when(b.evento = 'CONNECT' and strtoint(b.param1) > '3')then 1 else 0 end) AS ESP from pbx_bilhetes a, pbx_eventos_dacs b, pbx_dacs c where b.uid2 = a.uniqueid and c.nome = b.fila and data_bilhete >= %s and data_bilhete <= %s %s and b.evento in ('ABANDON','COMPLETEAGENT','COMPLETECALLER', 'CONNECT','ENTERQUEUE','TRANSFER', 'TRANSBORDANDO', 'TRANSBORDADO') and a.lastapp <> 'Transferred Call' group by 1,2; select hora, ((cast(%s as date) - cast(%s as date)) + 1) as dias, sum(oferecidas) as total_oferecidas, round( avg(oferecidas), 2) as avg_oferecidas, sum(abandonadas) as total_abandonadas, round( avg(abandonadas), 2) as avg_abandonadas, sum(atendidas) as total_atendidas, round( avg(atendidas), 2) as avg_atendidas, sum(transbordadas) as total_transbordadas, round( avg(transbordadas), 2) as avg_transbordadas, sum(atd_30) AS total_atd_30, round( avg(atd_30), 2) as avg_atd_30, sum(trf) AS total_trf, round( avg(trf), 2) as avg_trf, sum(esp) AS total_esp, round( avg(esp), 2) as avg_esp from anl_operacao group by hora order by 1; "; return sprintf($query, QuotedStr($dataIni), QuotedStr($dataFim), ($dac ? sprintf(' and c.id = %s', QuotedStr($dac)) : ''), QuotedStr($dataFim), QuotedStr($dataIni)); }