class Ppa::Meta < ApplicationRecord
	has_paper_trail

	belongs_to :objetivo
	has_many :quantitativos, dependent: :destroy, inverse_of: :meta

	validates_presence_of :descricao, :objetivo_id
	validates_uniqueness_of :descricao, scope: :objetivo_id
	#validate :nao_ser_meta_de_gestao
	validates_associated :quantitativos

	accepts_nested_attributes_for :quantitativos, allow_destroy: true

	def valor_total_dos_quantitativos
		return quantitativos.inject(0){|total, quantitativo| total + quantitativo.indice_de_referencia.to_f}.to_f
	end

	# def nao_ser_meta_de_gestao
	# 	if try(:objetivo).try(:programa).try(:tipo_de_programa).try(:codigo) == 2
	# 		errors[:programa_id] << "Programas de gestão não possuem metas"
	# 	end
	# end

	def ppa
		self.objetivo.programa.ppa
	end

end
