diff --git a/admin/CadGruposAtendimento.php b/admin/CadGruposAtendimento.php index 98828981..2e7804ee 100644 --- a/admin/CadGruposAtendimento.php +++ b/admin/CadGruposAtendimento.php @@ -91,6 +91,7 @@ $acao = $_GET["acao"]; $acao2 = $_GET["acao2"]; $org_id = $_SESSION['SSEmpresaPadrao']; + $id = $_GET["id"] ?? 0; /* * Parametros necessarios para manter a paginacao. */ @@ -99,24 +100,22 @@ 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 and org_id = $org_id"; } else { $query = "select nome from pbx_grupos_atendimento where nome='$nome' and org_id = $org_id"; - $numero = GetIdGrupoAtendimento($dbcon); } $msg = ''; $result = pg_query($dbcon, $query); $dados = pg_fetch_array($result); $existe = trim($dados['nome']); + $nome_formatado = str_replace(' ', '', $nome); + $nome_formatado = strtolower($nome_formatado); + if ($existe != '') { $msg = "JÁ EXISTE UM GRUPO COM O NOME $existe"; } - if ($numero > 63) { - $msg = "É PERMITIDO CADASTRAR APENAS 63 GRUPOS"; - } if (!empty($msg)) { echo ""; } else { if ($acao == "inseri") { - $query = "INSERT INTO pbx_grupos_atendimento(id,nome,org_id) VALUES ('$numero','$nome', $org_id)"; - pg_query($dbcon, $query); - $id_ult = $numero; + pg_query($dbcon, "begin"); + $try_query = "INSERT INTO pbx_grupos_atendimento(nome, org_id) VALUES ('$nome', $org_id) RETURNING id"; + $success_query = pg_query($dbcon, $try_query); + + if (!$success_query) { + pg_query($dbcon, 'rollback'); + return false; + } + + $retorno = pg_fetch_assoc($success_query); + $id_ult = $retorno['id']; + + $update_query = "UPDATE pbx_grupos_atendimento SET nome_asterisk = '$org_id$nome_formatado' WHERE org_id = $org_id AND id = $id_ult"; + $success_query = pg_query($dbcon, $update_query); + + if (!$success_query) { + pg_query($dbcon, 'rollback'); + return false; + } + + pg_query($dbcon, "commit"); } if ($acao == "edita") { - $ramaisExistentes = array(); + pg_query($dbcon, "begin"); $query = "select ramal from pbx_grupos_atendimento_ramais where id_grupo = $id and org_id=$org_id"; $result = pg_query($dbcon, $query); - while ($row = pg_fetch_row($result)) - $ramaisExistentes[] = $row[0]; + + if (!$result) { + pg_query($dbcon, 'rollback'); + return false; + } $query = "UPDATE pbx_grupos_atendimento SET nome='$nome' WHERE id=$id AND org_id = $org_id"; - pg_query($dbcon, $query); + $result_update = pg_query($dbcon, $query); - $query = "delete from pbx_grupos_atendimento_ramais where id_grupo=$id and org_id=$org_id"; - pg_query($dbcon, $query); + if (!$result_update) { + pg_query($dbcon, 'rollback'); + return false; + } + + $query = "delete from pbx_grupos_atendimento_ramais where id_grupo=$id and org_id = $org_id"; + $result_delete = pg_query($dbcon, $query); + + if (!$result_delete) { + pg_query($dbcon, 'rollback'); + return false; + } + pg_query($dbcon, "commit"); } $ramais = $_POST["ramais"]; for ($i = 0; $i < count($ramais); $i++) { if ($acao == "edita") { - $query = "insert into pbx_grupos_atendimento_ramais (id_grupo,ramal,org_id) values ($id,'$ramais[$i]', $org_id)"; + $query = "insert into pbx_grupos_atendimento_ramais (id_grupo,ramal,org_id, nome_asterisk) values ($id,'$ramais[$i]', $org_id, '$org_id$nome_formatado')"; } else { - $query = "insert into pbx_grupos_atendimento_ramais (id_grupo,ramal,org_id) values ($id_ult,'$ramais[$i]', $org_id)"; + $query = "insert into pbx_grupos_atendimento_ramais (id_grupo,ramal,org_id, nome_asterisk) values ($id_ult,'$ramais[$i]', $org_id, '$org_id$nome_formatado')"; } pg_query($dbcon, $query); } @@ -160,7 +191,6 @@ 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 "