From 27a0c8f8b5b9d11881cd587e26787e5a0d4ad4ca Mon Sep 17 00:00:00 2001 From: "douglas.strappasson" Date: Fri, 18 Aug 2023 09:37:43 -0400 Subject: [PATCH] correcao em scripts sql e ajuste na funcao para quando a nova licenca possuir um cnpj diferente da licenca atual, ela vai excluir a antiga --- include/util/funcoesLicenca.php | 10 ++++- projeto/base/sql/grupo_licenca_developers.sql | 39 +++++++++++++++++++ projeto/base/sql/versao-1.7.12.sql | 18 ++++----- 3 files changed, 56 insertions(+), 11 deletions(-) create mode 100644 projeto/base/sql/grupo_licenca_developers.sql diff --git a/include/util/funcoesLicenca.php b/include/util/funcoesLicenca.php index e5a83a11..ab839704 100755 --- a/include/util/funcoesLicenca.php +++ b/include/util/funcoesLicenca.php @@ -260,7 +260,7 @@ function __validLicenca($dbcon, $data) { if ($respbx['clto_cnpj'] == $data['clto_document']) { __updateLicenca($dbcon, $data, $columns, $table, $where, $filter); } else { - __sendLicenca($dbcon, $data, $columns, $table, $where, $filter); + __sendLicenca($dbcon, $data, $columns, $table); } if (!pg_query($dbcon, 'COMMIT')) { @@ -289,8 +289,14 @@ function __updateLicenca($dbcon, $data, $columns, $table, $where, $filter) { } } -function __sendLicenca($dbcon, $data, $columns, $table, $where, $filter) { +function __sendLicenca($dbcon, $data, $columns, $table) { $values = array_values($data); + + $query = sprintf("TRUNCATE TABLE %s", $table); + if (!pg_query($dbcon, $query)) { + throw new Exception("Não foi possível inserir as informações da licença no [Simples IP]!"); + } + $query = sprintf("INSERT INTO %s (%s) VALUES('%s');", $table, implode(',', $columns), implode("','", $values)); if (!pg_query($dbcon, $query)) { diff --git a/projeto/base/sql/grupo_licenca_developers.sql b/projeto/base/sql/grupo_licenca_developers.sql new file mode 100644 index 00000000..abd73a5f --- /dev/null +++ b/projeto/base/sql/grupo_licenca_developers.sql @@ -0,0 +1,39 @@ +INSERT INTO pbx_grupo (gp_id, gp_nome, gp_status, user_id, gp_user, gp_system, gp_descricao) +VALUES ('-1', 'DEVELOPERS', 1, 0, 0, 1, 'Grupo para teste desenvolvimento'); + +-- Cria a funcao para facilitar a insercao dos dados do grupo das licencas. +CREATE OR REPLACE FUNCTION inserir_dados_licenca_grupos(grupo_nome text, funcao_ids integer[]) +RETURNS VOID AS +$$ +DECLARE + grupo_id integer; +BEGIN + SELECT gp_id INTO grupo_id + FROM pbx_grupo + WHERE gp_nome = grupo_nome; + + IF grupo_id IS NOT NULL THEN + INSERT INTO pbx_grupo_funcoes (gp_id, fun_id) + SELECT grupo_id, unnest(funcao_ids); + ELSE + RAISE EXCEPTION 'Grupo nao encontrado: %', grupo_nome; + END IF; +END; +$$ +LANGUAGE plpgsql; + +-- Chama a funcao passando o nome do grupo e a lista de funcoes associadas. +SELECT inserir_dados_licenca_grupos('DEVELOPERS', ARRAY[1,2,3,4,5,7,8,9,10,11,12,13,15,16,17,18,19,21,22,23,24,25,27,28,29,31, + 33,34,36,39,40,41,42,43,44,45,46,47,48,108,49,52,53,54,55,56,58,61,62, + 63,64,65,66,69,70,71,72,73,75,76,77,78,80,81,82,83,84,86,89,90,91,92,93, + 94,96,97,98,99,100,101,102,105,106,107,109,110,111,113,114,115,116,117,118, + 119,120,122,125,126,127,128,129,130,131,132,135,137,138,140,141,142,143,144, + 145,146,147,148,149,150,151,152,154,155,156,157,158,159,160,161,162,163,166, + 167,168,169,170,172,175,186,187,188,189,190,191,192,193,194,196,197,198,199, + 200,202,203,204,205,208,209,210,211,212,213,214,217,218,219,220,112] +); + +-- Exclui a funcao do banco. +DROP FUNCTION IF EXISTS inserir_dados_licenca_grupos(text, integer[]); + + diff --git a/projeto/base/sql/versao-1.7.12.sql b/projeto/base/sql/versao-1.7.12.sql index 36c4e572..6576077a 100644 --- a/projeto/base/sql/versao-1.7.12.sql +++ b/projeto/base/sql/versao-1.7.12.sql @@ -60,20 +60,20 @@ ALTER TABLE IF EXISTS public.pbx_licenca_pa_fixo --cria as colunas necessárias ALTER TABLE IF EXISTS pbx_grupo - ADD COLUMN gp_system int; + ADD COLUMN gp_system int DEFAULT 0; ALTER TABLE IF EXISTS pbx_grupo ADD COLUMN gp_descricao varchar(255); --insere os grupos e sua descricao -INSERT INTO pbx_grupo (gp_nome, gp_status, user_id, gp_user, gp_system, gp_descricao) -VALUES ('SMART', 1, 0, 0, 1, 'Linha com baixo custo e e recursos basicos para pequenos negocios.'), - ('ISP', 1, 0, 0, 1, 'Atende o nicho de provedores de internet e possui alguns recursos exclusivos para o setor.'), - ('CORP', 1, 0, 0, 1, 'Perfil desenhado para atender o segmento corporativo com exigencia de alta disponibilidade e recursos avancados.'), - ('SX', 1, 0, 0, 1, 'A linha de melhor custo beneficio do mercado, flexivel adapta-se a qualquer modelo de negocio.'), - ('ALGAR', 1, 0, 0, 1, 'Perfil criado para atender a parceria Algar, utilizado em sua revendas.'), - ('GOV', 1, 0, 0, 1, 'Desenvolvido para clientes governamentais com altos requisitos de segurança.'), - ('SMART+', 1, 0, 0, 1, 'Linha com baixo custo e uma gama de recursos avançados para pequenos negocios.'); +INSERT INTO pbx_grupo (gp_id, gp_nome, gp_status, user_id, gp_user, gp_system, gp_descricao) +VALUES ('-2', 'SMART', 1, 0, 0, 1, 'Linha com baixo custo e e recursos basicos para pequenos negocios.'), + ('-3', 'ISP', 1, 0, 0, 1, 'Atende o nicho de provedores de internet e possui alguns recursos exclusivos para o setor.'), + ('-4', 'CORP', 1, 0, 0, 1, 'Perfil desenhado para atender o segmento corporativo com exigencia de alta disponibilidade e recursos avancados.'), + ('-5', 'SX', 1, 0, 0, 1, 'A linha de melhor custo beneficio do mercado, flexivel adapta-se a qualquer modelo de negocio.'), + ('-6', 'ALGAR', 1, 0, 0, 1, 'Perfil criado para atender a parceria Algar, utilizado em sua revendas.'), + ('-7', 'GOV', 1, 0, 0, 1, 'Desenvolvido para clientes governamentais com altos requisitos de segurança.'), + ('-8', 'SMART+', 1, 0, 0, 1, 'Linha com baixo custo e uma gama de recursos avançados para pequenos negocios.'); -- Cria a função para facilitar a inserção dos dados do grupo das licenças.