ALTER TABLE pbx_queues_grupos ADD COLUMN libera_pausa VARCHAR(255) DEFAULT(0); ALTER TABLE pbx_usuarios ADD COLUMN perm_licenca INT DEFAULT(0); CREATE TABLE pbx_controle_licenciamento( clto_cnpj varchar(14) not null, clto_contrato_numero varchar(32) not null, clto_razao_social varchar(128) not null, clto_nome_fantasia varchar(128), clto_atividade_empresa varchar(64), clto_cidade_empresa varchar(64), clto_uf_empresa varchar(2), clto_contato_id varchar(64), clto_contato_nome varchar(64), clto_contato_email varchar(64), clto_contato_fone varchar(32), clto_perfil_aplicacao_id int not null, clto_contrato_assinatura date, clto_contrato_inicio date, clto_contrato_fim date, clto_licenca_pa int not null default 0, clto_licenca_pa_fixo int not null default 0, clto_licenca_ramal int not null default 0, clto_licenca_supervisor int not null default 0, clto_licenca_discador_preview int not null default 0, clto_licenca_discador_powerdial int not null default 0, clto_licenca_discador_predictive int not null default 0, clto_licenca_pesquisa int not null default 0, clto_licenca_tarifador int not null default 0, clto_licenca_whatsapp int not null default 0, clto_licenca_workflow int not null default 0, clto_licenca_mesaoperadora int not null default 0, clto_mult_channel int not null default 0, clto_licenca_helpdesk int not null default 0, clto_licenca_crm int not null default 0, clto_licenca_manager_one int not null default 0, clto_licenca_help_custom int not null default 0, clto_licenca_chat int not null default 0, clto_data_registro date not null, clto_user_registro varchar(64), clto_server_registro varchar(255), clto_confirma_registro date, clto_data_log varchar(1024), constraint "pkPbxControleLicenciamento" primary key(clto_cnpj, clto_contrato_numero) ); -- Criar a tabela pbx_licenca_pa_fixo CREATE TABLE IF NOT EXISTS public.pbx_licenca_pa_fixo ( id SERIAL PRIMARY KEY, licenca varchar(255) NOT NULL, id_user varchar(10), last_update timestamp NOT NULL DEFAULT NOW(), limit_update timestamp NOT NULL DEFAULT (NOW() + INTERVAL '5 MINUTES') ); -- Definir o proprietário da tabela ALTER TABLE IF EXISTS public.pbx_licenca_pa_fixo OWNER TO contacte; --cria as colunas necessárias ALTER TABLE IF EXISTS pbx_grupo 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_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. 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 não encontrado: %', grupo_nome; END IF; END; $$ LANGUAGE plpgsql; -- Chama a função passando o nome do grupo e a lista de funções associadas. -- "SMART" SELECT inserir_dados_licenca_grupos('SMART', ARRAY[3, 1, 4, 168, 5, 13, 10, 16, 41, 42, 43, 44, 45, 46, 47, 48, 108, 122, 163, 49, 52, 53, 54, 193, 55, 21, 56, 58, 125, 199, 17, 160, 161, 186, 187, 200, 61, 62, 64, 65, 66, 69, 70, 71, 72, 73, 75, 76, 77, 78, 80, 81, 82, 83, 141, 84, 86, 89, 90, 91, 92, 93, 94, 107, 96, 97, 98, 99, 100, 101, 102, 105, 114, 115, 116, 189, 190, 127, 106, 137, 138, 140, 167, 194, 112] ); -- "ISP" SELECT inserir_dados_licenca_grupos('ISP', ARRAY[1, 2, 3, 4, 5, 7, 8, 9, 120, 168, 175, 214, 217, 218, 219, 220, 10, 11, 13, 15, 16, 172, 17, 18, 19, 22, 23, 24, 25, 27, 28, 29, 31, 118, 166, 33, 34, 36, 39, 40, 117, 119, 126, 162, 169, 188, 202, 213, 41, 42, 43, 44, 45, 46, 47, 48, 108, 122, 163, 49, 52, 53, 54, 193, 55, 21, 56, 58, 125, 199, 142, 143, 144, 145, 146, 147, 148, 149, 160, 161, 186, 187, 200, 61, 62, 63, 64, 65, 66, 69, 70, 71, 72, 73, 75, 76, 77, 78, 80, 81, 82, 83, 141, 84, 86, 89, 90, 91, 92, 93, 94, 107, 96, 97, 98, 99, 100, 101, 102, 103, 105, 109, 110, 111, 113, 170, 204, 205, 114, 115, 116, 127, 106, 129, 130, 131, 132, 135, 137, 138, 140, 167, 150, 151, 152, 189, 190, 191, 194, 112] ); --"CORP" SELECT inserir_dados_licenca_grupos('CORP', ARRAY[1, 2, 3, 4, 5, 7, 8, 9, 168, 214, 217, 218, 219, 220, 10, 11, 13, 15, 16, 172, 17, 18, 19, 22, 23, 24, 25, 27, 28, 29, 31, 118, 166, 33, 34, 36, 39, 40, 117, 119, 126, 162, 169, 188, 202, 213, 41, 42, 43, 44, 45, 46, 47, 48, 108, 122, 163, 49, 52, 53, 54, 193, 55, 21, 56, 58, 125, 199, 142, 143, 144, 145, 146, 147, 148, 149, 160, 161, 186, 187, 200, 61, 62, 63, 64, 65, 66, 69, 70, 71, 72, 73, 75, 76, 77, 78, 80, 81, 82, 83, 141, 84, 86, 89, 90, 91, 92, 93, 94, 107, 96, 97, 98, 99, 100, 101, 102, 103, 105, 109, 110, 111, 113, 170, 204, 205, 114, 115, 116, 127, 106, 129, 130, 131, 132, 135, 137, 138, 140, 167, 150, 151, 152, 189, 190, 191, 194, 120, 175, 209, 12, 208, 210, 211, 212, 112] ); -- "SX" SELECT inserir_dados_licenca_grupos('SX', ARRAY[1, 2, 3, 4, 5, 7, 8, 9, 168, 175, 214, 217, 218, 220, 10, 11, 13, 15, 16, 172, 17, 18, 19, 22, 23, 24, 25, 27, 28, 29, 31, 118, 166, 33, 34, 36, 39, 40, 117, 119, 126, 162, 169, 188, 202, 213, 41, 42, 43, 44, 45, 46, 47, 48, 108, 122, 163, 49, 52, 53, 54, 193, 55, 21, 56, 58, 125, 199, 142, 143, 144, 145, 146, 147, 148, 149, 160, 161, 186, 187, 200, 61, 62, 63, 64, 65, 66, 69, 70, 71, 72, 73, 75, 76, 77, 78, 80, 81, 82, 83, 141, 84, 86, 89, 90, 91, 92, 93, 94, 107, 96, 97, 98, 99, 100, 101, 102, 103, 105, 109, 110, 111, 113, 170, 204, 205, 114, 115, 116, 127, 106, 129, 130, 131, 132, 135, 137, 138, 140, 167, 150, 151, 152, 189, 190, 191, 194, 219, 112] ); -- "ALGAR" SELECT inserir_dados_licenca_grupos('ALGAR', ARRAY[1, 2, 3, 4, 5, 7, 8, 9, 168, 214, 217, 218, 219, 220, 10, 11, 13, 15, 16, 172, 17, 18, 19, 22, 23, 24, 25, 27, 28, 29, 31, 118, 166, 33, 34, 36, 39, 40, 117, 119, 126, 162, 169, 188, 202, 213, 41, 42, 43, 44, 45, 46, 47, 48, 108, 122, 163, 49, 52, 53, 54, 193, 55, 21, 56, 58, 125, 199, 142, 143, 144, 145, 146, 147, 148, 149, 160, 161, 186, 187, 200, 61, 62, 63, 64, 65, 66, 69, 70, 71, 72, 73, 75, 76, 77, 78, 80, 81, 82, 83, 141, 84, 86, 89, 90, 91, 92, 93, 94, 107, 96, 97, 98, 99, 100, 101, 102, 103, 105, 109, 110, 111, 113, 170, 204, 205, 114, 115, 116, 127, 106, 129, 130, 131, 132, 135, 137, 138, 140, 167, 150, 151, 152, 189, 190, 191, 194, 112] ); -- "GOV" SELECT inserir_dados_licenca_grupos('GOV', ARRAY[3, 1, 4, 168, 5, 13, 10, 16, 41, 42, 43, 44, 45, 46, 47, 48, 108, 122, 163, 49, 52, 53, 54, 193, 55, 21, 56, 58, 125, 199, 17, 160, 161, 186, 187, 200, 61, 62, 64, 65, 66, 69, 70, 71, 72, 73, 75, 76, 77, 78, 80, 81, 82, 83, 141, 84, 86, 89, 90, 91, 92, 93, 94, 107, 96, 97, 98, 99, 100, 101, 102, 105, 114, 115, 116, 189, 190, 127, 106, 137, 138, 140, 167, 194, 112] ); -- "SMART+" SELECT inserir_dados_licenca_grupos('SMART+', ARRAY[2, 1, 3, 4, 5, 8, 9, 7, 220, 10, 11, 13, 15, 16, 172, 18, 19, 22, 23, 24, 25, 27, 28, 29, 31, 118, 166, 33, 34, 36, 39, 40, 117, 119, 126, 162, 169, 188, 202, 213, 17, 160, 161, 41, 42, 43, 44, 45, 46, 47, 48, 108, 122, 163, 49, 52, 53, 54, 193, 55, 21, 56, 58, 125, 199, 142, 143, 144, 145, 61, 62, 64, 65, 66, 69, 70, 71, 72, 73, 75, 76, 77, 78, 80, 81, 82, 83, 141, 84, 86, 89, 90, 91, 92, 93, 94, 107, 96, 97, 98, 99, 100, 101, 102, 103, 105, 114, 115, 116, 189, 190, 127, 137, 138, 140, 167, 129, 112, 194] ); -- exclui a funcao do banco DROP FUNCTION IF EXISTS inserir_dados_licenca_grupos(text, integer[]);