|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
require('funcoesFormulario.php');
|
|
|
|
|
$templateName = 'seguranca/grupos/gruposUraRamal.htm';
|
|
|
|
|
|
|
|
|
|
$tpLayout = 1;
|
|
|
|
|
$upload = 1;
|
|
|
|
|
$fieldsForm = array();
|
|
|
|
|
$fieldsForm = IsPostBack() ? $_POST : $_GET;
|
|
|
|
|
$_SESSION['SSIdUraRamal'] = $_GET['id_ura'] ? $_GET['id_ura'] : $_SESSION['SSIdUraRamal'];
|
|
|
|
|
$fieldsForm['erro'] = "";
|
|
|
|
|
|
|
|
|
|
if (isset($fieldsForm['btInclui'])) {
|
|
|
|
|
if (empty($fieldsForm['listaRamaisDisponiveis'])) {
|
|
|
|
|
$fieldsForm['erro'] = fmtMsg('Selecione um ramal!');
|
|
|
|
|
} else {
|
|
|
|
|
try {
|
|
|
|
|
$result = pg_query($dbcon, 'begin');
|
|
|
|
|
if ($result) {
|
|
|
|
|
$cont = 0;
|
|
|
|
|
foreach ($fieldsForm['listaRamaisDisponiveis'] as $ramal) {
|
|
|
|
|
$query = "insert into pbx_grupo_ura_ramal(id_ura, id_ramal)values(%s, %s)";
|
|
|
|
|
|
|
|
|
|
$query = sprintf($query, $_SESSION['SSIdUraRamal'], $ramal);
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
CadastraRamalDestino($dbcon, $_SESSION['SSIdUraRamal'], $ramal);
|
|
|
|
|
|
|
|
|
|
if (!$result)
|
|
|
|
|
break;
|
|
|
|
|
$cont++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$result = $result && pg_query($dbcon, 'commit');
|
|
|
|
|
if (!$result) {
|
|
|
|
|
throw new Exception('A opera<EFBFBD><EFBFBD>o n<EFBFBD>o pode ser realizada!');
|
|
|
|
|
}
|
|
|
|
|
$fieldsForm['erro'] = $cont > 1 ? fmtMsg('Ramais incluidos com sucesso!') : fmtMsg('Ramal incluido com sucesso!');
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
pg_query($dbcon, 'rollback');
|
|
|
|
|
fmtErro($e->getMessage(), pg_last_error($dbcon));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($fieldsForm['btRemove'])) {
|
|
|
|
|
if (empty($fieldsForm['listaRamaisIncluidos'])) {
|
|
|
|
|
$fieldsForm['erro'] = fmtMsg('Selecione um ramal!');
|
|
|
|
|
} else {
|
|
|
|
|
try {
|
|
|
|
|
$result = pg_query($dbcon, 'begin');
|
|
|
|
|
|
|
|
|
|
if ($result) {
|
|
|
|
|
$userAdmin = IsAdmin() ? 1 : 0;
|
|
|
|
|
$cont = 0;
|
|
|
|
|
foreach ($fieldsForm['listaRamaisIncluidos'] as $ramal) {
|
|
|
|
|
$query = "delete from pbx_grupo_ura_ramal where id_ura = '%s' and id_ramal = '%s'";
|
|
|
|
|
$query = sprintf($query, $_SESSION['SSIdUraRamal'], $ramal);
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
DeleteRamalDestino($dbcon, $_SESSION['SSIdUraRamal'], $ramal);
|
|
|
|
|
if (!$result)
|
|
|
|
|
break;
|
|
|
|
|
$cont++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$result = $result && pg_query($dbcon, 'commit');
|
|
|
|
|
if (!$result) {
|
|
|
|
|
throw new Exception('A opera<EFBFBD><EFBFBD>o n<EFBFBD>o pode ser realizada!');
|
|
|
|
|
}
|
|
|
|
|
$fieldsForm['erro'] = $cont > 1 ? fmtMsg('Ramais removidos com sucesso!') : fmtMsg('Ramal removido com sucesso!');
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
pg_query($dbcon, 'rollback');
|
|
|
|
|
fmtErro($e->getMessage(), pg_last_error($dbcon));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$fieldsForm['listaRamaisDisponiveis'] = GetRamaisDisponiveis($dbcon, $_SESSION['SSIdUraRamal'], 0);
|
|
|
|
|
$fieldsForm['listaRamaisIncluidos'] = GetRamaisIncluidos($dbcon, $_SESSION['SSIdUraRamal'], 0);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Atualiza templates templates
|
|
|
|
|
*/
|
|
|
|
|
foreach ($fieldsForm as $key => $value) {
|
|
|
|
|
$smarty->assign($key, $value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GetTemplate($smarty, $templateName);
|
|
|
|
|
|
|
|
|
|
############################################################################
|
|
|
|
|
############# QUERYS BANCO DE DADOS #############
|
|
|
|
|
############################################################################
|
|
|
|
|
|
|
|
|
|
function GetRamaisDisponiveis($dbcon, $id_ura, $codSel) {
|
|
|
|
|
$gp_id = implode(",", GetGrupoId($dbcon));
|
|
|
|
|
$multiple = true;
|
|
|
|
|
$tamPx = '300';
|
|
|
|
|
$size = 8;
|
|
|
|
|
$query = "SELECT DISTINCT a.id, a.nome
|
|
|
|
|
FROM pbx_ramais a
|
|
|
|
|
WHERE
|
|
|
|
|
NOT EXISTS(SELECT '' FROM pbx_grupo_ura_ramal WHERE a.id = id_ramal and id_ura = '{$id_ura}')
|
|
|
|
|
AND NOT EXISTS(SELECT '' FROM pbx_grupo_audio_ramal WHERE a.nome = nome and gp_id IN ({$gp_id}))
|
|
|
|
|
ORDER BY a.nome ";
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
$cont = 0;
|
|
|
|
|
$sel = "";
|
|
|
|
|
|
|
|
|
|
$lista = '<select name="%s%s" id="%s" size="%s" style="width:%spx;" %s>%s';
|
|
|
|
|
$lista = sprintf($lista, 'listaRamaisDisponiveis', ($multiple ? "[]" : ""), 'listaRamaisDisponiveis', $size, $tamPx, ($multiple ? 'multiple="multiple"' : ''), "\n");
|
|
|
|
|
|
|
|
|
|
while (($row = @pg_fetch_array($result))) {
|
|
|
|
|
$cod = $row["id"];
|
|
|
|
|
$sel = ($codSel == $cod) ? " selected" : "";
|
|
|
|
|
$desc = $row["nome"];
|
|
|
|
|
$lista .= "<option value=\"$cod\"$sel>$desc</option>\n";
|
|
|
|
|
$cont++;
|
|
|
|
|
}
|
|
|
|
|
$lista .= "</select>\n";
|
|
|
|
|
return $lista;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetRamaisIncluidos($dbcon, $id_ura,$codSel) {
|
|
|
|
|
$gp_id = implode(",", GetGrupoId($dbcon));
|
|
|
|
|
$multiple = true;
|
|
|
|
|
$tamPx = '300';
|
|
|
|
|
$size = 8;
|
|
|
|
|
$query = "SELECT DISTINCT a.id, a.nome
|
|
|
|
|
FROM pbx_ramais a
|
|
|
|
|
INNER JOIN pbx_grupo_ura_ramal b ON a.id = b.id_ramal
|
|
|
|
|
WHERE
|
|
|
|
|
EXISTS(SELECT '' FROM pbx_grupo_ura_ramal WHERE a.id = id_ramal and id_ura = '{$id_ura}')
|
|
|
|
|
AND NOT EXISTS(SELECT '' FROM pbx_grupo_audio_ramal WHERE a.nome = nome and gp_id IN ({$gp_id}))
|
|
|
|
|
ORDER BY a.nome ";
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
$cont = 0;
|
|
|
|
|
$sel = "";
|
|
|
|
|
$lista = '<select name="%s%s" id="%s" size="%s" style="width:%spx;" %s>%s';
|
|
|
|
|
$lista = sprintf($lista, 'listaRamaisIncluidos', ($multiple ? "[]" : ""), 'listaRamaisIncluidos', $size, $tamPx, ($multiple ? 'multiple="multiple"' : ''), "\n");
|
|
|
|
|
while (($row = @pg_fetch_array($result))) {
|
|
|
|
|
$cod = $row["id"];
|
|
|
|
|
$sel = ($codSel == $cod) ? " selected" : "";
|
|
|
|
|
$desc = $row["nome"];
|
|
|
|
|
$lista .= "<option value=\"$cod\"$sel>$desc</option>\n";
|
|
|
|
|
$cont++;
|
|
|
|
|
}
|
|
|
|
|
$lista .= "</select>\n";
|
|
|
|
|
return $lista;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function CadastraRamalDestino($dbcon, $id_ura, $id_ramal) {
|
|
|
|
|
$data = VerificaRamal($dbcon, $id_ura, $id_ramal);
|
|
|
|
|
if (!$data) {
|
|
|
|
|
$ramal = GetRamal($dbcon, $id_ramal);
|
|
|
|
|
$query = "INSERT INTO pbx_ura_destino (id_ura, numero, tipo, comando, sequencia,nome_comando, visible) "
|
|
|
|
|
. "VALUES({$id_ura},'{$ramal}','ramal','{$ramal}',{$ramal},'{$ramal}', 'N')";
|
|
|
|
|
pg_query($dbcon, $query);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function DeleteRamalDestino($dbcon, $id_ura, $id_ramal){
|
|
|
|
|
$ramal = GetRamal($dbcon, $id_ramal);
|
|
|
|
|
$query = "DELETE FROM pbx_ura_destino WHERE id_ura = {$id_ura} AND numero = '{$ramal}' AND visible = 'N'";
|
|
|
|
|
pg_query($dbcon, $query);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function VerificaRamal($dbcon, $id_ura, $id_ramal) {
|
|
|
|
|
$query = "SELECT * FROM pbx_ura_destino a
|
|
|
|
|
INNER JOIN pbx_ramais b ON a.comando = b.nome
|
|
|
|
|
INNER JOIN pbx_grupo_ura_ramal c ON c.id_ramal = b.id
|
|
|
|
|
WHERE c.id_ramal = {$id_ramal} AND a.id_ura = {$id_ura} AND a.visible = 'N'";
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
return pg_fetch_assoc($result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetSequencia($dbcon, $id_ura) {
|
|
|
|
|
$query = "SELECT (MAX(sequencia)+1) AS sequencia FROM pbx_ura_destino WHERE id_ura = {$id_ura}";
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
return pg_fetch_assoc($result)['sequencia'];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetRamal($dbcon, $id_ramal){
|
|
|
|
|
$query = "SELECT nome FROM pbx_ramais WHERE id = {$id_ramal};";
|
|
|
|
|
$result = pg_query($dbcon, $query);
|
|
|
|
|
$ramal = pg_fetch_assoc($result)['nome'];
|
|
|
|
|
return $ramal;
|
|
|
|
|
}
|
|
|
|
|
?>
|