require 'active_support/concern'

module SeedClassificacoesDaDespesa extend ActiveSupport::Concern
	def cria_classificacoes_da_despesa
		# DESPESAS CORRENTES
		self.categorias_economicas.create!(descricao: 'Despesas Correntes', codigo: '30000000').tap do |despesas_correntes|
			# PESSOAL E ENCARGOS SOCIAIS
			despesas_correntes.grupos_de_natureza_da_despesa.create!(descricao: 'Pessoal e Encargos Sociais', codigo: '31000000').tap do |pessoal_e_encargos_sociais|

				pessoal_e_encargos_sociais.modalidades_de_aplicacao.create!(codigo: '31300000', descricao: 'Transferências a Estados e ao Distrito Federal').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '31304100', descricao: 'Contribuições' )
					modalidade.elementos_de_despesa.create!( codigo: '31309900', descricao: 'A Classificar' )
				end

				pessoal_e_encargos_sociais.modalidades_de_aplicacao.create!(codigo: '31710000', descricao: 'Transferências a Consórcios Públicos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '31717000', descricao: 'Rateio pela Participação em Consórcio Público', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '31719900', descricao: 'A Classificar')
				end

				pessoal_e_encargos_sociais.modalidades_de_aplicacao.create!(codigo: '31800000', descricao: 'Transferências ao Exterior').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '31800400', descricao: 'Contratação por Tempo Determinado')
					modalidade.elementos_de_despesa.create!( codigo: '31809900', descricao: 'A Classificar')
				end

				pessoal_e_encargos_sociais.modalidades_de_aplicacao.create!(codigo: '31900000', descricao: 'Aplicações Diretas').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '31900100', descricao: 'Aposentadorias do RPPS, Reserva Remunerada e Reformas dos Militares', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '31900300', descricao: 'Pensões, exclusive do RGPS', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '31900400', descricao: 'Contratação por Tempo Determinado', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '31900700', descricao: 'Contribuição a Entidades Fechadas de Previdência')
					modalidade.elementos_de_despesa.create!( codigo: '31900800', descricao: 'Outros Benefícios Assistenciais')
					modalidade.elementos_de_despesa.create!( codigo: '31900900', descricao: 'Salário Família')
					modalidade.elementos_de_despesa.create!( codigo: '31901100', descricao: 'Vencimentos e Vantagens Fixas - Pessoal Civil', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '31901200', descricao: 'Vencimentos e Vantagens Fixas - Pessoal Militar')
					modalidade.elementos_de_despesa.create!( codigo: '31901300', descricao: 'Obrigações Patronais', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '31901600', descricao: 'Outras Despesas Variáveis - Pessoal Civil', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '31901700', descricao: 'Outras Despesas Variáveis - Pessoal Militar')
					modalidade.elementos_de_despesa.create!( codigo: '31903100', descricao: 'Premiações Culturais, Artísticas, Científicas, Desportivas e Outras')
					modalidade.elementos_de_despesa.create!( codigo: '31906700', descricao: 'Depósitos Compulsórios')
					modalidade.elementos_de_despesa.create!( codigo: '31909100', descricao: 'Sentenças Judiciais', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '31909200', descricao: 'Despesas de Exercícios Anteriores', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '31909400', descricao: 'Indenizações e Restituições Trabalhistas', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '31909600', descricao: 'Ressarcimento de Despesas de Pessoal Requisitado', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '31909900', descricao: 'A Classificar')
				end

				pessoal_e_encargos_sociais.modalidades_de_aplicacao.create!(codigo: '31910000', descricao: 'Aplicação Direta Decorrente de Operação entre Órgãos, Fundos e Entidades Integrantes dos Orçamentos Fiscal e da Seguridade Social').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '31910400', descricao: 'Contratação por Tempo Determinado' )
					modalidade.elementos_de_despesa.create!( codigo: '31910900', descricao: 'Salário Família' )
					modalidade.elementos_de_despesa.create!( codigo: '31911300', descricao: 'Contribuições Patronais' , exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '31919100', descricao: 'Sentenças Judiciais' )
					modalidade.elementos_de_despesa.create!( codigo: '31919200', descricao: 'Despesas de Exercícios Anteriores', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '31919400', descricao: 'Indenizações e Restituições Trabalhistas' )
					modalidade.elementos_de_despesa.create!( codigo: '31919600', descricao: 'Ressarcimento de Despesas de Pessoal Requisitado' )
					modalidade.elementos_de_despesa.create!( codigo: '31919900', descricao: 'A Classificar' )
				end

				pessoal_e_encargos_sociais.modalidades_de_aplicacao.create!(codigo: '31990000', descricao: 'A Definir').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '31999900', descricao: 'A Classificar' )
				end
			end

			#JUROS E ENCARGOS DA DÍVIDA
			despesas_correntes.grupos_de_natureza_da_despesa.create!(descricao: 'Juros e Encargos da Dívida', codigo: '32000000').tap do |juros_e_encargos_da_divida|
				juros_e_encargos_da_divida.modalidades_de_aplicacao.create!(codigo: '32710000', descricao: 'Transferências a Consórcios Públicos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '32717000', descricao: 'Rateio pela Participação em Consórcio Público')
					modalidade.elementos_de_despesa.create!( codigo: '32719900', descricao: 'A Classificar')
				end

				juros_e_encargos_da_divida.modalidades_de_aplicacao.create!(codigo: '32900000', descricao: 'Aplicações Diretas').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '32902100', descricao: 'Juros sobre a Dívida por Contrato', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '32902200', descricao: 'Outros Encargos sobre a Dívida por Contrato', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '32902300', descricao: 'Juros, Deságios e Descontos da Dívida Mobiliária')
					modalidade.elementos_de_despesa.create!( codigo: '32902400', descricao: 'Outros Encargos sobre a Dívida Mobiliária')
					modalidade.elementos_de_despesa.create!( codigo: '32902500', descricao: 'Encargos sobre Operações de Crédito por Antecipação da Receita')
					modalidade.elementos_de_despesa.create!( codigo: '32909100', descricao: 'Sentenças Judiciais')
					modalidade.elementos_de_despesa.create!( codigo: '32909200', descricao: 'Despesas de Exercícios Anteriores')
					modalidade.elementos_de_despesa.create!( codigo: '32909300', descricao: 'Indenizações e Restituições')
					modalidade.elementos_de_despesa.create!( codigo: '32909900', descricao: 'A Classificar')
				end

				juros_e_encargos_da_divida.modalidades_de_aplicacao.create!(codigo: '32990000', descricao: 'A Definir').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '32999900', descricao: 'A Classificar')
				end
			end

			# OUTRAS DESPESAS CORRENTES
			despesas_correntes.grupos_de_natureza_da_despesa.create!(descricao: 'Outras Despesas Correntes', codigo: '33000000').tap do |outras_despesas_correntes|
				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33200000', descricao: 'Transferências à União').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33204100', descricao: 'Contribuições')
					modalidade.elementos_de_despesa.create!( codigo: '33209900', descricao: 'A Classificar')
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33220000', descricao: 'Execução Orçamentária Delegada à União').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33221400', descricao: 'Diárias - Civil')
					modalidade.elementos_de_despesa.create!( codigo: '33223000', descricao: 'Material de Consumo')
					modalidade.elementos_de_despesa.create!( codigo: '33223500', descricao: 'Serviços de Consultoria')
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_fisica: true, codigo: '33223600', descricao: 'Outros Serviços de Terceiros - Pessoa Física')
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_juridica: true, codigo: '33223900', descricao: 'Outros Serviços de Terceiros - Pessoa Jurídica')
					modalidade.elementos_de_despesa.create!( codigo: '33229900', descricao: 'A Classificar')
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33300000', descricao: 'Transferências a Estados e ao Distrito Federal').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33304100', descricao: 'Contribuições', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33308100', descricao: 'Distribuição Constitucional ou Legal de Receitas')
					modalidade.elementos_de_despesa.create!( codigo: '33309900', descricao: 'A Classificar')
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33310000', descricao: 'Transferências a Estados e ao Distrito Federal - Fundo a Fundo').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33314100', descricao: 'Contribuições')
					modalidade.elementos_de_despesa.create!( codigo: '33319200', descricao: 'Despesas de Exercícios Anteriores')
					modalidade.elementos_de_despesa.create!( codigo: '33319900', descricao: 'A Classificar')
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33320000', descricao: 'Execução Orçamentária Delegada a Estados e ao Distrito Federal').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33321400', descricao: 'Diárias - Civil')
					modalidade.elementos_de_despesa.create!( codigo: '33321800', descricao: 'Auxílio Financeiro a Estudantes')
					modalidade.elementos_de_despesa.create!( codigo: '33322000', descricao: 'Auxílio Financeiro a Pesquisadores')
					modalidade.elementos_de_despesa.create!( codigo: '33323000', descricao: 'Material de Consumo')
					modalidade.elementos_de_despesa.create!( codigo: '33323300', descricao: 'Passagens e Despesas com Locomoção')
					modalidade.elementos_de_despesa.create!( codigo: '33323500', descricao: 'Serviços de Consultoria')

					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_fisica: true, codigo: '33323600', descricao: 'Outros Serviços de Terceiros - Pessoa Física')
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_juridica: true, codigo: '33323900', descricao: 'Outros Serviços de Terceiros - Pessoa Jurídica')
					modalidade.elementos_de_despesa.create!( codigo: '33324700', descricao: 'Obrigações Tributárias e Contributivas')
					modalidade.elementos_de_despesa.create!( codigo: '33329200', descricao: 'Despesas de Exercícios Anteriores')
					modalidade.elementos_de_despesa.create!( codigo: '33329300', descricao: 'Indenizações e Restituições')
					modalidade.elementos_de_despesa.create!( codigo: '33329900', descricao: 'A Classificar')
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33400000', descricao: 'Transferências a Municípios').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33404100', descricao: 'Contribuições')
					modalidade.elementos_de_despesa.create!( codigo: '33408100', descricao: 'Distribuição Constitucional ou Legal de Receitas')
					modalidade.elementos_de_despesa.create!( codigo: '33409900', descricao: 'A Classificar')
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33410000', descricao: 'Transferências a Municípios - Fundo a Fundo').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33414100', descricao: 'Contribuições')
					modalidade.elementos_de_despesa.create!( codigo: '33419200', descricao: 'Despesas de Exercícios Anteriores')
					modalidade.elementos_de_despesa.create!( codigo: '33419900', descricao: 'A Classificar')
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33420000', descricao: 'Execução Orçamentária Delegada a Municípios').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33421400', descricao: 'Diárias - Civil')
					modalidade.elementos_de_despesa.create!( codigo: '33421800', descricao: 'Auxílio Financeiro a Estudantes')
					modalidade.elementos_de_despesa.create!( codigo: '33423000', descricao: 'Material de Consumo')
					modalidade.elementos_de_despesa.create!( codigo: '33423300', descricao: 'Passagens e Despesas com Locomoção')
					modalidade.elementos_de_despesa.create!( codigo: '33423500', descricao: 'Serviços de Consultoria')
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_fisica: true, codigo: '33423600', descricao: 'Outros Serviços de Terceiros - Pessoa Física')
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_juridica: true, codigo: '33423900', descricao: 'Outros Serviços de Terceiros - Pessoa Jurídica')
					modalidade.elementos_de_despesa.create!( codigo: '33424700', descricao: 'Obrigações Tributárias e Contributivas')
					modalidade.elementos_de_despesa.create!( codigo: '33429200', descricao: 'Despesas de Exercícios Anteriores')
					modalidade.elementos_de_despesa.create!( codigo: '33429300', descricao: 'Indenizações e Restituições')
					modalidade.elementos_de_despesa.create!( codigo: '33429900', descricao: 'A Classificar')
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33500000', descricao: 'Transferências a Instituições Privadas sem Fins Lucrativos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33501400', descricao: 'Diárias - Civil')
					modalidade.elementos_de_despesa.create!( codigo: '33501800', descricao: 'Auxílio Financeiro a Estudantes')
					modalidade.elementos_de_despesa.create!( codigo: '33502000', descricao: 'Auxílio Financeiro a Pesquisadores')
					modalidade.elementos_de_despesa.create!( codigo: '33503000', descricao: 'Material de Consumo')
					modalidade.elementos_de_despesa.create!( codigo: '33503100', descricao: 'Premiações Culturais, Artísticas, Científicas, Desportivas e Outras')
					modalidade.elementos_de_despesa.create!( codigo: '33503300', descricao: 'Passagens e Despesas com Locomoção')
					modalidade.elementos_de_despesa.create!( codigo: '33503500', descricao: 'Serviços de Consultoria')
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_fisica: true, codigo: '33503600', descricao: 'Outros Serviços de Terceiros - Pessoa Física')
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_juridica: true, codigo: '33503900', descricao: 'Outros Serviços de Terceiros - Pessoa Jurídica')
					modalidade.elementos_de_despesa.create!( codigo: '33504100', descricao: 'Contribuições', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33504300', descricao: 'Subvenções Sociais', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33504700', descricao: 'Obrigações Tributárias e Contributivas')
					modalidade.elementos_de_despesa.create!( codigo: '33509200', descricao: 'Despesas de Exercícios Anteriores')
					modalidade.elementos_de_despesa.create!( codigo: '33509900', descricao: 'A Classificar')
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33600000', descricao: 'Transferências a Instituições Privadas com Fins Lucrativos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33604500', descricao: 'Subvenções Econômicas', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33609200', descricao: 'Despesas de Exercícios Anteriores' )
					modalidade.elementos_de_despesa.create!( codigo: '33609900', descricao: 'A Classificar' )
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33700000', descricao: 'Transferências a Instituições Multigovernamentais').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33704100', descricao: 'Contribuições' )
					modalidade.elementos_de_despesa.create!( codigo: '33709900', descricao: 'A Classificar' )
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33710000', descricao: 'Transferências a Consórcios Públicos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33717000', descricao: 'Rateio pela Participação em Consórcio Público' , exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33719900', descricao: 'A Classificar' )
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33720000', descricao: 'Execução Orçamentária Delegada a Consórcios Públicos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33729900', descricao: 'A Classificar', exibir_elemento_de_despesa: 'true' )
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33800000', descricao: 'Transferências ao Exterior').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33800400', descricao: 'Contratação por Tempo Determinado' )
					modalidade.elementos_de_despesa.create!( codigo: '33801400', descricao: 'Diárias - Civil' )
					modalidade.elementos_de_despesa.create!( codigo: '33803000', descricao: 'Material de Consumo' )
					modalidade.elementos_de_despesa.create!( codigo: '33803300', descricao: 'Passagens e Despesas com Locomoção' )
					modalidade.elementos_de_despesa.create!( codigo: '33803400', descricao: 'Outras Despesas de Pessoal Decorrentes de Contratos de Terceirização' )
					modalidade.elementos_de_despesa.create!( codigo: '33803500', descricao: 'Serviços de Consultoria' )
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_fisica: true, codigo: '33803600', descricao: 'Outros Serviços de Terceiros - Pessoa Física' )
					modalidade.elementos_de_despesa.create!( codigo: '33803700', descricao: 'Locação de Mão-de-Obra' )
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_juridica: true, codigo: '33803900', descricao: 'Outros Serviços de Terceiros - Pessoa Jurídica' )
					modalidade.elementos_de_despesa.create!( codigo: '33804100', descricao: 'Contribuições' )
					modalidade.elementos_de_despesa.create!( codigo: '33809200', descricao: 'Despesas de Exercícios Anteriores' )
					modalidade.elementos_de_despesa.create!( codigo: '33809900', descricao: 'A Classificar' )
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33900000', descricao: 'Aplicações Diretas').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33900400', descricao: 'Contratação por Tempo Determinado' )
					modalidade.elementos_de_despesa.create!( codigo: '33900500', descricao: 'Outros Benefícios Previdenciários do RPPS' )
					modalidade.elementos_de_despesa.create!( codigo: '33900600', descricao: 'Benefício Mensal ao Deficiente e ao Idoso' )
					modalidade.elementos_de_despesa.create!( codigo: '33909800', descricao: 'Compensações ao RGPS' ) #aspec
					modalidade.elementos_de_despesa.create!( codigo: '33900800', descricao: 'Outros Benefícios Assistenciais' , exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33900900', descricao: 'Salário Família' )
					modalidade.elementos_de_despesa.create!( codigo: '33901000', descricao: 'Seguro Desemprego e Abono Salarial' )
					modalidade.elementos_de_despesa.create!( codigo: '33901400', descricao: 'Diárias - Civil', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '33901500', descricao: 'Diárias - Militar' )
					modalidade.elementos_de_despesa.create!( codigo: '33901800', descricao: 'Auxílio Financeiro a Estudantes' , exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33901900', descricao: 'Auxílio-Fardamento' )
					modalidade.elementos_de_despesa.create!( codigo: '33902000', descricao: 'Auxílio Financeiro a Pesquisadores', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33902600', descricao: 'Obrigações Decorrentes de Política Monetária' )
					modalidade.elementos_de_despesa.create!( codigo: '33902700', descricao: 'Encargos pela Honra de Avais, Garantias, Seguros e Similares' )
					modalidade.elementos_de_despesa.create!( codigo: '33902800', descricao: 'Remuneração de Cotas de Fundos Autárquicos' )
					modalidade.elementos_de_despesa.create!( codigo: '33902900', descricao: 'Distribuição de Resultado de Empresas Estatais Dependentes' )
					modalidade.elementos_de_despesa.create!( codigo: '33903000', descricao: 'Material de Consumo', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33903100', descricao: 'Premiações Culturais, Artísticas, Científicas, Desportivas e Outras', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33903200', descricao: 'Material, Bem ou Serviço para Distribuição Gratuita', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33903300', descricao: 'Passagens e Despesas com Locomoção', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33903400', descricao: 'Outras Despesas de Pessoal Decorrentes de Contratos de Terceirização', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33903500', descricao: 'Serviços de Consultoria', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_fisica: true, codigo: '33903600', descricao: 'Outros Serviços de Terceiros - Pessoa Física', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '33903700', descricao: 'Locação de Mão-de-Obra', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '33903800', descricao: 'Arrendamento Mercantil' )
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_juridica: true, codigo: '33903900', descricao: 'Outros Serviços de Terceiros - Pessoa Jurídica', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_juridica: true, codigo: '33904000', descricao: 'Serviços de Tecnologia da Informação e Comunicação - Pessoa Jurídica', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '33904100', descricao: 'Contribuições' )
					modalidade.elementos_de_despesa.create!( codigo: '33904500', descricao: 'Subvenções Econômicas' )
					modalidade.elementos_de_despesa.create!( codigo: '33904600', descricao: 'Auxílio-Alimentação', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '33904700', descricao: 'Obrigações Tributárias e Contributivas', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '33904800', descricao: 'Outros Auxílios Financeiros a Pessoas Físicas', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '33904900', descricao: 'Auxílio-Transporte', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33905300', descricao: 'Aposentadorias do RGPS - Área Rural' )
					modalidade.elementos_de_despesa.create!( codigo: '33905400', descricao: 'Aposentadorias do RGPS - Área Urbana' )
					modalidade.elementos_de_despesa.create!( codigo: '33905500', descricao: 'Pensões do RGPS - Área Rural' )
					modalidade.elementos_de_despesa.create!( codigo: '33905600', descricao: 'Pensões do RGPS - Área Urbana' )
					modalidade.elementos_de_despesa.create!( codigo: '33905700', descricao: 'Outros Benefícios do RGPS - Área Rural' )
					modalidade.elementos_de_despesa.create!( codigo: '33905800', descricao: 'Outros Benefícios do RGPS - Área Urbana' )
					modalidade.elementos_de_despesa.create!( codigo: '33905900', descricao: 'Pensões Especiais', exibir_elemento_de_despesa: 'true' ) #aspec
					modalidade.elementos_de_despesa.create!( codigo: '33906700', descricao: 'Depósitos Compulsórios' )
					modalidade.elementos_de_despesa.create!( codigo: '33909100', descricao: 'Sentenças Judiciais' , exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33909200', descricao: 'Despesas de Exercícios Anteriores' , exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33909300', descricao: 'Indenizações e Restituições' , exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '33909500', descricao: 'Indenização pela Execução de Trabalhos de Campo' )
					modalidade.elementos_de_despesa.create!( codigo: '33909600', descricao: 'Ressarcimento de Despesas de Pessoal Requisitado' )
					modalidade.elementos_de_despesa.create!( codigo: '33909900', descricao: 'A Classificar' )
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33910000', descricao: 'Aplicação Direta Decorrente de Operação entre Órgãos, Fundos e Entidades Integrantes dos Orçamentos Fiscal e da Seguridade Social').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33910400', descricao: 'Contratação por Tempo Determinado' )
					modalidade.elementos_de_despesa.create!( codigo: '33912800', descricao: 'Remuneração de Cotas de Fundos Autárquicos' )
					modalidade.elementos_de_despesa.create!( codigo: '33912900', descricao: 'Distribuição de Resultado de Empresas Estatais Dependentes' )
					modalidade.elementos_de_despesa.create!( codigo: '33913000', descricao: 'Material de Consumo' )
					modalidade.elementos_de_despesa.create!( codigo: '33913200', descricao: 'Material, Bem ou Serviço para Distribuição Gratuita' )
					modalidade.elementos_de_despesa.create!( codigo: '33913500', descricao: 'Serviços de Consultoria' )
					modalidade.elementos_de_despesa.create!( codigo: '33913900', descricao: 'Outros Serviços de Terceiros - Pessoa Jurídica', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '33914700', descricao: 'Obrigações Tributárias e Contributivas' )
					modalidade.elementos_de_despesa.create!( codigo: '33916200', descricao: 'Aquisição de Produtos para Revenda' )
					modalidade.elementos_de_despesa.create!( codigo: '33919100', descricao: 'Sentenças Judiciais' )
					modalidade.elementos_de_despesa.create!( codigo: '33919200', descricao: 'Despesas de Exercícios Anteriores' )
					modalidade.elementos_de_despesa.create!( codigo: '33919300', descricao: 'Indenizações e Restituições' )
					modalidade.elementos_de_despesa.create!( codigo: '33919600', descricao: 'Ressarcimento de Despesas de Pessoal Requisitado' )
					modalidade.elementos_de_despesa.create!( codigo: '33919700', descricao: 'Aporte para Cobertura do Déficit Atuarial do RPPS' )
					modalidade.elementos_de_despesa.create!( codigo: '33919900', descricao: 'A Classificar' )
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33930000', descricao: 'Aplicação Direta Decorrente de Operação de Órgãos, Fundos e Entidades Integrantes dos Orçamentos Fiscal e da Seguridade Social com Consórcio Público do qual o Ente Participe').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33913000', descricao: 'Material de Consumo' )
					modalidade.elementos_de_despesa.create!( codigo: '33913200', descricao: 'Material, Bem ou Serviço para Distribuição Gratuita' )
					modalidade.elementos_de_despesa.create!( codigo: '33913900', descricao: 'Outros Serviços de Terceiros - Pessoa Jurídica' )
					modalidade.elementos_de_despesa.create!( codigo: '33919900', descricao: 'A Classificar' )
				end

				outras_despesas_correntes.modalidades_de_aplicacao.create!(codigo: '33990000', descricao: 'A Definir').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '33999900', descricao: 'A Classificar' )
				end
			end
		end

		# DESPESAS DE CAPITAL
		self.categorias_economicas.create!(descricao: 'Despesas de Capital',codigo: '40000000').tap do |despesas_de_capital|
			# INVESTIMENTOS
			despesas_de_capital.grupos_de_natureza_da_despesa.create!(descricao: 'Investimentos', codigo: '44000000').tap do |investimentos|
				investimentos.modalidades_de_aplicacao.create!(codigo: '44200000', descricao: 'Transferências à União').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44204100', descricao: 'Contribuições' )
					modalidade.elementos_de_despesa.create!( codigo: '44204200', descricao: 'Auxílios' )
					modalidade.elementos_de_despesa.create!( codigo: '44209900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44220000', descricao: 'Execução Orçamentária Delegada à União').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44225100', descricao: 'Obras e Instalações' )
					modalidade.elementos_de_despesa.create!( codigo: '44225200', descricao: 'Equipamentos e Material Permanente' )
					modalidade.elementos_de_despesa.create!( codigo: '44229200', descricao: 'Despesas de Exercícios Anteriores' )
					modalidade.elementos_de_despesa.create!( codigo: '44229300', descricao: 'Indenizações e Restituições' )
					modalidade.elementos_de_despesa.create!( codigo: '44229900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44300000', descricao: 'Transferências a Estados e ao Distrito Federal').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44304100', descricao: 'Contribuições' )
					modalidade.elementos_de_despesa.create!( codigo: '44304200', descricao: 'Auxílios' , exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '44309900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44310000', descricao: 'Transferências a Estados e ao Distrito Federal - Fundo a Fundo').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44314200', descricao: 'Auxílios' )
					modalidade.elementos_de_despesa.create!( codigo: '44319900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44320000', descricao: 'Execução Orçamentária Delegada a Estados e ao Distrito Federal').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44322000', descricao: 'Auxílio Financeiro a Pesquisadores' )
					modalidade.elementos_de_despesa.create!( codigo: '44325100', descricao: 'Obras e Instalações' )
					modalidade.elementos_de_despesa.create!( codigo: '44325200', descricao: 'Equipamentos e Material Permanente' )
					modalidade.elementos_de_despesa.create!( codigo: '44329200', descricao: 'Despesas de Exercícios Anteriores' )
					modalidade.elementos_de_despesa.create!( codigo: '44329300', descricao: 'Indenizações e Restituições' )
					modalidade.elementos_de_despesa.create!( codigo: '44329900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44400000', descricao: 'Transferências a Municípios').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44404100', descricao: 'Contribuições' )
					modalidade.elementos_de_despesa.create!( codigo: '44404200', descricao: 'Auxílios' )
					modalidade.elementos_de_despesa.create!( codigo: '44409900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44410000', descricao: 'Transferências a Municípios - Fundo a Fundo').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44414200', descricao: 'Auxílios' )
					modalidade.elementos_de_despesa.create!( codigo: '44419900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44420000', descricao: 'Execução Orçamentária Delegada a Municípios').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44421400', descricao: 'Diárias - Civil' )
					modalidade.elementos_de_despesa.create!( codigo: '44425100', descricao: 'Obras e Instalações' )
					modalidade.elementos_de_despesa.create!( codigo: '44425200', descricao: 'Equipamentos e Material Permanente' )
					modalidade.elementos_de_despesa.create!( codigo: '44429200', descricao: 'Despesas de Exercícios Anteriores' )
					modalidade.elementos_de_despesa.create!( codigo: '44429900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44500000', descricao: 'Transferências a Instituições Privadas sem Fins Lucrativos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44501400', descricao: 'Diárias - Civil' )
					modalidade.elementos_de_despesa.create!( codigo: '44503000', descricao: 'Material de Consumo' )
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_fisica: true, codigo: '44503600', descricao: 'Outros Serviços de Terceiros - Pessoa Física' )
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_juridica: true, codigo: '44503900', descricao: 'Outros Serviços de Terceiros - Pessoa Jurídica' )
					modalidade.elementos_de_despesa.create!( codigo: '44504100', descricao: 'Contribuições' )
					modalidade.elementos_de_despesa.create!( codigo: '44504200', descricao: 'Auxílios' , exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '44504700', descricao: 'Obrigações Tributárias e Contributivas' )
					modalidade.elementos_de_despesa.create!( codigo: '44505100', descricao: 'Obras e Instalações' )
					modalidade.elementos_de_despesa.create!( codigo: '44505200', descricao: 'Equipamentos e Material Permanente' )
					modalidade.elementos_de_despesa.create!( codigo: '44509900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44700000', descricao: 'Transferências a Instituições Multigovernamentais').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44704100', descricao: 'Contribuições' )
					modalidade.elementos_de_despesa.create!( codigo: '44704200', descricao: 'Auxílios' )
					modalidade.elementos_de_despesa.create!( codigo: '44709900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44710000', descricao: 'Transferências a Consórcios Públicos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44717000', descricao: 'Rateio pela Participação em Consórcio Público', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '44719900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44720000', descricao: 'Execução Orçamentária Delegada a Consórcios Públicos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44729900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44800000', descricao: 'Transferências ao Exterior').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44804100', descricao: 'Contribuições' )
					modalidade.elementos_de_despesa.create!( codigo: '44804200', descricao: 'Auxílios' )
					modalidade.elementos_de_despesa.create!( codigo: '44805100', descricao: 'Obras e Instalações' )
					modalidade.elementos_de_despesa.create!( codigo: '44805200', descricao: 'Equipamentos e Material Permanente' )
					modalidade.elementos_de_despesa.create!( codigo: '44809900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44900000', descricao: 'Aplicações Diretas').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44900400', descricao: 'Contratação por Tempo Determinado' )
					modalidade.elementos_de_despesa.create!( codigo: '44901400', descricao: 'Diárias - Civil' )
					modalidade.elementos_de_despesa.create!( codigo: '44901500', descricao: 'Diárias - Militar' )
					modalidade.elementos_de_despesa.create!( codigo: '44901700', descricao: 'Outras Despesas Variáveis - Pessoal Militar' )
					modalidade.elementos_de_despesa.create!( codigo: '44901800', descricao: 'Auxílio Financeiro a Estudantes' )
					modalidade.elementos_de_despesa.create!( codigo: '44902000', descricao: 'Auxílio Financeiro a Pesquisadores' )
					modalidade.elementos_de_despesa.create!( codigo: '44903000', descricao: 'Material de Consumo', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '44903300', descricao: 'Passagens e Despesas com Locomoção' )
					modalidade.elementos_de_despesa.create!( codigo: '44903500', descricao: 'Serviços de Consultoria' )
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_fisica: true, codigo: '44903600', descricao: 'Outros Serviços de Terceiros - Pessoa Física' )
					modalidade.elementos_de_despesa.create!( codigo: '44903700', descricao: 'Locação de Mão-de-Obra' )
					modalidade.elementos_de_despesa.create!( preferencialmente_pessoa_juridica: true, codigo: '44903900', descricao: 'Outros Serviços de Terceiros - Pessoa Jurídica', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '44904700', descricao: 'Obrigações Tributárias e Contributivas' )
					modalidade.elementos_de_despesa.create!( codigo: '44905100', descricao: 'Obras e Instalações', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '44905200', descricao: 'Equipamentos e Material Permanente', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '44906100', descricao: 'Aquisição de Imóveis', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '44909100', descricao: 'Sentenças Judiciais', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '44909200', descricao: 'Despesas de Exercícios Anteriores', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '44909300', descricao: 'Indenizações e Restituições', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '44909900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44910000', descricao: 'Aplicação Direta Decorrente de Operação entre Órgãos, Fundos e Entidades Integrantes dos Orçamentos Fiscal e da Seguridade Social').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44913900', descricao: 'Outros Serviços de Terceiros - Pessoa Jurídica' )
					modalidade.elementos_de_despesa.create!( codigo: '44914700', descricao: 'Obrigações Tributárias e Contributivas' )
					modalidade.elementos_de_despesa.create!( codigo: '44915100', descricao: 'Obras e Instalações' )
					modalidade.elementos_de_despesa.create!( codigo: '44915200', descricao: 'Equipamentos e Material Permanente' )
					modalidade.elementos_de_despesa.create!( codigo: '44919100', descricao: 'Sentenças Judiciais' )
					modalidade.elementos_de_despesa.create!( codigo: '44919900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44930000', descricao: 'Aplicação Direta Decorrente de Operação de Órgãos, Fundos e Entidades Integrantes dos Orçamentos Fiscal e da Seguridade Social com Consórcio Público do qual o Ente Participe').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44935100', descricao: 'Obras e Instalações' )
					modalidade.elementos_de_despesa.create!( codigo: '44935200', descricao: 'Equipamentos e Material Permanente' )
					modalidade.elementos_de_despesa.create!( codigo: '44939900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44940000', descricao: 'Aplicação Direta Decorrente de Operação de Órgãos, Fundos e Entidades Integrantes dos Orçamentos Fiscal e da Seguridade Social com Consórcio Público do qual o Ente Não Participe').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44945100', descricao: 'Obras e Instalações' )
					modalidade.elementos_de_despesa.create!( codigo: '44945200', descricao: 'Equipamentos e Material Permanente' )
					modalidade.elementos_de_despesa.create!( codigo: '44949900', descricao: 'A Classificar' )
				end

				investimentos.modalidades_de_aplicacao.create!(codigo: '44990000', descricao: 'A Definir').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '44999900', descricao: 'A Classificar' )
				end
			end
			# INVERSÕES FINANCEIRAS
			despesas_de_capital.grupos_de_natureza_da_despesa.create!(descricao: 'Inversões Financeiras', codigo: '45000000').tap do |inversoes_financeiras|
				inversoes_financeiras.modalidades_de_aplicacao.create!(codigo: '45300000', descricao: 'Transferências a Estados e ao Distrito Federal').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '45304100', descricao: 'Contribuições' )
					modalidade.elementos_de_despesa.create!( codigo: '45304200', descricao: 'Auxílios' )
					modalidade.elementos_de_despesa.create!( codigo: '45309900', descricao: 'A Classificar' )
				end

				inversoes_financeiras.modalidades_de_aplicacao.create!(codigo: '45320000', descricao: 'Execução Orçamentária Delegada a Estados e ao Distrito Federal').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '45326100', descricao: 'Aquisição de Imóveis' )
					modalidade.elementos_de_despesa.create!( codigo: '45326400', descricao: 'Aquisição de Títulos Representativos de Capital já Integralizado' )
					modalidade.elementos_de_despesa.create!( codigo: '45326500', descricao: 'Constituição ou Aumento de Capital de Empresas' )
					modalidade.elementos_de_despesa.create!( codigo: '45326600', descricao: 'Concessão de Empréstimos e Financiamentos' )
					modalidade.elementos_de_despesa.create!( codigo: '45329900', descricao: 'A Classificar' )
				end

				inversoes_financeiras.modalidades_de_aplicacao.create!(codigo: '45400000', descricao: 'Transferências a Municípios').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '45404100', descricao: 'Contribuições' )
					modalidade.elementos_de_despesa.create!( codigo: '45404200', descricao: 'Auxílios' )
					modalidade.elementos_de_despesa.create!( codigo: '45409900', descricao: 'A Classificar' )
				end

				inversoes_financeiras.modalidades_de_aplicacao.create!(codigo: '45420000', descricao: 'Execução Orçamentária Delegada a Municípios').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '45426400', descricao: 'Aquisição de Títulos Representativos de Capital já Integralizado' )
					modalidade.elementos_de_despesa.create!( codigo: '45426600', descricao: 'Concessão de Empréstimos e Financiamentos' )
					modalidade.elementos_de_despesa.create!( codigo: '45429900', descricao: 'A Classificar' )
				end

				inversoes_financeiras.modalidades_de_aplicacao.create!(codigo: '45500000', descricao: 'Transferências a Instituições Privadas sem Fins Lucrativos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '45506600', descricao: 'Concessão de Empréstimos e Financiamentos' )
					modalidade.elementos_de_despesa.create!( codigo: '45509900', descricao: 'A Classificar' )
				end

				inversoes_financeiras.modalidades_de_aplicacao.create!(codigo: '45710000', descricao: 'Transferências a Consórcios Públicos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '45717000', descricao: 'Rateio pela Participação em Consórcio Público', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '45719900', descricao: 'A Classificar' )
				end

				inversoes_financeiras.modalidades_de_aplicacao.create!(codigo: '45720000', descricao: 'Execução Orçamentária Delegada a Consórcios Públicos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '45729900', descricao: 'A Classificar' )
				end

				inversoes_financeiras.modalidades_de_aplicacao.create!(codigo: '45800000', descricao: 'Transferências ao Exterior').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '45806600', descricao: 'Concessão de Empréstimos e Financiamentos' )
					modalidade.elementos_de_despesa.create!( codigo: '45809900', descricao: 'A Classificar' )
				end

				inversoes_financeiras.modalidades_de_aplicacao.create!(codigo: '45900000', descricao: 'Aplicações Diretas').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '45902700', descricao: 'Encargos pela Honra de Avais, Garantias, Seguros e Similares' )
					modalidade.elementos_de_despesa.create!( codigo: '45906100', descricao: 'Aquisição de Imóveis', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '45906200', descricao: 'Aquisição de Produtos para Revenda' )
					modalidade.elementos_de_despesa.create!( codigo: '45906300', descricao: 'Aquisição de Títulos de Crédito' )
					modalidade.elementos_de_despesa.create!( codigo: '45906400', descricao: 'Aquisição de Títulos Representativos de Capital já Integralizado' )
					modalidade.elementos_de_despesa.create!( codigo: '45906500', descricao: 'Constituição ou Aumento de Capital de Empresas' )
					modalidade.elementos_de_despesa.create!( codigo: '45906600', descricao: 'Concessão de Empréstimos e Financiamentos' )
					modalidade.elementos_de_despesa.create!( codigo: '45906700', descricao: 'Depósitos Compulsórios' )
					modalidade.elementos_de_despesa.create!( codigo: '45909100', descricao: 'Sentenças Judiciais', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '45909200', descricao: 'Despesas de Exercícios Anteriores', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '45909300', descricao: 'Indenizações e Restituições' )
					modalidade.elementos_de_despesa.create!( codigo: '45909900', descricao: 'A Classificar' )
				end

				inversoes_financeiras.modalidades_de_aplicacao.create!(codigo: '45910000', descricao: 'Aplicação Direta Decorrente de Operação entre Órgãos, Fundos e Entidades Integrantes dos Orçamentos Fiscal e da Seguridade Social').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '45914700', descricao: 'Obrigações Tributárias e Contributivas' )
					modalidade.elementos_de_despesa.create!( codigo: '45916100', descricao: 'Aquisição de Imóveis' )
					modalidade.elementos_de_despesa.create!( codigo: '45916200', descricao: 'Aquisição de Produtos para Revenda' )
					modalidade.elementos_de_despesa.create!( codigo: '45916600', descricao: 'Concessão de Empréstimos e Financiamentos' )
					modalidade.elementos_de_despesa.create!( codigo: '45919100', descricao: 'Sentenças Judiciais' )
					modalidade.elementos_de_despesa.create!( codigo: '45919200', descricao: 'Despesas de Exercícios Anteriores' )
					modalidade.elementos_de_despesa.create!( codigo: '45919900', descricao: 'A Classificar' )
				end

				inversoes_financeiras.modalidades_de_aplicacao.create!(codigo: '45990000', descricao: 'A Definir').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '45999900', descricao: 'A Classificar' )
				end
			end
			# AMORTIZAÇÃO DA DÍVIDA
			despesas_de_capital.grupos_de_natureza_da_despesa.create!(descricao: 'Amortização da Dívida',codigo: '46000000').tap do |amortizacao_da_divida|
				amortizacao_da_divida.modalidades_de_aplicacao.create!(codigo: '46710000', descricao: 'Transferências a Consórcios Públicos').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '46717000', descricao: 'Rateio pela Participação em Consórcio Público', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '46719900', descricao: 'A Classificar' )
				end
				amortizacao_da_divida.modalidades_de_aplicacao.create!(codigo: '46900000', descricao: 'Aplicações Diretas').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '46907100', descricao: 'Principal da Dívida Contratual Resgatado' , exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '46907200', descricao: 'Principal da Dívida Mobiliária Resgatado' )
					modalidade.elementos_de_despesa.create!( codigo: '46907300', descricao: 'Correção Monetária ou Cambial da Dívida Contratual Resgatada', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '46907400', descricao: 'Correção Monetária ou Cambial da Dívida Mobiliária Resgatada' )
					modalidade.elementos_de_despesa.create!( codigo: '46907500', descricao: 'Correção Monetária da Dívida de Operações de Crédito por Antecipação da Receita' )
					modalidade.elementos_de_despesa.create!( codigo: '46907600', descricao: 'Principal Corrigido da Dívida Mobiliária Refinanciado', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '46907700', descricao: 'Principal Corrigido da Dívida Contratual Refinanciado', exibir_elemento_de_despesa: 'true' )
					modalidade.elementos_de_despesa.create!( codigo: '46909100', descricao: 'Sentenças Judiciais' )
					modalidade.elementos_de_despesa.create!( codigo: '46909200', descricao: 'Despesas de Exercícios Anteriores' )
					modalidade.elementos_de_despesa.create!( codigo: '46909300', descricao: 'Indenizações e Restituições' )
					modalidade.elementos_de_despesa.create!( codigo: '46909900', descricao: 'A Classificar' )
				end
				amortizacao_da_divida.modalidades_de_aplicacao.create!(codigo: '46910000', descricao: 'Aplicação Direta Decorrente de Operação entre Órgãos, Fundos e Entidades Integrantes dos Orçamentos Fiscal e da Seguridade Social').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '46917100', descricao: 'Principal da Dívida Contratual Resgatado', exibir_elemento_de_despesa: 'true')
					modalidade.elementos_de_despesa.create!( codigo: '46917300', descricao: 'Correção Monetária ou Cambial da Dívida Contratual Resgatada', exibir_elemento_de_despesa: 'true')
				end
				amortizacao_da_divida.modalidades_de_aplicacao.create!(codigo: '46990000', descricao: 'A Definir').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '46999900', descricao: 'A Classificar' )
				end
			end
		end

		# RESERVA DE CONTINGÊNCIA
		self.categorias_economicas.create!(descricao: 'Reserva de Contingência', codigo: '90000000').tap  do |reservas_de_contingencia|
			reservas_de_contingencia.grupos_de_natureza_da_despesa.create!(descricao: 'Reserva de Contingência', codigo: '99000000').tap do |reserva_de_contingencia|
				reserva_de_contingencia.modalidades_de_aplicacao.create!(codigo:'99990000', descricao: 'Reserva de Contingência').tap do |modalidade|
					modalidade.elementos_de_despesa.create!( codigo: '99999900', descricao: 'Reserva de Contingência', exibir_elemento_de_despesa: 'true')
				end
			end
		end
	end

	def atualiza_elementos_da_despesa
		# ATUALIZA ELEMENTOS DE GASTOS NOS ELEMENTOS DE DESPESA
			elementos_de_despesa.each do |elemento|
				if elemento.elemento_de_gasto.nil?
					elemento_de_gasto = NaturezaDaDespesa::ElementoDeDespesa.find_by_codigo(elemento.codigo[4..5])
					begin
						elemento.update!(elemento_de_gasto: elemento_de_gasto)
					rescue => exception
						p "Erro: #{exception.message}"
						raise ActiveRecord::Rollback
					end
				end
			end

		# CRIA SUB-ELEMENTOS DE DESPESA
			elementos_de_despesa.each do |elemento|
				elemento.elemento_de_gasto.sub_elementos_de_despesa.each do |subelemento|
					begin
						elemento.sub_elementos_de_despesa.find_or_create_by!( codigo: subelemento.codigo, descricao: subelemento.descricao )
					rescue => exception
						p "Erro: #{exception.message}! codigo: #{subelemento.codigo} e descrição: #{subelemento.descricao}"
						raise ActiveRecord::Rollback
					end
				end
			end

		# AJUSTAR CONFIGURAÇÃO DOS SUB-ELEMENTOS DE DESPESA
		Contabilidade::SubElementoDeDespesa.all.each do |sub_elemento|
      if sub_elemento.elemento_de_despesa.codigo == '33901800'
        sub_elemento.update_column(:vpd_obrigatorio, true) if sub_elemento.codigo == '01'
      elsif sub_elemento.elemento_de_despesa.codigo == '33901400'
        sub_elemento.update_column(:vpd_obrigatorio, true) if sub_elemento.codigo == '01' || sub_elemento.codigo == '02' || sub_elemento.codigo == '03'
      elsif sub_elemento.elemento_de_despesa.codigo == '33903600'
        sub_elemento.update_column(:vpd_obrigatorio, true) if sub_elemento.codigo == '02' || sub_elemento.codigo == '03' || sub_elemento.codigo == '46'
      elsif sub_elemento.elemento_de_despesa.codigo == '33903100'
        sub_elemento.update_column(:vpd_obrigatorio, true)
      end
    end

		# ATUALIZA ATRIBUTOS CONFORME PLANILHA

		sempre_despesa_pessoal = ['31204100','31204300','31209200','31220400','31221100','31221300',
			'31221600','31229200','31229600','31304100','31304300','31309200','31320400','31320500',
			'31320700','31321100','31321300','31321600','31329200','31329600','31404100','31404300',
			'31409200','31420400','31420500','31420700','31421100','31421300','31421600','31429200',
			'31429600','31504100','31504300','31509200','31704100','31704300','31709200','31717000',
			'31719200','31720400','31720500','31720700','31721100','31721300','31721600','31729200',
			'31729600','31737000','31739200','31747000','31749200','31754100','31754300','31759200',
			'31764100','31764300','31769200','31800400','31804100','31809200','31900100','31900300',
			'31900400','31900500','31900700','31901100','31901300','31901600','31904700','31906700',
			'31909100','31909200', '31909600''31910400','31911300','31919100','31919200','31919600',
			'31950400','31950700','31951100','31951300','31951600','31959100','31959200','31959600',
			'31960400','31960700','31961100','31961300','31961600','31966700','31969100','31969200',
			'31969600']

		geralmente_sim_despesa_pessoal = [ '33223400', '33323400', '33423400','33723400', '33803400',
			'33903400','33953400','33963400']

		geralmente_nao_despesa_pessoal = ['33200100','33200300','33209200','33220400','33220800',
			'33221300','33221400','33224600','33224700','33224900','33229200','33309200','33319200',
			'33320400','33320800','33321300','33321400','33324600','33324700','33324900','33329200',
			'33359200','33409200','33419200','33420400','33420800','33421300','33421400','33421900',
			'33424600','33424700','33424900','33429200','33459200','33469200','33501400','33504700',
			'33509200','33609200','33709200','33719200','33720400','33720800','33721300','33721400',
			'33724600','33724700','33724900','33729200','33739200','33749200','33759200','33769200',
			'33800400','33801400','33809200','33900100','33900300','33900400','33900800','33901300',
			'33901400','33901900','33904600','33904700','33904900','33905900','33906700','33909100',
			'33909200','33910400','33911300','33914700','33919200','33939200','33949200','33950400',
			'33950800','33951300','33951400','33951900','33954600','33954700','33954900','33956700',
			'33959200','33960400','33960800','33961300','33961400','33961900','33964600','33964700',
			'33964900','33966700','33969200']

		sempre_despesa_financeira = ['32717000','32719200','32737000','32739200','32747000','32749200',
			'32902100','32902200','32902300','32902400','32902500','32902700','32909100','32909200',
			'32909300','32912100','32912200','32919100','32919200','32919300','32952100','32952200',
			'32959200','32962100','32962200','32969200','33902800','33902900','45426400','45426600',
			'45506600','45726400','45726500','45726600','45906300','45906400','45906500','45906600',
			'45906700','45907100','45916300','45916400','45916500','45916600','45917100','46717000',
			'46719200','46737000','46739200','46747000','46749200','46907100','46907200','46907300',
			'46907400','46907500','46907600','46907700','46909100','46909200','46909300','46917100',
			'46917300','46919100','46919200','46919300','46957100','46957300','46957400','46957500',
			'46957600','46957700','46959100','46959200','46959300','46967100','46967200','46967300',
			'46967400','46967500','46967600','46967700','46969100','46969200','46969300']

		sempre_compoe_obras = [ '44225100','44325100','44425100','44725100','44905100','44915100',
			'44935100','44945100','44955100','44965100']

		geralmente_sim_compoe_obras = [ '44229200','44329200','44429200','44729200','44919200',
			'44939200','44949200','44959200','44969200']

		sempre_deducao_despesa_pessoal = [ '31209200','31229200','31309200','31329200','31409200',
			'31429200','31509200','31709200','31719200','31729200','31739200','31749200','31759200',
			'31769200','31809200','31909100','31909200','31909400','31909600','31919100','31919200',
			'31919400','31959100','31959200','31959400','32739200','31969100','31969200','31969400',
			'32749200','32909100','32909200','32919100','32919200','32959200','32969200','33209200',
			'33229200','33309200','33319200','33329200','33409100','33409200','33419200','33429200',
			'33459100','33459200','33469100','33469200','33509200','33609200','33709200','33719200',
			'33729200','33739200','33759200','33769200','33809200','33909100','33909200','33919100',
			'33919200','33939200','33949200','33959100','33959200','33969100','33969200']

		sempre_folha_de_pagamento = [ '31900100','31901100','31901600','31910400','31951100','31951600',
			'31960400','31961100','31961600','33901600','33910400','33950400']

		geralmente_sim_folha_de_pagamento = ['31900400','31950400','44950400']


		geralmente_nao_folha_de_pagamento = ['31909600','31919600','31959600','31969600','33909600',
			'33959600','33969600']

		sempre_despesa_magistrado = ['31320400']

		geralmente_sim_despesa_magistrado = ['31204100','31204300','31209200','31220400','31220500',
			'31220700','31221100','31221300','31221600','31229200','31229600','31304100','31304300',
			'31309200','31320500','31320700','31321100','31321300','31321600','31329200','31329600',
			'31404100','31404300','31409200','31420400','31420500','31420700','31421100','31421300',
			'31421600','31429200','31429600','31504100','31504300','31509200','31704100','31704300',
			'31709200','31717000','31719200','31720400','31720500','31720700','31721100','31721300',
			'31721600','31729200','31729600','31800400','31804100','31809200','31900400','31900500',
			'31900700','31901100','31901300','31901600','31909100','31909200','31910400','31911300',
			'31919100','31919200','31919600','33221300', '33223400''33229600','33321300','33323400',
			'33329600','33421300','33421400','33423400','33429600','33723400','33729600','33803400',
			'33900500','33900700','33901300','33901600','33903400','33909600','33911300','33919600']

		geralmente_nao_despesa_magistrado = ['33209200','33220400','33220800','33221400','33224600',
			'33224900','33229200','33309200','33319200','33320400','33320800','33321400','33324600',
			'33324900','33329200','33409100','33409200','33419200','33420400','33420800','33421900',
			'33424600','33424900','33429200','33501400','33509200','33609200','33709200','33719200',
			'33720400','33720800','33721300','33721400','33721900','33724600','33724900','33729200',
			'33800400','33801400','33809200','33900800','33901400','33901900','33904600','33904900',
			'33909200','33910400','33919100','33919200']

		sempre_transferencia_intraorcamentaria = ['31919100','31919200','31919400','31919600','32912100',
			'32912200','32919100','32919200','32919300','33910400','33911300','33912800','33912900',
			'33913000','33913200','33913500','33913900','33914700','33916200','33919100','33919200',
			'33919300','33919600','33919700','44913000','44913500','44913900','44914700','44915100',
			'44915200','44916100','44919100','44919200','44919300','45914700','45916100','45916200',
			'45916300','45916400','45916500','45916600','45917100','45919100','45919200','45919300',
			'46917100','46917300','46919100','46919200','46919300']

		sempre_deducao_pasep = ['31904700','33204700','33224700','33324700','33424700','33504700',
			'33724700','33904700','33914700','33954700','33964700','44224700','44424700','44724700',
			'44904700','44914700','45224700','45324700','45424700','45724700','45914700']

		sempre_contabil_obrigatorio = ['31906700','31909100','31909400','31919100','31956700','31959100',
			'31959400','31966700','31969100','31969400','32909100','32909300','32919100','32919300',
			'33209300','33309300','33329300','33409100','33409300','33429300','33459100','33469100',
			'33906700','33909100','33909300','33916200','33919100','33919300','33939300','33949300',
			'33956700','33959100','33959300','33966700','33969100','33969300','44225100','44225200',
			'44229300','44325100','44325200','44329300','44425100','44425200','44725100','44725200',
			'44729300','44905100','44905200','44906100','44909100','44915100','44915200','44916100',
			'44919100','44919300','44935100','44935200','44936100','44939300','44945100','44945200',
			'44946100','44949300','44955100','44955200','44956100','44959100','44959300','44965100',
			'44965200','44966100','44969100','44969300','45326100','45326500','45326600','45426400',
			'45506600','45726100','45726400','45726500','45726600','45906100','45906200','45906300',
			'45906400','45906500','45906600','45906700','45907100','45909100','45909300','45916100',
			'45916200','45916300','45916400','45916500','45916600','45917100','45919100','45919300',
			'45956100','45956700','45959100','45959300','45966100','45966700','45969100','45969300',
			'46907100','46907200','46907600','46907700','46909100','46909300','46917100','46919100',
			'46919300','46957100','46957600','46957700','46959100','46959300','46967100','46967200',
			'46967600','46967700','46969100','46969300']


		elementos_de_despesa.all.each do |elemento|
			if sempre_despesa_pessoal.include?(elemento.codigo)
				elemento.despesa_pessoal = 1
			end
			if geralmente_sim_despesa_pessoal.include?(elemento.codigo)
				elemento.despesa_pessoal = 3
			end
			if geralmente_nao_despesa_pessoal.include?(elemento.codigo)
				elemento.despesa_pessoal = 2
			end
			if sempre_despesa_financeira.include?(elemento.codigo)
				elemento.despesa_financeira = 1
			end
			if sempre_compoe_obras.include?(elemento.codigo)
				elemento.compoe_obras = 1
			end
			if geralmente_sim_compoe_obras.include?(elemento.codigo)
				elemento.compoe_obras = 3
			end
			if sempre_deducao_despesa_pessoal.include?(elemento.codigo)
				elemento.deducao_despesa_pessoal = 1
			end
			if sempre_folha_de_pagamento.include?(elemento.codigo)
				elemento.folha_de_pagamento = 1
			end
			if geralmente_sim_folha_de_pagamento.include?(elemento.codigo)
				elemento.folha_de_pagamento = 3
			end
			if geralmente_nao_folha_de_pagamento.include?(elemento.codigo)
				elemento.folha_de_pagamento = 2
			end
			if sempre_despesa_magistrado.include?(elemento.codigo)
				elemento.despesa_magisterio = 1
			end
			if geralmente_sim_despesa_magistrado.include?(elemento.codigo)
				elemento.despesa_magisterio = 3
			end
			if geralmente_nao_despesa_magistrado.include?(elemento.codigo)
				elemento.despesa_magisterio = 2
			end
			if sempre_transferencia_intraorcamentaria.include?(elemento.codigo)
				elemento.despesa_pessoal = 1
			end
			if sempre_deducao_pasep.include?(elemento.codigo)
				elemento.deducao_pasep = 1
			end
			if sempre_contabil_obrigatorio.include?(elemento.codigo)
				elemento.contabil_obrigatorio = 1
			end

			elemento.save(validate: false)
		end
	end
end
