|
|
|
@ -664,6 +664,102 @@ if ($renderizar) { ?>
|
|
|
|
|
$pager = trim($dados2["pager"]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//Pesquisas as rotas disponiveis para os ramais e retorna nas variaveis |
|
|
|
|
if ($acao == 'edita') { |
|
|
|
|
$query = "SELECT DISTINCT a.id as id_rota, a.nome as nome_rota, coalesce(b.ramal, '$nome') as ramal, |
|
|
|
|
coalesce(b.tipo_acesso, 0) as tipo_acesso |
|
|
|
|
FROM pbx_rotas_saida a |
|
|
|
|
LEFT OUTER JOIN pbx_rotas_saida_ramais b ON b.id_rota = a.id AND b.ramal = '$nome' |
|
|
|
|
WHERE a.tipo = 'E' |
|
|
|
|
AND a.org_id = {$org_id} |
|
|
|
|
ORDER BY 1 "; |
|
|
|
|
} else { |
|
|
|
|
$query = "SELECT id AS id_rota, nome as nome_rota, 0 as tipo_acesso |
|
|
|
|
FROM pbx_rotas_saida WHERE tipo = 'E' |
|
|
|
|
AND org_id = {$org_id} |
|
|
|
|
ORDER BY id_rota"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$resultRotas = pg_query($dbcon, $query); |
|
|
|
|
$numRowsRotas = pg_num_rows($resultRotas); |
|
|
|
|
$count = 0; |
|
|
|
|
|
|
|
|
|
while ($dadosRota = pg_fetch_array($resultRotas)) { |
|
|
|
|
$tipoAcesso = $dadosRota["tipo_acesso"]; |
|
|
|
|
$idRota = $dadosRota["id_rota"]; |
|
|
|
|
$nomeRota = $dadosRota["nome_rota"]; |
|
|
|
|
|
|
|
|
|
$rotasEncontradas[] = [ |
|
|
|
|
'estilo' => 'tabela-content', |
|
|
|
|
'conteudo' => [ |
|
|
|
|
[ |
|
|
|
|
'titulo' => $nomeRota, |
|
|
|
|
'classes' => 'normal', |
|
|
|
|
'tipo' => '', |
|
|
|
|
], |
|
|
|
|
[ |
|
|
|
|
'titulo' => '', |
|
|
|
|
'classes' => 'normal', |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'type' => 'radio', |
|
|
|
|
'name' => 'tipoRota[' . [$idRota] . ']', |
|
|
|
|
'class' => 'tipoRotaSim', |
|
|
|
|
'value' => '1;' . $idRota, |
|
|
|
|
'checked' => ($tipoAcesso == 1) ? true : false, |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
[ |
|
|
|
|
'titulo' => '', |
|
|
|
|
'classes' => 'normal', |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'type' => 'radio', |
|
|
|
|
'name' => 'tipoRota[' . [$idRota] . ']', |
|
|
|
|
'class' => 'tipoRotaNao', |
|
|
|
|
'value' => '0;' . $idRota, |
|
|
|
|
'checked' => ($tipoAcesso == 0) ? true : false, |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
[ |
|
|
|
|
'titulo' => '', |
|
|
|
|
'classes' => 'normal', |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'type' => 'radio', |
|
|
|
|
'name' => 'tipoRota[' . [$idRota] . ']', |
|
|
|
|
'class' => 'tipoRotaSenha', |
|
|
|
|
'value' => '2;' . $idRota, |
|
|
|
|
'checked' => ($tipoAcesso == 2) ? true : false, |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
[ |
|
|
|
|
'titulo' => '', |
|
|
|
|
'classes' => 'normal', |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'type' => 'radio', |
|
|
|
|
'name' => 'tipoRota[' . [$idRota] . ']', |
|
|
|
|
'class' => 'tipoRotaAgente', |
|
|
|
|
'value' => '3;' . $idRota, |
|
|
|
|
'checked' => ($tipoAcesso == 3) ? true : false, |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
], |
|
|
|
|
]; |
|
|
|
|
if ($count === $numRowsRotas - 1) { |
|
|
|
|
$rotasEncontradas[$numRowsRotas]['collapse'] = 'collapse-fecha'; |
|
|
|
|
} |
|
|
|
|
$count++; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Define um valor default para os troncos pbx |
|
|
|
|
$optionsTroncoPbx = [ |
|
|
|
@ -728,6 +824,19 @@ if ($renderizar) { ?>
|
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Faz uma consulta no banco e retorna as chefes secretarias daquela organizacao |
|
|
|
|
$query5 = "SELECT * FROM pbx_chefe_secretaria WHERE org_id = {$org_id} AND numero = '$nome'"; |
|
|
|
|
|
|
|
|
|
$result5 = pg_query($dbcon, $query5); |
|
|
|
|
$optionsChefeSecretaria = []; |
|
|
|
|
|
|
|
|
|
while ($dados5 = pg_fetch_array($result5)) { |
|
|
|
|
$excecao = $dados5[0]; |
|
|
|
|
$optionsChefeSecretaria[$excecao] = [ |
|
|
|
|
'label' => $excecao, |
|
|
|
|
'attributes' => [], |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
// Funca que busca os codecs e gera eles para apresentar no formulario |
|
|
|
|
function gerarOptionsCodecs($allow) |
|
|
|
|
{ |
|
|
|
@ -816,7 +925,6 @@ if ($renderizar) { ?>
|
|
|
|
|
], |
|
|
|
|
], |
|
|
|
|
], |
|
|
|
|
|
|
|
|
|
// linha 2 |
|
|
|
|
[ |
|
|
|
|
'estilo' => 'row', |
|
|
|
@ -991,8 +1099,9 @@ if ($renderizar) { ?>
|
|
|
|
|
], |
|
|
|
|
// linha 5 |
|
|
|
|
[ |
|
|
|
|
//Essa linha vai ser a primeira a abrir o menu collapse, logo 'estilo' => 'collapse-abre' |
|
|
|
|
'estilo' => 'collapse-abre', |
|
|
|
|
//Essa linha vai ser a primeira a abrir o menu collapse, logo 'collapse' => 'collapse-abre' |
|
|
|
|
'estilo' => 'row', |
|
|
|
|
'collapse' => 'collapse-abre', |
|
|
|
|
'botao-collapse-id' => 'config-advanced', |
|
|
|
|
'botao-collapse-nome' => 'Configurações Avançadas', |
|
|
|
|
'div-collapse-id' => 'collapse-advanced-content', |
|
|
|
@ -1442,9 +1551,10 @@ if ($renderizar) { ?>
|
|
|
|
|
], |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
// linha 13 - essa é a ultima linha do collapse, portanto o estilo é 'estilo' => 'collapse-fecha' |
|
|
|
|
// linha 13 - essa é a ultima linha do collapse, portanto o estilo é 'collapse' => 'collapse-fecha' |
|
|
|
|
[ |
|
|
|
|
'estilo' => 'collapse-fecha', |
|
|
|
|
'collapse' => 'collapse-fecha', |
|
|
|
|
'estilo' => 'row', |
|
|
|
|
'conteudo' => [ |
|
|
|
|
[ |
|
|
|
|
'titulo' => 'Redes Permitidas para Autenticação de Ramais', |
|
|
|
@ -1465,7 +1575,8 @@ if ($renderizar) { ?>
|
|
|
|
|
], |
|
|
|
|
// linha 14 |
|
|
|
|
[ |
|
|
|
|
'estilo' => 'collapse-abre', |
|
|
|
|
'estilo' => 'row', |
|
|
|
|
'collapse' => 'collapse-abre', |
|
|
|
|
'botao-collapse-id' => 'bn-voicemail', |
|
|
|
|
'botao-collapse-nome' => 'Voicemail', |
|
|
|
|
'div-collapse-id' => 'collapseVoicemail', |
|
|
|
@ -1569,7 +1680,8 @@ if ($renderizar) { ?>
|
|
|
|
|
], |
|
|
|
|
// linha 16 |
|
|
|
|
[ |
|
|
|
|
'estilo' => 'collapse-fecha', |
|
|
|
|
'estilo' => 'row', |
|
|
|
|
'collapse' => 'collapse-fecha', |
|
|
|
|
'conteudo' => [ |
|
|
|
|
[ |
|
|
|
|
'titulo' => 'Reproduzir identificação', |
|
|
|
@ -1601,27 +1713,165 @@ if ($renderizar) { ?>
|
|
|
|
|
], |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
// linha 17 |
|
|
|
|
// [ |
|
|
|
|
// 'estilo' => 'collapse-abre', |
|
|
|
|
// 'botao-collapse-id' => 'bn-rotas', |
|
|
|
|
// 'botao-collapse-nome' => 'Rotas', |
|
|
|
|
// 'div-collapse-id' => 'collapseRotas', |
|
|
|
|
// 'conteudo' => [ |
|
|
|
|
// [ |
|
|
|
|
// 'titulo' => 'Rota', |
|
|
|
|
// 'tipo' => 'tabela-head' |
|
|
|
|
// ], |
|
|
|
|
// ] |
|
|
|
|
// ], |
|
|
|
|
// [ |
|
|
|
|
// 'estilo' => 'collapse-fecha', |
|
|
|
|
// 'conteudo' => [ |
|
|
|
|
// [], |
|
|
|
|
// ] |
|
|
|
|
// ] |
|
|
|
|
// linha 17 |
|
|
|
|
[ |
|
|
|
|
'collapse' => 'collapse-abre', |
|
|
|
|
'estilo' => 'tabela-head', |
|
|
|
|
'botao-collapse-id' => 'bn-rotas', |
|
|
|
|
'botao-collapse-nome' => 'Rotas', |
|
|
|
|
'div-collapse-id' => 'collapseRotas', |
|
|
|
|
'conteudo' => [ |
|
|
|
|
[ |
|
|
|
|
'titulo' => 'Rota', |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'classes' => 'toggle', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'style' => 'display: none', |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
], |
|
|
|
|
[ |
|
|
|
|
'titulo' => 'Sim', |
|
|
|
|
'classes' => 'toggle', |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'name' => 'opcao-rota', |
|
|
|
|
'type' => 'radio', |
|
|
|
|
'id' => 'simCheck', |
|
|
|
|
'title' => 'Clique para marcar todos!', |
|
|
|
|
'style' => 'cursor: pointer', |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
[ |
|
|
|
|
'titulo' => 'Não', |
|
|
|
|
'classes' => 'toggle', |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'name' => 'opcao-rota', |
|
|
|
|
'type' => 'radio', |
|
|
|
|
'id' => 'naoCheck', |
|
|
|
|
'title' => 'Clique para marcar todos!', |
|
|
|
|
'style' => 'cursor: pointer', |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
[ |
|
|
|
|
'titulo' => 'Conta/Senha', |
|
|
|
|
'classes' => 'toggle', |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'name' => 'opcao-rota', |
|
|
|
|
'type' => 'radio', |
|
|
|
|
'id' => 'senhaCheck', |
|
|
|
|
'title' => 'Clique para marcar todos!', |
|
|
|
|
'style' => 'cursor: pointer', |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
[ |
|
|
|
|
'titulo' => 'Agente', |
|
|
|
|
'classes' => 'toggle', |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'name' => 'opcao-rota', |
|
|
|
|
'type' => 'radio', |
|
|
|
|
'id' => 'agenteCheck', |
|
|
|
|
'title' => 'Clique para marcar todos!', |
|
|
|
|
'style' => 'cursor: pointer', |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
// linha 18 - Sera inserido pelo splice as rotas aqui apos consultar no banco |
|
|
|
|
//linha 19 |
|
|
|
|
[ |
|
|
|
|
'collapse' => 'collapse-abre', |
|
|
|
|
'estilo' => 'row', |
|
|
|
|
'botao-collapse-id' => 'bn-chefeSecretaria', |
|
|
|
|
'botao-collapse-nome' => 'Chefe Secretária', |
|
|
|
|
'div-collapse-id' => 'collapseChefeSec', |
|
|
|
|
'conteudo' => [ |
|
|
|
|
[ |
|
|
|
|
'titulo' => 'Ramal Secretária', |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'classes' => 'toggle', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'name' => 'ramalSecretaria', |
|
|
|
|
'type' => 'text', |
|
|
|
|
'id' => 'ramalSecretaria', |
|
|
|
|
'value' => ($acao == 'edita') ? $ramalSecretaria : null, |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
[ |
|
|
|
|
'titulo' => 'Exeções', |
|
|
|
|
'classes' => 'toggle', |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'type' => 'text', |
|
|
|
|
'name' => 'ramalSecretariaExcessao', |
|
|
|
|
'id' => 'ramalSecretariaExcessao', |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
[ |
|
|
|
|
'titulo' => '', |
|
|
|
|
'classes' => 'toggle', |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'formato' => 'botaoSelect', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'name' => 'btIncluirRamalExecao', |
|
|
|
|
'onClick' => 'incExcecao();', |
|
|
|
|
'style' => 'cursor:pointer', |
|
|
|
|
], |
|
|
|
|
[ |
|
|
|
|
'name' => 'btExcluirExcessao', |
|
|
|
|
'onClick' => 'remExcecao();', |
|
|
|
|
'style' => 'cursor:pointer', |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
[ |
|
|
|
|
'tipo' => 'normal', |
|
|
|
|
'classes' => 'toggle', |
|
|
|
|
'formato' => 'select', |
|
|
|
|
'titulo' => '', |
|
|
|
|
'props' => [ |
|
|
|
|
[ |
|
|
|
|
'name' => 'ramalSecExcecoesInc[]', |
|
|
|
|
'size' => '6', |
|
|
|
|
'multiple' => 'multiple', |
|
|
|
|
'id' => 'ramalSecExcecoesInc', |
|
|
|
|
'style' => 'width:170px', |
|
|
|
|
'options' => $optionsChefeSecretaria, |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
] |
|
|
|
|
], |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
// Cria um array temporário para armazenar os elementos na ordem desejada |
|
|
|
|
$tempArray = []; |
|
|
|
|
|
|
|
|
|
// Itera sobre cada para adicionar as rotas |
|
|
|
|
foreach ($rotasEncontradas as $v) { |
|
|
|
|
// Adiciona o conteúdo de $v ao array temporário |
|
|
|
|
$tempArray[] = $v; |
|
|
|
|
} |
|
|
|
|
// Insere o array temporário na posição desejada em $configuracao |
|
|
|
|
array_splice($configuracao, 18, 0, $tempArray); |
|
|
|
|
|
|
|
|
|
$titulo = 'Cadastro de Ramais SIP'; |
|
|
|
|
echo gerarFormulario($idProg, $configuracao, $titulo, $acao, $param, $id); |
|
|
|
|
|
|
|
|
|