@ -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)