forked from SimplesIP/pabx-app
douglas.strappasson
1 year ago
5 changed files with 143 additions and 183 deletions
@ -1,172 +1,108 @@ |
|||||||
<?php |
<?php |
||||||
// error_reporting(E_ALL); |
|
||||||
// ini_set('display_errors', 1); |
|
||||||
if (!IsAjax()) { |
|
||||||
|
|
||||||
$tpLayout = 1; |
$tpLayout = 1; |
||||||
$dac = $_REQUEST["dac"]; |
$wipeSessionParameter = $_REQUEST['wipeSessionParameter'] ? $_REQUEST['wipeSessionParameter'] : null; |
||||||
$idDac = $_REQUEST["idDac"]; |
|
||||||
$nomeTpl = "supervisao/editaClassificado.tpl"; |
$nomeTpl = "supervisao/editaClassificado.tpl"; |
||||||
$linhaSumario = "<tr><td align=\"center\" colspan=\"6\">%s</td></tr>"; |
$parameters = ['idDac', 'listaClas', 'listaItem', 'regClassId']; |
||||||
$idClas = isset($_REQUEST['listaClas']) ? $_REQUEST['listaClas'] : 0; |
|
||||||
$idItem = isset($_REQUEST['listaItem']) ? $_REQUEST['listaItem'] : 0; |
|
||||||
$regCad = array(); |
|
||||||
|
|
||||||
if (isset($_GET['audio'])) { |
if ($wipeSessionParameter) { |
||||||
$file = $_GET["audio"]; |
unset($_SESSION['parameters']); |
||||||
$filepath = VerificaCharFinal($_SESSION[SS_PRM_PATH_AUDIO]) . $file; |
$dados = array(); |
||||||
|
|
||||||
if (!@file_get_contents($filepath)) { |
foreach ($parameters as $parameter) { |
||||||
$jsStartup[] = "alert('Arquivo não encontrado!');"; |
if (isset($_REQUEST[$parameter])) { |
||||||
} else { |
$dados[$parameter] = $_REQUEST[$parameter]; |
||||||
DownloadAudio($file, $filepath); |
} |
||||||
exit; |
|
||||||
|
$_SESSION['parameters'] = $dados; |
||||||
} |
} |
||||||
|
} else { |
||||||
|
$_SESSION['parameters']["listaClasNew"] ? $_SESSION['parameters']['listaClas'] = $_SESSION['parameters']["listaClasNew"] : ''; |
||||||
|
$_SESSION['parameters']["idItemNew"] ? $_SESSION['parameters']['listaItem'] = $_SESSION['parameters']["idItemNew"] : ''; |
||||||
|
|
||||||
|
$_SESSION['parameters']["listaClasNew"] = $_REQUEST["listaClas"] ? $_REQUEST["listaClas"] : null; |
||||||
|
$_SESSION['parameters']["idItemNew"] = $_REQUEST["listaItem"] ? $_REQUEST["listaItem"] : null; |
||||||
} |
} |
||||||
|
|
||||||
if (IsPostBack() && isset($_POST['bt_classifica'])) { |
$wipeSessionParameter = 0; //evita que a session seja limpa. |
||||||
|
|
||||||
$msg = ''; |
|
||||||
$clas = $idClas; |
|
||||||
$clasItem = $idItem; |
|
||||||
|
|
||||||
$regClass = isset($_POST['sel']) ? $_POST['sel'] : []; |
// Utilizei a função extract() para criar variáveis com nomes de chaves do array e atribuir seus respectivos valores |
||||||
|
if (isset($_SESSION['parameters'])){ |
||||||
|
extract($_SESSION['parameters']); |
||||||
|
} |
||||||
|
|
||||||
if (!count($regClass)) { |
if (IsPostBack() && isset($_POST['bt_classifica'])) { |
||||||
$msg = "Selecione pelo menos um registro!"; |
$msg = ''; |
||||||
$jsStartup[] = "alert('$msg');"; |
$result = pg_query($dbcon, "begin"); |
||||||
} else { |
|
||||||
$result = pg_query($dbcon, "begin"); |
|
||||||
|
|
||||||
if (!$result) { |
if (!$result) { |
||||||
$msg = "Não foi possível inicar uma transação no banco de dados!"; |
$msg = "Não foi possível inicar uma transação no banco de dados!"; |
||||||
} else { |
} else { |
||||||
$regMat = array(); |
if (!$listaClas || !$listaItem) { |
||||||
foreach ($regClass as $value) { |
$msg = "Selecione uma classificação!"; |
||||||
$reg = explode("|", $value); |
} |
||||||
$matricula = $reg[0]; |
|
||||||
$uniqueid = $reg[1]; |
|
||||||
$regCad[] = $uniqueid; |
|
||||||
|
|
||||||
if (!$clas || !$clasItem) { |
|
||||||
$msg = "Selecione uma classificação!"; |
|
||||||
} |
|
||||||
|
|
||||||
if (!$msg) { |
|
||||||
|
|
||||||
/* |
|
||||||
* Esta informações são utilizadas no relatorio de abandonadas na fila para identificar |
|
||||||
* qdo o agente não esta recdebendo uma chamada por não ter classificado a mesma estando |
|
||||||
* portanto desabilitado de receber chamadas o que pode causar abandono. |
|
||||||
*/ |
|
||||||
$matUser = GetMatricula(); |
|
||||||
$query = "update pbx_registra_classificacao set rgc_saida = now(), matricula_reg = '$matUser' where uid = '$uniqueid' and rgc_saida is null"; |
|
||||||
pg_query($dbcon, $query); |
|
||||||
|
|
||||||
$query = "insert |
|
||||||
into pbx_classifica_reg(matricula, clas_id, clit_id, id_bilhetes, id_dac, contrib_id, mun_id) |
|
||||||
values(%s, %s, %s, %s, %s, '0', '0' )"; |
|
||||||
|
|
||||||
$query = sprintf($query, QuotedStr($matricula), QuotedStr($clas), QuotedStr($clasItem), QuotedStr($uniqueid), QuotedStr($idDac)); |
|
||||||
$result = pg_query($dbcon, $query); |
|
||||||
|
|
||||||
if (array_search($matricula, $regMat) === false) { |
|
||||||
@GetUrl(AST_REM_PAUSA, $dac, $matricula); |
|
||||||
$regMat[] = $matricula; |
|
||||||
} |
|
||||||
|
|
||||||
if (!$result) { |
|
||||||
$msg = "Não foi possível registrar a classificação!"; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
if (!$msg) { |
if (!$msg) { |
||||||
$msg = "Registros classificados com sucesso!"; |
/* |
||||||
pg_query($dbcon, "commit"); |
* Esta informações são utilizadas para registrar quem realizou a ultima edição da classificação. |
||||||
} else { |
*/ |
||||||
pg_query($dbcon, "rollback"); |
$matUser = GetMatricula(); |
||||||
|
$query = "UPDATE pbx_classifica_reg SET clas_id = $listaClasNew, clit_id = $idItemNew, matricula_ultimo_update = $matUser, data_ultimo_update = NOW() |
||||||
|
WHERE id = $regClassId"; |
||||||
|
$result = pg_query($dbcon, $query); |
||||||
|
|
||||||
|
if (!$result) { |
||||||
|
$msg = "Não foi possível registrar a classificação!"; |
||||||
} |
} |
||||||
|
|
||||||
$jsStartup[] = "alert('$msg');"; |
|
||||||
} |
} |
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
$dataIni = date('d/m/Y'); |
if (!$msg) { |
||||||
$dataFim = date('d/m/Y'); |
$msg = "Registros classificados com sucesso!"; |
||||||
|
pg_query($dbcon, "commit"); |
||||||
if (isset($_POST['btConsulta'])) { |
} else { |
||||||
if (!is_date($_POST["dataIni"]) || !is_date($_POST["dataFim"])) { |
pg_query($dbcon, "rollback"); |
||||||
$jsStartup[] = "alert('Datas inválidas, verifique e tente novamente!');"; |
} |
||||||
} else { |
$jsStartup[] = "alert('$msg');"; |
||||||
$dataIni = $_POST["dataIni"]; |
|
||||||
$dataFim = $_POST["dataFim"]; |
|
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
|
$idClas = $listaClasNew ? $listaClasNew : $listaClas; |
||||||
|
$idItemClass = $idItemNew ? $idItemNew : $listaItem; |
||||||
|
|
||||||
|
$query = "SELECT b.id_bilhetes, |
||||||
|
b.data_reg, |
||||||
|
e.matricula AS agente, |
||||||
|
e.nome nome_agente, |
||||||
|
b.matricula_ultimo_update, |
||||||
|
b.data_ultimo_update, |
||||||
|
b.id_dac, |
||||||
|
(SELECT nome FROM pbx_usuarios WHERE matricula = CAST(b.matricula_ultimo_update as VARCHAR)) as nome_update |
||||||
|
FROM pbx_classifica_reg b |
||||||
|
INNER JOIN pbx_classifica_atendimento c ON c.clas_id = b.clas_id |
||||||
|
INNER JOIN pbx_usuarios e ON e.matricula = b.matricula |
||||||
|
WHERE b.id = $regClassId"; |
||||||
|
|
||||||
$dtIni = FormatDtMssql($dataIni); |
|
||||||
$dtFim = FormatDtMssql($dataFim); |
|
||||||
|
|
||||||
$query = sprintf("select id_bilhetes, data_bilhete, calldate, origem, destino, uniqueid, fila, agente, nome_agente, audio,(strtoint(tempo_atendimento) * interval '1 second')as tempo_atendimento, evento " |
|
||||||
. " from pbx_nao_classificado where fila = %s and data_bilhete >= %s and data_bilhete <= %s ", QuotedStr($dac), QuotedStr($dtIni), QuotedStr($dtFim)); |
|
||||||
$result = pg_query($dbcon, $query); |
$result = pg_query($dbcon, $query); |
||||||
$linhas = ''; |
$linhas = ''; |
||||||
$imp = 0; |
$dados = pg_fetch_array($result); |
||||||
$downloadAudio = VerificaPerfilAcesso($dbcon, GetIdProgFromNomeArq('downloadAudio.php')); |
$agt = $dados["agente"]; |
||||||
$acessoAudio = GetAcessoAudio($dac); |
$agtNome = $dados["nome_agente"]; |
||||||
while ($dados = pg_fetch_array($result)) { |
$dt = FormataDBDataHora($dados["data_reg"]); |
||||||
$uid = $dados["uniqueid"]; |
$matricula_ultimo_update = $dados["matricula_ultimo_update"]; |
||||||
$agt = $dados["agente"]; |
$nome_update = $dados["nome_update"]; |
||||||
$agtNomte = $dados["nome_agente"]; |
$data_ultimo_update = $dados["data_ultimo_update"] ? FormataDBDataHora($dados["data_ultimo_update"]) : " - "; |
||||||
$dt = FormataDBDataHora($dados["calldate"]); |
$linha = "<tr> |
||||||
$duracao = $dados["tempo_atendimento"]; |
<td align=\"center\">$agt - $agtNome</td> |
||||||
$fone = array_search($dados["evento"], array('COMPLETEAGENT', 'COMPLETECALLER', 'COMPLETECALLERRAMAL', 'TRANSFER')) !== false ? $dados["origem"] : $dados["destino"]; |
<td align=\"center\">$dt</td> |
||||||
$audio = $dados["audio"]; |
<td align=\"center\">$matricula_ultimo_update - $nome_update</td> |
||||||
$sel = array_search($uid, $regCad) !== false ? 'checked="checked"' : ''; |
<td align=\"center\">$data_ultimo_update</td> |
||||||
$check = sprintf("<input type=\"checkbox\" name=\"sel[]\" id=\"sel\" value=\"%s|%s\" %s/>", $agt, $uid, $sel); |
</tr>"; |
||||||
|
$linhas .= $linha; |
||||||
if (!$downloadAudio || IsAdmin() || !$acessoAudio) { |
|
||||||
if (IsAdmin()) { |
|
||||||
$msgAudio = "Usuário Administrador não tem permissão para acessar áudios!"; |
|
||||||
} else { |
|
||||||
$msgAudio = "Este usuário não possui permissões para acessar áudios!"; |
|
||||||
} |
|
||||||
|
|
||||||
$audio = sprintf("<img src=\"imgSite/lockClose.gif\" width=\"22\" height=\"22\" title=\"%s\" border=\"0\">", $msgAudio); |
|
||||||
} else { |
|
||||||
$audio = "<a href=\"index.php?idProg=192&audio=$audio&dac=$dac\" style=\"color: #000;\">" . "<img src=\"imgSite/sound22.png\" width=\"22\" height=\"22\" border=\"0\">" . "</a>"; |
|
||||||
} |
|
||||||
$linha = sprintf("<tr> |
|
||||||
<td align=\"left\">$check</td> |
|
||||||
<td align=\"left\">$agt/$agtNomte</td> |
|
||||||
<td align=\"left\">$dt</td> |
|
||||||
<td align=\"center\">$duracao</td> |
|
||||||
<td align=\"center\">%s</td> |
|
||||||
<td align=\"center\">$audio</td> |
|
||||||
</tr>", ocultarTelefone($fone)); |
|
||||||
$linhas .= $linha; |
|
||||||
$imp++; |
|
||||||
} |
|
||||||
|
|
||||||
$jsJQuery[] = "\$('#dataIni').keypress(function(){formataDataHora(this);}) "; |
|
||||||
$jsJQuery[] = "\$('#dataFim').keypress(function(){formataDataHora(this);}) "; |
|
||||||
$clas = GetClassificacao($dbcon, $idClas, $idDac); |
$clas = GetClassificacao($dbcon, $idClas, $idDac); |
||||||
$clasItem = GetItem($dbcon, $idClas, $idItem); |
$clasItem = GetItem($dbcon, $idClas, $idItemClass); |
||||||
if (!$imp) |
|
||||||
$linhas = sprintf($linhaSumario, "Nenum registro encontrado!"); |
|
||||||
$smarty->assign("linhas", $linhas); |
$smarty->assign("linhas", $linhas); |
||||||
$smarty->assign("classifica", $clas); |
$smarty->assign("classifica", $clas); |
||||||
$smarty->assign("clas_item", $clasItem); |
$smarty->assign("clas_item", $clasItem); |
||||||
$smarty->assign("dac", $dac); |
|
||||||
$smarty->assign("idDac", $idDac); |
|
||||||
$smarty->assign("dataFim", $dataFim); |
|
||||||
$smarty->assign("dataIni", $dataIni); |
|
||||||
GetTemplate($smarty, $nomeTpl); |
GetTemplate($smarty, $nomeTpl); |
||||||
} |
|
||||||
else { |
|
||||||
$idClas = $_GET['idItem']; |
|
||||||
echo GetItem($dbcon, $idClas, 0); |
|
||||||
} |
|
||||||
?> |
?> |
||||||
|
Loading…
Reference in new issue