diff --git a/admin/CadContexto.php b/admin/CadContexto.php index 9cd5ea1f..f5effede 100644 --- a/admin/CadContexto.php +++ b/admin/CadContexto.php @@ -14,7 +14,7 @@ getMessage(); } } else if (!$isPostBack) { - $query = "SELECT id, nome, recorte, acrescenta, inclui_padrao, direcao_chamada FROM pbx_contextos WHERE id = '$idContexto' "; + $query = "SELECT id, nome, recorte, acrescenta, inclui_padrao, direcao_chamada FROM pbx_contextos WHERE id = '$idContexto' AND org_id = $org_id"; $result = pg_query($dbcon, $query); if (!$result || !@pg_num_rows($result)) { - $mensagems[] = "N�o foi poss�vel selecionar o \"Contexto\"!"; + $mensagems[] = "Não foi possível selecionar o \"Contexto\"!"; $acoesCliente[] = "fecha_popup(0,'index.php?idProg=10027&pbxRequest=1$param&acao=$acao');"; } @@ -366,6 +356,7 @@ function DeletaRegTemporario($dbcon, &$modelo = "") { + $org_id = $_SESSION['SSEmpresaPadrao']; $idDel = 0; if (!empty($modelo)) { $query = "SELECT id FROM pbx_contextos_modelos_tmp WHERE modelo = '$modelo'"; @@ -379,34 +370,35 @@ return; } - $query = "DELETE FROM pbx_contextos_opcoes_tmp " . ($idDel ? " WHERE id_modelo = $idDel " : ""); + $query = "DELETE FROM pbx_contextos_opcoes_tmp " . ($idDel ? " WHERE id_modelo = $idDel AND org_id = $org_id" : ""); pg_query($dbcon, $query); - $query = "DELETE FROM pbx_contextos_canais_tmp " . ($idDel ? " WHERE id_modelo = $idDel " : ""); + $query = "DELETE FROM pbx_contextos_canais_tmp " . ($idDel ? " WHERE id_modelo = $idDel AND org_id = $org_id" : ""); pg_query($dbcon, $query); - $query = "DELETE FROM pbx_contextos_modelos_tmp " . ($idDel ? " WHERE id = $idDel " : ""); + $query = "DELETE FROM pbx_contextos_modelos_tmp " . ($idDel ? " WHERE id = $idDel AND org_id = $org_id" : ""); pg_query($dbcon, $query); } function CopiaRegParaTemporario($dbcon, $idTmp) { $query = "INSERT INTO pbx_contextos_modelos_tmp(id, id_contexto, modelo, recorte, acrescenta, portabilidade, org_id) - SELECT id, id_contexto, modelo, recorte, acrescenta, portabilidade FROM pbx_contextos_modelos WHERE id_contexto = '$idTmp'"; + SELECT id, id_contexto, modelo, recorte, acrescenta, portabilidade, org_id FROM pbx_contextos_modelos WHERE id_contexto = '$idTmp'"; pg_query($dbcon, $query); $query = "INSERT INTO pbx_contextos_canais_tmp(id, id_contexto, canal, id_modelo, org_id) - SELECT id, id_contexto, canal, id_modelo FROM pbx_contextos_canais WHERE id_contexto = '$idTmp'"; + SELECT id, id_contexto, canal, id_modelo, org_id FROM pbx_contextos_canais WHERE id_contexto = '$idTmp'"; pg_query($dbcon, $query); $query = "INSERT INTO pbx_contextos_opcoes_tmp(id, id_contexto, opcao, acao, id_modelo, org_id) - SELECT id, id_contexto, opcao, acao, id_modelo FROM pbx_contextos_opcoes WHERE id_contexto = '$idTmp'"; + SELECT id, id_contexto, opcao, acao, id_modelo, org_id FROM pbx_contextos_opcoes WHERE id_contexto = '$idTmp'"; pg_query($dbcon, $query); } function ExisteModelo($dbcon, $modelo) { - $query = "SELECT count(*) FROM pbx_contextos_modelos_tmp WHERE modelo = '$modelo'"; + $org_id = $_SESSION['SSEmpresaPadrao']; + $query = "SELECT count(*) FROM pbx_contextos_modelos_tmp WHERE modelo = '$modelo' AND org_id = $org_id"; $result = pg_query($dbcon, $query); $row = pg_fetch_row($result); return $row[0] > 0; @@ -414,8 +406,9 @@ function GetModeloInicio($dbcon) { + $org_id = $_SESSION['SSEmpresaPadrao']; //seleciona o primeiro modelo da lista - $query = "SELECT modelo FROM pbx_contextos_modelos_tmp ORDER BY id LIMIT 1"; + $query = "SELECT modelo FROM pbx_contextos_modelos_tmp WHERE org_id = $org_id ORDER BY id LIMIT 1"; $result = pg_query($dbcon, $query); $row = pg_fetch_row($result); return $row[0]; @@ -423,7 +416,8 @@ function ExisteTroncoAcao($dbcon) { - $query = "SELECT id FROM pbx_contextos_modelos_tmp"; + $org_id = $_SESSION['SSEmpresaPadrao']; + $query = "SELECT id FROM pbx_contextos_modelos_tmp WHERE org_id = $org_id"; $result = pg_query($dbcon, $query); if (!$result) { @@ -436,11 +430,11 @@ while ($row = pg_fetch_row($result)) { $idModelo = $row[0]; - $query = "SELECT count(*) FROM pbx_contextos_canais_tmp WHERE id_modelo = '$idModelo'"; + $query = "SELECT count(*) FROM pbx_contextos_canais_tmp WHERE id_modelo = '$idModelo' AND org_id = $org_id"; $result1 = pg_query($dbcon, $query); $rowCont = @pg_fetch_row($result1); - $query = "SELECT count(*) FROM pbx_contextos_opcoes_tmp WHERE id_modelo = '$idModelo'"; + $query = "SELECT count(*) FROM pbx_contextos_opcoes_tmp WHERE id_modelo = '$idModelo' AND org_id = $org_id"; $result1 = pg_query($dbcon, $query); $rowCont1 = @pg_fetch_row($result1); @@ -453,33 +447,34 @@ function GravaComplemento($dbcon, $idContexto) { - $query = "DELETE FROM pbx_contextos_canais WHERE id_contexto = '$idContexto'"; + $org_id = $_SESSION['SSEmpresaPadrao']; + $query = "DELETE FROM pbx_contextos_canais WHERE id_contexto = '$idContexto' AND org_id = $org_id"; $result = pg_query($dbcon, $query); if (!$result) { - throw new Exception("(3)N�o foi poss�vel realizar a opera��o!"); + throw new Exception("(3)Não foi possível realizar a operação!"); } - $query = "DELETE FROM pbx_contextos_modelos WHERE id_contexto = '$idContexto'"; + $query = "DELETE FROM pbx_contextos_modelos WHERE id_contexto = '$idContexto' AND org_id = $org_id"; $result = pg_query($dbcon, $query); if (!$result) { - throw new Exception("(4)N�o foi poss�vel realizar a opera��o!"); + throw new Exception("(4)Não foi possível realizar a operação!"); } - $query = "DELETE FROM pbx_contextos_canais WHERE id_contexto = '$idContexto'"; + $query = "DELETE FROM pbx_contextos_canais WHERE id_contexto = '$idContexto' AND org_id = $org_id"; $result = pg_query($dbcon, $query); if (!$result) - throw new Exception("(5)N�o foi poss�vel realizar a opera��o!"); + throw new Exception("(5)Não foi possível realizar a operação!"); - $query = "DELETE FROM pbx_contextos_opcoes WHERE id_contexto = '$idContexto'"; + $query = "DELETE FROM pbx_contextos_opcoes WHERE id_contexto = '$idContexto' AND org_id = $org_id"; $result = pg_query($dbcon, $query); if (!$result) { - throw new Exception("(6)N�o foi poss�vel realizar a opera��o!"); + throw new Exception("(6)Não foi possível realizar a operação!"); } - $query = "SELECT id, modelo, recorte, acrescenta, portabilidade FROM pbx_contextos_modelos_tmp"; + $query = "SELECT id, modelo, recorte, acrescenta, portabilidade FROM pbx_contextos_modelos_tmp WHERE org_id = $org_id"; $result = pg_query($dbcon, $query); if (!$result) { - throw new Exception("(7)N�o foi poss�vel realizar a opera��o!"); + throw new Exception("(7)Não foi possível realizar a operação!"); } while ($row = @pg_fetch_array($result)) { @@ -489,40 +484,40 @@ $acresc = $row["acrescenta"]; $porta = $row["portabilidade"]; - $query = "INSERT INTO pbx_contextos_modelos(id_contexto, modelo, recorte, acrescenta, portabilidade) - VALUES('$idContexto', '$modelo', '$rec', '$acresc', '$porta')"; + $query = "INSERT INTO pbx_contextos_modelos(id_contexto, modelo, recorte, acrescenta, portabilidade, org_id) + VALUES('$idContexto', '$modelo', '$rec', '$acresc', '$porta', $org_id)"; $resultTmp = pg_query($dbcon, $query); if (!$resultTmp) { - throw new Exception("(8)N�o foi poss�vel realizar a opera��o!"); + throw new Exception("(8)Não foi possível realizar a operação!"); } // Ultimo modelo inserido - $query = "SELECT max(id) FROM pbx_contextos_modelos"; + $query = "SELECT max(id) FROM pbx_contextos_modelos WHERE org_id = $org_id"; $resultTmp = pg_query($dbcon, $query); if (!$resultTmp) { - throw new Exception("(9)N�o foi poss�vel realizar a opera��o!"); + throw new Exception("(9)Não foi possível realizar a operação!"); } $row = @pg_fetch_row($resultTmp); $idModeloAtual = $row[0]; //insere canais - $query = "INSERT INTO pbx_contextos_canais (id_contexto, canal, id_modelo) - SELECT '$idContexto', canal, '$idModeloAtual' + $query = "INSERT INTO pbx_contextos_canais (id_contexto, canal, id_modelo, org_id) + SELECT '$idContexto', canal, '$idModeloAtual', org_id FROM pbx_contextos_canais_tmp WHERE id_modelo = '$idModeloTmp'"; $resultTmp = pg_query($dbcon, $query); if (!$resultTmp) { - throw new Exception("(10)N�o foi poss�vel realizar a opera��o!"); + throw new Exception("(10)Não foi possível realizar a operação!"); } - $query = "INSERT INTO pbx_contextos_opcoes (id_contexto, opcao, acao, id_modelo) - SELECT '$idContexto', opcao, acao, '$idModeloAtual' + $query = "INSERT INTO pbx_contextos_opcoes (id_contexto, opcao, acao, id_modelo , org_id) + SELECT '$idContexto', opcao, acao, '$idModeloAtual', org_id FROM pbx_contextos_opcoes_tmp WHERE id_modelo = '$idModeloTmp'"; $resultTmp = pg_query($dbcon, $query); if (!$resultTmp) { - throw new Exception("(11)N�o foi poss�vel realizar a opera��o!"); + throw new Exception("(11)Não foi possível realizar a operação!"); } } } @@ -546,23 +541,23 @@ alert('Selecione um "Tronco"!'); return false; } else if (document.getElementById("opcao_modelo").value) { - return confirm('Se prosseguir com a opera��o as "A��es Selecionadas" ser�o apagadas! Deseja continuar?'); + return confirm('Se prosseguir com a operação as "Ações Selecionadas" serão apagadas! Deseja continuar?'); } } else if (this.acao == 'REMOVE_CANAL') { if (document.getElementById("ramais").selectedIndex < 0) { alert('Selecione um "Tronco"!'); return false; } - return confirm('Se prosseguir com a opera��o o "Tronco Selecionado" ser�o apagados! Deseja continuar?'); + return confirm('Se prosseguir com a operação o "Tronco Selecionado" serão apagados! Deseja continuar?'); } else if (this.acao == 'INSERE_OPCAO') { if (document.getElementById("relacao").selectedIndex < 0) { alert('Selecione um "Modelo"!'); return false; } else if (!document.getElementById("opcao").value || !document.getElementById("acao_opcao").value) { - alert('Selecione uma "op��o"!'); + alert('Selecione uma "opção"!'); return false; } else if (document.getElementById("ramais").length > 0) { - return confirm('Se prosseguir com a opera��o os "Troncos Selecionados" ser�o apagados! Deseja continuar?'); + return confirm('Se prosseguir com a operação os "Troncos Selecionados" serão apagados! Deseja continuar?'); } } else if (this.acao == 'REMOVE_OPCAO') { if (!document.getElementById("opcao_modelo").value) { @@ -620,7 +615,7 @@
Tipo Chamada: Entrada /> - Sa�da /> + Saída />
diff --git a/admin/CadDepartamentos.php b/admin/CadDepartamentos.php index d6a9db9d..25426993 100644 --- a/admin/CadDepartamentos.php +++ b/admin/CadDepartamentos.php @@ -52,7 +52,7 @@ } if ($acao == "edita") { - $query = "UPDATE pbx_departamentos SET nome_depto='$nome_depto', empresa='$empresa' WHERE id=$id"; + $query = "UPDATE pbx_departamentos SET nome_depto='$nome_depto', empresa='$empresa' WHERE id=$id AND org_id = $org_id"; $result = pg_query($dbcon, $query); } diff --git a/admin/CadEmpresas.php b/admin/CadEmpresas.php index 529ab031..0431e96f 100644 --- a/admin/CadEmpresas.php +++ b/admin/CadEmpresas.php @@ -28,7 +28,7 @@ fecha_popup(0,'index.php?idProg=10040&pbxRequest=1$param&acao=$acao'); diff --git a/admin/cadConferencias.php b/admin/cadConferencias.php index 4e2a1f1a..2a13c342 100644 --- a/admin/cadConferencias.php +++ b/admin/cadConferencias.php @@ -79,7 +79,7 @@ senha_admin='$senha_admin',encerra_sem_admin='$encerra_sem_admin',silencioso='$silencioso', anuncia_conta='$anuncia_conta',anuncia_entrada='$anuncia_entrada',musica_espera='$musica_espera', habilita_menu='$habilita_menu',anuncio='$anuncio' - WHERE id=$id"; + WHERE id=$id AND org_id = $org_id"; pg_query($dbcon, $query); } gera_arquivos($dbcon, 'CONFERENCIA'); diff --git a/admin/cadHorarios.php b/admin/cadHorarios.php index 5d3673ba..b54aa6d2 100644 --- a/admin/cadHorarios.php +++ b/admin/cadHorarios.php @@ -232,11 +232,13 @@ function GetHorarios($dbcon, $id, $acaoH) $opcao_nao = $row["opcao_nao"] ? $row["opcao_nao"] : '-'; $acao_nao = $row["acao_nao"] ? $row["acao_nao"] : '-'; + + // PBX_opcoes não deve ser buscado com org_id, pois é uma VIEW padrão e fixa para todas as empresas $query = "select * from ( select a.id, a.id_horario, a.horario_inicio, a.horario_fim, a.todos_dias_semana, a.semana, a.semana_fim, a.todos_dias_mes, a.dias_mes, a.dias_mes_fim, a.todos_mes, a.mes, a.mes_fim, b.name as opcao, a.acao as acao, case when(feriado = 'A')then 0 else 1 end as feriado from pbx_horarios_itens a - left outer join pbx_opcoes b on b.value = a.opcao and b.org_id = a.org_id + left outer join pbx_opcoes b on b.value = a.opcao left outer join pbx_opcao_acao c on c.opcao = a.opcao and c.id = a.acao and c.org_id = a.org_id where id_horario = $id and a.org_id = $org_id) as itens order by feriado asc, id"; @@ -347,12 +349,12 @@ function GetHorarios($dbcon, $id, $acaoH) } if (m >= 60) { - m = 00; + m = "00"; h = h + 1; } if (h >= 24) { - h = 00; + h = "00"; } else { s = s + 1; } diff --git a/admin/confMail.php b/admin/confMail.php index 1483ee4a..f0bf79b9 100644 --- a/admin/confMail.php +++ b/admin/confMail.php @@ -5,9 +5,10 @@ $filtro = isset($_GET["numRamal"]) ? trim($_GET["numRamal"]) : ''; $filtroNovo = !isset($_GET["pgn"]) ? '' : sprintf("&numRamal%s&pgn=%s&bloco=%s&pg=%s", $_GET["numRamal"], $_GET["pgn"], $_GET["bloco"], $_GET["pg"]); $recontaPag = ($acao == 'inseri') || ($acao == "deleta") || isset($_GET['pesquisa']); $id2 = isset($_GET['id2']) ? trim($_GET['id2']) : 0; +$org_id = $_SESSION['SSEmpresaPadrao']; if ($acao == "deleta") { - $query = "delete from pbx_confMail where id='$id'"; + $query = "delete from pbx_confMail where id='$id' and org_id = $org_id"; pg_query($dbcon, $query); //gera arquivos e executa o reload dos dados no asterisk gera_arquivos($dbcon, 'CONFMAIL'); } @@ -47,7 +48,8 @@ if ($acao == "deleta") { $compl = PreparaLike($filtro, true); $compl = sprintf("and (a.conta ilike %s or a.dominio ilike %s or a.usuario ilike %s)", $compl, $compl, $compl); } - + + $compl .= "AND a.org_id = $org_id"; $query = "SELECT id, conta, dominio, protocolo, porta, usuario FROM pbx_confMail a where 1=1 $compl order by id asc"; $params = "&pbxRequest=1&numRamal=$filtro"; $links = PaginaDados($idProg, $query, $params, $regPagina, $offSet, $pagMostra, true); diff --git a/admin/conferencias.php b/admin/conferencias.php index d16bdcdb..d0ad1d70 100644 --- a/admin/conferencias.php +++ b/admin/conferencias.php @@ -50,7 +50,7 @@ if ($acao == "deleta") { $compl = PreparaLike($filtro, true); $compl = sprintf("and (a.numero ilike %s)", $compl); } - + $compl .= "AND a.org_id = $org_id"; $query = "SELECT id, numero FROM pbx_conferencia a where 1=1 $compl order by id asc"; $params = "&pbxRequest=1&numRamal=$filtro"; $links = PaginaDados($idProg, $query, $params, $regPagina, $offSet, $pagMostra, true); diff --git a/admin/contextos.php b/admin/contextos.php index 3f4b8923..544cdac9 100644 --- a/admin/contextos.php +++ b/admin/contextos.php @@ -6,15 +6,16 @@ $filtroNovo = !isset($_GET["pgn"]) ? '' : sprintf("&numRamal%s&pgn=%s&bloco=%s&p $recontaPag = ($acao == 'inseri') || ($acao == "deleta") || isset($_GET['pesquisa']); $janW = '500'; $janH = '440'; +$org_id = $_SESSION['SSEmpresaPadrao']; if ($acao == "deleta") { - $query = "delete from pbx_contextos_canais where id_contexto='$id'"; + $query = "delete from pbx_contextos_canais where id_contexto='$id' and org_id = $org_id"; pg_query($dbcon, $query); - $query = "delete from pbx_contextos_modelos where id_contexto='$id'"; + $query = "delete from pbx_contextos_modelos where id_contexto='$id' and org_id = $org_id"; pg_query($dbcon, $query); - $query = "delete from pbx_contextos_opcoes where id_contexto='$id'"; + $query = "delete from pbx_contextos_opcoes where id_contexto='$id' and org_id = $org_id"; pg_query($dbcon, $query); - $query = "delete from pbx_contextos where id='$id'"; + $query = "delete from pbx_contextos where id='$id' and org_id = $org_id"; pg_query($dbcon, $query); //gera arquivos e executa o reload dos dados no asterisk gera_arquivos($dbcon, 'CONTEXTOS'); } @@ -24,8 +25,8 @@ if (isset($_GET['pesquisa']) && $_GET['pesquisa']) { $compl = PreparaLike($filtro, true); $compl = sprintf("and (a.nome ilike %s)", $compl); } +$compl .= "AND a.org_id = $org_id"; $query = "SELECT id, nome, direcao_chamada FROM pbx_contextos a where 1=1 $compl order by id asc"; - $params = "&pbxRequest=1&numRamal=$filtro"; $links = PaginaDados($idProg, $query, $params, $regPagina, $offSet, $pagMostra, true); $query .= " limit $regPagina offset $offSet"; diff --git a/admin/departamentos.php b/admin/departamentos.php index 7f81c657..af21bbdb 100644 --- a/admin/departamentos.php +++ b/admin/departamentos.php @@ -7,7 +7,7 @@ $recontaPag = ($acao == 'inseri') || ($acao == "deleta") || isset($_GET['pesquis $org_id = GetOrganizacao(); if ($acao == "deleta") { - $query = "select '' from pbx_cs_usuarios where departamento = '$id' "; + $query = "select '' from pbx_cs_usuarios where departamento = '$id' where org_id = $org_id"; $result = pg_query($dbcon, $query); if (!$result) { @@ -18,9 +18,9 @@ if ($acao == "deleta") { if ($assoc) { $msg = "O Departamento não pode ser excluido por estar associado a uma ou mais contas!"; } else { - $query = "delete from pbx_departamentos where id='$id'"; - $queryRpl = 'insert into pbx_replica(rpl_command, rpl_user, rpl_origem) values(%s, %s, %s)'; - $queryRpl = sprintf($queryRpl, QuotedStr($query), QuotedStr(GetLogin()), QuotedStr(GetServerName())); + $query = "delete from pbx_departamentos where id='$id' and org_id = $org_id"; + $queryRpl = 'insert into pbx_replica(rpl_command, rpl_user, rpl_origem, org_id) values(%s, %s, %s, %d)'; + $queryRpl = sprintf($queryRpl, QuotedStr($query), QuotedStr(GetLogin()), QuotedStr(GetServerName()), $org_id); $inTran = 0; $result = pg_query($dbcon, 'begin'); diff --git a/admin/empresas.php b/admin/empresas.php index 80c050ea..c6a2a6f5 100644 --- a/admin/empresas.php +++ b/admin/empresas.php @@ -5,11 +5,12 @@ $id = isset($_GET['id']) ? trim($_GET['id']) : 0; $filtro = isset($_GET["numRamal"]) ? trim($_GET["numRamal"]) : ''; $filtroNovo = !isset($_GET["pgn"]) ? '' : sprintf("&numRamal%s&pgn=%s&bloco=%s&pg=%s", $_GET["numRamal"], $_GET["pgn"], $_GET["bloco"], $_GET["pg"]); $recontaPag = ($acao == 'inseri') || ($acao == "deleta") || isset($_GET['pesquisa']); +$org_id = $_SESSION['SSEmpresaPadrao']; if ($acao == "deleta") { $msg = ''; $id = $_GET["id"] ?? "0"; - $query = "delete from pbx_empresa where id='$id'"; + $query = "delete from pbx_empresa where id='$id' and org_id = $org_id"; $result = pg_query($dbcon, $query); if (!$result) { $msg = "Não foi possível apagar o registro!"; @@ -25,7 +26,7 @@ if (isset($_GET['pesquisa']) && $_GET['pesquisa']) { $compl = PreparaLike($filtro, true); $compl = sprintf("and (a.nome ilike %s or a.razao_social ilike %s)", $compl, $compl); } - +$compl .= "AND a.org_id = $org_id"; $query = "SELECT id, nome, razao_social FROM pbx_empresa a where 1=1 $compl order by id asc"; $params = "&pbxRequest=1&numRamal=$filtro"; $links = PaginaDados($idProg, $query, $params, $regPagina, $offSet, $pagMostra, true); diff --git a/admin/horarios.php b/admin/horarios.php index 096a512e..3d4106da 100644 --- a/admin/horarios.php +++ b/admin/horarios.php @@ -51,7 +51,7 @@ if ($acao == "deleta") { if (isset($_GET['pesquisa']) && $_GET['pesquisa']) { $compl = "and (a.nome ilike '%$filtro%' or a.discar ilike '%$filtro%')"; } - + $compl .= " and a.org_id = $org_id"; $query = "select id, nome, discar, opcao_ok, acao_ok, opcao_nao, acao_nao, case when((select count(*) from pbx_horarios_itens where id_horario = a.id) = 0)then 0 else status end as status from pbx_horarios a where 1=1 $compl order by nome"; diff --git a/admin/iax.php b/admin/iax.php index 607bd914..4162fa5e 100644 --- a/admin/iax.php +++ b/admin/iax.php @@ -5,7 +5,7 @@ $id2 = isset($_GET['id2']) ? $_GET['id2'] : ''; $filtro = isset($_GET["numRamal"]) ? trim($_GET["numRamal"]) : ''; $filtroNovo = !isset($_GET["pgn"]) ? '' : sprintf("&numRamal%s&pgn=%s&bloco=%s&pg=%s", $_GET["numRamal"], $_GET["pgn"], $_GET["bloco"], $_GET["pg"]); $recontaPag = ($acao == 'inseri') || ($acao == "deleta") || isset($_GET['pesquisa']); -$org_id = GetOrganizacao(); +$org_id = $_SESSION['SSEmpresaPadrao']; $query = "SELECT master FROM pbx_organizacao WHERE id = $org_id"; $resul = pg_query($dbcon, $query); $dados = pg_fetch_array($resul); @@ -21,23 +21,28 @@ if ($acao == "deleta") { } //Apaga a relacao entre rotas e ramais - $query = "delete from pbx_rotas_saida_ramais where ramal = '$ramal'"; + $query = "delete from pbx_rotas_saida_ramais where ramal = '$ramal' and org_id = $org_id"; pg_query($dbcon, $query); //Apaga ch secretaria - $query = "delete from pbx_chefe_secretaria where numero = '$ramal'"; + $query = "delete from pbx_chefe_secretaria where numero = '$ramal' and org_id = $org_id"; pg_query($dbcon, $query); //Relação de restrição a audios cadastrada na interface de grupo de usuarios - $query = "delete from pbx_grupo_audio_ramal where nome = '$ramal' "; + $query = "delete from pbx_grupo_audio_ramal where nome = '$ramal' and org_id = $org_id"; pg_query($dbcon, $query); - $query = "delete from pbx_iax_pbx where id='$id'"; + $query = "delete from pbx_iax_pbx where id='$id' and org_id = $org_id"; pg_query($dbcon, $query); - $query = "delete from pbx_voicemail_usuarios where numero_ramal='$ramal'"; + $query = "delete from pbx_voicemail_usuarios where numero_ramal='$ramal' and org_id = $org_id"; pg_query($dbcon, $query); + $apagar = ['ORG_ID', 'ORG_RAMAL', 'BINA-NOME', 'BINA-EXTERNO', 'TIMEOUT-RAMAL', 'TEMPO-RING-RAMAL', + 'ESPERA', 'SIGAME-INTERNO', 'SIGAME-EXTERNO', 'SIGAME-OCUPADO', 'SIGAME-NAOATENDE', 'GRAVACAO', + 'GRAVACAO-OUT', 'MUSICA', 'CADEADO', 'NAOPERTUBE', 'SENHA', 'DISPOSITIVO']; + removeItemSqlite($dbcon, $apagar, $ramal, $org_id); + @Ajusta_ramais($ramal, $dbcon, false, false); @Ajusta_tabelas('ramal', $ramal, $dbcon, true, false); gera_arquivos($dbcon, 'IAX_PBX', 1, 0); @@ -95,7 +100,7 @@ if ($acao == "deleta") { } if ((!empty($filtro)) && ($tpParcial == 0)) { - $compl = " AND (nome ilike '%$filtro%' OR callerid ILIKE '%$filtro%')"; + $compl = " AND (nome ilike '%$filtro%' OR identificador ILIKE '%$filtro%')"; } else if ((!empty($filtro)) && ($tpParcial == 1)) { $params = explode(",", $filtro); $compl = ""; @@ -104,7 +109,7 @@ if ($acao == "deleta") { $dado .= empty($dado) ? "'$param'" : ",'$param'"; } - $compl = " AND (nome IN($dado) OR callerid IN($dado))"; + $compl = " AND (nome IN($dado) OR identificador IN($dado))"; } else if ((!empty($filtro)) && ($tpParcial == 2)) { $params = explode("-", $filtro); $compl = ""; @@ -128,6 +133,7 @@ if ($acao == "deleta") { $compl = ""; } + $compl .= " AND org_id = $org_id"; $query = "SELECT id, nome, context, dispositivo, saldo_prepago, habilita_prepago, identificador, cast(case when (length(nome) - length(ltrim(nome,'0'))) >= 1 then '-'||(length(nome) - length(ltrim(nome,'0')))::int else nome @@ -155,7 +161,7 @@ if ($acao == "deleta") {
- + diff --git a/admin/ramais.php b/admin/ramais.php index 21673221..c93f766e 100644 --- a/admin/ramais.php +++ b/admin/ramais.php @@ -149,6 +149,11 @@ if ($acao == "deleta") { $query = "delete from pbx_voicemail_usuarios where numero_ramal ='$ramal' and org_id = $org_id"; pg_query($dbcon, $query); + $apagar = ['ORG_ID', 'ORG_RAMAL', 'BINA-NOME', 'BINA-EXTERNO', 'TIMEOUT-RAMAL', 'TEMPO-RING-RAMAL', + 'ESPERA', 'SIGAME-INTERNO', 'SIGAME-EXTERNO', 'SIGAME-OCUPADO', 'SIGAME-NAOATENDE', 'GRAVACAO', + 'GRAVACAO-OUT', 'MUSICA', 'CADEADO', 'NAOPERTUBE', 'SENHA', 'DISPOSITIVO']; + removeItemSqlite($dbcon, $apagar, $ramal, $org_id); + Ajusta_ramais($ramal, $dbcon, false, false); Ajusta_tabelas('ramal', $ramal, $dbcon); } diff --git a/admin/upload_som.php b/admin/upload_som.php index 0663d56f..ac8e69f8 100644 --- a/admin/upload_som.php +++ b/admin/upload_som.php @@ -34,7 +34,7 @@ $acao = $_GET['acao']; $url = $_GET['url']; $param = sprintf('&numRamal=%s&pgn=%s&bloco=%s&pg=%s', $_REQUEST['numRamal'], $_REQUEST['pgn'], $_REQUEST['bloco'], $_REQUEST['pg']); - $org_id = GetOrganizacao(); + $org_id = $_SESSION['SSEmpresaPadrao']; if ($acao == 'inseri') { try { @@ -125,7 +125,7 @@ $desc = IsNull($_POST['arq_descricao'], $arq[0], 1); $tamOrig = IsNull(filesize(($extensao == 'mp3') ? $mvFileSom : $arqOrigem), 0, 1); $tamDest = IsNull(filesize($arqDestino), 0, 1); - $query = "INSERT INTO pbx_arquivo_som(arq_nome, arq_nome_sistema, arq_descricao, arq_path_origem, arq_path_destino, arq_orig_tamanho, arq_dest_tamanho, arq_md5, userreg, org_id) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);"; + $query = "INSERT INTO pbx_arquivo_som(arq_nome, arq_nome_sistema, arq_descricao, arq_path_origem, arq_path_destino, arq_orig_tamanho, arq_dest_tamanho, arq_md5, userreg, org_id) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%d);"; $query = sprintf($query, $nome, $nomeSistema, $desc, QuotedStr($mvFileSom), QuotedStr($arqDestino), $tamOrig, $tamDest, $md5, $login, $org_id); $result = pg_query($dbcon, $query); if (!$result) { diff --git a/agendaRamais/ramais/ramais.php b/agendaRamais/ramais/ramais.php index 10030c91..4e2e9479 100644 --- a/agendaRamais/ramais/ramais.php +++ b/agendaRamais/ramais/ramais.php @@ -15,7 +15,7 @@ if ($acao == "deletaRamal") { * VERIFICA SE EXISTE O RAMAL NA TABELA */ $ramal = $_GET['ramal']; - $query = "SELECT rma_telefone FROM pbx_ramais_agenda WHERE rma_telefone='$ramal' "; + $query = "SELECT rma_telefone FROM pbx_ramais_agenda WHERE rma_telefone='$ramal' AND org_id = $org_id"; $result = pg_query($dbcon, $query); if (!pg_num_rows($result)) { GeraExcept('Ramal Inválido, não foi possível excluir o registro!'); @@ -28,13 +28,13 @@ if ($acao == "deletaRamal") { GeraExcept('Não foi possível inicar a operação!'); } - $deleta = "DELETE FROM pbx_ramais_agenda WHERE rma_telefone='$ramal'"; + $deleta = "DELETE FROM pbx_ramais_agenda WHERE rma_telefone='$ramal' AND org_id = $org_id"; $result = pg_query($dbcon, $deleta); if (!$result) { GeraExcept('Não foi possível excluir o "Ramal" selecionado!'); } - $deleta = "DELETE FROM rma_depto_ramais WHERE nome='$ramal'"; + $deleta = "DELETE FROM rma_depto_ramais WHERE nome='$ramal' AND org_id = $org_id"; $result = pg_query($dbcon, $deleta); if (!$result) { GeraExcept('Não foi possível remover as dependências do "Ramal" selecionado!'); diff --git a/cadastros/organizacao/cadOrganizacao.php b/cadastros/organizacao/cadOrganizacao.php index 82cc77e3..e84bf7e7 100644 --- a/cadastros/organizacao/cadOrganizacao.php +++ b/cadastros/organizacao/cadOrganizacao.php @@ -138,7 +138,7 @@ function criarGruposDefault($dbcon, $org_id) { FROM pbx_grupo WHERE gp_nome IN ('ADMINISTRADOR','SUPERVISOR','AGENTE') AND gp_system = 0 - AND org_id = 1 + AND org_id = (SELECT min(id) FROM pbx_organizacao) RETURNING gp_id, gp_nome"; $result = pg_query($dbcon, $query); @@ -150,7 +150,7 @@ function criarGruposDefault($dbcon, $org_id) { $sql = "INSERT INTO pbx_grupo_funcoes (gp_id, fun_id, org_id) SELECT {$grupo['gp_id']} AS gp_id, fun_id, {$org_id} AS org_id FROM pbx_grupo_funcoes - WHERE gp_id = (SELECT gp_id FROM pbx_grupo WHERE org_id = 1 + WHERE gp_id = (SELECT gp_id FROM pbx_grupo WHERE org_id = (SELECT min(id) FROM pbx_organizacao) AND gp_nome = '{$grupo['gp_nome']}' AND gp_system = 0)"; if (!pg_query($dbcon, $sql)) { diff --git a/include/util/funcoesApl.php b/include/util/funcoesApl.php index 7eab1fe5..b61f4f28 100755 --- a/include/util/funcoesApl.php +++ b/include/util/funcoesApl.php @@ -577,12 +577,13 @@ function IsSuper() { } function IsUserAdmin() { + global $dbcon; $org_id = GetOrganizacao(); $query = sprintf("SELECT count(*) FROM pbx_grupo_usuario WHERE gp_id = (SELECT gp_id FROM pbx_grupo WHERE gp_nome = 'ADMINISTRADOR' AND org_id = {$org_id}) AND user_id = '%s'", GetIdUser()); - $result = pg_query($query); + $result = pg_query($dbcon, $query); $row = @pg_fetch_row($result); return $row[0] ? true : false; } @@ -595,11 +596,12 @@ function IsAdmin() { $matricula = GetMatricula(); $query = "select \"admin\" - from pbx_usuarios p_u + from pbx_usuarios p_u, pbx_organizacao po where matricula = '$matricula' - and p_u.id = (select id_usuario from pbx_organizacao_usuarios pou WHERE pou.id_usuario = p_u.id AND pou.id_organizacao = 1) - and user_system = 1"; + and p_u.id = (select id_usuario from pbx_organizacao_usuarios pou, pbx_organizacao po WHERE pou.id_usuario = p_u.id AND pou.id_organizacao = (SELECT min(id) FROM pbx_organizacao)) + and user_system = 1 + and po.master = 1"; $isadmin = pg_query($GLOBALS["dbcon"], $query); /* Não foi possível obter se o usuário é admin diff --git a/projeto/base/sql/versao-1.9.0.sql b/projeto/base/sql/versao-1.9.0.sql index beefdfdd..b0d6b3ad 100644 --- a/projeto/base/sql/versao-1.9.0.sql +++ b/projeto/base/sql/versao-1.9.0.sql @@ -1,13 +1,15 @@ -CREATE TABLE pbx_organizacao -( - id serial NOT NULL PRIMARY KEY, - nome VARCHAR(128) NOT NULL, - status INTEGER NOT NULL DEFAULT 1, - master int not null DEFAULT 0, - updated_at timestamp without time zone, - created_at timestamp without time zone NOT NULL DEFAULT now() +CREATE TABLE pbx_organizacao ( + id serial PRIMARY KEY, + nome VARCHAR(128) NOT NULL, + status INTEGER NOT NULL DEFAULT 1, + master INTEGER NOT NULL DEFAULT 0, + updated_at TIMESTAMP WITHOUT TIME ZONE, + created_at TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT now() ); +-- Reinicia a sequência para iniciar em 100 +ALTER SEQUENCE pbx_organizacao_id_seq RESTART WITH 100; + CREATE TABLE pbx_organizacao_usuarios ( id SERIAL not null primary key, @@ -336,9 +338,9 @@ Alter table pbx_voicemail_usuarios Alter table pbx_horarios_itens ADD COLUMN acao_asterisk varchar(115); ---Sempre que iniciar um banco, sera setado o org_id como 1 para master +--Sempre que iniciar um banco, sera setado o org_id minimo para master -UPDATE pbx_grupo SET org_id = 1 WHERE gp_id IN (28, 29, 30); +UPDATE pbx_grupo SET org_id = (SELECT min(id) FROM pbx_organizacao) WHERE gp_id IN (28, 29, 30); Alter table pbx_callback ADD COLUMN ramal_saida_asterisk varchar(40); diff --git a/projeto/base/sql/view-1.9.0.sql b/projeto/base/sql/view-1.9.0.sql index 53a9fd45..88362211 100644 --- a/projeto/base/sql/view-1.9.0.sql +++ b/projeto/base/sql/view-1.9.0.sql @@ -338,101 +338,87 @@ CREATE OR REPLACE VIEW public.pbx_nao_classificado DROP VIEW IF EXISTS pbx_opcoes; CREATE OR REPLACE VIEW public.pbx_opcoes AS ( SELECT 'ramal'::character varying(100) AS value, - 'Ramal'::character varying(100) AS name - ,org_id FROM pbx_sip_ramais + 'Ramal'::character varying(100) AS name FROM pbx_sip_ramais LIMIT 1) UNION ALL ( SELECT 'filas'::character varying(100) AS value, - 'Fila'::character varying(100) AS name - ,org_id FROM pbx_queues_grupos + 'Fila'::character varying(100) AS name FROM pbx_queues_grupos WHERE pbx_queues_grupos.status = 'A'::bpchar LIMIT 1) UNION ALL ( SELECT 'ura'::character varying(100) AS value, - 'URA'::character varying(100) AS name - ,org_id FROM pbx_ura + 'URA'::character varying(100) AS name FROM pbx_ura LIMIT 1) UNION ALL ( SELECT 'voice'::character varying(100) AS value, - 'VoiceMail'::character varying(100) AS name - ,org_id FROM pbx_voicemail_usuarios + 'VoiceMail'::character varying(100) AS name FROM pbx_voicemail_usuarios LIMIT 1) UNION ALL ( SELECT 'grupo'::character varying(100) AS value, - 'Grupo'::character varying(100) AS name - ,org_id FROM pbx_grupo + 'Grupo'::character varying(100) AS name FROM pbx_grupo LIMIT 1) UNION ALL ( SELECT 'disa'::character varying(100) AS value, - 'Disa'::character varying(100) AS name - ,org_id FROM pbx_disa + 'Disa'::character varying(100) AS name FROM pbx_disa LIMIT 1) UNION ALL ( SELECT 'horarios'::character varying(100) AS value, - 'Horários'::character varying(100) AS name - ,org_id FROM pbx_horarios + 'Horários'::character varying(100) AS name FROM pbx_horarios LIMIT 1) UNION ALL ( SELECT 'anuncios'::character varying(100) AS value, - 'Anúncios'::character varying(100) AS name - ,org_id FROM pbx_anuncios + 'Anúncios'::character varying(100) AS name FROM pbx_anuncios LIMIT 1) UNION ALL ( SELECT 'conferencia'::character varying(100) AS value, - 'Conferências'::character varying(100) AS name - ,org_id FROM pbx_conferencia + 'Conferências'::character varying(100) AS name FROM pbx_conferencia LIMIT 1) UNION ALL ( SELECT 'callback'::character varying(100) AS value, - 'CallBack'::character varying(100) AS name - ,org_id FROM pbx_callback + 'CallBack'::character varying(100) AS name FROM pbx_callback LIMIT 1) UNION ALL ( SELECT 'rotaInterna'::character varying(100) AS value, - 'Rotas Internas'::character varying(100) AS name - ,org_id FROM pbx_rotas_saida + 'Rotas Internas'::character varying(100) AS name FROM pbx_rotas_saida WHERE pbx_rotas_saida.tipo::text = 'I'::text LIMIT 1) UNION ALL ( SELECT 'repetir'::character varying(100) AS value, - 'Repetir'::character varying(100) AS name - ,org_id FROM pbx_rotas_saida + 'Repetir'::character varying(100) AS name FROM pbx_rotas_saida LIMIT 1) UNION ALL ( SELECT 'desligar'::character varying(100) AS value, - 'Desligar'::character varying(100) AS name - ,org_id FROM pbx_rotas_saida + 'Desligar'::character varying(100) AS name FROM pbx_rotas_saida LIMIT 1) UNION ALL ( SELECT 'integativa'::character varying(100) AS value, - 'Integração Ativa'::character varying(100) AS name - ,a.org_id FROM pbx_integracao_configuracao a, + 'Integração Ativa'::character varying(100) AS name FROM pbx_integracao_configuracao a, pbx_integracao_metodo b WHERE b.itgc_id = a.itgc_id LIMIT 1); diff --git a/supervisor.php b/supervisor.php index ae8ffae0..d39009de 100644 --- a/supervisor.php +++ b/supervisor.php @@ -380,7 +380,7 @@ function GetDadosAgt($dac) function GetQueryDac() { $idUser = GetIdUser(); - $org_id = $_SESSION['SSEmpresaPadrao']; + $org_id = GetOrganizacao(); $dacsAcesso = GetDacsAcesso($idUser); $query = "SELECT DISTINCT coalesce(sel, 0) AS sel, @@ -461,7 +461,7 @@ function GetQueryDac() function GetDacsAcesso($idUser, $array = false) { global $dbcon; - $org_id = $_SESSION['SSEmpresaPadrao']; + $org_id = GetOrganizacao(); $query = "SELECT DISTINCT b.nome FROM pbx_queues_grupos b