class ValorInseridoEqualsValorOrcadoValidator < ActiveModel::EachValidator
	def validate_each(record, attribute, valor)
		total_orcado = record.send(options[:associacao]).inject(0) { |total, objeto|
			total + objeto.send(options[:orcamento]).map { |orcamento| orcamento[:valor] }.sum
		}
		if (valor != total_orcado)
			record.errors[attribute] << (options[:mensagem] || 'valor inserido não corresponde ao valor total orçado')
		end
	end
end
