Class: Febraban150B

Inherits:
FormatSection
  • Object
show all
Defined in:
lib/formatos/febraban150/febraban_150_b.rb

Overview



Cadastro Débito Automático - Banco

Instance Method Summary collapse

Constructor Details

#initialize(master, versao = Febraban150::VERSAO) ⇒ Febraban150B

Returns a new instance of Febraban150B.



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 6

def initialize(master, versao = Febraban150::VERSAO)
  super(master, true, false)

  @section = Section.new({
    0 => Position.new(1, 1, false, "B", 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, 8, true),             # Data da Opção/Exclusão
    5 => Position.new(6, 97, false),           # Reservado pelo Sistema
    6 => Position.new(7, 1, true)              # Código de Movimento (1-Excluir, 2-Incluir)
  })
end

Instance Method Details

#get_agencia_debitoObject



51
52
53
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 51

def get_agencia_debito
  self.get_section_value(2)
end

#get_cod_movimentoObject



64
65
66
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 64

def get_cod_movimento
  self.get_section_value(6).to_i
end

#get_data_opcao_exclusaoObject



59
60
61
62
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 59

def get_data_opcao_exclusao
  data = self.get_section_value(4)
  Date.new(data[0..3].to_i, data[4..5].to_i, data[6..7].to_i)
end

#get_id_cliente_bancoObject



55
56
57
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 55

def get_id_cliente_banco
  self.get_section_value(3)
end

#get_id_cliente_empresaObject



Getters



47
48
49
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 47

def get_id_cliente_empresa
  self.get_section_value(1)
end

#is_valid?Boolean



Validações

Returns:

  • (Boolean)


35
36
37
38
39
40
41
42
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 35

def is_valid?
  result = (self.get_id_cliente_empresa.length > 0 and
            self.get_agencia_debito.length > 0     and
            self.get_nome_empresa.length > 0       and
            !self.get_data_opcao_exclusao.nil?     and
            (self.get_cod_movimento == 0 or
             self.get_cod_movimento == 1))
end

#process_section(file) ⇒ Object



Gerais



23
24
25
26
27
28
29
30
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 23

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_data_opcao_exclusao file[44..51]
  self.set_reservado           file[52..148]
  self.set_cod_movimento       file[149..149]
end

#set_agencia_debito(agencia_debito) ⇒ Object



82
83
84
85
86
87
88
89
90
91
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 82

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) ⇒ Object



121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 121

def set_cod_movimento cod_movimento
  cod_movimento = cod_movimento.to_i

  if cod_movimento == 0 or cod_movimento == 1
    self.set_section_value(6, 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_data_opcao_exclusao(data_opcao_exclusao) ⇒ Object



104
105
106
107
108
109
110
111
112
113
114
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 104

def set_data_opcao_exclusao data_opcao_exclusao
    data_opcao_exclusao = Date.strptime(data_opcao_exclusao, "%Y%m%d") if data_opcao_exclusao.is_a?(String)
    real_data = data_opcao_exclusao.strftime("%Y%m%d")

    if real_data.length == 8
    self.set_section_value(4, real_data)
  else
    raise "#{self.get_id}: Data de Opção/Exclusão não pode estar vazia
            Valor: #{data_opcao_exclusao}"
  end
end

#set_id_cliente_banco(id_cliente_banco) ⇒ Object



93
94
95
96
97
98
99
100
101
102
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 93

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) ⇒ Object



Setters



71
72
73
74
75
76
77
78
79
80
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 71

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_reservado(reservado) ⇒ Object



116
117
118
119
# File 'lib/formatos/febraban150/febraban_150_b.rb', line 116

def set_reservado reservado
  reservado = reservado.to_s
  self.set_section_value(5, reservado)
end