class Contabilidade::ConfiguracaoDeFolha < ApplicationRecord
	has_paper_trail

	belongs_to :orcamento, class_name: 'Orcamento'

	validates_presence_of :orcamento_id, :mes_de_referencia

	validates :mes_de_referencia, uniqueness: { scope: :orcamento_id, if: -> { orcamento_id == contexto_atual&.id } }

	validate :valida_uma_data_precisa_estar_preenchida, :valida_data_do_mes_selecionado

	enum mes_de_referencia: {
		janeiro: 1,
		fevereiro: 2,
		marco: 3,
		abril: 4,
		maio: 5,
		junho: 6,
		julho: 7,
		agosto: 8,
		setembro: 9,
		outubro: 10,
		novembro: 11,
		dezembro: 12
	}


	def valida_uma_data_precisa_estar_preenchida
		if self.data_do_fechamento.blank? && self.data_do_fechamento_legislativo.blank?
			errors.add(:base, 'Um das datas de emissão precisa ser preenchida.')
		end
	end

	def valida_data_do_mes_selecionado
		if self.data_do_fechamento.present?
			if Contabilidade::ConfiguracaoDeFolha.mes_de_referencias[self.mes_de_referencia] != self.data_do_fechamento.month
				errors.add(:data_do_fechamento, 'deve ser um data do mês de referência selecionado.')
			end
		end
		if self.data_do_fechamento_legislativo.present?
			if Contabilidade::ConfiguracaoDeFolha.mes_de_referencias[self.mes_de_referencia] != self.data_do_fechamento_legislativo.month
				errors.add(:data_do_fechamento_legislativo, 'deve ser um data do mês de referência selecionado.')
			end
		end
	end
end
