class Febraban150C

Public Class Methods

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

  @section = Section.new({
    0 => Position.new(1, 1, false, "C", true), # Código do Registro
    1 => Position.new(2, 25, false),           # Identificação do Cliente Empresa
    2 => Position.new(3, 4, false),            # Agência para Débito
    3 => Position.new(4, 14, false),           # Identificação Cliente Banco
    4 => Position.new(5, 40, false),           # Ocorrência 1 - Motivo Recusa
    5 => Position.new(6, 40, false),           # Ocorrência 2 - Complemento
    6 => Position.new(7, 25, false),           # Reservado pelo Sistema
    7 => Position.new(8, 1, true)              # Código de Movimento (Seção B)
  })
end

Public Instance Methods

get_agencia_debito() click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 54
def get_agencia_debito
  self.get_section_value(2)
end
get_cod_movimento() click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 70
def get_cod_movimento
  self.get_section_value(7).to_i
end
get_id_cliente_banco() click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 58
def get_id_cliente_banco
  self.get_section_value(3)
end
get_id_cliente_empresa() click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 50
def get_id_cliente_empresa
  self.get_section_value(1)
end
get_ocorrencia_1() click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 62
def get_ocorrencia_1
  self.get_section_value(4)
end
get_ocorrencia_2() click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 66
def get_ocorrencia_2
  self.get_section_value(5)
end
is_valid?() click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 37
def is_valid?
  result = (self.get_id_cliente_empresa.length > 0 and
            self.get_agencia_debito.length > 0     and
            self.get_id_cliente_banco.length > 0   and
            self.get_ocorrencia_1.length > 0       and
            self.get_ocorrencia_2.length > 0       and
            (self.get_cod_movimento == 0 or
             self.get_cod_movimento == 1))
end
process_section(file) click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 24
def process_section file
  self.set_id_cliente_empresa file[1..25]
  self.set_agencia_debito     file[26..29]
  self.set_id_cliente_banco   file[30..43]
  self.set_ocorrencia_1       file[44..83]
  self.set_ocorrencia_2       file[84..123]
  self.set_reservado          file[124..148]
  self.set_cod_movimento      file[149..149]
end
set_agencia_debito(agencia_debito) click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 88
def set_agencia_debito agencia_debito
  agencia_debito = agencia_debito.to_s

  if agencia_debito.length > 0
    self.set_section_value(2, agencia_debito)
  else
    raise "#{self.get_id}: Agência do Débito não pode estar vazia
            Valor: #{agencia_debito}"
  end
end
set_cod_movimento(cod_movimento) click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 137
def set_cod_movimento cod_movimento
  cod_movimento = cod_movimento.to_i

  if cod_movimento == 0 or cod_movimento == 1
    self.set_section_value(7, cod_movimento)
  else
    raise "#{self.get_id}: Código de Movimentação deve ser de Exclusão ou Inclusão:
            1 = Exclusão de optante pelo débito automático
            2 = Inclusão de optante pelo débito automático
            Valor: #{cod_movimento}"
  end
end
set_id_cliente_banco(id_cliente_banco) click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 99
def set_id_cliente_banco id_cliente_banco
  id_cliente_banco = id_cliente_banco.to_s

  if id_cliente_banco.length > 0
    self.set_section_value(3, id_cliente_banco)
  else
    raise "#{self.get_id}: Identificação do Cliente do Banco não pode estar vazio
            Valor: #{id_cliente_banco}"
  end
end
set_id_cliente_empresa(id_cliente_empresa) click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 77
def set_id_cliente_empresa id_cliente_empresa
  id_cliente_empresa = id_cliente_empresa.to_s

  if id_cliente_empresa.length > 0
    self.set_section_value(1, id_cliente_empresa)
  else
    raise "#{self.get_id}: Identificação do Cliente da Empresa não pode estar vazio
            Valor: #{id_cliente_empresa}"
  end
end
set_ocorrencia_1(ocorrencia) click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 110
def set_ocorrencia_1 ocorrencia
  ocorrencia = ocorrencia.to_s

  if ocorrencia.length > 0
    self.set_section_value(4, ocorrencia)
  else
    raise "#{self.get_id}: Motivo de Recusa não pode estar vazio
            Valor: #{ocorrencia}"
  end
end
set_ocorrencia_2(ocorrencia) click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 121
def set_ocorrencia_2 ocorrencia
  ocorrencia = ocorrencia.to_s

  if ocorrencia.length > 0
    self.set_section_value(5, ocorrencia)
  else
    raise "#{self.get_id}: Motivo de Recusa não pode estar vazio
            Valor: #{ocorrencia}"
  end
end
set_reservado(reservado) click to toggle source
# File lib/formatos/febraban150/febraban_150_c.rb, line 132
def set_reservado reservado
  reservado = reservado.to_s
  self.set_section_value(6, reservado)
end