Class: Febraban150H

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

Overview



Ocorrência da Alteração Cliente/Empresa - Banco

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Febraban150H.



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

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

  @section = Section.new({
    0 => Position.new(1, 1, false, "H", 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, 58, false),           # Ocorrência
    6 => Position.new(7, 22, false),           # Reservado pelo Sistema
    7 => Position.new(8, 1, true)              # Código de Movimento (Seção D)
  })
end

Instance Method Details

#get_agencia_debitoObject



54
55
56
# File 'lib/formatos/febraban150/febraban_150_h.rb', line 54

def get_agencia_debito
  self.get_section_value(2)
end

#get_cod_movimentoObject



70
71
72
# File 'lib/formatos/febraban150/febraban_150_h.rb', line 70

def get_cod_movimento
  self.get_section_value(7).to_i
end

#get_id_cliente_bancoObject



58
59
60
# File 'lib/formatos/febraban150/febraban_150_h.rb', line 58

def get_id_cliente_banco
  self.get_section_value(3)
end

#get_id_cliente_empresa_newObject



62
63
64
# File 'lib/formatos/febraban150/febraban_150_h.rb', line 62

def get_id_cliente_empresa_new
  self.get_section_value(4)
end

#get_id_cliente_empresa_oldObject



Getters



50
51
52
# File 'lib/formatos/febraban150/febraban_150_h.rb', line 50

def get_id_cliente_empresa_old
  self.get_section_value(1)
end

#get_ocorrenciaObject



66
67
68
# File 'lib/formatos/febraban150/febraban_150_h.rb', line 66

def get_ocorrencia
  self.get_section_value(5)
end

#is_valid?Boolean



Validações

Returns:

  • (Boolean)


37
38
39
40
41
42
43
44
45
# File 'lib/formatos/febraban150/febraban_150_h.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) ⇒ Object



Gerais



24
25
26
27
28
29
30
31
32
# File 'lib/formatos/febraban150/febraban_150_h.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) ⇒ Object



88
89
90
91
92
93
94
95
96
97
# File 'lib/formatos/febraban150/febraban_150_h.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) ⇒ Object



137
138
139
140
141
142
143
144
145
146
147
148
# File 'lib/formatos/febraban150/febraban_150_h.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) ⇒ Object



99
100
101
102
103
104
105
106
107
108
# File 'lib/formatos/febraban150/febraban_150_h.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) ⇒ Object



110
111
112
113
114
115
116
117
118
119
# File 'lib/formatos/febraban150/febraban_150_h.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) ⇒ Object



Setters



77
78
79
80
81
82
83
84
85
86
# File 'lib/formatos/febraban150/febraban_150_h.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) ⇒ Object



121
122
123
124
125
126
127
128
129
130
# File 'lib/formatos/febraban150/febraban_150_h.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) ⇒ Object



132
133
134
135
# File 'lib/formatos/febraban150/febraban_150_h.rb', line 132

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