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.

163 lines
5.7 KiB

<?php
require('funcoesFormulario.php');
$templateName = 'seguranca/grupos/gruposAudioRamal.htm';
//define tipo de formulario
$tpLayout = 1;
$upload = 1;
$fieldsForm = array();
$fieldsForm = IsPostBack() ? $_POST : $_GET;
if (isset($fieldsForm['gp_id']) && (strpos($fieldsForm['gp_id'], '|') !== false)) {
$search = strpbrk($fieldsForm['gp_id'], '|');
$fieldsForm['gp_id'] = str_replace($search, '', $fieldsForm['gp_id']);
}
//Id da campanha
$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_audio_ramal(nome, gp_id)values('%s', '%s')";
$query = sprintf($query, $ramal, $fieldsForm['gp_id']);
$result = @pg_query($dbcon, $query);
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));
}
}
} else 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_audio_ramal where nome = '%s' and gp_id = '%s'";
$query = sprintf($query, $ramal, $fieldsForm['gp_id']);
$result = @pg_query($dbcon, $query);
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, $fieldsForm['gp_id'], 0, 8, "300", 0, 1);
$fieldsForm['listaRamaisIncluidos'] = GetRamaisIncluidos($dbcon, $fieldsForm['gp_id'], 0, 8, "300", 0, 1);
/*
* Atualiza templates templates
*/
foreach ($fieldsForm as $key => $value) {
$smarty->assign($key, $value);
}
GetTemplate($smarty, $templateName);
function GetRamaisDisponiveis($dbcon, $codGp, $codSel, $size = 1, $tamPx = "200", $desabilita = 0, $multiple = 0) {
if (strpos($codGp, '|') !== false) {
$codG = explode('|', $codGp);
$codGp = $codG[0];
}
$nomeLista = 'listaRamaisDisponiveis';
$query = "select nome, (coalesce(callerid, nome) || case when(callerid = nome)then '' else ( ' [ ' || nome || ' ]') end) as nome_ramal
from pbx_ramais_mesa a
where tipo = 0
and not exists(select '' from pbx_grupo_audio_ramal where nome = a.nome and gp_id = '$codGp')";
$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, $nomeLista, ($multiple ? "[]" : ""), $nomeLista, $size, $tamPx, ($multiple ? 'multiple="multiple"' : ''), "\n");
while (($row = @pg_fetch_array($result))) {
$cod = $row["nome"];
$sel = ($codSel == $cod) ? " selected" : "";
$desc = $row["nome_ramal"];
$lista .= "<option value=\"$cod\"$sel>$desc</option>\n";
$cont++;
}
$lista .= "</select>\n";
return $lista;
}
function GetRamaisIncluidos($dbcon, $codGp, $codSel, $size = 1, $tamPx = "200", $desabilita = 0, $multiple = 0) {
if (strpos($codGp, '|') !== false) {
$codG = explode('|', $codGp);
$codGp = $codG[0];
}
$nomeLista = 'listaRamaisIncluidos';
$query = "select nome, (coalesce(callerid, nome) || case when(callerid = nome)then '' else ( ' [ ' || nome || ' ]') end) as nome_ramal
from pbx_ramais_mesa a
where tipo = 0
and exists(select '' from pbx_grupo_audio_ramal where nome = a.nome and gp_id = '$codGp')";
$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, $nomeLista, ($multiple ? "[]" : ""), $nomeLista, $size, $tamPx, ($multiple ? 'multiple="multiple"' : ''), "\n");
while (($row = @pg_fetch_array($result))) {
$cod = $row["nome"];
$sel = ($codSel == $cod) ? " selected" : "";
$desc = $row["nome_ramal"];
$lista .= "<option value=\"$cod\"$sel>$desc</option>\n";
$cont++;
}
$lista .= "</select>\n";
return $lista;
}
?>