class Contabilidade::RelatoriosPcaspController < ApplicationController
	include ContabilidadeControllerConcern
	include ControllerConcern
	include SimConcern
	before_action :authenticate_usuario!
	before_action :autoriza_usuario!, except: [:index]
	before_action :disponibiliza_dependencias, only: [:index]

	def index
	end

	private
	def disponibiliza_dependencias
		data = ('01/01/'+"#{contexto_atual.exercicio}").to_date
		@grupos_de_conta = contabilidade_atual.grupo_de_contas
		@unidades_gestoras = contabilidade_atual.unidades_gestoras.sort { |a, b| b.codigo.to_i <=> a.codigo.to_i }.reverse!
		@unidades_orcamentarias = contabilidade_atual.unidades_orcamentarias.order(:codigo)
		@orgaos = contabilidade_atual.orgaos.order(:codigo)
		@contas = contabilidade_atual.contas.analiticas.order(:codigo)
		@contas_bancarias = Base::ContaBancaria.includes({agencia: :banco}).all.sort_by{|conta| [conta.sigla, conta.numero_da_conta.gsub(/-(.*)/, "").gsub(/[,.-]/, '').gsub(/[Xx]/, '0').to_i]}
		@contas_pcasp = contabilidade_atual.contas.order(:codigo)
		@naturezas_da_receita = contexto_atual.naturezas_da_receita.joins(:receita_stn).where('base_receitas_stn.data_inativacao is null OR base_receitas_stn.data_inativacao <= ?', data).includes(:receita_stn).order('base_naturezas_da_receita.codigo')
		@sub_elementos_de_despesa = Contabilidade::SubElementoDeDespesa.ativos.joins(elemento_de_despesa: { orcamentos_da_despesa: { elemento_de_despesa_por_subacao: { subacao: { acao: { programa_de_governo: :orcamento} }}}}).where('orcamentos.id = ?', contexto_atual.id).includes(elemento_de_despesa: { orcamentos_da_despesa: { elemento_de_despesa_por_subacao: { subacao: { acao: { programa_de_governo: :orcamento} }}}}).all.uniq
		@contas_extra_orcamentarias = Contabilidade::ContaExtraOrcamentaria.joins(:orcamento).where('orcamentos.id = ?', contexto_atual.id).order(:codigo).all
		@centros_de_custos = Controladoria::CentroDeCusto.all
	end

end
