forked from SimplesIP/pabx-app
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
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; |
|
} |
|
|
|
?>
|
|
|