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.
162 lines
5.7 KiB
162 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ção nã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ção nã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; |
|
} |
|
|
|
?>
|
|
|