somaDia(-1); $dataDisplay = $data->getData(); $data = FormatDtMssql($data->getData()); $data = '2013-04-22'; $queryAgt = "CREATE TEMPORARY TABLE agente_operacao (id_dac int, fila varchar(50) not null, apelido varchar(30), matricula varchar(4) not null, data date not null, login timestamp, logoff timestamp, tempoLogin int, chamadas_atendidas int, num_pausa int, tempo_espera int, tempo_entrada int, chamadas_realizadas int, tempo_saida int, tempo_pausa int, num_pausa_prod int, tempo_pausa_prod int, CONSTRAINT \"pkAgtOpera\" PRIMARY KEY( fila, matricula, data )); insert into agente_operacao select c.id as id_dac, c.nome as fila, b.apelido, a.matricula, cast(a.login as date) as data, min(login) as login, max(logoff) as logoff, sum(EXTRACT(epoch from ((logoff) - (login)))) as tempoLogin, 0 as chamadas_atendidas, 0 as num_pausa, 0 as tempo_espera, 0 as tempo_entrada, 0 as chamadas_realizadas, 0 as tempo_saida, 0 as tempo_pausa, 0 as num_pausa_prod, 0 as tempo_pausa_prod from pbx_eventos_agentes a, pbx_usuarios b, pbx_dacs c where b.matricula = a.matricula and c.id = a.id_dac and a.id_dac = coalesce('{ID_DAC}', a.id_dac) and cast(a.login as date) = '{DATA}' and b.matricula = coalesce(null, b.matricula) group by 1, 2, 3, 4, 5; CREATE TEMPORARY TABLE agente_pausa AS select a.id_dac, b.apelido, cast(a.entrada_pausa as date) as data, sum(case when(a.pausa_produtiva = 0)then 1 else 0 end) as num_pausa, sum(case when(a.pausa_produtiva = 1)then 1 else 0 end) as num_pausa_prod, sum(EXTRACT(epoch from ( case when(a.pausa_produtiva = 0)then saida_pausa - entrada_pausa else '00:00:00' end ))) as tempo_pausa, sum(EXTRACT(epoch from ( case when(a.pausa_produtiva = 1)then saida_pausa - entrada_pausa else '00:00:00' end ))) as tempo_pausa_prod from pbx_eventos_agentes a, pbx_usuarios b where b.matricula = a.matricula and a.id_dac = coalesce('{ID_DAC}', a.id_dac) and cast(a.entrada_pausa as date) = '{DATA}' and b.matricula = coalesce(null, b.matricula) group by a.id_dac, b.apelido, cast(a.entrada_pausa as date); update agente_operacao set num_pausa = b.num_pausa, tempo_pausa = b.tempo_pausa, num_pausa_prod = b.num_pausa_prod, tempo_pausa_prod = b.tempo_pausa_prod from agente_pausa as b where agente_operacao.apelido = b.apelido and agente_operacao.data = b.data and agente_operacao.id_dac = b.id_dac; update agente_operacao set chamadas_atendidas = a.chamadas_atendidas, tempo_espera = a.tempo_espera, tempo_entrada = a.tempo_entrada, chamadas_realizadas = a.chamadas_realizadas, tempo_saida = a.tempo_saida from (select substring(dac.agente, 7,4) as matricula, bil.calldate::date as data, dac.fila, sum(case when(dac.evento in('COMPLETECALLER', 'COMPLETEAGENT', 'TRANSFER'))then 1 else 0 end) as chamadas_atendidas, sum(case when((dac.evento = 'CONNECT') and (coalesce(dac.param1, '0')::integer > 3) )then dac.param1::integer else 0 end) as tempo_espera, sum(case when(dac.evento in('COMPLETAAGENT','COMPLETACALLER', 'TRANSFERORIG'))then 1 else 0 end) as chamadas_realizadas, sum(case when(dac.evento in('COMPLETECALLER', 'COMPLETEAGENT', 'TRANSFER'))then case when(dac.evento = 'TRANSFER')then( case when(coalesce(param4,'') <> '')then coalesce(param4,'0')::integer else 0 end )else( case when(coalesce(param2,'') <> '')then coalesce(param2,'0')::integer else 0 end )end else 0 end) as tempo_entrada, sum(case when(dac.evento in('COMPLETAAGENT','COMPLETACALLER', 'TRANSFERORIG') )then case when(dac.evento = 'TRANSFERORIG')then( case when(coalesce(param4,'') <> '')then coalesce(param4,'0')::integer else 0 end )else( case when(coalesce(param2,'') <> '')then coalesce(param2,'0')::integer else 0 end )end else 0 end) as tempo_saida from pbx_bilhetes bil, pbx_eventos_dacs dac, agente_operacao where dac.uid2 = bil.uniqueid and agente_operacao.fila = dac.fila and agente_operacao.matricula = substring(dac.agente, 7,4) and agente_operacao.data = bil.calldate::date and bil.calldate::date = '{DATA}' and bil.lastapp <> 'Transferred Call' group by 1,2,3 ) a where agente_operacao.data = a.data and agente_operacao.matricula = a.matricula and agente_operacao.matricula = a.matricula and agente_operacao.fila = a.fila; select id_dac, fila, apelido, matricula, data, login, logoff, tempologin, chamadas_atendidas, num_pausa, tempo_espera, tempo_entrada, chamadas_realizadas, tempo_saida, tempo_pausa, num_pausa_prod, tempo_pausa_prod from agente_operacao order by data, apelido"; $query = "SELECT ID_FILA ,FILA ,DATA ,SUM (CASE WHEN EVENTO = 'ENTERQUEUE' THEN 1 ELSE 0 END) AS OFERECIDAS ,SUM (CASE WHEN EVENTO = 'ENTERQUEUE' THEN 1 ELSE 0 END) AS ATENDIDAS_URA ,SUM (CASE WHEN EVENTO = 'ABANDON' THEN 1 ELSE 0 END) AS ABANDONADAS ,SUM (CASE WHEN EVENTO IN ('COMPLETEAGENT','COMPLETECALLER','TRANSFER') THEN 1 ELSE 0 END) AS ATENDIDAS_PA ,SUM (CASE WHEN EVENTO IN ('COMPLETAAGENT','COMPLETACALLER','TRANSFERORIG') THEN 1 ELSE 0 END) AS ORIGINADAS_PA ,SUM (CASE WHEN EVENTO IN ('CONNECT') AND (param1 <= 30) THEN 1 ELSE 0 END) AS ATENDIDAS_30 ,SUM (CASE WHEN EVENTO IN ('TRANSFER') THEN 1 ELSE 0 END) AS TRANSFERIDAS ,SUM (CASE WHEN EVENTO IN ('CONNECT') AND (param1 > 3) THEN 1 ELSE 0 END) AS ESPERA ,SUM (CASE WHEN EVENTO IN ('CONNECT') AND param1 > 1 THEN param1 ELSE 0 END) AS TEMPO_ESPERA ,SUM (CASE WHEN EVENTO IN ('COMPLETEAGENT','COMPLETECALLER') AND param2 > 1 THEN param2 ELSE 0 END) AS TEMPO_ATENDIMENTO ,SUM (CASE WHEN EVENTO IN ('COMPLETAAGENT','COMPLETACALLER') AND param2 > 1 THEN param2 ELSE 0 END) AS TEMPO_ORIGINADAS ,SUM (CASE WHEN EVENTO = 'ABANDON' THEN param3 ELSE 0 END) AS TEMPO_ABANDONO FROM ( SELECT a.calldate::date AS DATA, a.calldate,d.id as id_fila, b.fila,b.evento,strtoint(b.param1, 0) as param1,strtoint(b.param2, 0) as param2, strtoint(b.param3, 0) as param3, strtoint(b.param4, 0) as param4 FROM pbx_eventos_dacs b INNER JOIN pbx_bilhetes a on a.uniqueid = b.uid2 and a.lastapp <> 'Transferred Call' INNER JOIN pbx_dacs d on d.nome = b.fila WHERE b.evento in ('ABANDON','COMPLETEAGENT','COMPLETECALLER','COMPLETAAGENT','COMPLETACALLER','CONNECT','ENTERQUEUE','TRANSFER','TRANSFERORIG') AND a.calldate::date = '$data' ) AS DADOS GROUP BY ID_FILA, FILA, DATA order by FILA"; $dadosDac = array(); $result = pg_query($dbcon, $query); while ($dados = pg_fetch_array($result)) { $dadosDac[] = $dados; } // $isMobile = false; ?> Workflow Diário %s
WORKFLOW DIÁRIO
Dac:
"; ?>
Ligações Performace
Total de Chamadas Tempo Médio
Atendidas
URA
Abandonadas Atendidas
Atendidas
até 30''
Transferidas Espera Originadas
Espera Atendimento
Originando Abandono NS
$atdUra $abd $atdPa $atd30 $transfer $espera $originadas $tmpEspera $tmpAtd $tmpOrig $tmpAbd $ns
Resumo da Operação por Agente
"; } //$somaAgt; $somaPausa; $somaPausaP; $somaCa; $somaCo; //$somatmpLgd; $somaTmpP; $somaTmpPP;$somaTmpCa; $somaTmpCo; $somaTmpLivre; $pausa_M = FormataValor(!$somaAgt ? 0 : round($somaPausa / $somaAgt, 1), 1); $pausaP_M = FormataValor(!$somaAgt ? 0 : round($somaPausaP / $somaAgt, 1), 1); $ca_M = FormataValor(!$somaAgt ? 0 : round($somaCa / $somaAgt, 1), 1); $co_M = FormataValor(!$somaAgt ? 0 : round($somaCo / $somaAgt, 1), 1); $tmpLgd_M = SecondToStrTime(!$somaAgt ? 0 : round($somatmpLgd / $somaAgt, 0)); $tmpP_M = SecondToStrTime(!$somaAgt ? 0 : round($somaTmpP / $somaAgt, 0)); $tmpPP_M = SecondToStrTime(!$somaAgt ? 0 : round($somaTmpPP / $somaAgt, 0)); $tmpCa_M = SecondToStrTime(!$somaAgt ? 0 : round($somaTmpCa / $somaAgt, 0)); $tmpCo_M = SecondToStrTime(!$somaAgt ? 0 : round($somaTmpCo / $somaAgt, 0)); $tmpLivre_M = SecondToStrTime(!$somaAgt ? 0 : round($somaTmpLivre / $somaAgt, 0)); $tma_M = SecondToStrTime(!$somaCa ? 0 : round($somaTmpCa / $somaCa, 0)); $tmo_M = SecondToStrTime(!$somaCo ? 0 : round($somaTmpCo / $somaCo, 0)); echo ""; /* $somaAgt; $somaPausa; $somaPausaP; $somaCa; $somaCo; */ $somatmpLgd = SecondToStrTime($somatmpLgd); $somaTmpP = SecondToStrTime($somaTmpP); $somaTmpPP = SecondToStrTime($somaTmpPP); $somaTmpCa = SecondToStrTime($somaTmpCa); $somaTmpCo = SecondToStrTime($somaTmpCo); $somaTmpLivre = SecondToStrTime($somaTmpLivre); echo ""; ?>
  Número de Pausas Número de Chamadas Tempo
Agente P PP CA CO Logado P PP CA CO Livre TMA TMO
$agt $pausa $pausaP $ca $co " . SecondToStrTime($tmpLgd) . " " . SecondToStrTime($tmpP) . " " . SecondToStrTime($tmpPP) . " " . SecondToStrTime($tmpCa) . " " . SecondToStrTime($tmpCo) . " " . SecondToStrTime($tmpLivre) . " " . SecondToStrTime($tma) . " " . SecondToStrTime($tmo) . "
Média $pausa_M $pausaP_M $ca_M $co_M $tmpLgd_M $tmpP_M $tmpPP_M $tmpCa_M $tmpCo_M $tmpLivre_M $tma_M $tmo_M
Total $somaPausa $somaPausaP $somaCa $somaCo $somatmpLgd $somaTmpP $somaTmpPP $somaTmpCa $somaTmpCo $somaTmpLivre - -
Legenda
P Pausa
PP Pausa Produtiva
CA Chamadas Atendidas
CO Chamadas Originadas
TMA Tempo Médio de Atendimento
TMO Tempo Médio de Atendimento Originando
%s
Classificação Serviço %% Qtde
'; $query = "select distinct a.id, a.nome from pbx_dacs a, pbx_classifica_reg b, pbx_bilhetes d where d.uniqueid = b.id_bilhetes and a.id = b.id_dac and d.calldate::date = '$data' order by 2"; $resultDac = pg_query($dbcon, $query); while ($dadosDac = pg_fetch_array($resultDac)) { $somaQtde = 0; $dac = $dadosDac["id"]; $dacNome = $dadosDac["nome"]; $query = GetQueryClassificaWkf($data, $dac); $result = pg_query($dbcon, $query); $dadosBuff = array(); while ($dados = pg_fetch_array($result)) { $dadosBuff[] = $dados; $somaQtde += $dados["qtde"]; } $dados = array(); $linhas = ""; foreach ($dadosBuff as $dados) { $clas = $dados["clas_descricao"]; $item = $dados["clit_descricao"]; $qtde = $dados["qtde"]; $perc = round(!$somaQtde ? 0 : ($qtde * 100.0) / $somaQtde, 0); $linhas .= " $clas $item $perc% $qtde "; } $linhas .= "Total$somaQtde"; $relClas .= sprintf($table, $dacNome, $linhas); } echo "
Classificação de Atendimento
$relClas
"; ?> 'Transferred Call' and a.id_dac = '$dac' and d.calldate::date = '$data' group by a.id_dac, e.nome, clas_descricao, clit_descricao order by 5 desc"; } ?>