class Contabilidade::SuplementacaoDoEmpenho < ApplicationRecord
	has_paper_trail
	belongs_to :empenho

	validates_presence_of :empenho_id, :data_da_suplementacao, :valor, :historico

	validates_numericality_of :valor, greater_than: 0

	validate :data_nao_pode_ser_anterior_a_data_do_empenho

	after_create :atualiza_saldo_do_empenho

	validates :data_da_suplementacao, date: true

	def atualiza_saldo_do_empenho
		if empenho
			empenho.update_attribute(:valor_suplementado, empenho.valor_suplementado.to_f + valor.to_f)
		end
	end

	def data_nao_pode_ser_anterior_a_data_do_empenho
		if empenho.present? && !data_da_suplementacao.nil?
			errors.add(:data_da_suplementacao, "não pode ser anterior a data do empenho #{empenho.data_do_empenho}") if data_da_suplementacao < empenho.data_do_empenho
		end
	end
end
