/* ********************************************************************************** * * * @package URBEM CNM - Soluções em Gestão Pública * * @copyright (c) 2013 Confederação Nacional de Municípos * * @author Confederação Nacional de Municípios * * * * O URBEM CNM é um software livre; você pode redistribuí-lo e/ou modificá-lo sob * * os termos da Licença Pública Geral GNU conforme publicada pela Fundação do * * Software Livre (FSF - Free Software Foundation); na versão 2 da Licença. * * * * Este programa é distribuído na expectativa de que seja útil, porém, * * SEM NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU * * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral do GNU * * para mais detalhes. * * * * Você deve ter recebido uma cópia da Licença Pública Geral do GNU "LICENCA.txt" * * com este programa; se não, escreva para a Free Software Foundation Inc., * * no endereço 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * * ********************************************************************************** */ /* * * Script de DDL e DML * * Versao 2.03.4 * * Fabio Bertoldi - 20141210 * */ ---------------- -- Ticket #21932 ---------------- /* * Script de Virada de Ano: virada_para_2015.sql */ -- Exclusao de possiveis funcoes de manutencao. CREATE OR REPLACE FUNCTION public.manutencaokiller() RETURNS VOID AS $$ DECLARE reRegistro RECORD; varFuncao VARCHAR; BEGIN FOR reRegistro IN SELECT 'DROP FUNCTION ' || pg_namespace.nspname || '.' || pg_proc.proname || '( ' || Btrim(pg_catalog.oidvectortypes(pg_proc.proargtypes)) || ' ) ' as comando FROM pg_catalog.pg_proc LEFT JOIN pg_catalog.pg_namespace ON pg_namespace.oid = pg_proc.pronamespace WHERE pg_proc.prorettype != 'pg_catalog.cstring'::pg_catalog.regtype AND pg_namespace.nspname != 'pg_catalog' AND ( pg_proc.proname = 'manutencao' OR pg_proc.proname ILIKE 'temp%' OR pg_proc.proname ILIKE 'tmp%' ) ORDER BY 1 LOOP varFuncao := reRegistro.comando; EXECUTE varFuncao; END LOOP; RETURN; END; $$ LANGUAGE 'plpgsql'; SELECT public.manutencaokiller(); DROP FUNCTION public.manutencaokiller(); -- -- Procedimento 01 -- CREATE TEMP TABLE tmp_exer_permis AS SELECT ano_exercicio FROM administracao.permissao GROUP BY ano_exercicio ORDER BY 1 ; DELETE FROM administracao.auditoria_detalhe WHERE numcgm = 0 AND cod_acao IN ( SELECT acao.cod_acao FROM administracao.modulo , administracao.funcionalidade , administracao.acao WHERE modulo.cod_modulo = funcionalidade.cod_modulo AND funcionalidade.cod_funcionalidade = acao.cod_funcionalidade ) ; DELETE FROM administracao.auditoria WHERE numcgm = 0 AND cod_acao IN ( SELECT acao.cod_acao FROM administracao.modulo , administracao.funcionalidade , administracao.acao WHERE modulo.cod_modulo = funcionalidade.cod_modulo AND funcionalidade.cod_funcionalidade = acao.cod_funcionalidade ) ; DELETE FROM administracao.permissao WHERE numcgm = 0 AND cod_acao IN ( SELECT acao.cod_acao FROM administracao.modulo , administracao.funcionalidade , administracao.acao WHERE modulo.cod_modulo = funcionalidade.cod_modulo AND funcionalidade.cod_funcionalidade = acao.cod_funcionalidade ) ; CREATE OR REPLACE FUNCTION public.manutencao() RETURNS VOID AS $$ DECLARE recRecno RECORD; BEGIN FOR recRecno IN SELECT ano_exercicio FROM tmp_exer_permis GROUP BY ano_exercicio ORDER BY 1 LOOP INSERT INTO administracao.permissao ( numcgm , cod_acao , ano_exercicio ) SELECT 0 , acao.cod_acao , recRecno.ano_exercicio FROM administracao.modulo , administracao.funcionalidade , administracao.acao WHERE ( ( modulo.cod_modulo = 2 OR modulo.cod_modulo = 4 ) OR ( modulo.cod_modulo = 30 AND cod_acao IN (1124,1335,1334,1127,1126,1125,1128) ) ) AND modulo.cod_modulo = funcionalidade.cod_modulo AND funcionalidade.cod_funcionalidade = acao.cod_funcionalidade AND 0 = ( SELECT COALESCE(Count(1),0) FROM administracao.permissao WHERE permissao.ano_exercicio = recRecno.ano_exercicio AND permissao.cod_acao = acao.cod_acao AND permissao.numcgm = 0 ) ; END LOOP; RETURN; END; $$ LANGUAGE 'plpgsql' ; SELECT public.manutencao(); DROP FUNCTION public.manutencao(); INSERT INTO administracao.permissao ( numcgm , cod_acao , ano_exercicio ) SELECT numcgm , cod_acao , '2015' FROM administracao.permissao AS perm WHERE perm.ano_exercicio = '2014' AND 0 = ( SELECT COALESCE(Count(1),0) FROM administracao.permissao WHERE permissao.ano_exercicio = '2015' AND permissao.cod_acao = perm.cod_acao AND permissao.numcgm = perm.numcgm ) ; DELETE FROM Administracao.permissao WHERE numcgm != 0 AND ano_exercicio = '2014' ; -- Procedimento 02 INSERT INTO administracao.configuracao ( exercicio , cod_modulo , parametro , valor ) SELECT '2015' , cod_modulo , parametro , valor FROM administracao.configuracao AS proximo WHERE exercicio='2014' AND NOT EXISTS ( SELECT 1 FROM administracao.configuracao WHERE exercicio = '2015' and cod_modulo = proximo.cod_modulo and parametro = proximo.parametro ) ; -- No caso da prefeitura ter inserido uma nova entidade apos a criacao do orcamento 2014. INSERT INTO orcamento.entidade ( exercicio , cod_entidade , numcgm , cod_responsavel , cod_resp_tecnico , cod_profissao , sequencia ) SELECT '2015' , cod_entidade , numcgm , cod_responsavel , cod_resp_tecnico , cod_profissao , sequencia FROM orcamento.entidade AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM orcamento.entidade WHERE exercicio = '2015' AND cod_entidade = proximo.cod_entidade ) ; -- No caso da prefeitura ter inserido uma nova entidade apos a criacao do orcamento 2014. INSERT INTO orcamento.usuario_entidade ( exercicio , numcgm , cod_entidade ) SELECT '2015' , numcgm , cod_entidade FROM orcamento.usuario_entidade as proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM orcamento.usuario_entidade WHERE exercicio = '2015' AND cod_entidade = proximo.cod_entidade ) ; INSERT INTO administracao.configuracao_entidade ( exercicio , cod_entidade , cod_modulo , parametro , valor ) SELECT '2015' , cod_entidade , cod_modulo , parametro , valor FROM administracao.configuracao_entidade as proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM administracao.configuracao_entidade WHERE exercicio = '2015' AND cod_entidade = proximo.cod_entidade AND cod_modulo = proximo.cod_modulo AND parametro = proximo.parametro ) ; INSERT INTO administracao.entidade_rh ( exercicio , cod_entidade , schema_cod ) SELECT '2015' , cod_entidade , schema_cod FROM administracao.entidade_rh as proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM administracao.entidade_rh WHERE exercicio = '2015' AND cod_entidade = proximo.cod_entidade ) ; -- ASSINATURA INSERT INTO administracao.assinatura ( exercicio , cod_entidade , numcgm , timestamp , cargo ) SELECT '2015' AS exercicio , cod_entidade , numcgm , timestamp , cargo FROM administracao.assinatura AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM administracao.assinatura WHERE exercicio = '2015' AND cod_entidade = proximo.cod_entidade AND numcgm = proximo.numcgm AND timestamp = proximo.timestamp AND cargo = proximo.cargo ) ; INSERT INTO administracao.assinatura_crc ( exercicio , cod_entidade , numcgm , timestamp , insc_crc ) SELECT '2015' AS exercicio , cod_entidade , numcgm , timestamp , insc_crc FROM administracao.assinatura_crc AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM administracao.assinatura_crc WHERE exercicio = '2015' AND cod_entidade = proximo.cod_entidade AND numcgm = proximo.numcgm AND timestamp = proximo.timestamp AND insc_crc = proximo.insc_crc ) ; INSERT INTO administracao.assinatura_modulo ( exercicio , cod_entidade , numcgm , timestamp , cod_modulo ) SELECT '2015' AS exercicio , cod_entidade , numcgm , timestamp , cod_modulo FROM administracao.assinatura_modulo AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM administracao.assinatura_modulo WHERE exercicio = '2015' AND cod_entidade = proximo.cod_entidade AND numcgm = proximo.numcgm AND timestamp = proximo.timestamp AND cod_modulo = proximo.cod_modulo ) ; -- Procedimento 03 UPDATE administracao.configuracao SET valor = '2015' WHERE exercicio = '2015' AND parametro = 'ano_exercicio' ; DELETE FROM administracao.configuracao WHERE exercicio = '2014' AND parametro = 'diretorio' ; -- VERIFICACAO DE UTILIZACAO OU NAO DOS MODULOS GF -- ----------------------------------------------------- CREATE OR REPLACE FUNCTION atualiza_gf() RETURNS VOID AS $$ DECLARE stAux VARCHAR; BEGIN PERFORM 1 FROM orcamento.receita WHERE exercicio = '2014'; IF FOUND THEN PERFORM 1 FROM orcamento.conta_receita WHERE exercicio = '2015' ; IF NOT FOUND THEN RAISE EXCEPTION 'É necessário gerar o exercício seguinte na elaboração do orçamento para a aplicação do pacote da virada.'; END IF; INSERT INTO contabilidade.posicao_plano ( exercicio , cod_posicao , mascara ) SELECT '2015' AS exercicio , cod_posicao , mascara FROM contabilidade.posicao_plano AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM contabilidade.posicao_plano WHERE exercicio = '2015' AND cod_posicao = proximo.cod_posicao ) ; INSERT INTO contabilidade.classificacao_contabil ( exercicio , cod_classificacao , nom_classificacao ) SELECT '2015' AS exercicio , cod_classificacao , nom_classificacao FROM contabilidade.classificacao_contabil AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM contabilidade.classificacao_contabil WHERE exercicio = '2015' AND cod_classificacao = proximo.cod_classificacao ) ; INSERT INTO contabilidade.sistema_contabil ( exercicio , cod_sistema , nom_sistema , grupos ) SELECT '2015' AS exercicio , cod_sistema , nom_sistema , grupos FROM contabilidade.sistema_contabil AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM contabilidade.sistema_contabil WHERE exercicio = '2015' AND cod_sistema = proximo.cod_sistema ) ; INSERT INTO contabilidade.plano_conta ( exercicio , cod_conta , nom_conta , cod_classificacao , cod_sistema , cod_estrutural , escrituracao , natureza_saldo , indicador_superavit , funcao , atributo_tcepe ) SELECT '2015' AS exercicio , cod_conta , nom_conta , cod_classificacao , cod_sistema , cod_estrutural , escrituracao , natureza_saldo , indicador_superavit , funcao , atributo_tcepe FROM contabilidade.plano_conta AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM contabilidade.plano_conta WHERE exercicio = '2015' AND cod_conta = proximo.cod_conta ) ; INSERT INTO contabilidade.plano_analitica ( exercicio , cod_plano , cod_conta , natureza_saldo ) SELECT '2015' AS exercicio , cod_plano , cod_conta , natureza_saldo FROM contabilidade.plano_analitica AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM contabilidade.plano_analitica WHERE exercicio = '2015' AND cod_plano = proximo.cod_plano ) ; INSERT INTO contabilidade.plano_banco ( exercicio , cod_plano , conta_corrente , cod_entidade , cod_banco , cod_agencia , cod_conta_corrente ) SELECT '2015' AS exercicio , cod_plano , conta_corrente , cod_entidade , cod_banco , cod_agencia , cod_conta_corrente FROM contabilidade.plano_banco AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM contabilidade.plano_banco WHERE exercicio = '2015' AND cod_plano = proximo.cod_plano ) ; INSERT INTO contabilidade.plano_recurso ( cod_plano , exercicio , cod_recurso ) SELECT proximo.cod_plano , '2015' AS exercicio , proximo.cod_recurso FROM contabilidade.plano_recurso AS proximo JOIN orcamento.recurso ON recurso.cod_recurso = proximo.cod_recurso AND CAST((CAST(recurso.exercicio AS INTEGER) - 1) AS VARCHAR) = proximo.exercicio WHERE recurso.exercicio = '2015' AND NOT EXISTS ( SELECT 1 FROM contabilidade.plano_recurso WHERE exercicio = '2015' AND cod_plano = proximo.cod_plano AND cod_recurso = proximo.cod_recurso ) ; INSERT INTO contabilidade.classificacao_plano ( exercicio , cod_classificacao , cod_conta , cod_posicao ) SELECT '2015' AS exercicio , cod_classificacao , cod_conta , cod_posicao FROM contabilidade.classificacao_plano AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM contabilidade.classificacao_plano WHERE exercicio = '2015' AND cod_classificacao = proximo.cod_classificacao AND cod_conta = proximo.cod_conta AND cod_posicao = proximo.cod_posicao ) ; INSERT INTO contabilidade.configuracao_lancamento_debito ( exercicio , cod_conta , cod_conta_despesa , estorno , tipo , rpps ) SELECT '2015' AS exercicio , proximo.cod_conta , proximo.cod_conta_despesa , proximo.estorno , proximo.tipo , proximo.rpps FROM contabilidade.configuracao_lancamento_debito AS proximo JOIN orcamento.conta_despesa ON conta_despesa.cod_conta = proximo.cod_conta_despesa AND CAST((CAST(conta_despesa.exercicio AS INTEGER) - 1) AS VARCHAR) = proximo.exercicio WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM contabilidade.configuracao_lancamento_debito WHERE exercicio = '2015' AND cod_conta = proximo.cod_conta AND cod_conta_despesa = proximo.cod_conta_despesa AND estorno = proximo.estorno ) ; INSERT INTO contabilidade.configuracao_lancamento_credito ( exercicio , cod_conta , cod_conta_despesa , estorno , tipo , rpps ) SELECT '2015' AS exercicio , proximo.cod_conta , proximo.cod_conta_despesa , proximo.estorno , proximo.tipo , proximo.rpps FROM contabilidade.configuracao_lancamento_credito AS proximo JOIN orcamento.conta_despesa ON conta_despesa.cod_conta = proximo.cod_conta_despesa AND CAST((CAST(conta_despesa.exercicio AS INTEGER) - 1) AS VARCHAR) = proximo.exercicio WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM contabilidade.configuracao_lancamento_credito WHERE exercicio = '2015' AND cod_conta = proximo.cod_conta AND cod_conta_despesa = proximo.cod_conta_despesa AND estorno = proximo.estorno ) ; INSERT INTO contabilidade.configuracao_lancamento_receita ( exercicio , cod_conta , cod_conta_receita , estorno ) SELECT '2015' AS exercicio , proximo.cod_conta , proximo.cod_conta_receita , proximo.estorno FROM contabilidade.configuracao_lancamento_receita AS proximo JOIN orcamento.conta_receita ON conta_receita.cod_conta = proximo.cod_conta_receita AND CAST((CAST(conta_receita.exercicio AS INTEGER) - 1) AS VARCHAR) = proximo.exercicio WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM contabilidade.configuracao_lancamento_receita WHERE exercicio = '2015' AND cod_conta = proximo.cod_conta AND cod_conta_receita = proximo.cod_conta_receita AND estorno = proximo.estorno ) ; ----------------------------------------------------------------------------------------- -- TCE TO INSERT INTO tceto.credor ( exercicio , numcgm , tipo ) SELECT '2015' AS exercicio , numcgm , tipo FROM tceto.credor AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tceto.credor WHERE exercicio = '2015' AND numcgm = proximo.numcgm ) ; INSERT INTO tceto.uniorcam ( exercicio , numcgm , num_unidade , num_orgao , identificador ) SELECT '2015' AS exercicio , numcgm , num_unidade , num_orgao , identificador FROM tceto.uniorcam AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tceto.uniorcam WHERE exercicio = '2015' AND num_unidade = proximo.num_unidade AND num_orgao = proximo.num_orgao ) ; ----------------------------------------------------------------------------------------- -- TCE AL INSERT INTO tceal.ocorrencia_funcional ( exercicio , cod_ocorrencia , descricao ) SELECT '2014' AS exercicio , cod_ocorrencia , descricao FROM tceal.ocorrencia_funcional AS proximo WHERE proximo.exercicio = '2013' AND NOT EXISTS ( SELECT 1 FROM tceal.ocorrencia_funcional WHERE exercicio = '2014' AND cod_ocorrencia = proximo.cod_ocorrencia ) ; INSERT INTO tceal.ocorrencia_funcional ( exercicio , cod_ocorrencia , descricao ) SELECT '2015' AS exercicio , cod_ocorrencia , descricao FROM tceal.ocorrencia_funcional AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tceal.ocorrencia_funcional WHERE exercicio = '2015' AND cod_ocorrencia = proximo.cod_ocorrencia ) ; INSERT INTO tceal.credor ( exercicio , tipo , numcgm ) SELECT '2015' AS exercicio , tipo , numcgm FROM tceal.credor AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tceal.credor WHERE exercicio = '2015' AND numcgm = proximo.numcgm ) ; INSERT INTO tceal.de_para_tipo_cargo ( exercicio , cod_entidade , cod_sub_divisao , cod_tipo_cargo_tce ) SELECT '2015' AS exercicio , cod_entidade , cod_sub_divisao , cod_tipo_cargo_tce FROM tceal.de_para_tipo_cargo AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tceal.de_para_tipo_cargo WHERE exercicio = '2015' AND cod_entidade = proximo.cod_entidade AND cod_sub_divisao = proximo.cod_sub_divisao ) ; INSERT INTO tceal.ocorrencia_funcional_assentamento ( exercicio , cod_entidade , cod_ocorrencia , cod_assentamento ) SELECT '2015' AS exercicio , cod_entidade , cod_ocorrencia , cod_assentamento FROM tceal.ocorrencia_funcional_assentamento AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tceal.ocorrencia_funcional_assentamento WHERE exercicio = '2015' AND cod_entidade = proximo.cod_entidade AND cod_ocorrencia = proximo.cod_ocorrencia AND cod_assentamento = proximo.cod_assentamento ) ; INSERT INTO tceal.uniorcam ( exercicio , numcgm , num_unidade , num_orgao , identificador ) SELECT '2015' AS exercicio , numcgm , num_unidade , num_orgao , identificador FROM tceal.uniorcam AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tceal.uniorcam WHERE exercicio = '2015' AND num_unidade = proximo.num_unidade AND num_orgao = proximo.num_orgao ) ; ----------------------------------------------------------------------------------------- -- TCE PE INSERT INTO tcepe.modalidade_despesa ( exercicio , cod_modalidade , modalidade ) SELECT '2015' AS exercicio , cod_modalidade , modalidade FROM tcepe.modalidade_despesa AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepe.modalidade_despesa WHERE exercicio = '2015' AND cod_modalidade = proximo.cod_modalidade ) ; INSERT INTO tcepe.agente_eletivo ( exercicio , cod_entidade , cod_cargo , cod_tipo_remuneracao , cod_tipo_norma , cod_norma ) SELECT '2015' AS exercicio , cod_entidade , cod_cargo , cod_tipo_remuneracao , cod_tipo_norma , cod_norma FROM tcepe.agente_eletivo AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepe.agente_eletivo WHERE exercicio = '2015' AND cod_entidade = proximo.cod_entidade AND cod_cargo = proximo.cod_cargo ) ; INSERT INTO tcepe.cgm_tipo_credor ( exercicio , cgm_credor , cod_tipo_credor ) SELECT '2015' AS exercicio , cgm_credor , cod_tipo_credor FROM tcepe.cgm_tipo_credor AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepe.cgm_tipo_credor WHERE exercicio = '2015' AND cgm_credor = proximo.cgm_credor ) ; INSERT INTO tcepe.codigo_fonte_recurso ( exercicio , cod_recurso , cod_fonte ) SELECT '2015' AS exercicio , cod_recurso , cod_fonte FROM tcepe.codigo_fonte_recurso AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepe.codigo_fonte_recurso WHERE exercicio = '2015' AND cod_recurso = proximo.cod_recurso ) ; INSERT INTO tcepe.fonte_recurso_local ( exercicio , cod_fonte , cod_entidade , cod_local ) SELECT '2015' AS exercicio , cod_fonte , cod_entidade , cod_local FROM tcepe.fonte_recurso_local AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepe.fonte_recurso_local WHERE exercicio = '2015' AND cod_fonte = proximo.cod_fonte AND cod_entidade = proximo.cod_entidade AND cod_local = proximo.cod_local ) ; INSERT INTO tcepe.fonte_recurso_lotacao ( exercicio , cod_fonte , cod_entidade , cod_orgao ) SELECT '2015' AS exercicio , cod_fonte , cod_entidade , cod_orgao FROM tcepe.fonte_recurso_lotacao AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepe.fonte_recurso_lotacao WHERE exercicio = '2015' AND cod_fonte = proximo.cod_fonte AND cod_entidade = proximo.cod_entidade AND cod_orgao = proximo.cod_orgao ) ; INSERT INTO tcepe.modalidade_despesa ( exercicio , cod_modalidade , modalidade ) SELECT '2015' AS exercicio , cod_modalidade , modalidade FROM tcepe.modalidade_despesa AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepe.modalidade_despesa WHERE exercicio = '2015' AND cod_modalidade = proximo.cod_modalidade ) ; ----------------------------------------------------------------------------------------- -- TCE MG INSERT INTO tcemg.conta_bancaria ( exercicio , cod_conta , cod_entidade , sequencia , cod_tipo_aplicacao , cod_ctb_anterior ) SELECT '2015' AS exercicio , cod_conta , cod_entidade , sequencia , cod_tipo_aplicacao , cod_ctb_anterior FROM tcemg.conta_bancaria AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcemg.conta_bancaria WHERE exercicio = '2015' AND cod_conta = proximo.cod_conta ) ; INSERT INTO tcemg.uniorcam ( exercicio , num_unidade , num_orgao , identificador , cgm_ordenador , exercicio_atual , num_orgao_atual , num_unidade_atual ) SELECT '2015' AS exercicio , num_unidade , num_orgao , identificador , cgm_ordenador , exercicio_atual , num_orgao_atual , num_unidade_atual FROM tcemg.uniorcam AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcemg.uniorcam WHERE exercicio = '2015' AND num_unidade = proximo.num_unidade AND num_orgao = proximo.num_orgao ) ; ----------------------------------------------------------------------------------------- -- TCE PB INSERT INTO tcepb.tipo_obra ( exercicio , cod_tipo , descricao ) SELECT '2015' AS exercicio , cod_tipo , descricao FROM tcepb.tipo_obra AS proximo WHERE proximo.exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepb.tipo_obra WHERE exercicio = '2015' AND cod_tipo = proximo.cod_tipo ) ; INSERT INTO tcepb.tipo_situacao ( exercicio , cod_tipo , descricao ) SELECT '2015' AS exercicio , cod_tipo , descricao FROM tcepb.tipo_situacao AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepb.tipo_situacao WHERE exercicio = '2015' AND cod_tipo = proximo.cod_tipo ) ; INSERT INTO tcepb.tipo_fonte_obras ( exercicio , cod_tipo , descricao ) SELECT '2015' AS exercicio , cod_tipo , descricao FROM tcepb.tipo_fonte_obras AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepb.tipo_fonte_obras WHERE exercicio = '2015' AND cod_tipo = proximo.cod_tipo ) ; INSERT INTO tcepb.tipo_categoria_obra ( exercicio , cod_tipo , descricao ) SELECT '2015' AS exercicio , cod_tipo , descricao FROM tcepb.tipo_categoria_obra AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepb.tipo_categoria_obra WHERE exercicio = '2015' AND cod_tipo = proximo.cod_tipo ) ; INSERT INTO tcepb.tipo_origem_recurso ( exercicio , cod_tipo , descricao ) SELECT '2015' , cod_tipo , descricao FROM tcepb.tipo_origem_recurso AS proximo WHERE exercicio='2014' AND NOT EXISTS ( SELECT 1 FROM tcepb.tipo_origem_recurso WHERE exercicio = '2015' and cod_tipo = proximo.cod_tipo ) ; INSERT INTO tcepb.recurso ( exercicio , cod_recurso , cod_tipo ) SELECT '2015' AS exercicio , cod_recurso , cod_tipo FROM tcepb.recurso AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepb.recurso WHERE exercicio = '2015' AND cod_recurso = proximo.cod_recurso ) ; INSERT INTO tcepb.programa_objetivo_milenio ( exercicio , cod_programa , cod_tipo_objetivo ) SELECT '2015' AS exercicio , cod_programa , cod_tipo_objetivo FROM tcepb.programa_objetivo_milenio AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcepb.programa_objetivo_milenio WHERE exercicio = '2015' AND cod_programa = proximo.cod_programa ) ; ----------------------------------------------------------------------------------------- -- TCE RS INSERT INTO tcers.credor ( exercicio , numcgm , tipo ) SELECT '2015' , numcgm , tipo FROM tcers.credor AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcers.credor WHERE exercicio = '2015' AND numcgm = proximo.numcgm ) ; INSERT INTO tcers.uniorcam ( numcgm , exercicio , num_unidade , num_orgao , identificador ) SELECT numcgm , '2015' , num_unidade , num_orgao , identificador FROM tcers.uniorcam AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcers.uniorcam WHERE exercicio = '2015' AND numcgm = proximo.numcgm AND num_unidade = proximo.num_unidade AND num_orgao = proximo.num_orgao ) ; INSERT INTO tcers.rd_extra ( cod_conta , exercicio , classificacao ) SELECT cod_conta , '2015' , classificacao FROM tcers.rd_extra AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcers.rd_extra WHERE exercicio = '2015' AND cod_conta = proximo.cod_conta ) ; INSERT INTO tcers.modelo_lrf ( exercicio , cod_modelo , nom_modelo , nom_modelo_orcamento ) SELECT '2015' , cod_modelo , nom_modelo , nom_modelo_orcamento FROM tcers.modelo_lrf AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcers.modelo_lrf WHERE exercicio='2015' AND cod_modelo = proximo.cod_modelo ) ; INSERT INTO tcers.quadro_modelo_lrf ( exercicio , cod_modelo , cod_quadro , nom_quadro ) SELECT '2015' , cod_modelo , cod_quadro , nom_quadro FROM tcers.quadro_modelo_lrf AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcers.quadro_modelo_lrf WHERE exercicio='2015' AND cod_modelo = proximo.cod_modelo AND cod_quadro = proximo.cod_quadro ) ; ----------------------------------------------------------------------------------------- -- TCM GO INSERT INTO tcmgo.orgao ( exercicio , num_orgao , numcgm_orgao , numcgm_contador , cod_tipo , crc_contador , uf_crc_contador ) SELECT '2015' , num_orgao , numcgm_orgao , numcgm_contador , cod_tipo , crc_contador , uf_crc_contador FROM tcmgo.orgao AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcmgo.orgao WHERE exercicio='2015' AND num_orgao = proximo.num_orgao ) ; INSERT INTO tcmgo.orgao_controle_interno ( exercicio , num_orgao , numcgm ) SELECT '2015' , num_orgao , numcgm FROM tcmgo.orgao_controle_interno AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcmgo.orgao_controle_interno WHERE exercicio='2015' AND num_orgao = proximo.num_orgao ) ; INSERT INTO tcmgo.elemento_de_para ( exercicio , cod_conta , estrutural ) SELECT '2015' , cod_conta , estrutural FROM tcmgo.elemento_de_para AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcmgo.elemento_de_para WHERE exercicio='2015' AND cod_conta = proximo.cod_conta ) ; INSERT INTO tcmgo.orgao_representante ( exercicio , num_orgao , numcgm ) SELECT '2015' , num_orgao , numcgm FROM tcmgo.orgao_representante AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcmgo.orgao_representante WHERE exercicio='2015' AND num_orgao = proximo.num_orgao ) ; INSERT INTO tcmgo.tipo_retencao ( exercicio , cod_tipo , descricao ) SELECT '2015' , cod_tipo , descricao FROM tcmgo.tipo_retencao AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcmgo.tipo_retencao WHERE exercicio = '2015' AND cod_tipo = proximo.cod_tipo ) ; INSERT INTO tcmgo.orgao_plano_banco ( exercicio , cod_plano , num_orgao ) SELECT '2015' , cod_plano , num_orgao FROM tcmgo.orgao_plano_banco AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcmgo.orgao_plano_banco WHERE exercicio = '2015' AND cod_plano = proximo.cod_plano AND num_orgao = proximo.num_orgao ) ; ----------------------------------------------------------------------------------------- -- TCE RN INSERT INTO tcern.contrato_aditivo ( exercicio , num_convenio , cod_entidade , num_contrato_aditivo , exercicio_aditivo , cod_processo , exercicio_processo , bimestre , cod_objeto , valor_aditivo , dt_inicio_vigencia , dt_termino_vigencia , dt_assinatura , dt_publicacao ) SELECT '2015' , num_convenio , cod_entidade , num_contrato_aditivo , exercicio_aditivo , cod_processo , exercicio_processo , bimestre , cod_objeto , valor_aditivo , dt_inicio_vigencia , dt_termino_vigencia , dt_assinatura , dt_publicacao FROM tcern.contrato_aditivo AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcern.contrato_aditivo WHERE exercicio='2015' AND num_convenio = proximo.num_convenio AND cod_entidade = proximo.cod_entidade AND num_contrato_aditivo = proximo.num_contrato_aditivo AND exercicio_aditivo = proximo.exercicio_aditivo ) ; INSERT INTO tcern.obra ( exercicio , cod_entidade , num_obra , obra , objetivo , localizacao , cod_cidade , cod_recurso_1 , cod_recurso_2 , cod_recurso_3 , valor_recurso_1 , valor_recurso_2 , valor_recurso_3 , valor_orcamento_base , projeto_existente , observacao , latitude , longitude , rdc ) SELECT '2015' , cod_entidade , num_obra , obra , objetivo , localizacao , cod_cidade , cod_recurso_1 , cod_recurso_2 , cod_recurso_3 , valor_recurso_1 , valor_recurso_2 , valor_recurso_3 , valor_orcamento_base , projeto_existente , observacao , latitude , longitude , rdc FROM tcern.obra AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcern.obra WHERE exercicio='2015' AND cod_entidade = proximo.cod_entidade AND num_obra = proximo.num_obra ) ; INSERT INTO tcern.unidade_orcamentaria ( exercicio , id , cod_institucional , cgm_unidade_orcamentaria , cod_norma , id_unidade_gestora , situacao , num_unidade , num_orgao ) SELECT '2015' , id , cod_institucional , cgm_unidade_orcamentaria , cod_norma , id_unidade_gestora , situacao , num_unidade , num_orgao FROM tcern.unidade_orcamentaria AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcern.unidade_orcamentaria WHERE exercicio='2015' AND id = proximo.id ) ; INSERT INTO tcern.convenio ( exercicio , cod_entidade , num_convenio , cod_processo , exercicio_processo , numcgm_recebedor , cod_objeto , cod_recurso_1 , cod_recurso_2 , cod_recurso_3 , valor_recurso_1 , valor_recurso_2 , valor_recurso_3 , dt_inicio_vigencia , dt_termino_vigencia , dt_assinatura , dt_publicacao ) SELECT '2015' , cod_entidade , num_convenio , cod_processo , exercicio_processo , numcgm_recebedor , cod_objeto , cod_recurso_1 , cod_recurso_2 , cod_recurso_3 , valor_recurso_1 , valor_recurso_2 , valor_recurso_3 , dt_inicio_vigencia , dt_termino_vigencia , dt_assinatura , dt_publicacao FROM tcern.convenio AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcern.convenio WHERE exercicio='2015' AND cod_entidade = proximo.cod_entidade AND num_convenio = proximo.num_convenio ) ; INSERT INTO tcern.unidade_gestora ( exercicio , id , cod_institucional , cgm_unidade , personalidade , administracao , natureza , cod_norma , situacao ) SELECT '2015' , id , cod_institucional , cgm_unidade , personalidade , administracao , natureza , cod_norma , situacao FROM tcern.unidade_gestora AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM tcern.unidade_gestora WHERE exercicio='2015' AND id = proximo.id ) ; ----------------------------------------------------------------------------------------- -- STN INSERT INTO stn.vinculo_stn_receita ( exercicio , cod_receita , cod_tipo ) SELECT '2015' , cod_receita , cod_tipo FROM stn.vinculo_stn_receita AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM stn.vinculo_stn_receita WHERE exercicio='2015' AND cod_receita = proximo.cod_receita AND cod_tipo = proximo.cod_tipo ) ; INSERT INTO stn.vinculo_recurso ( exercicio , cod_entidade , num_orgao , num_unidade , cod_recurso , cod_vinculo , cod_tipo ) SELECT '2015' , cod_entidade , num_orgao , num_unidade , cod_recurso , cod_vinculo , cod_tipo FROM stn.vinculo_recurso AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM stn.vinculo_recurso WHERE exercicio='2015' AND cod_entidade = proximo.cod_entidade AND num_orgao = proximo.num_orgao AND num_unidade = proximo.num_unidade AND cod_recurso = proximo.cod_recurso AND cod_vinculo = proximo.cod_vinculo AND cod_tipo = proximo.cod_tipo ) ; INSERT INTO stn.riscos_fiscais ( exercicio , cod_risco , cod_entidade , descricao , valor ) SELECT '2015' , cod_risco , cod_entidade , descricao , valor FROM stn.riscos_fiscais AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM stn.riscos_fiscais WHERE exercicio='2015' AND cod_risco = proximo.cod_risco AND cod_entidade = proximo.cod_entidade ) ; INSERT INTO stn.recurso_rreo_anexo_14 ( exercicio , cod_recurso ) SELECT '2015' , cod_recurso FROM stn.recurso_rreo_anexo_14 AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM stn.recurso_rreo_anexo_14 WHERE exercicio='2015' AND cod_recurso = proximo.cod_recurso ) ; ELSE INSERT INTO orcamento.conta_receita ( exercicio , cod_conta , cod_norma , descricao , cod_estrutural ) SELECT '2015' AS exercicio , cod_conta , cod_norma , descricao , cod_estrutural FROM orcamento.conta_receita AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM orcamento.conta_receita WHERE exercicio = '2015' AND cod_conta = proximo.cod_conta ) ; INSERT INTO orcamento.posicao_receita ( exercicio , cod_posicao , mascara , cod_tipo ) SELECT '2015' AS exercicio , cod_posicao , mascara , cod_tipo FROM orcamento.posicao_receita AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM orcamento.posicao_receita WHERE exercicio = '2015' AND cod_tipo = proximo.cod_tipo AND cod_posicao = proximo.cod_posicao ) ; INSERT INTO orcamento.classificacao_receita ( exercicio , cod_posicao , cod_conta , cod_classificacao , cod_tipo ) SELECT '2015' AS exercicio , cod_posicao , cod_conta , cod_classificacao , cod_tipo FROM orcamento.classificacao_receita AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM orcamento.classificacao_receita WHERE exercicio = '2015' AND cod_tipo = proximo.cod_tipo AND cod_posicao = proximo.cod_posicao AND cod_conta = proximo.cod_conta ) ; INSERT INTO orcamento.conta_despesa ( exercicio , cod_conta , descricao , cod_estrutural ) SELECT '2015' AS exercicio , cod_conta , descricao , cod_estrutural FROM orcamento.conta_despesa AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM orcamento.conta_despesa WHERE exercicio = '2015' AND cod_conta = proximo.cod_conta ) ; INSERT INTO orcamento.posicao_despesa ( exercicio , cod_posicao , mascara ) SELECT '2015' AS exercicio , cod_posicao , mascara FROM orcamento.posicao_despesa AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM orcamento.posicao_despesa WHERE exercicio = '2015' AND cod_posicao = proximo.cod_posicao ) ; INSERT INTO orcamento.classificacao_despesa ( exercicio , cod_conta , cod_posicao , cod_classificacao ) SELECT '2015' AS exercicio , cod_conta , cod_posicao , cod_classificacao FROM orcamento.classificacao_despesa AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM orcamento.classificacao_despesa WHERE exercicio = '2015' AND cod_conta = proximo.cod_conta AND cod_posicao = proximo.cod_posicao ) ; INSERT INTO contabilidade.historico_contabil SELECT cod_historico , '2015' as exercicio , nom_historico , complemento , historico_interno FROM contabilidade.historico_contabil AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM contabilidade.historico_contabil WHERE exercicio = '2015' AND cod_historico = proximo.cod_historico ) ; INSERT INTO contabilidade.posicao_plano SELECT '2015' as exercicio , cod_posicao,mascara FROM contabilidade.posicao_plano AS proximo WHERE exercicio = '2014' AND NOT EXISTS ( SELECT 1 FROM contabilidade.posicao_plano WHERE exercicio = '2015' AND cod_posicao = proximo.cod_posicao ) ; UPDATE administracao.configuracao SET valor = '1' WHERE parametro = 'multiplos_boletim' AND cod_modulo = 30 ; END IF; END; $$ LANGUAGE 'plpgsql'; SELECT atualiza_gf(); DROP FUNCTION atualiza_gf(); -- -- Procedimento 18 -- DELETE FROM administracao.configuracao WHERE parametro = 'virada_GF' AND exercicio = '2015' ; -------------------------------- -- Replicacao de ima.codigo_dirf -------------------------------- SELECT atualizarbanco(' INSERT INTO ima.codigo_dirf ( exercicio , cod_dirf , tipo , descricao ) SELECT ''2015'' AS exercicio , cod_dirf , tipo , descricao FROM ima.codigo_dirf AS proximo WHERE exercicio = ''2014'' AND NOT EXISTS ( SELECT 1 FROM ima.codigo_dirf WHERE exercicio = ''2015'' AND cod_dirf = proximo.cod_dirf AND tipo = proximo.tipo ) ; ') ; ---------------- -- Ticket #22408 ---------------- ALTER TABLE tceto.norma_detalhe ADD COLUMN cod_norma_alteracao INTEGER NOT NULL; ALTER TABLE normas.norma_detalhe_al ALTER COLUMN descricao_alteracao TYPE VARCHAR(400);