From a972d64b985138982f3ba5c866efd5d62f1a4c9f Mon Sep 17 00:00:00 2001 From: bruno Date: Thu, 8 Aug 2024 11:30:11 -0400 Subject: [PATCH] =?UTF-8?q?Definir=20fun=C3=A7ao=20numeroCadastroExiste=20?= =?UTF-8?q?para=20verificar=20n=C3=BAmeros=20ou=20nomes=20repetidos.=20Def?= =?UTF-8?q?inir=20blogueio=20para=20n=C3=BAmeros=20que=20j=C3=A1=20existe?= =?UTF-8?q?=20na=20URA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/cadFuncoes.php | 25 ++++++++++++++++++++++++- admin/cadUra.php | 17 +++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) 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";