class Contabilidade::DocumentoDaLiquidacao < ApplicationRecord
  include TradutorConcern
  has_paper_trail

  attr_accessor :lei

  belongs_to :liquidacao, class_name: 'Contabilidade::Liquidacao', required: true
  belongs_to :modelo_do_documento, class_name: "Licitacao::ModeloDeDocumento"

  validates_presence_of :liquidacao_id, :tipo_de_documento, :texto
  validates_presence_of :titulo_personalizado, if: Proc.new{ |documento_da_liquidacao| documento_da_liquidacao.tipo_de_documento == "personalizado" }
  validates :tipo_de_documento, immutable: true

  validates :data_do_documento, sabado_ou_domingo_ou_feriado: { flexivel: false }

  enum tipo_de_documento: {
    liquidacao: 22,
    personalizado: 98,
    outros_documentos: 99
  }

  def titulo_do_modelo
    if self.personalizado?
      self.titulo_personalizado.try(:upcase)
    else
      if self.modelo_do_documento && self.modelo_do_documento.titulo
        self.modelo_do_documento.try(:titulo)
      end
    end
  end

  def mae?
		self.liquidacao.de_multiplas_notas_fiscais? && self.liquidacao.liquidacao_mae_id.nil?
	end

  def filha?
		self.liquidacao.de_multiplas_notas_fiscais? && self.liquidacao.liquidacao_mae_id.present?
	end

end
