class Ppa::SubFuncao < ApplicationRecord
	has_paper_trail
	
	belongs_to :funcao

	has_many :iniciativas, dependent: :restrict_with_exception

	validates_presence_of :nome, :codigo, :funcao_id

	validate :codigo_deve_ser_unico_para_um_ppa_id
	validate :nome_deve_ser_unico_para_um_ppa_id

	def codigo_deve_ser_unico_para_um_ppa_id
		Ppa::SubFuncao.where(codigo: self.codigo).each do |sub_funcao|
			next if sub_funcao.eql?(self)
			if (self.funcao.ppa_id == sub_funcao.funcao.ppa_id)
				errors.add(:codigo, "já está em uso")
				break
			end
		end
	end

	def nome_deve_ser_unico_para_um_ppa_id
		Ppa::SubFuncao.where(nome: self.nome).each do |sub_funcao|
			next if sub_funcao.eql?(self)
			if (self.funcao.ppa_id == sub_funcao.funcao.ppa_id)
				errors.add(:nome, "já está em uso")
				break
			end
		end
	end
end
