< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=iso-8859-1" / >
< link rel = "stylesheet" href = "admin/css/validationEngine.jquery.css" type = "text/css" media = "screen" title = "no title" charset = "ISO-8859-1" / >
< script type = "text/javascript" src = "admin/js/jquery-1.4.js" > < / script >
< script type = "text/javascript" src = "admin/js/jquery.blockUI.js?v2.29" > < / script >
< script src = "admin/js/jquery.min.js" type = "text/javascript" > < / script >
< script src = "admin/js/jquery.validationEngine.js" type = "text/javascript" > < / script >
< script src = "admin/js/jquery.validationEngine-en.js" type = "text/javascript" > < / script >
< script src = "admin/js/pbxAjax.js" type = "text/javascript" > < / script >
< script >
$(document).ready(function () {
$("#form1").validationEngine({
sucess: function () {
document.form1.submit();
},
failure: function () {}
})
});
function selecionados() {
var j = document.form1.disponiveis.length;
for (var i = 0; i < j ; i + + ) {
if (document.form1.disponiveis.options[i].selected) {
var x = document.getElementById("ramais"); //retorna o objeto select
var options = x.getElementsByTagName("option"); //pega a lista de options do select
var y = document.createElement('option'); //cria um novo elemento option
y.text = document.form1.disponiveis.options[i].text;
y.value = document.form1.disponiveis.options[i].value;
try {
x.add(y, null); // adiciona um novo option no fim da lista para navegadores complacentes
} catch (ex) {
x.add(y); // adiciona um novo option no fim da lista para o IE
}
}
}
j = document.form1.ramais.length;
for (var n = 0; n < j ; n + + ) {
for (var i = 0; i < document.form1.disponiveis.length ; i + + ) {
if (document.form1.disponiveis.options[i].text == document.form1.ramais.options[n].text) {
document.form1.disponiveis.options[i] = null;
}
}
}
}
function _remove() {
for (var i = 0; i < document.form1.ramais.length ; i + + ) {
if (document.form1.ramais.options[i].selected) {
var x = document.getElementById("disponiveis"); //retorna o objeto select
var options = x.getElementsByTagName("option"); //pega a lista de options do select
var y = document.createElement('option'); //cria um novo elemento option
y.text = document.form1.ramais.options[i].text;
y.value = document.form1.ramais.options[i].value;
try {
x.add(y, null); // adiciona um novo option no fim da lista para navegadores complacentes
} catch (ex) {
x.add(y); // adiciona um novo option no fim da lista para o IE
}
}
}
j = document.form1.disponiveis.length;
for (var n = 0; n < j ; n + + ) {
for (var i = 0; i < document.form1.ramais.length ; i + + ) {
if (document.form1.ramais.options[i].text == document.form1.disponiveis.options[n].text) {
document.form1.ramais.options[i] = null;
}
}
}
}
function marca_todos() {
for (var i = 0; i < document.form1.ramais.length ; i + + ) {
document.form1.ramais.options[i].selected = true;
}
}
< / script >
< link href = "admin/css/forms.css" rel = "stylesheet" type = "text/css" >
< style type = "text/css" >
<!--
body {
background-color: #EAEAEA;
}
-->
< / style > < / head >
< body >
<?php
$acao = $_GET["acao"];
$acao2 = $_GET["acao2"];
/*
* Parametros necessarios para manter a pagina<EFBFBD> <EFBFBD> o.
*/
$param = sprintf('& numRamal=%s& pgn=%s& bloco=%s& pg=%s', $_REQUEST['numRamal'], $_REQUEST['pgn'], $_REQUEST['bloco'], $_REQUEST['pg']);
if ($acao2 == "salva") {
$id = $_POST["id"] ?? 0;
$nome = RemoveAcentos($_POST["nome"], true);
$numero = 0;
if ($acao == "edita") {
$query = "select nome from pbx_grupos_atendimento where nome='$nome' and id < > $id";
} else {
$query = "select nome from pbx_grupos_atendimento where nome='$nome'";
$numero = GetIdGrupoAtendimento($dbcon);
}
$msg = '';
$result = pg_query($dbcon, $query);
$dados = pg_fetch_array($result);
$existe = trim($dados['nome']);
if ($existe != '') {
$msg = "JA EXISTE UM GRUPO COM O NOME $existe";
}
if ($numero > 63) {
$msg = "<EFBFBD> PERMITIDO CADASTRAR APENAS 63 GRUPOS";
}
if (!empty($msg)) {
echo "< script >
alert({$msg};);
history.back();
< / script > ";
} else {
if ($acao == "inseri") {
$query = "INSERT INTO pbx_grupos_atendimento(id,nome)
VALUES ('$numero','$nome')";
pg_query($dbcon, $query);
//$query2 = "select max(id) as id from pbx_grupos_atendimento";
//$result2 = pg_query($dbcon, $query2);
//$dados2 = pg_fetch_array($result2);
//$id_ult = $dados2['id'];
$id_ult = $numero;
}
if ($acao == "edita") {
/*
* Pega os ramais existentes
*/
$ramaisExistentes = array();
$query = "select ramal from pbx_grupos_atendimento_ramais where id_grupo = $id";
$result = pg_query($dbcon, $query);
while ($row = pg_fetch_row($result))
$ramaisExistentes[] = $row[0];
$query = "UPDATE pbx_grupos_atendimento
SET nome='$nome'
WHERE id=$id";
pg_query($dbcon, $query);
$query = "delete from pbx_grupos_atendimento_ramais where id_grupo=$id";
pg_query($dbcon, $query);
}
$ramais = $_POST["ramais"];
for ($i = 0; $i < count ( $ ramais ) ; $ i + + ) {
//echo $ramais[$i];
if ($acao == "edita") {
$query = "insert into pbx_grupos_atendimento_ramais (id_grupo,ramal) values ($id,'$ramais[$i]')";
} else {
$query = "insert into pbx_grupos_atendimento_ramais (id_grupo,ramal) values ($id_ult,'$ramais[$i]')";
}
pg_query($dbcon, $query);
}
AtualizaRamaisCaptura($dbcon);
/*
$ramais = GetRamaisExcluidos($ramaisExistentes, $ramais);
foreach ($ramais as $ramalGrupo)
{
AtualizaRamaisCaptura($dbcon, $ramalGrupo);
}
*/
////gera arquivos e executa o reload dos dados no asterisk
gera_arquivos($dbcon, 'SIP_RAMAIS'); //gera arquivos e executa o reload dos dados no asterisk
gera_arquivos($dbcon, 'IAX_PBX'); //gera arquivos e executa o reload dos dados no asterisk
// GeraDahdi($dbcon, 1);
GeraKhomp($dbcon, 1);
gera_arquivos($dbcon, 'DIGIVOICE');
echo "< script type = \"text/javascript\" >
//fecha a janela presa no meio do sistema
fecha_popup(0,'index.php?idProg=10030&pbxRequest=1$param&acao=$acao');
< / script > ";
}
}
if ($acao == "edita") {
$id = $_GET["id"] ?? "0";
$query = "SELECT * FROM pbx_grupos_atendimento where id=$id";
$result = pg_query($dbcon, $query);
} else {
$id = 0;
$query = "SELECT * FROM pbx_grupos_atendimento where id is null";
}
$result = pg_query($dbcon, $query);
while ($dados = pg_fetch_array($result)) {
$id = $dados["id"];
$nome = $dados["nome"];
}
function GetTableRamal($tipo) {
//if((strpos($tipo, 'SIP') !== false) || (strpos($tipo, 'DAHDI') !== false)){return "update pbx_sip_ramais set pickupgroup = '%s', callgroup = '%s' where nome = '%s'";}
if (strpos($tipo, 'SIP') !== false) {
return "update pbx_sip_ramais set pickupgroup = '%s', callgroup = '%s' where nome = '%s'";
}
if (strpos($tipo, 'IAX') !== false) {
return "update pbx_iax_pbx set pickupgroup = '%s', callgroup = '%s' where nome = '%s'";
}
if (strpos($tipo, 'DGV') !== false) {
return "update pbx_dgv set capturar = '%s', grupo = '%s' where numero = '%s'";
}
if (strpos($tipo, 'DAHDI') !== false) {
return "update pbx_dahdi set capturar = '%s', grupo = '%s' where numero = '%s'";
}
if (strpos($tipo, 'KHOMP') !== false) {
return "update pbx_khomp set capturar = '%s', grupo = '%s' where numero = '%s'";
}
return false;
}
function AtualizaRamaisCaptura($dbcon) {
LimpaGruposCapturaRamais($dbcon);
$query = "select a.ramal
from pbx_grupos_atendimento_ramais a, pbx_ramais b
where b.nome = a.ramal
order by a.ramal, a.id_grupo"; //
$result = pg_query($dbcon, $query);
$ramais = array();
while ($dados = pg_fetch_array($result)) {
$ramais[] = $dados['ramal'];
}
foreach ($ramais as $ramalGrupo) {
$query = "select a.id_grupo, a.ramal, b.tipo_ramal as dispositivo
from pbx_grupos_atendimento_ramais a, pbx_ramais b
where b.nome = a.ramal
and a.ramal = '$ramalGrupo'
order by a.ramal, a.id_grupo";
$result = pg_query($dbcon, $query);
$pick = '';
$callgrupRamal = '';
$start = 0;
$tipo = '';
while ($dados = pg_fetch_array($result)) {
if (!$start) {
$callgrupRamal = $dados['id_grupo'];
$start++;
}
$pick .= !$pick ? $dados['id_grupo'] : ',' . $dados['id_grupo'];
$tipo = strtoupper($dados['dispositivo']);
}
$query = GetTableRamal($tipo);
$query = sprintf($query, $pick, $callgrupRamal, $ramalGrupo);
pg_query($dbcon, $query);
}
}
function GetRamaisExcluidos($ramaisExistentes, $ramais) {
$ramaisExcl = array();
$exist = false;
foreach ($ramaisExistentes as $ramal) {
$exist = false;
foreach ($ramais as $ramalAtu) {
if ($ramal == $ramalAtu) {
$exist = true;
break;
}
}
if (!$exist) {
$ramaisExcl[] = $ramal;
}
}
return $ramaisExcl;
}
function GetIdGrupoAtendimento($dbcon) {
$query = "SELECT id as id FROM pbx_grupos_atendimento order by id";
$sql = pg_query($dbcon, $query);
$id = 1;
if (!pg_num_rows($sql))
return $id;
while ($row = pg_fetch_row($sql)) {
$idBanco = $row[0];
if ($idBanco != $id)
return $id;
$id++;
}
return $id;
}
function LimpaGruposCapturaRamais($db) {
$query = "update pbx_sip_ramais set pickupgroup = '', callgroup = '' where 1=1";
pg_query($db, $query);
$query = "update pbx_iax_pbx set pickupgroup = '', callgroup = '' where 1=1";
pg_query($db, $query);
$query = "update pbx_dgv set capturar = '', grupo = '' where 1=1";
pg_query($db, $query);
$query = "update pbx_dahdi set capturar = '', grupo = '' where 1=1";
pg_query($db, $query);
$query = "update pbx_khomp set capturar = '', grupo = '' where 1=1";
pg_query($db, $query);
}
?>
< form name = "form1" method = "post" action = "index.php?idProg=11030&pbxRequest=1&acao= <?php echo $acao ; ?> &acao2=salva <?php echo $param ; ?> " id = "form1" >
< table border = "1" align = "center" cellpadding = "0" cellspacing = "0" class = "tabela" >
< tr bordercolor = "#EAEAEA" class = "cabecalho" >
< td > < div align = "center" > CADASTRO DE GRUPOS DE CAPTURA
< input name = "id" type = "hidden" id = "id" value = " <?php
if ($acao == 'edita') {
echo $id;
}
?>" />
< / div > < / td >
< / tr >
< tr bordercolor = "#EAEAEA" bgcolor = "#EAEAEA" >
< td class = "labels" > < table width = "100%" border = "0" cellspacing = "0" cellpadding = "0" >
< tr >
< td > < fieldset >
< legend class = "labels" > < span class = "style5" > Nome:< / span > < / legend >
< input name = "nome" type = "text" class = "validate[required,length[0,100]] caixas" id = "nome2" value = " <?php
if ($acao == 'edita') {
echo $nome;
}
?>" size="70\" maxlength="50" />
< / fieldset > < / td >
< / tr >
< / table > < / td >
< / tr >
< tr class = "labels" bordercolor = "#EAEAEA" bgcolor = "#EAEAEA" >
< td > < fieldset >
< legend > Grupo:< / legend >
< table width = "94%" border = "0" align = "center" cellpadding = "0" cellspacing = "0" class = "tabela" >
< tr class = "labels" >
< td width = "44%" > < div align = "center" > Ramais Disponí veis< / div > < / td >
< td width = "9%" > < / td >
< td width = "47%" > < div align = "center" > Ramais Selecionados< / div > < / td >
< / tr >
< tr >
< td width = "45%" > < div align = "center" >
< select name = "disponiveis[]" size = "10" multiple = "multiple" class = "caixas" id = "disponiveis" >
<?php
if ($acao == 'edita') {
$query2 = "select id, nome from pbx_ramais where tipo_ramal not in('IAX', 'PBX') and nome not in (select ramal from pbx_grupos_atendimento_ramais where id_grupo=$id)
order by nome asc";
} else {
$query2 = "select id, nome from pbx_ramais where tipo_ramal not in('IAX', 'PBX') order by nome asc";
}
$result2 = pg_query($dbcon, $query2);
while ($dados2 = pg_fetch_array($result2)) {
?>
< option value = " <?php echo $dados2 [ 'nome' ] ?> " > <?php echo $dados2 [ 'nome' ]; ?> </ option >
<?php } ?>
< / select >
< / div > < / td >
< td width = "10%" > < div align = "center" > < br / >
< input name = "btinclui" type = "button" id = "btinclui" class = "labels" value = ">" onclick = "selecionados();
marca_todos();"/>
< br / >
< input name = "btRemove" type = "button" id = "btRemove" class = "labels" value = "<" onclick = "_remove();" / >
< br / >
< br / >
< / div > < / td >
< td width = "45%" > < div align = "center" >
< select name = "ramais[]" size = "10" multiple = "multiple" class = "validate[required] caixas" id = "ramais" >
<?php
$query2 = "SELECT * from pbx_grupos_atendimento_ramais
where id_grupo = $id";
$result2 = pg_query($dbcon, $query2);
$ramaisInc = array();
while ($dados2 = pg_fetch_array($result2)) {
?>
< option value = " <?php echo $dados2 [ 'ramal' ] ?> " > <?php echo $dados2 [ 'ramal' ]; ?> </ option >
<?php
if (!isset($_POST['Submit'])) {
$ramaisInc[] = $dados2['ramal'];
}
}
if (!isset($_POST['Submit'])) {
$_SESSION['ramaisInc'] = $ramaisInc;
}
?>
< / select >
< / div > < / td >
< / tr >
< / table >
< / fieldset > < / td >
< / tr >
< tr bordercolor = "#EAEAEA" bgcolor = "#EAEAEA" >
< td > < div align = "center" > < span class = "style1" > < / span > < span class = "style1" > < / span > < span class = "style1" > < / span > < span class = "style1" >
< input name = "Submit2" type = "button" class = "labels" onclick = "fecha_popup();" value = "Fechar" >
< input name = "Submit" type = "submit" class = "labels" value = "Salvar" OnClick = "marca_todos();" >
< / span > < / div > < / td >
< / tr >
< / table >
< / form >