formatos-febraban 0.3.49 → 0.3.50
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/formatos/febraban/version.rb +1 -1
- data/lib/formatos/febraban150/febraban_150_a.rb +89 -127
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8bde1e8637dde00460547b5dfe7e5169f8aa5b32
|
4
|
+
data.tar.gz: 89ee496811f6d637e785463b28543c48cbe6feba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15fe0a9a68967068cd84ada9524cffae0d1807eac6d623e55e0178f6c6c9553c4031e2251c914053cd542343f47b8caefbcd5474397efd249114e79958e0b00a
|
7
|
+
data.tar.gz: 9298934d17ba521b2d16f4e57ed4af5370a4ebffdc817c5d7aa3cf8860ad14657915f053bee14bb449d9118afb8447b9c3e7d89a4ebe86f088b86229d9e98952
|
@@ -5,13 +5,9 @@
|
|
5
5
|
class Febraban150A < FormatSection
|
6
6
|
require 'date'
|
7
7
|
|
8
|
-
<<<<<<< HEAD:lib/formatos/febraban150/febraban_150_a.rb
|
9
8
|
ID_SERVICO = "DÉBITO AUTOMÁTICO"
|
10
9
|
|
11
10
|
def initialize(master, versao = Febraban150::VERSAO)
|
12
|
-
=======
|
13
|
-
def initialize master
|
14
|
-
>>>>>>> Iniciando codificação do formato CNAB400 para boletos:lib/formatos/cnab400/cnab_400_0.rb
|
15
11
|
super(master, true, true, false)
|
16
12
|
|
17
13
|
@versao = versao
|
@@ -45,7 +41,6 @@ class Febraban150A < FormatSection
|
|
45
41
|
|
46
42
|
def monta_versao_05
|
47
43
|
@section = Section.new({
|
48
|
-
<<<<<<< HEAD:lib/formatos/febraban150/febraban_150_a.rb
|
49
44
|
0 => Position.new(1, 1, false,'A', true), # Código do Registro
|
50
45
|
1 => Position.new(2, 1, true), # Código Remessa (1-Remessa, 2-Retorno)
|
51
46
|
2 => Position.new(3, 20, false), # Código de ID enviado pelo Banco
|
@@ -57,30 +52,30 @@ class Febraban150A < FormatSection
|
|
57
52
|
8 => Position.new(9, 2, true, @versao), # Versão do Layout (5, desde 05.05.2008)
|
58
53
|
9 => Position.new(10, 17, false, Febraban150A::ID_SERVICO), # Identificação ("DÉBITO AUTOMÁTICO")
|
59
54
|
10 => Position.new(11, 52, false), # Reservado pelo Sistema
|
60
|
-
=======
|
61
|
-
0 => Position.new(1, 1, true, '0', true), # Identificação do Registro
|
62
|
-
1 => Position.new(2, 1, true, '1'), # Código Remessa (1-Remessa, 2-Retorno)
|
63
|
-
2 => Position.new(3, 7, false,'REMESSA'), # Literal Remessa
|
64
|
-
3 => Position.new(4, 2, true, '01'), # Código do Serviço
|
65
|
-
4 => Position.new(5, 15, false,'COBRANCA'), # Literal Serviço
|
66
|
-
5 => Position.new(6, 20, true), # Código da Empresa
|
67
|
-
6 => Position.new(7, 30, false), # Nome da Empresa
|
68
|
-
7 => Position.new(8, 3, true), # Código do Banco
|
69
|
-
8 => Position.new(9, 15, false, 'BRADESCO'), # Nome do Banco
|
70
|
-
9 => Position.new(10, 6, true), # Data de Geração de Arquivo
|
71
|
-
10 => Position.new(11, 8, false), # Brancos
|
72
|
-
11 => Position.new(12, 2, false), # Identificação do Sistema
|
73
|
-
12 => Position.new(13, 7, true), # Número Sequencial do Arquivo
|
74
|
-
13 => Position.new(14, 277, false), # Brancos
|
75
|
-
14 => Position.new(15, 6, true, '1'), # Sequencial de Regsitro
|
76
|
-
>>>>>>> Iniciando codificação do formato CNAB400 para boletos:lib/formatos/cnab400/cnab_400_0.rb
|
77
55
|
})
|
78
56
|
end
|
79
57
|
|
58
|
+
def process_section(file)
|
59
|
+
self.set_id_registro (file[1..1])
|
60
|
+
self.set_codigo_remessa (file[2..2])
|
61
|
+
self.set_literal (file[3..9])
|
62
|
+
self.set_codigo_servico (file[10..11])
|
63
|
+
self.set_servico (file[12..26])
|
64
|
+
self.set_codigo_empresa (file[27..46])
|
65
|
+
self.set_nome_empresa (file[47..76])
|
66
|
+
self.set_codigo_banco (file[77..79])
|
67
|
+
self.set_nome_banco (file[80..94])
|
68
|
+
self.set_data_geracao (file[95..100])
|
69
|
+
self.set_branco_1 (file[101..108])
|
70
|
+
self.set_id_sistema (file[109..110])
|
71
|
+
self.set_seq_arquivo (file[111..117])
|
72
|
+
self.set_branco_2 (file[118..394])
|
73
|
+
self.set_seq_registro (file[395..400])
|
74
|
+
end
|
75
|
+
|
80
76
|
#-------------------------------------------------------------------
|
81
77
|
#-------------------------------------------------------------------
|
82
78
|
# Gerais
|
83
|
-
<<<<<<< HEAD:lib/formatos/febraban150/febraban_150_a.rb
|
84
79
|
public
|
85
80
|
def process_section(file)
|
86
81
|
case @versao
|
@@ -154,29 +149,11 @@ class Febraban150A < FormatSection
|
|
154
149
|
self.get_numero_sequencial > 0 and
|
155
150
|
self.get_versao_layout > 0 and
|
156
151
|
self.get_identificacao_servico.length > 0)
|
157
|
-
=======
|
158
|
-
def process_section(file)
|
159
|
-
self.set_id_registro (file[1..1])
|
160
|
-
self.set_codigo_remessa (file[2..2])
|
161
|
-
self.set_literal (file[3..9])
|
162
|
-
self.set_codigo_servico (file[10..11])
|
163
|
-
self.set_servico (file[12..26])
|
164
|
-
self.set_codigo_empresa (file[27..46])
|
165
|
-
self.set_nome_empresa (file[47..76])
|
166
|
-
self.set_codigo_banco (file[77..79])
|
167
|
-
self.set_nome_banco (file[80..94])
|
168
|
-
self.set_data_geracao (file[95..100])
|
169
|
-
self.set_branco_1 (file[101..108])
|
170
|
-
self.set_id_sistema (file[109..110])
|
171
|
-
self.set_seq_arquivo (file[111..117])
|
172
|
-
self.set_branco_2 (file[118..394])
|
173
|
-
self.set_seq_registro (file[395..400])
|
174
|
-
>>>>>>> Iniciando codificação do formato CNAB400 para boletos:lib/formatos/cnab400/cnab_400_0.rb
|
175
152
|
end
|
176
153
|
|
154
|
+
|
177
155
|
#-------------------------------------------------------------------
|
178
156
|
#-------------------------------------------------------------------
|
179
|
-
<<<<<<< HEAD:lib/formatos/febraban150/febraban_150_a.rb
|
180
157
|
# Getters
|
181
158
|
public
|
182
159
|
def get_codigo_remessa
|
@@ -186,96 +163,74 @@ class Febraban150A < FormatSection
|
|
186
163
|
def get_codigo_convenio
|
187
164
|
self.get_section_value(2)
|
188
165
|
end
|
189
|
-
=======
|
190
|
-
# Setters
|
191
|
-
def set_id_registro code
|
192
|
-
code = code.to_i
|
193
|
-
>>>>>>> Iniciando codificação do formato CNAB400 para boletos:lib/formatos/cnab400/cnab_400_0.rb
|
194
166
|
|
195
|
-
|
196
|
-
|
197
|
-
else
|
198
|
-
raise
|
199
|
-
end
|
167
|
+
def get_nome_empresa
|
168
|
+
self.get_section_value(3)
|
200
169
|
end
|
201
170
|
|
202
|
-
def
|
203
|
-
|
171
|
+
def get_codigo_banco
|
172
|
+
self.get_section_value(4).to_i
|
173
|
+
end
|
204
174
|
|
205
|
-
|
206
|
-
|
207
|
-
else
|
208
|
-
raise
|
209
|
-
end
|
175
|
+
def get_nome_banco
|
176
|
+
self.get_section_value(5)
|
210
177
|
end
|
211
178
|
|
212
|
-
def
|
213
|
-
|
179
|
+
def get_data_geracao
|
180
|
+
data = self.get_section_value(6)
|
181
|
+
Date.new(data[0..3].to_i, data[4..5].to_i, data[6..7].to_i)
|
182
|
+
end
|
214
183
|
|
215
|
-
|
216
|
-
|
217
|
-
else
|
218
|
-
raise
|
219
|
-
end
|
184
|
+
def get_numero_sequencial
|
185
|
+
data = self.get_section_value(7).to_i
|
220
186
|
end
|
221
187
|
|
222
|
-
def
|
223
|
-
|
188
|
+
def get_versao_layout
|
189
|
+
data = self.get_section_value(8).to_i
|
190
|
+
end
|
224
191
|
|
225
|
-
|
226
|
-
|
227
|
-
else
|
228
|
-
raise
|
229
|
-
end
|
192
|
+
def get_identificacao_servico
|
193
|
+
data = self.get_section_value(9)
|
230
194
|
end
|
231
195
|
|
232
|
-
<<<<<<< HEAD:lib/formatos/febraban150/febraban_150_a.rb
|
233
196
|
#-------------------------------------------------------------------
|
234
197
|
#-------------------------------------------------------------------
|
235
198
|
# Setters
|
236
199
|
public
|
237
200
|
def set_codigo_remessa code
|
238
201
|
code = code.to_i
|
239
|
-
=======
|
240
|
-
def set_servico nome
|
241
|
-
nome = nome.to_s
|
242
|
-
>>>>>>> Iniciando codificação do formato CNAB400 para boletos:lib/formatos/cnab400/cnab_400_0.rb
|
243
202
|
|
244
|
-
if
|
245
|
-
self.set_section_value(
|
203
|
+
if code == 1 or code == 2
|
204
|
+
self.set_section_value(1, code)
|
246
205
|
else
|
247
|
-
raise
|
206
|
+
raise "#{get_id}: 1 = Remessa - Enviado pela Empresa para o Banco
|
207
|
+
2 = Retorno - Enviado pelo Banco para a Empresa
|
208
|
+
Valor: #{code}"
|
248
209
|
end
|
249
210
|
end
|
250
211
|
|
251
|
-
<<<<<<< HEAD:lib/formatos/febraban150/febraban_150_a.rb
|
252
212
|
def set_codigo_convenio code
|
253
213
|
code = code.to_s
|
254
214
|
|
255
215
|
if !code.nil? and
|
256
216
|
(code.length > 0 and code.length <= 20)
|
257
|
-
=======
|
258
|
-
def set_codigo_empresa codigo
|
259
|
-
begin
|
260
|
-
if codigo.length == 20
|
261
|
-
self.set_section_value(5, codigo)
|
262
|
-
else
|
263
|
-
raise
|
264
|
-
end
|
265
|
-
>>>>>>> Iniciando codificação do formato CNAB400 para boletos:lib/formatos/cnab400/cnab_400_0.rb
|
266
217
|
|
267
|
-
|
268
|
-
|
218
|
+
self.set_section_value(2, code)
|
219
|
+
else
|
220
|
+
raise "#{get_id}: Código atribuído pelo Banco, para seu controle interno.
|
221
|
+
Este código será informado à Empresa, pelo Banco, antes
|
222
|
+
da implantação do serviço de débito automático.
|
223
|
+
Valor: #{code}"
|
269
224
|
end
|
270
225
|
end
|
271
226
|
|
272
227
|
def set_nome_empresa nome
|
273
228
|
nome = nome.to_s
|
274
229
|
|
275
|
-
if nome
|
276
|
-
self.set_section_value(
|
230
|
+
if nome.to_s.length > 0
|
231
|
+
self.set_section_value(3, nome)
|
277
232
|
else
|
278
|
-
raise
|
233
|
+
raise "#{get_id}: Nome da Empresa não pode estar vazio"
|
279
234
|
end
|
280
235
|
end
|
281
236
|
|
@@ -283,29 +238,29 @@ class Febraban150A < FormatSection
|
|
283
238
|
codigo = codigo.to_i
|
284
239
|
|
285
240
|
if codigo > 0
|
286
|
-
self.set_section_value(
|
241
|
+
self.set_section_value(4, codigo)
|
287
242
|
else
|
288
|
-
raise
|
243
|
+
raise "#{get_id}: Código do Banco não pode estar vazio"
|
289
244
|
end
|
290
245
|
end
|
291
246
|
|
292
247
|
def set_nome_banco nome
|
293
248
|
nome = nome.to_s
|
294
249
|
|
295
|
-
if nome.length > 0
|
296
|
-
self.set_section_value(
|
250
|
+
if nome.to_s.length > 0
|
251
|
+
self.set_section_value(5, nome)
|
297
252
|
else
|
298
|
-
raise
|
253
|
+
raise "#{get_id}: Nome do Banco não pode estar vazio"
|
299
254
|
end
|
300
255
|
end
|
301
256
|
|
302
257
|
def set_data_geracao data
|
303
258
|
begin
|
304
|
-
data = Date.strptime(data, "%
|
305
|
-
real_data = data.strftime(
|
259
|
+
data = Date.strptime(data, "%Y%m%d") if data.is_a?(String)
|
260
|
+
real_data = data.strftime("%Y%m%d")
|
306
261
|
|
307
|
-
if real_data.length ==
|
308
|
-
self.set_section_value(
|
262
|
+
if real_data.length == 8
|
263
|
+
self.set_section_value(6, real_data)
|
309
264
|
else
|
310
265
|
raise
|
311
266
|
end
|
@@ -316,34 +271,41 @@ class Febraban150A < FormatSection
|
|
316
271
|
end
|
317
272
|
end
|
318
273
|
|
319
|
-
def
|
320
|
-
|
321
|
-
self.set_section_value(10, branco)
|
322
|
-
end
|
274
|
+
def set_numero_sequencial numero
|
275
|
+
numero = numero.to_i
|
323
276
|
|
324
|
-
|
325
|
-
|
326
|
-
|
277
|
+
if numero > 0
|
278
|
+
self.set_section_value(7, numero)
|
279
|
+
else
|
280
|
+
raise "#{get_id}: Número Sequencial deve ser positivo e maior que 0
|
281
|
+
Valor: #{numero}"
|
282
|
+
end
|
327
283
|
end
|
328
284
|
|
329
|
-
def
|
330
|
-
|
331
|
-
|
285
|
+
def set_versao_layout versao
|
286
|
+
versao = versao.to_i
|
287
|
+
|
288
|
+
if versao > 0
|
289
|
+
self.set_section_value(8, versao)
|
290
|
+
else
|
291
|
+
raise "#{get_id}: Versão deve ser 05 (a partir de 05.05.2008)
|
292
|
+
Valor: #{versao}"
|
293
|
+
end
|
332
294
|
end
|
333
295
|
|
334
|
-
def
|
335
|
-
|
336
|
-
|
296
|
+
def set_identificacao_servico identificacao
|
297
|
+
identificacao = identificacao.to_s
|
298
|
+
|
299
|
+
if identificacao.length > 0
|
300
|
+
self.set_section_value(9, identificacao)
|
301
|
+
else
|
302
|
+
raise "#{get_id}: Deve ser Débito Automático
|
303
|
+
Valor: #{identificacao}"
|
304
|
+
end
|
337
305
|
end
|
338
306
|
|
339
|
-
def
|
340
|
-
|
341
|
-
self.set_section_value(
|
307
|
+
def set_reservado reservado
|
308
|
+
reservado = reservado.to_s
|
309
|
+
self.set_section_value(10, reservado)
|
342
310
|
end
|
343
311
|
end
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|