class Febraban150Z

Public Class Methods

new(master, versao = Febraban150::VERSAO) click to toggle source
Calls superclass method
# File lib/formatos/febraban150/febraban_150_z.rb, line 6
def initialize(master, versao = Febraban150::VERSAO)
  super(master, true, true, false)

  @versao = versao

  case versao
    when '04'
      self.monta_versao_04
    when '05'
      self.monta_versao_05
    else
      raise "Seção Z: Versão não suportada: #{@versao}"
  end
end

Public Instance Methods

get_total_registros() click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 94
def get_total_registros
  self.get_section_value(1).to_i
end
get_valor_total() click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 98
def get_valor_total
  self.get_section_value(2).to_i
end
is_valid?() click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 70
def is_valid?
  case @versao
    when '04'
      self.is_valid_04?
    when '05'
      self.is_valid_05?
  end
end
process_section(file) click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 44
def process_section(file)
  case @versao
    when '04'
      self.processa_arquivo_04(file)
    when '05'
      self.processa_arquivo_05(file)
  end
end
set_reservado(reservado) click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 128
def set_reservado reservado
  reservado = reservado.to_s
  self.set_section_value(3, reservado)
end
set_total_registros(registros) click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 106
def set_total_registros registros
  registros = registros.to_i

  if registros > 0
    self.set_section_value(1, registros)
  else
    raise "#{get_id}: A quantidade de registros deve ser positiva e maior que 0
            Valor: #{registros}"
  end
end
set_valor_total(valor) click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 117
def set_valor_total valor
  valor = valor.to_i

  if valor > 0
    self.set_section_value(2, valor)
  else
    raise "#{get_id}: A quantidade de registros deve ser positiva e maior que 0
            Valor: #{valor}"
  end
end

Protected Instance Methods

is_valid_04?() click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 80
def is_valid_04?
  result = (self.get_total_registros > 0 and
            self.get_valor_total > 0)
end
is_valid_05?() click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 85
def is_valid_05?
  result = (self.get_total_registros > 0 and
            self.get_valor_total > 0)
end
monta_versao_04() click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 22
def monta_versao_04
  @section = Section.new({
       0 => Position.new(1, 1, false, 'Z', true), # Código do Registro
       1 => Position.new(2, 6, true),             # Total de Registros no Arquivo
       2 => Position.new(3, 17, true),            # Valor Total dos Registros
       3 => Position.new(4, 126, false)           # Reservado pelo Sistema
   })
end
monta_versao_05() click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 31
def monta_versao_05
  @section = Section.new({
      0 => Position.new(1, 1, false, 'Z', true), # Código do Registro
      1 => Position.new(2, 6, true),             # Total de Registros no Arquivo
      2 => Position.new(3, 17, true),            # Valor Total dos Registros
      3 => Position.new(4, 126, false)           # Reservado pelo Sistema
  })
end
processa_arquivo_04(file) click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 54
def processa_arquivo_04(file)
  self.set_total_registros file[1..6]
  self.set_valor_total     file[7..23]
  self.set_reservado       file[24..149]
end
processa_arquivo_05(file) click to toggle source
# File lib/formatos/febraban150/febraban_150_z.rb, line 60
def processa_arquivo_05(file)
  self.set_total_registros file[1..6]
  self.set_valor_total     file[7..23]
  self.set_reservado       file[24..149]
end