|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
$dac = $_GET["dac"];
|
|
|
|
|
$tpLayout = 1;
|
|
|
|
|
$chamadaGraf = isset($_GET["tipoGraph"]);
|
|
|
|
|
$tpOper = $_GET["tipoDac"];
|
|
|
|
|
$tpl = ($tpOper == OPERACAO_ATIVO) ? "supervisorInfoDac.tpl" : "supervisorInfoDacRec.tpl";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ramal matricula apelido nome chamadas_atendidas tempo_atendimento
|
|
|
|
|
// login numPausa pos_atendimento tempo_pausa tempo_login
|
|
|
|
|
|
|
|
|
|
if ($chamadaGraf) {
|
|
|
|
|
ob_clean();
|
|
|
|
|
$_SESSION["SSdadoGraphWidth"] = 350;
|
|
|
|
|
$_SESSION["SSdadoGraphHeigth"] = 200;
|
|
|
|
|
$_SESSION["SScolorAgtGraphPie"] = array('green', 'red', 'blue'); //("Atendidas", "N<EFBFBD>o Atendidas", "Ocupadas")
|
|
|
|
|
include 'graphAgente.php';
|
|
|
|
|
exit;
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
$dados = FetchDados($dbcon, $dac);
|
|
|
|
|
$graf = "<img src=\"index.php?idProg=127&tipoGraph=1\">";
|
|
|
|
|
if ($tpOper == OPERACAO_ATIVO) {
|
|
|
|
|
$smarty->assign('nomeDac', $dados["dac"]);
|
|
|
|
|
$smarty->assign('totalClientes', $dados["total_clientes"]);
|
|
|
|
|
$smarty->assign('totalDiscados', $dados["cliente_discados"]);
|
|
|
|
|
$smarty->assign('cliNaoDiscados', ($dados["total_clientes"] - $dados["cliente_discados"]));
|
|
|
|
|
$smarty->assign('totalFones', $dados["total_fones"]);
|
|
|
|
|
$smarty->assign('naoDiscados', $dados["naoDiscados"]);
|
|
|
|
|
$smarty->assign('atendidas', $dados["atendidas"]);
|
|
|
|
|
$smarty->assign('naoAtendidas', $dados["telefones_nao_atende"]);
|
|
|
|
|
$smarty->assign('ocupados', $dados["telefones_ocupados"]);
|
|
|
|
|
$smarty->assign('grafDac', $graf);
|
|
|
|
|
} else {
|
|
|
|
|
// distinct sel, dac, atendidas, abandonadas, espera, tempo_espera, tempo_nivel_servico
|
|
|
|
|
$smarty->assign('nomeDac', $dados["dac"]);
|
|
|
|
|
$smarty->assign('totalOferecidas', $dados["originadas"]);
|
|
|
|
|
$smarty->assign('totalAtendidas', $dados["atendidas"]); //122->126 123->127 124->128 125->129
|
|
|
|
|
$linkAbandonadas = !$dados["abandonadas"] ? $dados["abandonadas"] : sprintf("<a href=\"javaScript:NovaJanela('index.php?idProg=129&dac=%s', 'agtRelSupAbandonada', '600', '500', 'scrollbars=YES');\"><span style=\"font-size:9px; color:#FFFFFF\" >(Detalhar) %s</span></a>", $dac, $dados["abandonadas"]);
|
|
|
|
|
$smarty->assign('totalAbandonadas', $linkAbandonadas);
|
|
|
|
|
$smarty->assign('totalChamadas', $dados["totalChamadas"]);
|
|
|
|
|
$smarty->assign('nivelServico', $dados["tempo_nivel_servico"]);
|
|
|
|
|
$smarty->assign('espera', ($dados["espera"]));
|
|
|
|
|
$smarty->assign('tempoEspera', SecondToStrTime($dados["tempo_espera"]));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$smarty->assign('grafDac', $graf);
|
|
|
|
|
}
|
|
|
|
|
GetTemplate($smarty, $tpl);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function FetchDados($dbcon, $dac) {
|
|
|
|
|
$dados = GetDados($dbcon, $dac);
|
|
|
|
|
|
|
|
|
|
if ($GLOBALS["tpOper"] == OPERACAO_ATIVO) {
|
|
|
|
|
$_SESSION["SSnomeGraphPie"] = "Opera<EFBFBD><EFBFBD>o de Ativo";
|
|
|
|
|
$totalClientes = $dados["total_clientes"];
|
|
|
|
|
$clientesDiscados = $dados["cliente_discados"];
|
|
|
|
|
$totalFones = $dados["total_fones"];
|
|
|
|
|
$naoDiscados = $totalFones - $dados["telefones_discados"];
|
|
|
|
|
$atendidas = $dados["telefones_discados"] - ($dados["telefones_ocupados"] + $dados["telefones_nao_atende"]);
|
|
|
|
|
$naoAtendidas = $dados["telefones_nao_atende"];
|
|
|
|
|
$ocupadas = $dados["telefones_ocupados"];
|
|
|
|
|
|
|
|
|
|
$dados["atendidas"] = $atendidas;
|
|
|
|
|
$dados["naoDiscados"] = $naoDiscados;
|
|
|
|
|
|
|
|
|
|
$dadosInfoAgt = array($atendidas, $naoAtendidas, $ocupadas);
|
|
|
|
|
$_SESSION["SScolorAgtGraphPie"] = array("green", "red", "gray");
|
|
|
|
|
$_SESSION["SSlegendAgtGraphPie"] = array("Atendidas", "N<EFBFBD>o Atendidas", "Ocupadas");
|
|
|
|
|
$_SESSION["SSdadosAgtGraphPie"] = $dadosInfoAgt;
|
|
|
|
|
} else {
|
|
|
|
|
$_SESSION["SSnomeGraphPie"] = "Opera<EFBFBD><EFBFBD>o de Receptivo";
|
|
|
|
|
$totalChamadas = $dados["atendidas"] + $dados["abandonadas"] + $dados["originadas"];
|
|
|
|
|
$dados["totalChamadas"] = $totalChamadas;
|
|
|
|
|
$totalAtendiadas = $dados["atendidas"];
|
|
|
|
|
$totalOriginadas = $dados["originadas"];
|
|
|
|
|
$totalAbandonadas = $dados["abandonadas"];
|
|
|
|
|
$dadosInfoAgt = array($totalAtendiadas, $totalAbandonadas, $totalOriginadas);
|
|
|
|
|
$_SESSION["SSlegendAgtGraphPie"] = array("Atendidas", "Abandonadas", "Originadas");
|
|
|
|
|
$_SESSION["SSdadosAgtGraphPie"] = $dadosInfoAgt;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $dados;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetDados($dbcon, $dac) {
|
|
|
|
|
$query = GetQueryDac($dac);
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
if ($result) {
|
|
|
|
|
$numReg = pg_num_rows($result);
|
|
|
|
|
$dados = pg_fetch_array($result);
|
|
|
|
|
$dadosGraph = array();
|
|
|
|
|
if ($numReg) {
|
|
|
|
|
foreach ($dados as $key => $value) {
|
|
|
|
|
$dadosGraph[$key] = $value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return $dadosGraph;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetQueryDac($dac) {
|
|
|
|
|
|
|
|
|
|
$queryDac = " select distinct sel, a.dac, a.originadas, a.atendidas, a.abandonadas, b.espera, b.tempo_espera, round(inb,0) as tempo_nivel_servico,'D' as tipo
|
|
|
|
|
from (
|
|
|
|
|
SELECT 0 as sel, DAC
|
|
|
|
|
,DATA
|
|
|
|
|
,ABANDONADAS
|
|
|
|
|
,ORIGINADAS_PA AS ORIGINADAS
|
|
|
|
|
,ATENDIDAS_PA AS ATENDIDAS
|
|
|
|
|
,ESPERA
|
|
|
|
|
,round( CASE WHEN(ESPERA = 0)THEN 0 ELSE (TEMPO_ESPERA / ESPERA) END ) * INTERVAL '1 SECOND' AS TME
|
|
|
|
|
,round( CASE WHEN(ATENDIDAS_PA = 0)THEN 0 ELSE (TEMPO_ATENDIMENTO / ATENDIDAS_PA)END) * INTERVAL '1 SECOND' AS TMA
|
|
|
|
|
,round(CASE WHEN(ABANDONADAS = 0)THEN 0 ELSE (TEMPO_ABANDONO / ABANDONADAS) END) * INTERVAL '1 SECOND' AS TMAB
|
|
|
|
|
,(CASE WHEN(OFERECIDAS = 0)THEN 0 ELSE ATENDIDAS_30::FLOAT / OFERECIDAS::FLOAT END * 100)::numeric(5,2) as INB
|
|
|
|
|
,(CASE WHEN(OFERECIDAS::FLOAT = 0)THEN 0 ELSE (ABANDONADAS::FLOAT / OFERECIDAS::FLOAT) END * 100)::numeric(5,2) as IAB
|
|
|
|
|
,TEMPO_ESPERA
|
|
|
|
|
,TEMPO_ATENDIMENTO
|
|
|
|
|
,TEMPO_ABANDONO
|
|
|
|
|
FROM (
|
|
|
|
|
SELECT
|
|
|
|
|
DATA,
|
|
|
|
|
DAC
|
|
|
|
|
,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 ('COMPLETAAGENT','COMPLETACALLER','TRANSFERORIG') THEN 1 ELSE 0 END) AS ORIGINADAS_PA
|
|
|
|
|
,SUM (CASE WHEN EVENTO IN ('COMPLETEAGENT','COMPLETECALLER', 'TRANSFER') AND SUBSTRING(AGENTE,1,5) = 'Agent' THEN 1 ELSE 0 END) AS ATENDIDAS_PA
|
|
|
|
|
,SUM (CASE WHEN EVENTO IN ('COMPLETEAGENT','COMPLETECALLER','TRANSFER') AND SUBSTRING(AGENTE,1,5) <> 'Agent' THEN 1 ELSE 0 END) AS ATENDIDAS_FILA
|
|
|
|
|
,SUM (CASE WHEN EVENTO IN ('COMPLETEAGENT','COMPLETECALLER','TRANSFER') AND strtoint(param1) <= '30' THEN 1 ELSE 0 END) AS ATENDIDAS_30
|
|
|
|
|
,SUM (CASE WHEN EVENTO IN ('CONNECT') AND strtoint(param1) > '3' THEN 1 ELSE 0 END) AS ESPERA
|
|
|
|
|
,SUM (CASE WHEN EVENTO IN ('CONNECT') AND strtoint(param1) > '3' THEN strtoint(param1) ELSE 0 END) AS TEMPO_ESPERA
|
|
|
|
|
,SUM (CASE WHEN EVENTO IN ('COMPLETEAGENT','COMPLETECALLER') AND strtoint((case when(param2 = '')then '0' else param2 end)) > '1' THEN strtoint((case when(param2 = '')then '0' else param2 end)) ELSE 0 END) AS TEMPO_ATENDIMENTO
|
|
|
|
|
,SUM (CASE WHEN EVENTO IN ('ABANDON') THEN strtoint(param3) ELSE 0 END) AS TEMPO_ABANDONO
|
|
|
|
|
FROM (
|
|
|
|
|
SELECT D.NOME AS DAC,
|
|
|
|
|
to_char(a.calldate,'YYYY-MM-DD') AS DATA, a.calldate,b.fila,b.evento,b.agente,b.param1,b.param2,b.param3,b.param4
|
|
|
|
|
FROM ast_eventos_dacs b
|
|
|
|
|
INNER JOIN ast_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','CONNECT','ENTERQUEUE','TRANSFER', 'COMPLETAAGENT','COMPLETACALLER','TRANSFERORIG')
|
|
|
|
|
AND a.calldate::date = now()::date
|
|
|
|
|
AND a.calldate IS NOT NULL
|
|
|
|
|
AND d.nome = '$dac'
|
|
|
|
|
) AS DADOS
|
|
|
|
|
|
|
|
|
|
GROUP BY DATA, DAC
|
|
|
|
|
) AS DADOS ORDER BY 1
|
|
|
|
|
) a, pbx_supervisor_dacs b where b.dac = a.dac
|
|
|
|
|
order by 8, 2";
|
|
|
|
|
//AND SUBSTRING(AGENTE,1,5) = 'Agent'
|
|
|
|
|
//if(IsAdmin()) echo $queryDac;
|
|
|
|
|
return $queryDac;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|