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.
210 lines
9.0 KiB
210 lines
9.0 KiB
<?php |
|
|
|
$nomeTpl = "cadastros/portabilidade/monitorPortabilidade.htm"; |
|
$msg = 'Consulta realizada com sucesso!'; |
|
$erro = 0; |
|
$linhasAtu .= " <tr><td align=\"right\">Nenhum registro selecionado!</td></tr>"; |
|
$linhasAtuCli .= " <tr><td align=\"right\">Nenhum registro selecionado!</td></tr>"; |
|
$janW = 500; |
|
$janH = 220; |
|
$acaoUser = isset($_REQUEST['acaoUser']) ? $_REQUEST['acaoUser'] : FORM_UNDEF; |
|
$filtro = isset($_POST['filtro']) ? $_POST['filtro'] : 1; |
|
try { |
|
/* |
|
* Conexão para o banco de portabilidade. |
|
*/ |
|
$query = "select id from pbx_sites where lower(descricao) = 'portabilidade'"; |
|
$result = pg_query($dbcon, $query); |
|
if (!$result) { |
|
$erro++; |
|
throw new Exception("Erro ao consultar as configurações do servidor de portabilidade!"); |
|
} |
|
if (!pg_num_rows($result)) { |
|
$erro++; |
|
throw new Exception("O servidor de portabilidade não está configurado!"); |
|
} |
|
$row = pg_fetch_row($result); |
|
$idServer = $row[0]; |
|
$_SESSION["SSidServerPortabilidade"] = $idServer; |
|
/* |
|
* Conexão para o servidor de portabilidade. |
|
*/ |
|
$dbPorta = GetDbFromHost($idServer); |
|
if (!$dbPorta) { |
|
$erro++; |
|
throw new Exception("Erro ao acessar o servidor de portabilidade!"); |
|
} |
|
/* |
|
* Lista as cinco últimas atualizações da base de portabildade. |
|
*/ |
|
$query = "select idarquivo, nomearquivo, data, totalregistros, msg, erro from atualizacoes order by 1 desc limit 5"; |
|
$result = pg_query($dbPorta, $query); |
|
if (!$result) { |
|
$erro++; |
|
throw new Exception("Erro ao consultar as lista de atualizações!"); |
|
} |
|
$linhasAtu = ''; |
|
while ($dadosAtu = pg_fetch_array($result)) { |
|
$idArquivo = $dadosAtu["idarquivo"]; |
|
$nomeArquivo = $dadosAtu["nomearquivo"]; |
|
$data = FormataDBDataHora($dadosAtu["data"]); |
|
$totalRegistro = $dadosAtu["totalregistros"]; |
|
$msgAtu = substr($dadosAtu["msg"], 0, 128); |
|
$erroPorta = $dadosAtu["erro"]; |
|
|
|
$linhasAtu .= " <tr > |
|
<td align=\"right\">$idArquivo</td> |
|
<td align=\"left\" nowrap=\"nowrap\">$nomeArquivo</td> |
|
<td align=\"center\">$data</td> |
|
<td align=\"right\">$totalRegistro</td> |
|
<td align=\"center\">$msgAtu</td> |
|
<td align=\"center\">$erroPorta</td> |
|
</tr>"; |
|
} |
|
|
|
if ($acaoUser == FORM_DELETE) { |
|
$cliId = $_REQUEST['cli_id']; |
|
$query = "update clientes set clie_status = '-1' where cli_id = $cliId;"; |
|
$result = pg_query($dbPorta, $query); |
|
if ($result) |
|
$msgDelete = "cliente excluido com sucesso!"; |
|
else |
|
$msgDelete = "Não foi possível excluir o cliente selecionado!"; |
|
|
|
$jsStartup[] = "alert('$msgDelete');"; |
|
} |
|
if ($acaoUser == 9) { |
|
$cliId = $_REQUEST['cli_id']; |
|
$clistatus = $_REQUEST['cli_status']; |
|
$status = $clistatus == 9 ? 1 : 9; |
|
$query = "update clientes set clie_status = '$status' where cli_id = $cliId;"; |
|
$result = pg_query($dbPorta, $query); |
|
if ($result) { |
|
$msgDelete = $status == 9 ? "cliente bloqueado com sucesso!" : "cliente desbloqueado com sucesso!"; |
|
} else { |
|
$msgDelete = "Não foi possível realizar a operação!"; |
|
} |
|
|
|
$jsStartup[] = "alert('$msgDelete');"; |
|
} |
|
|
|
if ($acaoUser === 'RESET_CLIENTE') { |
|
$cliId = $_REQUEST['cli_id']; |
|
$result = pg_query($dbPorta, 'begin'); |
|
|
|
$query = "delete from clientes_atualizacoes where cli_id = '$cliId'"; |
|
if ($result) |
|
$result = pg_query($dbPorta, $query); |
|
|
|
$query = "update clientes set clie_status = '2' where cli_id = $cliId;"; |
|
if ($result) |
|
$result = pg_query($dbPorta, $query); |
|
|
|
if ($result) |
|
$result = pg_query($dbPorta, 'commit'); |
|
|
|
if ($result) { |
|
$msgDelete = "operação realizada com sucesso com sucesso!"; |
|
} else { |
|
$msgDelete = "Não foi possível reiniciar o cliente!"; |
|
} |
|
|
|
$jsStartup[] = "alert('$msgDelete');"; |
|
} |
|
|
|
/* |
|
* Mostra as atualizações por cliente. |
|
*/ |
|
$query = "select b.cli_id,b.cli_idexterno, b.cli_descricao, clie_status, coalesce(max(a.hora_reg), now()) as data, coalesce(max(a.idarquivo), 0) as atualizacao, |
|
coalesce((select max(idarquivo) from atualizacoes), 0) as ult_atu |
|
from clientes b |
|
left outer join clientes_atualizacoes a on b.cli_id = a.cli_id"; |
|
if ($filtro == 1) |
|
$query .= " where b.clie_status <> -1"; |
|
if ($filtro == 2) |
|
$query .= " where b.clie_status = -1"; |
|
$query .= " group by 1,2,3,4 order by 2;"; |
|
|
|
$result = pg_query($dbPorta, $query); |
|
if (!$result) { |
|
$erro++; |
|
throw new Exception("Erro ao consultar atualizações dos clientes!"); |
|
} |
|
$linhasAtuCli = ''; |
|
$imgNovo = "<img src=\"imgSite/novoUser.png\" width=\"16\" height=\"16\" border=\"0\" title=\"Inclui novo usuário\">"; |
|
$imgNovo = "<a href=\"javaScript:NovaJanela('index.php?idProg=218&acaoUser=3&cli_id=0', 'cliPortaCad', '$janW', '$janH', 'resizable=NO,scrollbars=NO');\">$imgNovo</a>"; |
|
|
|
while ($dadosAtu = pg_fetch_array($result)) { |
|
$ultatu = $dadosAtu["ult_atu"]; |
|
$idCliente = $dadosAtu["cli_id"]; |
|
$idExterno = $dadosAtu["cli_idexterno"]; |
|
$cliDescricao = $dadosAtu["cli_descricao"]; |
|
$clieStatus = $dadosAtu["clie_status"]; |
|
$data = FormataDBDataHora($dadosAtu["data"]); |
|
$atualizacao = $dadosAtu["atualizacao"]; |
|
$clieStatusDisp = GetCliStatus($clieStatus, $atualizacao, $ultatu); |
|
|
|
$imgEdit = "<img src=\"imgSite/editaUser.png\" width=\"16\" height=\"16\" border=\"0\" title=\"Edita o cliente: $cliDescricao\">"; |
|
$imgEdit = "<a href=\"javaScript:NovaJanela('index.php?idProg=218&acaoUser=4&cli_id=$idCliente', 'cliPortaCad', '$janW', '$janH', 'resizable=NO,scrollbars=NO');\"> $imgEdit</a>"; |
|
|
|
$imgDelete = "<img src=\"imgSite/deletaUser.png\" width=\"16\" height=\"16\" border=\"0\" title=\"Apaga o usuário: $cliDescricao\">"; |
|
$imgDelete = "<a href=\"javaScript:DeletaCliPortabilidade('$idCliente', '$cliDescricao');\">" . $imgDelete . "</a>"; |
|
|
|
$alt = $clieStatus == 9 ? "Desbloqueia o cliente: " : "Bloqueia o cliente: "; |
|
$imgBloq = $clieStatus == 9 ? "lock_close_16.png" : "lock_open_16.png"; |
|
$imgBloq = "<img src=\"imgSite/$imgBloq\" width=\"16\" height=\"16\" border=\"0\" title=\"$alt $cliDescricao\">"; |
|
$imgBloq = "<a href=\"javaScript:BloqCliPortabilidade('$idCliente', '$cliDescricao', '$clieStatus');\">" . $imgBloq . "</a>"; |
|
|
|
$imgReset = "<img src=\"imgSite/evento.png\" width=\"12\" height=\"16\" border=\"0\" title=\"Renova os dados do cliente: $cliDescricao\">"; |
|
$imgReset = "<a href=\"javaScript:ResetCliPortabilidade('$idCliente', '$cliDescricao');\">" . $imgReset . "</a>"; |
|
|
|
$alerta = ($ultatu != $atualizacao) || ($clieStatus == 2) ? ' style="color:' . ($clieStatus == 2 ? '#0F0;' : '#F00;' ) . ' font-weight:bold";" ' : ""; |
|
|
|
$linhasAtuCli .= " <tr$alerta> |
|
<td align=\"right\">$idCliente</td> |
|
<td align=\"left\">$idExterno</td> |
|
<td align=\"left\">$cliDescricao</td> |
|
<td align=\"center\">$data</td> |
|
<td align=\"center\">$clieStatusDisp</td> |
|
<td align=\"right\">$atualizacao</td> |
|
<td align=\"center\">$imgNovo</td> |
|
<td align=\"center\">$imgEdit</td> |
|
<td align=\"center\">$imgDelete</td> |
|
<td align=\"center\">$imgBloq</td> |
|
<td align=\"center\">$imgReset</td> |
|
</tr>"; |
|
} |
|
} catch (Exception $ex) { |
|
$msg = $ex->getMessage(); |
|
} |
|
$disp = "Nenhum registro encontrado!"; |
|
if (empty($linhasAtuCli)) |
|
$linhasAtuCli = " <tr><td colspan=\"10\" align=\"center\">$disp</td><td align=\"center\">$imgNovo</td>"; |
|
$smarty->assign('linhasAtu', $linhasAtu); |
|
$smarty->assign('linhasAtuCli', $linhasAtuCli); |
|
$smarty->assign('filtro', $filtro); |
|
$smarty->assign('msg', $msg); |
|
$smarty->assign('erro', $erro); |
|
GetTemplate($smarty, $nomeTpl); |
|
|
|
$GLOBALS["jsStartup"][] = "window.setInterval(\"ResetForm()\", 60000);"; |
|
|
|
function GetCliStatus($clieStatus, $atualizacao, $ultatu) { |
|
if ($clieStatus == 2) { |
|
$img = "ampulheta.png"; |
|
$alt = "Aguardando Instalação"; |
|
} else if (($clieStatus == 1) && ($atualizacao == $ultatu)) { |
|
$img = "button_ok16.png"; |
|
$alt = "Instalado"; |
|
} else if (($clieStatus == 1) && ($atualizacao != $ultatu)) { |
|
$img = "parcial16.gif"; |
|
$alt = "Atualizações Pendentes"; |
|
} else if ($clieStatus == 9) { |
|
$img = "cadeado.gif"; |
|
$alt = "Bloqueado"; |
|
} |
|
|
|
return sprintf('<img src="imgSite/%s" alt="%s" width="16" height="16" align="absmiddle"/>', $img, $alt); |
|
} |
|
|
|
?>
|
|
|