class PortalDaTransparenciaController < ApplicationController
	include ControllerConcern
	skip_before_action :authenticate_usuario!, :raise => false
	before_action :set_obra, only: [:obra]
	before_action :disponibiliza_dependencias
	before_action :disponibiliza_dependencias_obras, only: [:index_obras, :obra]
	before_action :renderiza_404_rota, if: lambda{ verifica_link }
	layout "layouts/portal_da_transparencia"

	def renderiza_404_rota
		renderiza_404
	end

	def verifica_link
		if ["prefeitura", "camara"].include?(session[:tipo_de_ambiente])
			return false
		else
			return true
		end
	end

	# GET /obra/portal_da_transparencia
	def index

	end

	def index_obras
		if query_params.empty?
			@q = Contabilidade::Obra.ransack(query_params)
			@obras = @q.result(distinct: false)
		else	
			if query_params["orcamento_id_eq"].present? 
				@q = @orcamento.obras.joins(orcamento: [orgaos: :unidades_orcamentarias]).where('loa_unidades_orcamentarias.id in (?)', @unidades_orcamentarias.joins(:tipo_de_unidade_administrativa)
				.where("base_tipos_de_unidades_administrativas.poder_associado = ?", Base::TipoDeUnidadeAdministrativa.poderes_associados[@tipo_de_poder]).pluck(:id))
				.joins(:situacoes_da_obra).order(id: :desc).distinct.ransack(query_params)
			else
				@q = Contabilidade::Obra.joins(orcamento: [orgaos: :unidades_orcamentarias])
				.where('loa_unidades_orcamentarias.id in (?)', @unidades_orcamentarias.joins(:tipo_de_unidade_administrativa).where("base_tipos_de_unidades_administrativas.poder_associado = ?",	 Base::TipoDeUnidadeAdministrativa.poderes_associados[@tipo_de_poder]).pluck(:id))
				.where("contabilidade_obras.data_prevista_de_termino >= ? OR (contabilidade_obras.data_prevista_de_termino >= ? AND contabilidade_obras.data_prevista_de_termino <= ?)", Date.today, Date.today.beginning_of_year, Date.today ).joins(:situacoes_da_obra).order(id: :desc).distinct.ransack(query_params)
			end

			if query_params["codigo"].present?
				codigo_da_obra_array = query_params["codigo"].split(".")
				if codigo_da_obra_array[1].present?
					obras_filtradas = @q.result.where("contabilidade_obras.codigo = ? AND SUBSTRING(EXTRACT('year' FROM data_de_inicio)::text, 3, 2) = ?",codigo_da_obra_array[0], codigo_da_obra_array[1])
				else
					obras_filtradas = @q.result.where("contabilidade_obras.codigo = ?",codigo_da_obra_array)
				end
			else
				obras_filtradas = @q.result
			end
			
			if query_params["situacoes_da_obra_tipo_de_status_da_obra_eq"].present?
				@situacoes_da_obra_filtrado = obras_filtradas.distinct.joins("INNER JOIN contabilidade_situacoes_da_obra a on contabilidade_obras.id = a.obra_id and a.id = (select id from contabilidade_situacoes_da_obra where contabilidade_situacoes_da_obra.obra_id = contabilidade_obras.id order by data_da_situacao, id DESC LIMIT 1)")
				.where("a.tipo_de_status_da_obra = ?", query_params["situacoes_da_obra_tipo_de_status_da_obra_eq"])
				# .select{ |obra| obra.situacao_atual.tipo_de_status_da_obra_before_type_cast == query_params["situacoes_da_obra_tipo_de_status_da_obra_eq"].to_i}

				@obras = @situacoes_da_obra_filtrado
			else
				@obras = obras_filtradas.distinct
			end
		end
		@unidades_gestoras = Loa::UnidadeGestora.all
		@obras_gerais = @obras
		@obras = @obras.paginate(page: params[:page], per_page: 10)
		# @obras_geral = Contabilidade::Obra.joins(contrato: [unidade_orcamentaria_por_pedido: :unidade_orcamentaria])
			# .where('loa_unidades_orcamentarias.id in (?)', @orcamento.unidades_orcamentarias.joins(:tipo_de_unidade_administrativa).where(base_tipos_de_unidades_administrativas: {poder_associado: Base::TipoDeUnidadeAdministrativa.poderes_associados[params[:tipo_de_poder]]}).pluck(:id))
			# .joins(:situacoes_da_obra).where(divulga_obra: true).distinct.all
	end

	def obra
		# grafico de pizza % medido da obra
		porcentagem_total_das_medicoes = @obra.porcentagem_total_das_medicoes.to_f.round(2)
		nao_executado = (100 - porcentagem_total_das_medicoes).to_f.round(2)
		@total_medido_da_obra = {"Não executado: #{nao_executado}%" => nao_executado, "Medido: #{porcentagem_total_das_medicoes}%" => porcentagem_total_das_medicoes}

		# grafico de barra dos valores empenhado, liquidado e pago da obra
		@valores_da_obra = {"Valor Pago: #{@obra.valor_total_pago.to_f.real_contabil}" => @obra.valor_total_pago.to_f,
			"Valor Liquidado: #{@obra.valor_total_liquidado.to_f.real_contabil}" => @obra.valor_total_liquidado.to_f,
				"Valor Empenhado: #{@obra.valor_total_empenhado.to_f.real_contabil}" => @obra.valor_total_empenhado.to_f,
					"Valor da Obra: #{@obra.valor.to_f.real_contabil}" => @obra.valor.to_f}
	end

	def diarias_e_passagens
		@exercicios = Orcamento.order(exercicio: :desc)
		orcamento = Orcamento.last
		@unidades_orcamentarias = orcamento.unidades_orcamentarias
		@meses = [["Janeiro", 1], ["Fevereiro", 2], ["Março", 3], ["Abril", 4], ["Maio", 5], ["Junho", 6], ["Julho", 7], ["Agosto", 8], ["Setembro", 9], ["Outubro", 10], ["Novembro", 11], ["Dezembro", 12]]
		@agentes = ::Base::AgentePublicoMunicipal.all
		@tipo = (params[:tipo] == 'diarias') ? 'Diárias' : 'Passagens'

		if params[:orcamento_id_eq].present? && params[:meses].present? || query_params.size > 0
			if params[:tipo] == 'diarias'
				@q = Contabilidade::Diaria.where("EXTRACT(MONTH FROM data_da_viagem) = ? ", params[:meses].to_i).ransack(query_params)
				@diarias = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
			else
				@q = Contabilidade::Passagem.where("EXTRACT(MONTH FROM data_ida) = ? ", params[:meses].to_i).ransack(query_params)
				@passagens = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
			end
		else
			if params[:tipo] == 'diarias'
				@q = Contabilidade::Diaria.where(orcamento_id: 1).ransack(query_params) #buscando orçamento com id 1, para garantir pegar um orçamento inexistente
				@diarias = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
			else
				@q = Contabilidade::Passagem.where(orcamento_id: 1).ransack(query_params) #buscando orçamento com id 1, para garantir pegar um orçamento inexistente
				@passagens = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
			end
		end
	end

	def licitacoes
		@pessoas = Base::Pessoa.joins(pessoas_dos_projetos: [contratados: :contrato]).distinct
		@unidades_orcamentarias = Loa::UnidadeOrcamentaria.joins(:tipo_de_unidade_administrativa).where('poder_associado = ?', @poder).order(id: :desc)
		configuracao_licitacao_data = Configuracao.last.parametrizacoes_portal_da_transparencia.where(nome_do_acesso: 'licitacoes', tipo_de_poder: @poder_tela_index).last.data_de_inicio_da_pesquisa
		@q = Licitacao::Processo.joins(pedido: :unidade_orcamentaria).where('loa_unidades_orcamentarias.id in (?)', @orcamento.unidades_orcamentarias.joins(:tipo_de_unidade_administrativa)
			.where(base_tipos_de_unidades_administrativas: {poder_associado: @poder}).pluck(:id))
			.vao_para_o_portal.where("data_do_projeto >= ?", configuracao_licitacao_data).order("data_do_projeto desc").search(params[:q])
		@processos = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
	end

	def contratos
		@orcamentos = Orcamento.all.order(exercicio: :desc)
		@pessoas = Base::Pessoa.joins(pessoas_dos_projetos: [contratados: :contrato]).distinct
		@unidades_orcamentarias = Loa::UnidadeOrcamentaria.joins(:tipo_de_unidade_administrativa).where('poder_associado = ?', @poder).order(id: :desc)
		configuracao_contrato_data = Configuracao.last.parametrizacoes_portal_da_transparencia.where(nome_do_acesso: 'contratos', tipo_de_poder: @poder_tela_index).last.data_de_inicio_da_pesquisa
		@q = Licitacao::Contrato.joins(unidade_orcamentaria_por_pedido: :unidade_orcamentaria)
			.where('loa_unidades_orcamentarias.id in (?)', @orcamentos.flat_map{|orc| orc.unidades_orcamentarias.joins(:tipo_de_unidade_administrativa).where(base_tipos_de_unidades_administrativas: {poder_associado: @poder}).pluck(:id)}.compact)
			.vao_para_o_portal.where("data_do_contrato >= ?", configuracao_contrato_data).order(data_do_contrato: :desc).ransack(query_params)
		@contratos = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
	end

	def despesas
		disponibiliza_dependencias_despesas
		@q = @orcamento.empenhos.joins(orcamento_da_despesa: [elemento_de_despesa_por_subacao: [subacao: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]]).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder).where('status = ? OR status = ?', Contabilidade::Empenho.status[:confirmado], Contabilidade::Empenho.status[:anulado]).search(params[:q])
		@empenhos = @q.result(distinct: false).paginate(page: params[:page], per_page: 5).order(:data_do_empenho, :numero_do_empenho)
		@liquidacoes = Contabilidade::Liquidacao.confirmadas_ate_autorizadas.do_orcamento.where('empenho_id in (?)', @q.result.ids)
		@pagamentos = Contabilidade::Pagamento.confirmados_ou_superior.joins(:liquidacao).where('contabilidade_liquidacoes.id in(?)', @liquidacoes.ids)
	end

	def empenhos_repasses
		@repasses = true
		disponibiliza_dependencias_despesas
		empenhos = @orcamento.empenhos.confirmados_ou_anulados_e_superiores.joins(orcamento_da_despesa: [elemento_de_despesa_por_subacao: [subacao: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]]).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder)
		
		empenhos = empenhos.joins(orcamento_da_despesa: [elemento_de_despesa_por_subacao: [:elemento_de_despesa]])
		.joins('INNER JOIN base_modalidades_de_aplicacao ON base_modalidades_de_aplicacao.id = base_elementos_de_despesa.modalidade_de_aplicacao_id')
		.where('base_modalidades_de_aplicacao.codigo LIKE ?', '3350%')
		
		@q = empenhos.search(params[:q])
		@empenhos = @q.result(distinct: false).paginate(page: params[:page], per_page: 5).order(:data_do_empenho, :numero_do_empenho)
		@liquidacoes = @orcamento.liquidacoes.confirmadas_ate_autorizadas.joins(empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]).where('contabilidade_liquidacoes.restos_a_pagar IS FALSE AND base_tipos_de_unidades_administrativas.poder_associado = ? AND empenho_id in (?)', @poder, @q.result.pluck(:id)).search(params[:q]).result
		@pagamentos = @orcamento.pagamentos.where(resto_a_pagar: false).para_portal.joins(liquidacao: [empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]).where('base_tipos_de_unidades_administrativas.poder_associado = ? AND liquidacao_id in (?)', @poder, @liquidacoes.pluck(:id)).search(params[:q]).result
		render :empenhos
	end	

	def empenhos
		disponibiliza_dependencias_despesas
		empenhos = @orcamento.empenhos.confirmados_ou_anulados_e_superiores.do_orcamento.joins(orcamento_da_despesa: [elemento_de_despesa_por_subacao: [subacao: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]]).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder)
		
		if params[:repasses].present?
			empenhos = empenhos.joins(orcamento_da_despesa: [elemento_de_despesa_por_subacao: [:elemento_de_despesa]])
                  .joins('INNER JOIN base_modalidades_de_aplicacao ON base_modalidades_de_aplicacao.id = base_elementos_de_despesa.modalidade_de_aplicacao_id')
                  .where('base_modalidades_de_aplicacao.codigo LIKE ?', '3350%')
		end
	
		@q = empenhos.search(params[:q])
		@empenhos = @q.result(distinct: false).paginate(page: params[:page], per_page: 5).order(:data_do_empenho, :numero_do_empenho)
		@liquidacoes = @orcamento.liquidacoes.confirmadas_ate_autorizadas.do_orcamento.joins(empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]).where('contabilidade_liquidacoes.restos_a_pagar IS FALSE AND base_tipos_de_unidades_administrativas.poder_associado = ? AND empenho_id in (?)', @poder, @q.result.pluck(:id)).search(params[:q]).result
		@pagamentos = @orcamento.pagamentos.where(resto_a_pagar: false).para_portal.do_orcamento.joins(liquidacao: [empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]).where('base_tipos_de_unidades_administrativas.poder_associado = ? AND liquidacao_id in (?)', @poder, @liquidacoes.pluck(:id)).search(params[:q]).result
	end

	def liquidacoes
		disponibiliza_dependencias_despesas
		@q = @orcamento.liquidacoes.confirmadas_ate_autorizadas.do_orcamento.joins(empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]).where('contabilidade_liquidacoes.restos_a_pagar IS FALSE AND base_tipos_de_unidades_administrativas.poder_associado = ?', @poder).search(params[:q])
		@liquidacoes = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
		@empenhos = @orcamento.empenhos.where(id: @liquidacoes.pluck(:empenho_id)).confirmados_ou_anulados_e_superiores.do_orcamento.joins(orcamento_da_despesa: [elemento_de_despesa_por_subacao: [subacao: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]]).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder).search(params[:q]).result
		@pagamentos = @orcamento.pagamentos.where(liquidacao_id: @liquidacoes.pluck(:id)).where(resto_a_pagar: false).para_portal.do_orcamento.joins(liquidacao: [empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder).search(params[:q]).result
	end

	def pagamentos
		disponibiliza_dependencias_despesas
		pagamentos = @orcamento.pagamentos.where(resto_a_pagar: false).para_portal.do_orcamento.joins(liquidacao: [empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]).includes(liquidacao: [empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder)
		@elemento_de_despesa = query_params["liquidacao_empenho_orcamento_da_despesa_elemento_de_despesa_por_subacao_elemento_de_despesa_codigo_eq"].present? ? Base::ElementoDeDespesa.find_by(codigo: query_params["liquidacao_empenho_orcamento_da_despesa_elemento_de_despesa_por_subacao_elemento_de_despesa_codigo_eq"]) : ''
		@sub_elementos_de_despesa = @elemento_de_despesa.present? ? @elemento_de_despesa.sub_elementos_de_despesa : Array.new
		@q = pagamentos.ransack(query_params)
		@empenhos = @orcamento.empenhos.confirmados_ou_anulados_e_superiores.do_orcamento.joins(orcamento_da_despesa: [elemento_de_despesa_por_subacao: [subacao: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]]).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder).search(params[:q]).result
		@liquidacoes = @orcamento.liquidacoes.confirmadas_ate_autorizadas.do_orcamento.joins(empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]).where('contabilidade_liquidacoes.restos_a_pagar IS FALSE AND base_tipos_de_unidades_administrativas.poder_associado = ?', @poder).search(params[:q]).result
		@pagamentos = @q.result.order(data: :desc).to_a.paginate(page: params[:page], per_page: 20)
	end

	def pagamento
		@pagamento = Contabilidade::Pagamento.where(resto_a_pagar: false).para_portal.do_orcamento.find(params[:id])
	end

	def ordem_cronologica
	end

	def ordem_cronologica_pagamentos
		disponibiliza_dependencias_despesas

		pagamentos = @orcamento.pagamentos.confirmados_ou_superior.do_orcamento.joins(:liquidacao).where("contabilidade_liquidacoes.controle_cronologico is true").joins(liquidacao: [empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]).includes(liquidacao: [empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder)
		@elemento_de_despesa = query_params["liquidacao_empenho_orcamento_da_despesa_elemento_de_despesa_por_subacao_elemento_de_despesa_codigo_eq"].present? ? Base::ElementoDeDespesa.find_by(codigo: query_params["liquidacao_empenho_orcamento_da_despesa_elemento_de_despesa_por_subacao_elemento_de_despesa_codigo_eq"]) : ''
		@sub_elementos_de_despesa = @elemento_de_despesa.present? ? @elemento_de_despesa.sub_elementos_de_despesa : Array.new
		@q = pagamentos.ransack(query_params)
		@pagamentos = @q.result.order(data: :desc).to_a
		if params[:grupo].to_i == 1
			@pagamentos = @pagamentos.select { |i| i.liquidacao.controle_cronologico_de_fornecimento_de_bens? }.paginate(page: params[:page], per_page: 20)
		elsif params[:grupo].to_i == 2
			@pagamentos = @pagamentos.select { |i| i.liquidacao.controle_cronologico_locacao? }.paginate(page: params[:page], per_page: 20)
		elsif params[:grupo].to_i == 3
			@pagamentos = @pagamentos.select { |i| i.liquidacao.controle_cronologico_prestacao_de_servicos? }.paginate(page: params[:page], per_page: 20)
		elsif params[:grupo].to_i == 4
			@pagamentos = @pagamentos.select { |i| i.liquidacao.controle_cronologico_obras? }.paginate(page: params[:page], per_page: 20)
		else
			@pagamentos = @pagamentos.paginate(page: params[:page], per_page: 20)
		end
		@liquidacoes = @orcamento.liquidacoes.where(id: @pagamentos.pluck(:liquidacao_id)).confirmadas_ate_autorizadas.do_orcamento.joins(empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]).where('contabilidade_liquidacoes.restos_a_pagar IS FALSE AND base_tipos_de_unidades_administrativas.poder_associado = ?', @poder).search(params[:q]).result
		@empenhos = @orcamento.empenhos.where(id: @liquidacoes.pluck(:empenho_id)).confirmados_ou_anulados_e_superiores.do_orcamento.joins(orcamento_da_despesa: [elemento_de_despesa_por_subacao: [subacao: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]]).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder).search(params[:q]).result
	end

	def restos_a_pagar
		@q = Contabilidade::Liquidacao.confirmadas_ate_autorizadas.joins(empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]).where('contabilidade_liquidacoes.restos_a_pagar IS TRUE AND base_tipos_de_unidades_administrativas.poder_associado = ?', @poder).search(params[:q])

		disponibiliza_dependencias_despesas
		@unidades_gestoras = Loa::UnidadeGestora.all

		@liquidacoes = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
		@pagamentos = Contabilidade::Pagamento.where(resto_a_pagar: true).para_portal.joins(liquidacao: [empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder).search(params[:q]).result
	end

	def restos_a_pagar_pago
		disponibiliza_dependencias_despesas
		pagamentos = Contabilidade::Pagamento.where(resto_a_pagar: true).para_portal.joins(liquidacao: [empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]]).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder)
		@elemento_de_despesa = query_params["liquidacao_empenho_orcamento_da_despesa_elemento_de_despesa_por_subacao_elemento_de_despesa_codigo_eq"].present? ? Base::ElementoDeDespesa.find_by(codigo: query_params["liquidacao_empenho_orcamento_da_despesa_elemento_de_despesa_por_subacao_elemento_de_despesa_codigo_eq"]) : ''
		@sub_elementos_de_despesa = @elemento_de_despesa.present? ? @elemento_de_despesa.sub_elementos_de_despesa : Array.new
		@q = pagamentos.ransack(query_params)
		@pagamentos = @q.result.order(data: :desc).to_a.paginate(page: params[:page], per_page: 20)
		@liquidacoes = Contabilidade::Liquidacao.confirmadas_ate_autorizadas.do_orcamento.joins(empenho: [unidade_orcamentaria: :tipo_de_unidade_administrativa]).where('contabilidade_liquidacoes.restos_a_pagar IS TRUE AND base_tipos_de_unidades_administrativas.poder_associado = ?', @poder).search(params[:q]).result
end

	def resto_a_pagar_pago
		@pagamento = Contabilidade::Pagamento.where(resto_a_pagar: true).para_portal.find(params[:id])
	end

	def receitas
		
		@data_inicial = query_params["lancamentos_do_orcamento_da_receita_data_do_lancamento_gteq"].present? ? query_params["lancamentos_do_orcamento_da_receita_data_do_lancamento_gteq"].to_date : "01/01/#{@ano_do_orcamento}".to_date
		@data_final = query_params["lancamentos_do_orcamento_da_receita_data_do_lancamento_lteq"].present? ? query_params["lancamentos_do_orcamento_da_receita_data_do_lancamento_lteq"].to_date : @data_inicial.end_of_year 

		ano_de_inicio_da_pesquisa_no_portal = ParametrizacaoPortalDaTransparencia.find_by(nome_do_acesso: 'receitas', tipo_de_poder: @poder_tela_index).data_de_inicio_da_pesquisa.year
		@orcamentos = Orcamento.where("orcamentos.exercicio >= ?", ano_de_inicio_da_pesquisa_no_portal)
		
		if params[:tipo_de_poder] == "prefeitura"
			@id_do_orcamento_do_filtro = query_params["unidade_orcamentaria_por_natureza_da_receita_unidade_orcamentaria_orgao_orcamento_id_eq"].blank? ? "" : query_params["unidade_orcamentaria_por_natureza_da_receita_unidade_orcamentaria_orgao_orcamento_id_eq"]
			@origens_do_talao = [['Orçamentaria', 0], ['Extra-Orçamentaria', 1]]

			@orcamento_atual = @id_do_orcamento_do_filtro.blank? ? Orcamento.find_by(exercicio: Date.today.year) : @orcamentos.find(@id_do_orcamento_do_filtro)
			receitas = @orcamento_atual.orcamentos_da_receita.ordenado_por_natureza
			@fontes_de_recursos = @orcamento_atual.fontes_de_recursos
			
			if @orcamento_atual.utiliza_novo_tipo_para_receita?
				@categorias_economicas = @orcamento_atual.naturezas_da_receita.categorias_economicas(true)
			else
				@categorias_economicas = @orcamento_atual.naturezas_da_receita.categorias_economicas(false)
			end

			@q = receitas.ransack(query_params)

			@valor_total_previsto_do_periodo = @q.result.sum(&:valor).real_contabil
			@valor_total_arrecadado_do_periodo = @q.result.select{|f| f.valor_arrecadado != nil}.sum{ |a| a.valor_arrecadado_periodo_inicial_final(@data_inicial, @data_final)}.to_f.real_contabil
			@receitas = @q.result(distinct: false).group_by(&:classificacao_da_receita)
			@receitas = @receitas.select{|classificacao, orcamentos| orcamentos.inject(0) { |sum, odr| sum + odr.valor_arrecadado_periodo_inicial_final(@data_inicial, @data_final).to_f } != 0}.to_a.paginate(page: params[:page], per_page: 20)

			return @receitas
		
		elsif params[:tipo_de_poder] == "camara"
			@id_do_orcamento_do_filtro = query_params["orcamento_id_eq"].blank? ? "" : query_params["orcamento_id_eq"]
			@orcamento_atual = @id_do_orcamento_do_filtro.blank? ? Orcamento.find_by(exercicio: Date.today.year) : @orcamentos.find(@id_do_orcamento_do_filtro)
			transferencias_financeiras_do_orcamento = @orcamento_atual.transferencias_financeiras.transferencia_de_repasse_do_duodecimo_para_o_portal
			@q = transferencias_financeiras_do_orcamento.ransack(query_params)
			@repasses_do_duodecimo_da_camara = @q.result.order(data: :desc).to_a.paginate(page: params[:page], per_page: 20)
		else
			return
		end
	end

	def receitas_orcamentarias
		query_params["lancamentos_do_orcamento_da_receita_modulo_of_Contabilidade::TalaoDeReceita_type_origem_do_talao_eq"] = 0 # origem do talao orcamentario
		@data_inicial = query_params["lancamentos_do_orcamento_da_receita_data_do_lancamento_gteq"].present? ? query_params["lancamentos_do_orcamento_da_receita_data_do_lancamento_gteq"].to_date : "01/01/#{@ano_do_orcamento}".to_date
		@data_final = query_params["lancamentos_do_orcamento_da_receita_data_do_lancamento_lteq"].present? ? query_params["lancamentos_do_orcamento_da_receita_data_do_lancamento_lteq"].to_date : @data_inicial.end_of_year 

		ano_de_inicio_da_pesquisa_no_portal = ParametrizacaoPortalDaTransparencia.find_by(nome_do_acesso: 'receitas', tipo_de_poder: @poder_tela_index).data_de_inicio_da_pesquisa.year
		@orcamentos = Orcamento.where("orcamentos.exercicio >= ?", ano_de_inicio_da_pesquisa_no_portal)
		
		@id_do_orcamento_do_filtro = query_params["unidade_orcamentaria_por_natureza_da_receita_unidade_orcamentaria_orgao_orcamento_id_eq"].blank? ? "" : query_params["unidade_orcamentaria_por_natureza_da_receita_unidade_orcamentaria_orgao_orcamento_id_eq"]
		@orcamento_atual = @id_do_orcamento_do_filtro.blank? ? Orcamento.find_by(exercicio: Date.today.year) : @orcamentos.find(@id_do_orcamento_do_filtro)
		@unidades = @orcamento_atual.unidades_orcamentarias.joins(:tipo_de_unidade_administrativa).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder)
		receitas = @orcamento_atual.orcamentos_da_receita.ordenado_por_natureza
	
		if query_params["unidade_orcamentaria_por_natureza_da_receita_unidade_orcamentaria_orgao_orcamento_id_eq"].blank?
			receitas = receitas.joins(unidade_orcamentaria_por_natureza_da_receita: :unidade_orcamentaria).where('loa_unidades_orcamentarias.id in (?)', @unidades.pluck(:id))
		end

		@fontes_de_recursos = @orcamento_atual.fontes_de_recursos
		
		if @orcamento_atual.utiliza_novo_tipo_para_receita?
			@categorias_economicas = @orcamento_atual.naturezas_da_receita.categorias_economicas(true)
		else
			@categorias_economicas = @orcamento_atual.naturezas_da_receita.categorias_economicas(false)
		end

		@q = receitas.ransack(query_params)

		@valor_total_previsto_do_periodo = @q.result.sum(&:valor).real_contabil
		@valor_total_arrecadado_do_periodo = @q.result.where('valor_arrecadado IS NOT NULL').sum{ |a| a.valor_arrecadado_periodo_inicial_final(@data_inicial, @data_final)}.to_f.real_contabil
		@receitas = @q.result(distinct: false).group_by(&:classificacao_da_receita)
		@receitas = @receitas.select{|classificacao, orcamentos| orcamentos.inject(0) { |sum, odr| sum + odr.valor_arrecadado_periodo_inicial_final(@data_inicial, @data_final).to_f } != 0}.to_a.paginate(page: params[:page], per_page: 20)

		return @receitas
	end

	def receitas_extra
		@data_inicial = query_params["conta_extra_orcamentaria_lancamentos_extraorcamentario_receita_data_do_lancamento_gteq"].present? ? query_params["conta_extra_orcamentaria_lancamentos_extraorcamentario_receita_data_do_lancamento_gteq"].to_date : "01/01/#{@ano_do_orcamento}".to_date
		@data_final = query_params["conta_extra_orcamentaria_lancamentos_extraorcamentario_receita_data_do_lancamento_lteq"].present? ? query_params["conta_extra_orcamentaria_lancamentos_extraorcamentario_receita_data_do_lancamento_lteq"].to_date : @data_inicial.end_of_year 
		ano_de_inicio_da_pesquisa_no_portal = ParametrizacaoPortalDaTransparencia.find_by(nome_do_acesso: 'receitas', tipo_de_poder: @poder_tela_index).data_de_inicio_da_pesquisa.year
		@orcamentos = Orcamento.where("orcamentos.exercicio >= ?", ano_de_inicio_da_pesquisa_no_portal)
		@id_do_orcamento_do_filtro = query_params["unidade_orcamentaria_orgao_orcamento_id_eq"].blank? ? "" : query_params["unidade_orcamentaria_orgao_orcamento_id_eq"]
		@orcamento_atual = @id_do_orcamento_do_filtro.blank? ? Orcamento.find_by(exercicio: Date.today.year) : @orcamentos.find(@id_do_orcamento_do_filtro)
		@unidades = @orcamento_atual.unidades_orcamentarias.joins(:tipo_de_unidade_administrativa).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder)
		receitas = @orcamento_atual.taloes_de_receita.where(origem_do_talao: :extra_orcamentario).where('contabilidade_taloes_de_receita.unidade_orcamentaria_id in (?)', @unidades.pluck(:id))

		@q = receitas.ransack(query_params)
		@receitas_total = @q.result(distinct: false).order(data_do_talao: :desc)
		@receitas = @receitas_total.paginate(page: params[:page], per_page: 20)

		unless request.format.html?
			titulo2 = ""
			if params[:q].present?
				titulo2 = "Data: #{@data_inicial} a #{@data_final}"
			end
		end

		@configuracoes = Configuracao.last
		respond_to do |format|
			format.html

			format.pdf do
				render pdf: "receitas_extra",
				template: 'relatorio_do_portal/receitas_extra.pdf.slim',
				orientation: 'Portrait',
				header: {
					html: {
						template: 'layouts/_cabecalho_pdf.html.slim',
						locals: { titulo1: 'Receitas Extra Orçamentárias' , titulo2: titulo2},
					},
					spacing: 0
				},
				footer: { right: '[page]', font_size: 8 },
				disable_smart_shrinking: true,
				dpi: '96',
				margin: @configuracoes.margens_customizadas(top: 4)
			end

			format.xlsx do
				render xlsx: 'receitas_extra', template: 'relatorio_do_portal/relatorio_das_receitas_extra.xlsx.axlsx', filename: 'relatorio_das_receitas_extra.xlsx.axlsx'
			end

			format.csv do
				response.headers['Content-Type'] = 'text/csv'
				response.headers['Content-Disposition'] = "attachment; filename=relatorio_das_receitas_extra.csv"
				render template: "relatorio_do_portal/relatorio_das_receitas_extra.csv.erb"
			end

			format.txt do
				response.headers['Content-Type'] = 'text/txt'
				response.headers['Content-Disposition'] = "attachment; filename=relatorio_das_receitas_extra.txt"
				render template: "relatorio_do_portal/relatorio_das_receitas_extra.txt.erb"
			end
		end
	end

	def repasses_do_duodecimo
		ano_de_inicio_da_pesquisa_no_portal = ParametrizacaoPortalDaTransparencia.find_by(nome_do_acesso: 'receitas', tipo_de_poder: @poder_tela_index).data_de_inicio_da_pesquisa.year
		@orcamentos = Orcamento.where("orcamentos.exercicio >= ?", ano_de_inicio_da_pesquisa_no_portal)
		@id_do_orcamento_do_filtro = query_params["orcamento_id_eq"].blank? ? "" : query_params["orcamento_id_eq"]
		@orcamento_atual = @id_do_orcamento_do_filtro.blank? ? Orcamento.find_by(exercicio: Date.today.year) : @orcamentos.find(@id_do_orcamento_do_filtro)
		transferencias_financeiras_do_orcamento = @orcamento_atual.transferencias_financeiras.transferencia_de_repasse_do_duodecimo_para_o_portal
		@q = transferencias_financeiras_do_orcamento.ransack(query_params)
		@repasses_do_duodecimo_da_camara = @q.result.order(data: :desc).to_a.paginate(page: params[:page], per_page: 20)
	end

	def transferencias_e_convenios
		dt_pesquisa_do_portal = ParametrizacaoPortalDaTransparencia.find_by(nome_do_acesso: 'convenios_e_transferencias', tipo_de_poder: @poder_tela_index).data_de_inicio_da_pesquisa.year
		orcamento_selecionado = query_params["unidade_orcamentaria_orgao_orcamento_id_eq"].present? ? @orcamentos.find(query_params["unidade_orcamentaria_orgao_orcamento_id_eq"]) : Orcamento.find_by(exercicio: Date.today.year) 

		@orcamentos = Orcamento.where("orcamentos.exercicio >= ?", dt_pesquisa_do_portal).order(exercicio: :desc)
		@unidades = orcamento_selecionado.unidades_orcamentarias.joins(:tipo_de_unidade_administrativa).where('base_tipos_de_unidades_administrativas.poder_associado = ?', @poder)
		@fornecedores = Base::Pessoa.includes(:tipo_de_pessoa).fornecedores.all

		@q = Obra::Transferencia.ransack(query_params)
		@transferencias_total = @q.result(distinct: false)
		@transferencias = @transferencias_total.order(data: :desc).paginate(page: params[:page], per_page: 20)

		unless request.format.html?
			titulo2 = ""
			if params[:q].present?
				titulo2 = "Data: #{@data_inicial} a #{@data_final}"
			end
		end

		@configuracoes = Configuracao.last
		respond_to do |format|
			format.html

			format.pdf do
				render pdf: "transferencias_e_convenios",
				template: "relatorio_do_portal/transferencias_e_convenios.pdf.slim",
				orientation: 'Portrait',
				disable_smart_shrinking: true,
				
				dpi: '96',
				header: {
					html: {
						template: 'layouts/_cabecalho_pdf.html.slim',
						locals: { titulo1: 'Quadro de Transferências e convênios' , titulo2: titulo2},
					},
					spacing: 3
				},
				footer: {
					html: {
						template: 'layouts/_rodape_pdf.html.slim'
					}
				},
				margin: @configuracoes.margens_customizadas(top: 5)
			end

			format.xlsx do
				render xlsx: 'receitas_extra', template: 'relatorio_do_portal/relatorio_das_transferencias_e_convenios.xlsx.axlsx', filename: 'relatorio_das_transferencias_e_convenios.xlsx.axlsx'
			end

			format.csv do
				response.headers['Content-Type'] = 'text/csv'
				response.headers['Content-Disposition'] = "attachment; filename=relatorio_das_transferencias_e_convenios.csv"
				render template: "relatorio_do_portal/relatorio_das_transferencias_e_convenios.csv.erb"
			end

			format.txt do
				response.headers['Content-Type'] = 'text/txt'
				response.headers['Content-Disposition'] = "attachment; filename=relatorio_das_transferencias_e_convenios.txt"
				render template: "relatorio_do_portal/relatorio_das_transferencias_e_convenios.txt.erb"
			end
		end
	end
	
	def diarias
		ano_de_inicio_da_pesquisa_no_portal = ParametrizacaoPortalDaTransparencia.find_by(nome_do_acesso: 'diarias', tipo_de_poder: @poder_tela_index).data_de_inicio_da_pesquisa.year
		@orcamentos = Orcamento.where("orcamentos.exercicio >= ?", ano_de_inicio_da_pesquisa_no_portal)
		@id_do_orcamento_do_filtro = query_params["orcamento_id_eq"].blank? ? "" : query_params["orcamento_id_eq"]
		@orcamento_atual = @id_do_orcamento_do_filtro.blank? ? Orcamento.find_by(exercicio: Date.today.year) : @orcamentos.find(@id_do_orcamento_do_filtro)
		
		@unidades_orcamentarias = Loa::UnidadeOrcamentaria.joins(:tipo_de_unidade_administrativa).where('poder_associado = ?', @poder).joins(:orcamento).where('orcamentos.id in (?)', @orcamento_atual.id).order(:codigo)
		diarias_do_orcamento = @orcamento_atual.diarias
		@q = diarias_do_orcamento.joins(:empenho).where('contabilidade_empenhos.status = ?', 4).ransack(query_params)
		@diarias_total = @q.result.order(data_da_portaria: :desc)
		@diarias = @diarias_total.to_a.paginate(page: params[:page], per_page: 20)
	
		unless request.format.html?
			titulo2 = ""
			if params[:q].present?
				titulo2 = "Data: #{@data_inicial} a #{@data_final}"
			end
		end
		
		@configuracoes = Configuracao.last
		respond_to do |format|
			format.html
			
			format.pdf do
				render pdf: "diarias",
				template: 'relatorio_do_portal/diarias.pdf.slim',
				orientation: 'Portrait',
				header: {
					html: {
						template: 'layouts/_cabecalho_pdf.html.slim',
						locals: { titulo1: 'Diárias' , titulo2: titulo2},
					},
					spacing: 0
				},
				footer: { right: '[page]', font_size: 8 },
				disable_smart_shrinking: true,
				dpi: '96',
				margin: @configuracoes.margens_customizadas(top: 4)
			end
			
			format.xlsx do
				render xlsx: 'diarias', template: 'relatorio_do_portal/relatorio_das_diarias.xlsx.axlsx', filename: 'relatorio_das_diarias.xlsx.axlsx'
			end
			
			format.csv do
				response.headers['Content-Type'] = 'text/csv'
				response.headers['Content-Disposition'] = "attachment; filename=relatorio_das_diarias.csv"
				render template: "relatorio_do_portal/relatorio_das_diarias.csv.erb"
			end
			
			format.txt do
				response.headers['Content-Type'] = 'text/txt'
				response.headers['Content-Disposition'] = "attachment; filename=relatorio_das_diarias.txt"
				render template: "relatorio_do_portal/relatorio_das_diarias.txt.erb"
			end
		end
	end

	def diaria
		@diaria = Contabilidade::Diaria.find(params[:diaria_id])
	end

	def repasse_do_duodecimo
		@transferencia_financeira = Contabilidade::TransferenciaFinanceira.transferencia_de_repasse_do_duodecimo_para_o_portal.find(params[:id])
	end
	
	def licitacao
		@processo = Licitacao::Processo.find(params[:processo_id])
	end

	def contrato
		@contrato = Licitacao::Contrato.find(params[:contrato_id])
	end

	def despesa
		@empenho = Contabilidade::Empenho.find(params[:despesa_id])
		@liquidacoes = @empenho.liquidacoes.confirmadas_ate_autorizadas.do_orcamento
		@pagamentos = Contabilidade::Pagamento.confirmados_ou_superior.where('liquidacao_id in (?)', @liquidacoes.ids)
		@orcamento = Orcamento.joins(naturezas_da_acao: [acoes: [subacoes: [elementos_de_despesa_por_subacao: :orcamentos_da_despesa]]]).where('loa_orcamentos_da_despesa.id in (?)', params[:despesa_id]).first
	end

	def liquidacao
		@liquidacao = Contabilidade::Liquidacao.find(params[:id])
		@portal_da_transparencia_controller = true
	end

	def receita
		ano_de_inicio_da_pesquisa_no_portal = ParametrizacaoPortalDaTransparencia.find_by(nome_do_acesso: 'receitas', tipo_de_poder: @poder_tela_index).data_de_inicio_da_pesquisa.year
		@orcamentos = Orcamento.where("orcamentos.exercicio >= ?", ano_de_inicio_da_pesquisa_no_portal)
		@natureza_da_receita = Base::NaturezaDaReceita.find(params[:natureza_da_receita])


		@classificacao = @natureza_da_receita.classificacao.formatar_comeco_sem_zero
		@descricao = @natureza_da_receita.descricao_e_sigla
		@orcamento = params[:orcamento]
		@id_do_orcamento_do_filtro = query_params["unidade_orcamentaria_por_natureza_da_receita_unidade_orcamentaria_orgao_orcamento_id_eq"].blank? ? @natureza_da_receita.receita_stn.orcamento.id : query_params["unidade_orcamentaria_por_natureza_da_receita_unidade_orcamentaria_orgao_orcamento_id_eq"]
		orcamento_atual = @id_do_orcamento_do_filtro.blank? ? Orcamento.find_by(exercicio: Date.today.year) : @orcamentos.find(@id_do_orcamento_do_filtro)
		taloes_da_receita = @natureza_da_receita.taloes_de_receita
		@q = taloes_da_receita.joins(:lancamentos_do_orcamento_da_receita).ransack(query_params)

		@taloes_da_receita = @q.result(distinct: true).order(data_do_talao: :desc).to_a.paginate(page: params[:page], per_page: 20)
				
		return @taloes_da_receita
	end

	def receita_extra
		@talao_de_receita = Contabilidade::TalaoDeReceita.where(origem_do_talao: :extra_orcamentario).find(params[:talao_id])
	end

	def talao_da_receita
		@talao_da_receita_detalhado = Contabilidade::TalaoDeReceita.find(params[:talao_da_receita_id])
		@origem_do_talao = @talao_da_receita_detalhado.pessoa.nome
		@data_do_talao = @talao_da_receita_detalhado.data_do_talao
	end

	def transferencia_financeira
		@transferencia_financeira = Contabilidade::TransferenciaFinanceira.transferencia_de_repasse_do_duodecimo_para_o_portal.find(params[:transferencia_financeira_id])
	end

	def lista_de_documentos
		@exercicios = Transparencia::Documento.select(:exercicio).distinct

		@q = Transparencia::Documento.ransack(query_params)
		
		@documentos = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
	end

	def transferencia_e_convenio
		@transferencia = Obra::Transferencia.find(params[:id])
	end

	def transferencias
	end

	def acessibilidade
	end

	private
	def set_obra
		@obra = Contabilidade::Obra.find( params[:obra_id] )
	end

	def disponibiliza_dependencias
		session[:tipo_de_ambiente] = params[:tipo_de_poder]
		@tipo_de_poder = session[:tipo_de_ambiente] == "prefeitura" ? "executivo" : "legislativo" 
		@convenios = params[:recebidos]
		@repasses = params[:repasses]

		@configuracao = Configuracao.last
		@orcamento = unless query_params["orcamento_id_eq"].blank?
			Orcamento.find(query_params["orcamento_id_eq"])
		else
			Orcamento.find_by(exercicio: Date.today.year)
		end

		setar_contexto_portal_da_transparencia(@orcamento.id)
		
		@poder = session[:tipo_de_ambiente] == "prefeitura" ? 1 : 0
		@poder_tela_index = session[:tipo_de_ambiente] == "prefeitura" ? 1 : 2
		if session[:tipo_de_ambiente] == "camara"
			@unidade_orcamentaria_da_camara = @orcamento.unidades_orcamentarias.joins(:tipo_de_unidade_administrativa).where("base_tipos_de_unidades_administrativas.codigo = '02'").first
			@logo_da_camara = @orcamento.unidades_orcamentarias.joins(:tipo_de_unidade_administrativa).where("base_tipos_de_unidades_administrativas.codigo = '02'").first.logo
		end

	end

	def disponibiliza_dependencias_obras
		@orcamentos = Orcamento.order(exercicio: :desc).all
		@orcamento = unless query_params["orcamento_id_eq"].blank?
			Orcamento.find(query_params["orcamento_id_eq"])
		else
			Orcamento.find_by(exercicio: Date.today.year)
		end
		@tipos_de_status_da_obra = Contabilidade::SituacaoDaObra.tipos_de_status_da_obra
		@unidades_orcamentarias = @orcamento.unidades_orcamentarias
		@pessoas = Base::Pessoa.includes(:tipo_de_pessoa).fornecedores
		@engenheiros_da_obra = Base::TipoDePessoa.find_by(codigo: '1').pessoas.order(:nome)
	end

	def disponibiliza_dependencias_despesas
		acesso = params[:repasses].present? ? 'convenios_e_transferencias' : 'despesas'
		dt_pesquisa_do_portal = Configuracao.last.parametrizacoes_portal_da_transparencia.find_by(nome_do_acesso: acesso, tipo_de_poder: @poder_tela_index).data_de_inicio_da_pesquisa

		@orcamentos = Orcamento.where('exercicio >= ?', dt_pesquisa_do_portal.year).order(exercicio: :desc)

		orcamento_selecionado = query_params["orcamento_id_eq"]
		orcamento_selecionado = orcamento_selecionado.present? ? orcamento_selecionado : @orcamentos.first.id
		@orcamento = Orcamento.find(orcamento_selecionado)

		@pessoas = Base::Pessoa.includes(:tipo_de_pessoa).order(:nome)

		@fornecedores = Base::Pessoa.includes(:tipo_de_pessoa).where("fornecedor = true").order(:nome)

		@fontes_de_recursos = Base::FonteDeRecursos.joins("left join orcamentos on base_fontes_de_recursos.modulo_id = orcamentos.id").where('orcamentos.id in (?)', @orcamento.id).order(:codigo)

		@programas_de_governo = Loa::ProgramaDeGoverno.joins(:orcamento).where('orcamentos.id in (?)', @orcamento.id)
		programa_de_governo_ids = @programas_de_governo.pluck(:id)

		acao_ids = Loa::Acao.where("programa_de_governo_id in (?)", programa_de_governo_ids).pluck(:id)
		@subacoes = Loa::Subacao.where("acao_id in (?)", acao_ids).joins(acao: :natureza_da_acao).order('base_naturezas_das_acoes.codigo', 'loa_acoes.codigo')

		@funcoes = Base::Funcao.joins("left join orcamentos on base_funcoes.modulo_id = orcamentos.id").where('orcamentos.id in (?)', @orcamento.id)
		@subfuncoes = Base::Subfuncao.where('funcao_id in (?)', @funcoes.pluck(:id))

		@elementos_de_despesa = Base::ElementoDeDespesa.joins(modalidade_de_aplicacao:[grupo_de_natureza_da_despesa: :categoria_economica]).joins("left join orcamentos on base_categorias_economicas.modulo_id = orcamentos.id").where("orcamentos.id in (?)", @orcamento.id).order(:codigo)

		@sub_elementos_de_despesa = Array.new

		@orgaos = Loa::Orgao.where(orcamento_id: @orcamento.id)

		@unidades_orcamentarias = Loa::UnidadeOrcamentaria.joins(:tipo_de_unidade_administrativa).where('poder_associado = ?', @poder).joins(:orcamento).where('orcamentos.id in (?)', @orcamento.id).order(:codigo)

		@categorias_economicas = Base::CategoriaEconomica.joins("left join orcamentos on base_categorias_economicas.modulo_id = orcamentos.id").where('orcamentos.id in (?)', @orcamento.id)

		@modalidades_de_aplicacao = Base::ModalidadeDeAplicacao.joins(grupo_de_natureza_da_despesa: :categoria_economica).joins("left join orcamentos on base_categorias_economicas.modulo_id = orcamentos.id").where("orcamentos.id in (?)", @orcamento.id)

		@grupos_de_despesas = Base::GrupoDeNaturezaDaDespesa.joins(:categoria_economica).joins("left join orcamentos on base_categorias_economicas.modulo_id = orcamentos.id").where("orcamentos.id in (?)", @orcamento.id)
	
		@modalidades_de_licitacao = Licitacao::Projeto.modalidades_de_licitacao.map{|t|[ Licitacao::Projeto.modalidades_de_licitacao_i18n[t[0]], t[1] ] }
	
		@unidades_gestoras = Loa::UnidadeGestora.all.order("codigo::integer ASC")

		@tipos_de_poderes = Base::TipoDeUnidadeAdministrativa.poderes_associados
	end
end
