class Loa::TipoDeDeducao < ApplicationRecord
	include IncrementadorDeCodigoConcern
	has_paper_trail

	belongs_to :orcamento

	validates_presence_of :codigo, :descricao, :orcamento_id
	validates_length_of :codigo, is: 2
	validates_uniqueness_of :codigo, scope: :orcamento_id
	validates_numericality_of :codigo

	before_destroy :tipo_00_nao_pode_ser_apagado
	before_update :tipo_00_nao_pode_ser_editado

	def codigo_e_descricao
		codigo + " - " + descricao
	end

	def tipo_00_nao_pode_ser_apagado
		if codigo == '00'
			raise Exception.new('Não é possivel apagar o código 00.')
		end
	end

	def tipo_00_nao_pode_ser_editado
		if codigo == '00'
			errors.add(:codigo, 'Não é possivel editar o código 00.')
		end
	end
end
