Browse Source

ajustes nos cadastros de organização

spr_change_address_bd
Lucas Awade 10 months ago
parent
commit
c5b6fd7d86
  1. 7
      ajaxPhp.php
  2. 14
      asterisk/var_lib_asterisk/scripts/manutencaoDB/importaEmpresa.php
  3. 0
      cadOrganizacao.log
  4. 66
      cadastros/organizacao/cadOrganizacao.php
  5. 6
      cadastros/organizacao/organizacao.php
  6. 3
      include/util/funcoesApl.php
  7. 29
      projeto/base/sql/versao-1.9.0.sql
  8. 4
      templates/cadastros/organizacao/cadOrganizacao.tpl

7
ajaxPhp.php

@ -23,11 +23,12 @@ if (isset($_GET['GetUser'])) {
}
}
if(isset($_GET['org_id'])){
if (isset($_GET['org_id'])) {
$organizacao = GetAllOrganizacao();
foreach($organizacao as $v){
if($v['id'] == $_GET['org_id']){
foreach ($organizacao as $v) {
if ($v['id'] == $_GET['org_id']) {
$_SESSION['SSEmpresaPadrao'] = $v['id'];
GetParametros($dbcon);
break;
}
}

14
asterisk/var_lib_asterisk/scripts/manutencaoDB/importaEmpresa.php

@ -159,7 +159,7 @@ function CriaOrgPadrao($dbcon)
$res = pg_fetch_assoc($result);
if (!$res) {
$sql = "DELETE FROM pbx_organizacao WHERE id = " . $res['id'];
pg_query($dbcon, $query);
pg_query($dbcon, $sql);
throw new Exception("Não foi possivel cria a organizacao padrao!");
}
@ -307,14 +307,26 @@ function importIdTables($dbcon)
___Gravalog("Não foi possível o ID da tabela {$table};");
}
$query = "DO $$
BEGIN
IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = '{$table}' AND column_name = '{$column}') THEN
ALTER TABLE {$table} DROP COLUMN IF EXISTS {$column};
END IF;
ALTER TABLE {$table} ADD COLUMN {$column} SERIAL PRIMARY KEY;
END $$;";
$result = pg_query($dbcon, $query);
$id = $resp['id'];
$query = "CREATE TEMPORARY TABLE t{$table} AS SELECT * FROM {$table} WHERE $column = 1;";
$query .= "ALTER TABLE t{$table} DROP COLUMN $column;";
$query .= "INSERT INTO {$table} SELECT * FROM t{$table};";
$query .= "UPDATE {$table} SET org_id = $org_id WHERE $column = $id";
$result = pg_query($dbcon, $query);
pg_query($dbcon, "DROP TABLE IF EXISTS t{$table};");
}
}
function corrigeDadosFila($dbcon)
{
$query = "SELECT id, nome, org_id FROM pbx_queues_grupos;";

0
cadOrganizacao.log

66
cadastros/organizacao/cadOrganizacao.php

@ -9,6 +9,7 @@ $status = isset($_POST["status"]) ? $_POST["status"] : "checked";
$master = isset($_POST["master"]) ? "checked" : 0;
try {
if (isset($_POST["btGravar"])) {
$ret = setOrganizacao($dbcon, ['nome' => $nome, 'status' => $status, 'master' => $master], $id);
}
@ -47,7 +48,7 @@ function setOrganizacao($dbcon, $dados, $id = null)
SET nome = %s,
status = %s,
master = %s
WHERE id = %s ";
WHERE id = %s;";
$query = sprintf($query, QuotedStr($dados['nome']), $dados['status'], $dados['master'], $id);
} else {
$query = "INSERT INTO pbx_organizacao (nome, status, master) VALUES(%s, %s, %s) RETURNING id";
@ -58,7 +59,16 @@ function setOrganizacao($dbcon, $dados, $id = null)
if (!$result) {
throw new Exception("Não foi possível gravar as informações da organização!");
}
$ret = pg_fetch_assoc($result);
if ($ret['id'] && !$id) {
$isImport = importIdTables($dbcon, $ret['id']);
if (!$isImport) {
throw new Exception("Não foi possível importar tabelas das organizações!");
}
criarGruposDefault($dbcon, $ret['id']);
addUserOrganizacaoGrupo($dbcon, $ret['id']);
}
return $id == null ? $ret['id'] : $id;
}
@ -91,7 +101,7 @@ function importIdTables($dbcon, $organizacao)
$column = 'id';
}
$sql = "SELECT MAX($column) AS id FROM {$table};";
$sql = "SELECT MIN($column) AS id FROM {$table};";
$result1 = pg_query($dbcon, $sql);
$resp = pg_fetch_assoc($result1);
@ -101,25 +111,57 @@ function importIdTables($dbcon, $organizacao)
___Gravalog(" [ $sql ] - Não foi possível o ID da tabela {$table};");
}
$query = "CREATE TEMPORARY TABLE t{$table} AS SELECT * FROM {$table} WHERE $column = 1;";
$query .= "ALTER TABLE t{$table} DROP COLUMN $column;";
$query .= "INSERT INTO {$table} SELECT * FROM t{$table};";
$query = "CREATE TEMPORARY TABLE t{$table} AS SELECT * FROM {$table} WHERE $column = 1 LIMIT 1; \n";
$query .= "ALTER TABLE t{$table} DROP COLUMN $column; \n";
$query .= "UPDATE {$table} SET org_id = $organizacao WHERE $column = $id;";
$query .= "INSERT INTO {$table} SELECT * FROM t{$table} LIMIT 1; \n";
pg_query($dbcon, $query);
$result = pg_query($dbcon, $query);
if (!$result) {
throw new Exception("Não foi possível criar a tabela default [ {$table} ]!");
}
pg_query($dbcon, "DROP TABLE IF EXISTS t{$table};");
}
return true;
}
function criarGruposDefault($dbcon)
function criarGruposDefault($dbcon, $org_id)
{
$query = "SELECT gp_id, gp_nome FROM pbx_grupo
$query = "INSERT INTO pbx_grupo (gp_nome, gp_status, gp_user, gp_system, org_id)
SELECT gp_nome, gp_status, gp_user, gp_system, $org_id
FROM pbx_grupo
WHERE gp_nome IN ('ADMINISTRADOR','SUPERVISOR','AGENTE')
AND gp_system = 0 AND org_id = 1";
AND gp_system = 0
AND org_id = 1
RETURNING gp_id, gp_nome";
$result = pg_query($dbcon, $query);
$gps = pg_fetch_all($result);
foreach ($gps as $g) {
$sql = "INSERT INTO pbx_grupo_funcoes (gp_id, fun_id, org_id)
SELECT {$g['gp_id']}, fun_id, {$org_id}
FROM pbx_grupo_funcoes
WHERE gp_nome = '{$g['gp_nome']}'
AND gp_system = 0
AND org_id = 1; ";
pg_query($dbcon, $sql);
}
}
$query = "SELECT fun_id FROM pbx_grupo_funcoes
WHERE gp_id = 28
ORDER BY 1";
function addUserOrganizacaoGrupo($dbcon, $org_id)
{
$iduser = $_SESSION["SSidUser"];
if (!$iduser) {
return;
}
$query = "INSERT INTO pbx_organizacao_usuarios (id_usuario,id_organizacao,updated_at)
VALUES($iduser, $org_id,'NOW()');";
$result = pg_query($dbcon, $query);
if ($result) {
return true;
}
return false;
}
function ___Gravalog($message)

6
cadastros/organizacao/organizacao.php

@ -10,8 +10,8 @@ $filtro = isset($_REQUEST["paramPesquisa"]) ? trim($_REQUEST["paramPesquisa"]) :
$filtroNovo = !isset($_REQUEST["pgn"]) ? '' : sprintf("&paramPesquisa%s&pgn=%s&bloco=%s&pg=%s&status=%s", $_REQUEST["paramPesquisa"], $_REQUEST["pgn"], $_REQUEST["bloco"], $_REQUEST["pg"], $_REQUEST["status"]);
$recontaPag = (GetFormAcao() == FORM_DELETE) || isset($_POST['pesquisa']);
$statusAtivo = isset($_REQUEST["status"]) ? $_REQUEST["status"] : 1;
$imgNovo = "<img src=\"images/novo.gif\" width=\"16\" height=\"16\" align=\"absmiddle\" border=\"0\" title=\"Inclui nova empresa\">";
$imgNovo = "<a href=\"javaScript:NovaJanela('index.php?idProg=370&id=$filtroNovo', 'empresasCad', '$janW', '$janH', 'resizable=NO,scrollbars=NO');\">$imgNovo Nova empresa</a>";
$imgNovo = "<img src=\"images/novo.gif\" width=\"16\" height=\"16\" align=\"absmiddle\" border=\"0\" title=\"Inclui nova organização\">";
$imgNovo = "<a href=\"javaScript:NovaJanela('index.php?idProg=370&id=$filtroNovo', 'empresasCad', '$janW', '$janH', 'resizable=NO,scrollbars=NO');\">$imgNovo Nova Organização</a>";
$id = isset($_GET["id"]) ? $_GET["id"] : '';
$idDelete = isset($_GET["idDelete"]) ? $_GET["idDelete"] : null;
@ -49,7 +49,7 @@ $linha = "";
while ($dados = @pg_fetch_array($result)) {
$id = $dados["id"];
$nome = $dados["nome"];
$imgEdit = "<img src=\"imgSite/editaUser.png\" width=\"16\" height=\"16\" border=\"0\" title=\"Editar empresa: $nome\">";
$imgEdit = "<img src=\"imgSite/editaUser.png\" width=\"16\" height=\"16\" border=\"0\" title=\"Editar Organização: $nome\">";
$imgAtribuir = "<img src=\"admin/images/usuarios.gif\" width=\"16\" height=\"16\" border=\"0\" title=\"Atribuir usuários a $nome\">";
$imgDelete = sprintf("<img src=\"imgSite/%s\" width=\"16\" height=\"16\" border=\"0\" title=\" %s\">", ($dados['status'] == 1 ? 'deletaUser.png' : 'deletaUserOff.png'), ($dados['status'] == 1 ? "Desabilitar e remover a organização $nome" : "A organização $nome foi desativada!"));
$imgEdit = "<a href=\"javaScript:NovaJanela('index.php?idProg=370&id=$id', 'empresaCad', '$janW', '$janH', 'resizable=NO,scrollbars=NO');\"> $imgEdit</a>";

3
include/util/funcoesApl.php

@ -1354,7 +1354,8 @@ function GetAllOrganizacao()
$query = "SELECT po.id, po.nome, master
FROM pbx_organizacao po
INNER JOIN pbx_organizacao_usuarios pou ON pou.id_organizacao = po.id
WHERE pou.id_usuario = {$_SESSION['SSidUser']}";
WHERE pou.id_usuario = {$_SESSION['SSidUser']}
AND status = 1";
$result = pg_query($dbcon, $query);
if ($result) {

29
projeto/base/sql/versao-1.9.0.sql

@ -87,20 +87,25 @@ ALTER TABLE pbx_usuarios ADD COLUMN org_padrao int
----- ADICAO DE ID NAS TABELAS -----
------------------------------------------
DROP INDEX "idxSipRamaisNome";
ALTER TABLE pbx_sip_general ADD COLUMN id SERIAL PRIMARY KEY;
ALTER TABLE pbx_iax_general ADD COLUMN id SERIAL PRIMARY KEY;
ALTER TABLE pbx_facilidades ADD COLUMN id SERIAL PRIMARY KEY;
ALTER TABLE pbx_features_general ADD COLUMN id SERIAL PRIMARY KEY;
ALTER TABLE pbx_features_featuremap ADD COLUMN id SERIAL PRIMARY KEY;
ALTER TABLE pbx_voicemail_general ADD COLUMN id SERIAL PRIMARY KEY;
ALTER TABLE pbx_usuarios DROP CONSTRAINT pbx_usuarios_new_matricula_key;
DROP INDEX "pbx_usuarios_matricula_key";
DROP INDEX "idxUsuariosApelido";
ALTER TABLE pbx_grupo DROP CONSTRAINT "idxGrupNome";
DROP INDEX "idxGrupNome";
-----------------
ALTER TABLE pbx_grupo DROP CONSTRAINT "idxGrupNome";
ALTER TABLE pbx_usuarios DROP CONSTRAINT pbx_usuarios_new_matricula_key;
ALTER TABLE pbx_grupo_usuario DROP CONSTRAINT "pkGpUserId";
ALTER TABLE pbx_grupo ADD CONSTRAINT gp_id PRIMARY KEY (gp_id);
ALTER TABLE pbx_workflow_parametros DROP COLUMN wkf_id;
ALTER TABLE pbx_workflow_parametros ADD COLUMN wkf_id SERIAL PRIMARY KEY;
ALTER TABLE pbx_parametros DROP COLUMN id;
ALTER TABLE pbx_parametros ADD COLUMN id SERIAL PRIMARY KEY;
-----------------
-- AUTOMATIZADO NO IMPORTAEMPRESA.PHP
-- ALTER TABLE pbx_workflow_parametros DROP COLUMN wkf_id;
-- ALTER TABLE pbx_parametros DROP COLUMN id;
-- ALTER TABLE pbx_sip_general ADD COLUMN id SERIAL PRIMARY KEY;
-- ALTER TABLE pbx_iax_general ADD COLUMN id SERIAL PRIMARY KEY;
-- ALTER TABLE pbx_facilidades ADD COLUMN id SERIAL PRIMARY KEY;
-- ALTER TABLE pbx_features_general ADD COLUMN id SERIAL PRIMARY KEY;
-- ALTER TABLE pbx_features_featuremap ADD COLUMN id SERIAL PRIMARY KEY;
-- ALTER TABLE pbx_voicemail_general ADD COLUMN id SERIAL PRIMARY KEY;
-- ALTER TABLE pbx_workflow_parametros ADD COLUMN wkf_id SERIAL PRIMARY KEY;
-- ALTER TABLE pbx_parametros ADD COLUMN id SERIAL PRIMARY KEY;
-----------------

4
templates/cadastros/organizacao/cadOrganizacao.tpl

@ -7,15 +7,17 @@
</td>
</tr>
<tr>
<th width="120" align="left">Nome da Empresa</th>
<th width="120" align="left">Nome da Organização</th>
<td><input name="nome" type="text" id="nome" value="{$nome}" size="60" maxlength="60" ></td>
</tr>
{if isAdmin()}
<tr>
<th align="left">Empresa Master</th>
<td>
<input name="master" type="checkbox" id="status" value= "1" {$master}>
</td>
</tr>
{/if}
<tr>
<th align="left">Status</th>
<td>

Loading…
Cancel
Save