class Loa::Relatorios::DemonstrativoDaRcl


	def self.dados orcamento
		dados_do_relatorio = Array.new
		total_impostos = 0
		total_contribuicoes = 0
		total_deducoes = 0
		total_iptu = 0
		total_iss = 0
		total_itbi = 0
		total_irrf = 0
		receitas_todos_impostos = 0
		total_outros_impostos = 0

		# receitas 11
		receitas_rcl_impostos = ['0011180110000000','0011180230000000','0011180140000000']
		receitas_iptu = ['0011125000000000']
		receitas_iss = ['0011145110000000', '0011145120000000']
		receitas_itbi = ['0011125300000000']
		receitas_irrf = ['0011130300000000']
		receitas_todos_impostos = ['0011000000000000']

		total_iptu = orcamento.naturezas_da_receita.where("codigo in (?)", receitas_iptu).to_a.sum(&:total_previsto_agregado)
		total_irrf = orcamento.naturezas_da_receita.where("codigo in (?)", receitas_irrf).to_a.sum(&:total_previsto_agregado)
		total_iss = orcamento.naturezas_da_receita.where("codigo in (?)", receitas_iss).to_a.sum(&:total_previsto_agregado)
		total_itbi = orcamento.naturezas_da_receita.where("codigo in (?)", receitas_itbi).to_a.sum(&:total_previsto_agregado)
		total_impostos = orcamento.naturezas_da_receita.where("codigo in (?)", receitas_todos_impostos).to_a.sum(&:total_previsto_agregado)
		total_outros_impostos = orcamento.naturezas_da_receita.where("codigo in (?)", receitas_todos_impostos).to_a.sum(&:total_previsto_agregado) - (total_iptu + total_irrf + total_iss + total_itbi)


		total_receitas_correntes = orcamento.naturezas_da_receita.where("origem = '0' and categoria_economica = '001'").to_a.sum(&:total_previsto_agregado)
		sumario = {}
		sumario['descricao'] = 'RECEITAS CORRENTES (I)'
		sumario['estilo'] = 'negrito'
		sumario['valor'] = total_receitas_correntes
		dados_do_relatorio.push(sumario)

		sumario = {}
		sumario['descricao'] = 'Impostos, Taxas e Contribuições de Melhoria'
		sumario['estilo'] = 'tabulacao_1'
		sumario['valor'] = total_impostos
		dados_do_relatorio.push(sumario)

		orcamento.naturezas_da_receita.where("codigo in (?)", receitas_rcl_impostos).order(:codigo).each do |receita|
			sumario = {}
			sumario['descricao'] = receita.descricao_e_sigla
			sumario['valor'] = receita.total_previsto_agregado
			sumario['estilo'] = 'tabulacao_2'
			dados_do_relatorio.push(sumario)
		end

		sumario = {}
		sumario['descricao'] = 'IPTU'
		sumario['valor'] = total_iptu
		sumario['estilo'] = 'tabulacao_2'
		dados_do_relatorio.push(sumario)
		
		sumario = {}
		sumario['descricao'] = 'ISS'
		sumario['valor'] = total_iss
		sumario['estilo'] = 'tabulacao_2'
		dados_do_relatorio.push(sumario)
		
		sumario = {}
		sumario['descricao'] = 'ITBI'
		sumario['valor'] = total_itbi
		sumario['estilo'] = 'tabulacao_2'
		dados_do_relatorio.push(sumario)
		
		sumario = {}
		sumario['descricao'] = 'IRRF'
		sumario['valor'] = total_irrf
		sumario['estilo'] = 'tabulacao_2'
		dados_do_relatorio.push(sumario)


		sumario = {}
		sumario['descricao'] = 'Outros Impostos, Taxas e Contribuições de Melhoria'
		sumario['valor'] = total_outros_impostos
		sumario['estilo'] = 'tabulacao_2'
		dados_do_relatorio.push(sumario)

		# receitas 12
		total_contribuicoes = orcamento.naturezas_da_receita.where("origem = '2' and categoria_economica = '001' and especie = '0'").to_a.sum(&:total_previsto_agregado)

		sumario = {}
		sumario['descricao'] = 'Contribuições'
		sumario['valor'] = total_contribuicoes
		sumario['estilo'] = 'tabulacao_1'
		dados_do_relatorio.push(sumario)

		# receitas 13
		total_patrimonial = orcamento.naturezas_da_receita.where("origem = '3' and categoria_economica = '001' and especie = '0'").to_a.sum(&:total_previsto_agregado)
		total_outras_receitas_patrimoniais = total_patrimonial

		sumario = {}
		sumario['descricao'] = 'Receita Patrimonial'
		sumario['estilo'] = 'tabulacao_1'
		sumario['valor'] = total_patrimonial
		dados_do_relatorio.push(sumario)

		receitas_rcl_patrimonial = ['0013210000000000']
		orcamento.naturezas_da_receita.where("codigo in (?)", receitas_rcl_patrimonial).order(:codigo).each do |receita|
				sumario = {}
				sumario['descricao'] = 'Rendimentos de Aplicação Financeira'
				sumario['valor'] = receita.total_previsto_agregado
				sumario['estilo'] = 'tabulacao_2'
				total_outras_receitas_patrimoniais -= receita.total_previsto_agregado
				dados_do_relatorio.push(sumario)
		end

		sumario = {}
		sumario['descricao'] = 'Outras Receitas Patrimoniais'
		sumario['estilo'] = 'tabulacao_2'
		sumario['valor'] = total_outras_receitas_patrimoniais
		dados_do_relatorio.push(sumario)

		#receita 14
		total_agropecuarias = orcamento.naturezas_da_receita.where("origem = '4' and categoria_economica = '001' and especie = '0'").to_a.sum(&:total_previsto_agregado)
		sumario = {}
		sumario['descricao'] = 'Receita Agropecuária'
		sumario['estilo'] = 'tabulacao_1'
		sumario['valor'] = total_agropecuarias
		dados_do_relatorio.push(sumario)

		#receita 15
		total_industrial = orcamento.naturezas_da_receita.where("origem = '5' and categoria_economica = '001' and especie = '0'").to_a.sum(&:total_previsto_agregado)
		sumario = {}
		sumario['descricao'] = 'Receita Industrial'
		sumario['estilo'] = 'tabulacao_1'
		sumario['valor'] = total_industrial
		dados_do_relatorio.push(sumario)

		#receita 16
		total_servicos = orcamento.naturezas_da_receita.where("origem = '6' and categoria_economica = '001' and especie = '0'").to_a.sum(&:total_previsto_agregado)
		sumario = {}
		sumario['descricao'] = 'Receita de Serviços'
		sumario['estilo'] = 'tabulacao_1'
		sumario['valor'] = total_servicos
		dados_do_relatorio.push(sumario)

		# receita 17
		total_transferencias = orcamento.naturezas_da_receita.where("origem = '7' and categoria_economica = '001' and especie = '0'").to_a.sum(&:total_previsto_agregado)

		sumario = {}
		sumario['descricao'] = 'Transferências Correntes'
		sumario['estilo'] = 'tabulacao_1'
		sumario['valor'] = total_transferencias
		dados_do_relatorio.push(sumario)

		total_receitas_fpm = orcamento.naturezas_da_receita.where(codigo: ["0017115110000000", "0017115120000000"]).to_a.sum(&:total_previsto_agregado)
		
		sumario = {}
		sumario['descricao'] = "Cota-Parte do FPM"
		sumario['estilo'] = 'tabulacao_2'
		sumario['valor'] = total_receitas_fpm
		dados_do_relatorio.push(sumario)
		
		total_receitas_icms = orcamento.naturezas_da_receita.where(codigo: ["0017215000000000"]).to_a.sum(&:total_previsto_agregado)
		
		sumario = {}
		sumario['descricao'] = "Cota-Parte do ICMS"
		sumario['estilo'] = 'tabulacao_2'
		sumario['valor'] = total_receitas_icms
		dados_do_relatorio.push(sumario)
		
		total_receitas_ipva = orcamento.naturezas_da_receita.where(codigo: ["0017215100000000"]).to_a.sum(&:total_previsto_agregado)
		
		sumario = {}
		sumario['descricao'] = "Cota-Parte do IPVA"
		sumario['estilo'] = 'tabulacao_2'
		sumario['valor'] = total_receitas_ipva
		dados_do_relatorio.push(sumario)
		
		total_receitas_itr = orcamento.naturezas_da_receita.where(codigo: ["0017115200000000"]).to_a.sum(&:total_previsto_agregado)
		
		sumario = {}
		sumario['descricao'] = "Cota-Parte do ITR"
		sumario['estilo'] = 'tabulacao_2'
		sumario['valor'] = total_receitas_itr
		dados_do_relatorio.push(sumario)
		
		total_receitas_lc = orcamento.naturezas_da_receita.where(codigo: ["0017215200000000"]).to_a.sum(&:total_previsto_agregado)
		
		sumario = {}
		sumario['descricao'] = "Transferências da LC 61/1989"
		sumario['estilo'] = 'tabulacao_2'
		sumario['valor'] = total_receitas_lc
		dados_do_relatorio.push(sumario)
		
		total_receitas_fundeb = orcamento.naturezas_da_receita.where(codigo: ["0017515000000000", "0017150000000000"]).to_a.sum(&:total_previsto_agregado)
		
		sumario = {}
		sumario['descricao'] = "Transferências do FUNDEB"
		sumario['estilo'] = 'tabulacao_2'
		sumario['valor'] = total_receitas_fundeb
		dados_do_relatorio.push(sumario)
		
		sumario = {}
		sumario['descricao'] = "Outras transferências Correntes"
		sumario['estilo'] = 'tabulacao_2'
		sumario['valor'] = total_transferencias - (total_receitas_fpm + total_receitas_icms + total_receitas_ipva + total_receitas_itr + total_receitas_lc + total_receitas_fundeb)
		dados_do_relatorio.push(sumario)

		# Receita 18
		total_outras_receitas_correntes = orcamento.naturezas_da_receita.where("origem = '9' and categoria_economica = '001' and especie = '0'").to_a.sum(&:total_previsto_agregado)
		
		sumario = {}
		sumario['descricao'] = 'Outras Receitas Correntes'
		sumario['estilo'] = 'tabulacao_1'
		sumario['valor'] = total_outras_receitas_correntes
		dados_do_relatorio.push(sumario)

		# Receita 19
		contribuicao_servidor_previdencia = ["0012150100000000", "0012150200000000", "0012150300000000", "0012155000000000", "0012155100000000"]
		compensacao_financeira_previdencia = ["0019990300000000"]
		rendimento_aplicacoes_previdencia = ["0013210400000000"]
		deducao_receitas_fundeb = ["0095000000000000"]
		
		total_contribuicao_servidor_previdencia = -orcamento.naturezas_da_receita.where("codigo in (?)", contribuicao_servidor_previdencia).to_a.sum(&:total_previsto_agregado)
		total_compensacao_financeira_previdencia = -orcamento.naturezas_da_receita.where("codigo in (?)", compensacao_financeira_previdencia).to_a.sum(&:total_previsto_agregado)
		total_rendimento_aplicacoes_previdencia = -orcamento.naturezas_da_receita.where("codigo in (?)", rendimento_aplicacoes_previdencia).to_a.sum(&:total_previsto_agregado)
		total_deducao_receitas_fundeb = orcamento.naturezas_da_receita.where("codigo in (?)", deducao_receitas_fundeb).to_a.sum(&:total_previsto_agregado)
		total_deducoes = total_contribuicao_servidor_previdencia + total_compensacao_financeira_previdencia + total_rendimento_aplicacoes_previdencia + total_deducao_receitas_fundeb
		
		sumario = {}
		sumario['descricao'] = 'DEDUÇÕES (II)'
		sumario['valor'] = total_deducoes
		sumario['estilo'] = 'negrito'
		dados_do_relatorio.push(sumario)
		
		sumario = {}
		sumario['descricao'] = 'Contrib. do Servidor para o Plano de Previdência'
		sumario['valor'] = total_contribuicao_servidor_previdencia
		sumario['estilo'] = 'tabulacao_2'
		dados_do_relatorio.push(sumario)
		
		sumario = {}
		sumario['descricao'] = 'Compensação Financ. entre Regimes Previdência'
		sumario['valor'] = total_compensacao_financeira_previdencia
		sumario['estilo'] = 'tabulacao_2'
		dados_do_relatorio.push(sumario)
		
		sumario = {}
		sumario['descricao'] = 'Rendimentos de Aplicações de Recursos Previdenciários'
		sumario['valor'] = total_rendimento_aplicacoes_previdencia
		sumario['estilo'] = 'tabulacao_2'
		dados_do_relatorio.push(sumario)
		
		sumario = {}
		sumario['descricao'] = 'Dedução de Receita para Formação do FUNDEB'
		sumario['valor'] = total_deducao_receitas_fundeb
		sumario['estilo'] = 'tabulacao_2'
		dados_do_relatorio.push(sumario)
		
		sumario = {}
		sumario['descricao'] = 'RECEITA CORRENTE LÍQUIDA (III) = (I) - (II)'
		sumario['valor'] = total_receitas_correntes.to_f + total_deducoes.to_f
		sumario['estilo'] = 'negrito'
		dados_do_relatorio.push(sumario)

		return dados_do_relatorio
	end

end
