|
|
|
@ -1,23 +1,27 @@
|
|
|
|
|
|
|
|
|
|
--Cria um grupo |
|
|
|
|
INSERT INTO pbx_grupo (gp_id, gp_nome, gp_status, user_id, gp_user, gp_system, gp_descricao) |
|
|
|
|
VALUES ('-10', 'CRM', 1, 0, 0, 1, 'Grupo para servidor do CRM SimplesIp'); |
|
|
|
|
-- Cria a funcao para facilitar a insercao dos dados do grupo das licencas. |
|
|
|
|
DO $$ |
|
|
|
|
DECLARE |
|
|
|
|
grupo_id_existente integer; |
|
|
|
|
BEGIN |
|
|
|
|
SELECT gp_id INTO grupo_id_existente |
|
|
|
|
FROM pbx_grupo |
|
|
|
|
WHERE gp_nome = 'CRM'; |
|
|
|
|
IF grupo_id_existente IS NULL THEN |
|
|
|
|
INSERT INTO pbx_grupo (gp_id, gp_nome, gp_status, user_id, gp_user, gp_system, gp_descricao) |
|
|
|
|
VALUES ('-10', 'CRM', 1, 0, 0, 1, 'Grupo para servidor do CRM SimplesIp'); |
|
|
|
|
END IF; |
|
|
|
|
END $$; |
|
|
|
|
CREATE OR REPLACE FUNCTION inserir_dados_licenca_grupos(grupo_nome text, funcao_ids integer[]) |
|
|
|
|
RETURNS VOID AS |
|
|
|
|
$$ |
|
|
|
|
DECLARE |
|
|
|
|
grupo_id integer; |
|
|
|
|
BEGIN |
|
|
|
|
-- Obtém o ID do grupo pelo nome |
|
|
|
|
SELECT gp_id INTO grupo_id |
|
|
|
|
FROM pbx_grupo |
|
|
|
|
WHERE gp_nome = grupo_nome; |
|
|
|
|
-- Se o grupo não foi encontrado, lança uma exceção |
|
|
|
|
IF grupo_id IS NULL THEN |
|
|
|
|
RAISE EXCEPTION 'Grupo não encontrado: %', grupo_nome; |
|
|
|
|
END IF; |
|
|
|
|
-- Insere apenas as funções que ainda não estão associadas ao grupo |
|
|
|
|
INSERT INTO pbx_grupo_funcoes (gp_id, fun_id) |
|
|
|
|
SELECT grupo_id, f_id |
|
|
|
|
FROM unnest(funcao_ids) AS f_id |
|
|
|
@ -29,7 +33,5 @@ BEGIN
|
|
|
|
|
END; |
|
|
|
|
$$ |
|
|
|
|
LANGUAGE plpgsql; |
|
|
|
|
-- Chama a funcao passando o nome do grupo e a lista de funcoes associadas. |
|
|
|
|
SELECT inserir_dados_licenca_grupos('CRM', ARRAY[1, 4, 5, 9, 10, 13, 16, 36, 222]); |
|
|
|
|
-- Exclui a funcao do banco. |
|
|
|
|
DROP FUNCTION IF EXISTS inserir_dados_licenca_grupos(text, integer[]); |