diff --git a/admin/cadFuncoes.php b/admin/cadFuncoes.php
index 142042d1..2ee1fc49 100644
--- a/admin/cadFuncoes.php
+++ b/admin/cadFuncoes.php
@@ -10,20 +10,43 @@ function GetTypeRamal($type){
};
}
-function numeroCadastroExiste($dbcon, $number, $org_id){
+/* Encapsular o sistema de verificar números e nome no sistema.
+ * A funções pode ser usado para nomes ou procurar um número jpa existente.
+ * Se $name estiver definido vai procurar se existe esse valor no key com stripos
+ *
+ * $name = se for definido apenas as keys das querys que `stripos( $key, $name` serão executadas
+ */
+function numeroCadastroExiste($dbcon, $number, $org_id, $name = false){
$queries = [
'ramal' => "SELECT '' FROM pbx_ramais WHERE nome = $1 AND org_id = $2",
'fila' => "SELECT '' FROM pbx_dacs WHERE numero = $1 AND status = 'A' AND org_id = $2",
'nome_fila' => "SELECT '' FROM pbx_dacs WHERE nome = $1 AND status = 'A' AND org_id = $2",
'ura' => "SELECT '' FROM pbx_ura WHERE teste = $1 AND org_id = $2",
+ 'nome_ura' => "SELECT '' FROM pbx_ura WHERE nome = $1 and org_id = $2",
'anuncio' => "SELECT '' FROM pbx_anuncios WHERE teste = $1 AND org_id = $2",
'disa' => "SELECT '' FROM pbx_disa WHERE numero = $1 AND org_id = $2",
'horario' => "SELECT '' FROM pbx_horarios Where discar = $1 and org_id = $2",
'voicemail' => "SELECT '' FROM pbx_voicemail_usuarios Where caixa_postal = $1 and org_id = $2"
];
+ /* Se $name for definida o algoritmo testará apenas query para nomes */
+
foreach ($queries as $key => $query) {
+
+ $name_false = ($name && (stripos( $key, $name) === false ? 1 : 0 )); //
+ $def_name = ((stripos( $key, "nome") === false ? 0 : 1) && ($name === false ? 1 : 0 ));
+
+ /* key com nome_ é pulado, pois testará apenas número */
+ if( $def_name ){
+ continue;
+ }
+
+ /* retorna se não for query de nome_ testará apenas nomes */
+ if($name_false){
+ continue;
+ }
+
pg_prepare($dbcon, "existe_{$key}", $query);
$result = pg_execute($dbcon, "existe_{$key}", array($number, $org_id));
diff --git a/admin/cadUra.php b/admin/cadUra.php
index ca327e28..9644b66a 100644
--- a/admin/cadUra.php
+++ b/admin/cadUra.php
@@ -75,6 +75,23 @@
if ($acao == "inseri") {
+
+ $existe_numero = numeroCadastroExiste($dbcon, $teste, $org_id);
+
+ if($existe_numero !== false){
+ echo "";
+ echo "";
+ exit();
+ }
+
+
+ $existe_nome = numeroCadastroExiste($dbcon, $nome, $org_id, "nome_ura");
+ if($existe_nome !== false){
+ echo "";
+ echo "";
+ exit();
+ }
+
$acao_asterisk = Acoes_asterisk($dbcon, $opcao_, $acao_ );
$query = "INSERT INTO pbx_ura(nome, tempo_espera, permite_ligacao, som_ura, teste, opcao, acao, timeout_digito, org_id, acao_asterisk)
VALUES ('$nome','$tempo_espera','$permite_ligacao','$som_ura','$teste','$opcao_','$acao_', '$timeout_digito', $org_id, '$acao_asterisk') RETURNING id";