class Febraban150D

Public Class Methods

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

  @section = Section.new({
    0 => Position.new(1, 1, false, "D", true), # Código do Registro
    1 => Position.new(2, 25, false),           # Identificação do Cliente Empresa Old
    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, 25, false),           # Identificação do Cliente Empresa New
    5 => Position.new(6, 60, false),           # Ocorrência
    6 => Position.new(7, 20, false),           # Reservado pelo Sistema
    7 => Position.new(8, 1, true)              # Código de Movimento (0-Alteração, 1-Cancelar)
  })
end

Public Instance Methods

get_agencia_debito() click to toggle source
# File lib/formatos/febraban150/febraban_150_d.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_d.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_d.rb, line 58
def get_id_cliente_banco
  self.get_section_value(3)
end
get_id_cliente_empresa_new() click to toggle source
# File lib/formatos/febraban150/febraban_150_d.rb, line 62
def get_id_cliente_empresa_new
  self.get_section_value(4)
end
get_id_cliente_empresa_old() click to toggle source
# File lib/formatos/febraban150/febraban_150_d.rb, line 50
def get_id_cliente_empresa_old
  self.get_section_value(1)
end
get_ocorrencia() click to toggle source
# File lib/formatos/febraban150/febraban_150_d.rb, line 66
def get_ocorrencia
  self.get_section_value(5)
end
is_valid?() click to toggle source
# File lib/formatos/febraban150/febraban_150_d.rb, line 37
def is_valid?
  result = (self.get_id_cliente_empresa_old.length > 0 and
            self.get_agencia_debito.length > 0         and
            self.get_id_cliente_banco.length > 0       and
            self.get_id_cliente_empresa_new.length > 0 and
            self.get_ocorrencia.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_d.rb, line 24
def process_section file
  self.set_id_cliente_empresa_old file[1..25]
  self.set_agencia_debito         file[26..29]
  self.set_id_cliente_banco       file[30..43]
  self.set_id_cliente_empresa_new file[44..68]
  self.set_ocorrencia             file[69..128]
  self.set_reservado              file[129..148]
  self.set_cod_movimento          file[149..149]
end
set_agencia_debito(agencia_debito) click to toggle source
# File lib/formatos/febraban150/febraban_150_d.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_d.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:
            0 = Alteração da Identificação do Cliente na Empresa
            1 = Exclusão de optante do Débito Automático, solicitado pela Empresa
            Valor: #{cod_movimento}"
  end
end
set_id_cliente_banco(id_cliente_banco) click to toggle source
# File lib/formatos/febraban150/febraban_150_d.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_new(id_cliente_empresa) click to toggle source
# File lib/formatos/febraban150/febraban_150_d.rb, line 110
def set_id_cliente_empresa_new id_cliente_empresa
  id_cliente_empresa = id_cliente_empresa.to_s

  if id_cliente_empresa.length > 0
    self.set_section_value(4, id_cliente_empresa)
  else
    raise "#{self.get_id}: Identificação do Cliente da Empresa Novo não pode estar vazio
            Valor: #{id_cliente_empresa}"
  end
end
set_id_cliente_empresa_old(id_cliente_empresa) click to toggle source
# File lib/formatos/febraban150/febraban_150_d.rb, line 77
def set_id_cliente_empresa_old 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 Anterior não pode estar vazio
            Valor: #{id_cliente_empresa}"
  end
end
set_ocorrencia(ocorrencia) click to toggle source
# File lib/formatos/febraban150/febraban_150_d.rb, line 121
def set_ocorrencia ocorrencia
  ocorrencia = ocorrencia.to_s

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