You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

160 lines
8.6 KiB

<?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ã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çã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ão Atendidas", "Ocupadas");
$_SESSION["SSdadosAgtGraphPie"] = $dadosInfoAgt;
} else {
$_SESSION["SSnomeGraphPie"] = "Operaçã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;
}
?>