SetScale("textint"); $graph->SetShadow(); $graph->SetMargin(40, 20, 40, 40); $graph->title->Set($dac . ($diario ? " - Data: $dataIni" : " - De: $dataIni Até: $dataFim")); $graph->xaxis->SetTickLabels($arLabel); $graph->legend->Pos(0.4, 0.90); $graph->legend->SetColumns(4); $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: ORG[%s] ATD[%s] ESP[%s] TRF[%s] ABD[%s] Médias: TMO[%s] TMA[%s] TME[%s] TMB[%s] ', $somaOriginada, $somaAtendida, $somaEspera, $somaTransferidas, $somaAbandonada, $mediaOriginada, $mediaAtendimento, $mediaEspera, $mediaAbandono); $graph->xaxis->title->Set($labelX); $graph->yaxis->title->Set('Chamadas/h'); $oferPlot = new BarPlot($arOferecidas); $oferPlot->SetWidth(0.5); $oferPlot->SetLegend("Total"); $atdPlot = new LinePlot($arAtendidas); $atdPlot->SetLegend("Atendidas"); $abdPlot = new LinePlot($arAbandonadas); $abdPlot->SetLegend("Abandonadas"); $trbPlot = new LinePlot($arTransbordadas); $trbPlot->SetLegend("Transbordas"); $graph->Add($oferPlot); $graph->Add($atdPlot); $graph->Add($abdPlot); $graph->Add($trbPlot); $oferPlot->value->Show(); $oferPlot->value->SetFormat("%d"); $atdPlot->mark->SetType(MARK_CIRCLE, '', 1.0); $atdPlot->mark->SetWeight(2); $atdPlot->mark->SetWidth(2); $abdPlot->SetColor('black'); $abdPlot->mark->SetType(MARK_CIRCLE, '', 1.0); $abdPlot->mark->SetWeight(2); $abdPlot->mark->SetWidth(2); $trbPlot->mark->SetType(MARK_CIRCLE, '', 1.0); $trbPlot->mark->SetWeight(2); $trbPlot->mark->SetWidth(2); $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); } // echo GetQuery($dataIni, $dataFim, $listaDacs); exit; } //carrega dacs $dacs = GetDac($dbcon, $listaDacs); // carrega lista de identificadores das rotas $listaServico = GetIdentRota($dbcon, $listaServico); //sumarização do relatorio $dac = $listaDacs; $smarty->assign('imp', $i); $smarty->assign('dacs', $dacs); $smarty->assign('dataIni', $dataIni); $smarty->assign('dataFim', $dataFim); $smarty->assign('erro', $erro); $smarty->assign('listaServico', $listaServico); $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(b.evento in('ENTERQUEUE', 'CHAMANDO'))then 1 else 0 end) as OFERECIDAS ,sum( case when(b.evento in('ABANDON', 'BUSYS', 'NOANSWERS'))then 1 else 0 end) as ABANDONADAS ,sum( case when(b.evento in('COMPLETEAGENT','COMPLETECALLER', 'TRANSFER', 'TRANSORIG', 'ATENDIDA') )then 1 else 0 end) as ATENDIDAS ,sum( case when(b.evento in('EXITWITHTIMEOUT', 'TRANSBORDANDO') )then 1 else 0 end) as TRANSBORDADAS 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 and c.id = %s and b.evento in ('CHAMANDO','ATENDIDA','BUSYS', 'NOANSWERS', 'ABANDON','COMPLETEAGENT','COMPLETECALLER', 'CONNECT','ENTERQUEUE', 'TRANSFER', 'EXITWITHTIMEOUT', '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, max(oferecidas) as max_oferecidas, min(oferecidas) as min_oferecidas, round( avg(oferecidas), 2) as avg_oferecidas, sum(abandonadas) as total_abandonadas, max(abandonadas) as max_abandonadas, min(abandonadas) as min_abandonadas, round( avg(abandonadas), 2) as avg_abandonadas, sum(atendidas) as total_atendidas, max(atendidas) as max_atendidas, min(atendidas) as min_atendidas, round( avg(atendidas), 2) as avg_atendidas, sum(transbordadas) as total_transbordadas, max(transbordadas) as maxtransbordadas_, min(transbordadas) as min_transbordadas, round( avg(transbordadas), 2) as avg_transbordadas from anl_operacao group by hora order by 1; "; //$query = sprintf($query, QuotedStr($dataIni), QuotedStr($dataFim), QuotedStr($dataFim), QuotedStr($dataIni)); return sprintf($query, QuotedStr($dataIni), QuotedStr($dataFim), QuotedStr($dac), QuotedStr($dataFim), QuotedStr($dataIni)); }