formatos-febraban 0.3.48 → 0.3.49

Sign up to get free protection for your applications and to get access to all the features.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: formatos-febraban
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.48
4
+ version: 0.3.49
5
5
  platform: ruby
6
6
  authors:
7
7
  - José Ricardo Almeida
@@ -79,12 +79,9 @@ files:
79
79
  - lib/formatos/cielo/cielo_header.rb
80
80
  - lib/formatos/cielo/cielo_trailler.rb
81
81
  - lib/formatos/cnab400/cnab_400.rb
82
- - lib/formatos/cnab400/cnab_400_0.rb
83
- - lib/formatos/cnab400/cnab_400_1.rb
84
- - lib/formatos/cnab400/cnab_400_2.rb
85
- - lib/formatos/cnab400/cnab_400_3.rb
86
- - lib/formatos/cnab400/cnab_400_7.rb
87
- - lib/formatos/cnab400/cnab_400_9.rb
82
+ - lib/formatos/cnab400/cnab_400_detalhe.rb
83
+ - lib/formatos/cnab400/cnab_400_header.rb
84
+ - lib/formatos/cnab400/cnab_400_trailler.rb
88
85
  - lib/formatos/febraban.rb
89
86
  - lib/formatos/febraban/version.rb
90
87
  - lib/formatos/febraban150/febraban_150.rb
@@ -1,194 +0,0 @@
1
-
2
- #-------------------------------------------------------------------
3
- #-------------------------------------------------------------------
4
- # Header - Empresa e Banco
5
- class Cnab4000 < FormatSection
6
- require 'date'
7
-
8
- def initialize master
9
- super(master, true, true, false)
10
-
11
- @section = Section.new({
12
- 0 => Position.new(1, 1, true, '0', true), # Identificação do Registro
13
- 1 => Position.new(2, 1, true, '1'), # Código Remessa (1-Remessa, 2-Retorno)
14
- 2 => Position.new(3, 7, false,'REMESSA'), # Literal Remessa
15
- 3 => Position.new(4, 2, true, '01'), # Código do Serviço
16
- 4 => Position.new(5, 15, false,'COBRANCA'), # Literal Serviço
17
- 5 => Position.new(6, 20, true), # Código da Empresa
18
- 6 => Position.new(7, 30, false), # Nome da Empresa
19
- 7 => Position.new(8, 3, true), # Código do Banco
20
- 8 => Position.new(9, 15, false, 'BRADESCO'), # Nome do Banco
21
- 9 => Position.new(10, 6, true), # Data de Geração de Arquivo
22
- 10 => Position.new(11, 8, false), # Brancos
23
- 11 => Position.new(12, 2, false), # Identificação do Sistema
24
- 12 => Position.new(13, 7, true), # Número Sequencial do Arquivo
25
- 13 => Position.new(14, 277, false), # Brancos
26
- 14 => Position.new(15, 6, true, '1'), # Sequencial de Regsitro
27
- })
28
- end
29
-
30
- #-------------------------------------------------------------------
31
- #-------------------------------------------------------------------
32
- # Gerais
33
- def process_section(file)
34
- self.set_id_registro (file[1..1])
35
- self.set_codigo_remessa (file[2..2])
36
- self.set_literal (file[3..9])
37
- self.set_codigo_servico (file[10..11])
38
- self.set_servico (file[12..26])
39
- self.set_codigo_empresa (file[27..46])
40
- self.set_nome_empresa (file[47..76])
41
- self.set_codigo_banco (file[77..79])
42
- self.set_nome_banco (file[80..94])
43
- self.set_data_geracao (file[95..100])
44
- self.set_branco_1 (file[101..108])
45
- self.set_id_sistema (file[109..110])
46
- self.set_seq_arquivo (file[111..117])
47
- self.set_branco_2 (file[118..394])
48
- self.set_seq_registro (file[395..400])
49
- end
50
-
51
- #-------------------------------------------------------------------
52
- #-------------------------------------------------------------------
53
- # Setters
54
- def set_id_registro code
55
- code = code.to_i
56
-
57
- unless code
58
- self.set_section_value(0, code)
59
- else
60
- raise
61
- end
62
- end
63
-
64
- def set_codigo_remessa code
65
- code = code.to_s
66
-
67
- if code.length >= 1
68
- self.set_section_value(1, code)
69
- else
70
- raise
71
- end
72
- end
73
-
74
- def set_literal literal
75
- nome = literal.to_s
76
-
77
- if nome.to_s.length > 0
78
- self.set_section_value(2, nome)
79
- else
80
- raise
81
- end
82
- end
83
-
84
- def set_codigo_servico codigo
85
- codigo = codigo.to_i
86
-
87
- if codigo > 0
88
- self.set_section_value(3, codigo)
89
- else
90
- raise
91
- end
92
- end
93
-
94
- def set_servico nome
95
- nome = nome.to_s
96
-
97
- if nome.to_s.length > 0
98
- self.set_section_value(4, nome)
99
- else
100
- raise
101
- end
102
- end
103
-
104
- def set_codigo_empresa codigo
105
- begin
106
- if codigo.length == 20
107
- self.set_section_value(5, codigo)
108
- else
109
- raise
110
- end
111
-
112
- rescue
113
- raise
114
- end
115
- end
116
-
117
- def set_nome_empresa nome
118
- nome = nome.to_s
119
-
120
- if nome
121
- self.set_section_value(6, nome)
122
- else
123
- raise
124
- end
125
- end
126
-
127
- def set_codigo_banco codigo
128
- codigo = codigo.to_i
129
-
130
- if codigo > 0
131
- self.set_section_value(7, codigo)
132
- else
133
- raise
134
- end
135
- end
136
-
137
- def set_nome_banco nome
138
- nome = nome.to_s
139
-
140
- if nome.length > 0
141
- self.set_section_value(8, nome)
142
- else
143
- raise
144
- end
145
- end
146
-
147
- def set_data_geracao data
148
- begin
149
- data = Date.strptime(data, "%d%m%y") if data.is_a?(String)
150
- real_data = data.strftime('%d%m%y')
151
-
152
- if real_data.length == 6
153
- self.set_section_value(9, real_data)
154
- else
155
- raise
156
- end
157
-
158
- rescue
159
- raise "#{get_id}: Data de Geração Inválida
160
- Valor: #{data}"
161
- end
162
- end
163
-
164
- def set_branco_1 branco
165
- branco = branco.to_s
166
- self.set_section_value(10, branco)
167
- end
168
-
169
- def set_id_sistema id
170
- id = id.to_s
171
- self.set_section_value(11, id)
172
- end
173
-
174
- def set_seq_arquivo sequencial
175
- sequencial = sequencial.to_i
176
- self.set_section_value(12, sequencial)
177
- end
178
-
179
- def set_branco_2 branco
180
- branco = branco.to_s
181
- self.set_section_value(13, branco)
182
- end
183
-
184
- def set_seq_registro sequencial
185
- sequencial = sequencial.to_i
186
- self.set_section_value(14, sequencial)
187
- end
188
- end
189
-
190
-
191
-
192
-
193
-
194
-
@@ -1,443 +0,0 @@
1
-
2
- #-------------------------------------------------------------------
3
- #-------------------------------------------------------------------
4
- # Header - Empresa e Banco
5
- class Cnab4001 < FormatSection
6
- require 'date'
7
-
8
- def initialize master
9
- super(master, true, true, false)
10
-
11
- @section = Section.new({
12
- 0 => Position.new(1, 1, true, '1', true), # Identificação do Registro
13
- 1 => Position.new(2, 7, true), # Agência de Débito (opcional)
14
- 2 => Position.new(8, 12, true), # Razão da Conta Corrente (opcional)
15
- 3 => Position.new(13, 20, true), # Conta Corrente (opcional)
16
- 4 => Position.new(21, 37, false), # Identificação da Empresa Cedente no Banco
17
- 5 => Position.new(38, 62, false), # No Controle do Participante (Empresa)
18
- 6 => Position.new(63, 65, true), # Código do Banco a ser debitado na Câmara de Compensação
19
- 7 => Position.new(66, 66, true, '0'), # Campo de Multa (2 = Com multa, 0 = Sem multa)
20
- 8 => Position.new(67, 70, true), # Percentual de multa
21
- 9 => Position.new(71, 81, true, '0'), # Identificação do Título no Banco
22
- 10 => Position.new(82, 82, false, '0'), # Digito de Auto Conferencia do Número Bancário.
23
- 11 => Position.new(83, 92, true), # Desconto Bonificação por dia
24
- 12 => Position.new(93, 93, true, '1'), # Condição para Emissão da papeleta de Cobrança 1 = Banco emite e Processa o registro, 2 = Cliente emite e o Banco somente processa o registro
25
- 13 => Position.new(94, 94, false), # Ident. se emite Boleto Automático
26
- 14 => Position.new(95, 104, false), # Identificação da Operação do Banco
27
- 15 => Position.new(105, 105, false), # Indicador Rateio Crédito (Opcional)
28
- 16 => Position.new(106, 106, true), # Endereçamento para Aviso do Débito Automático em Conta Corrente (Opcional)
29
- 17 => Position.new(107, 108, false), # Branco
30
- 18 => Position.new(109, 110, true), # Identificação da Ocorrência
31
- 19 => Position.new(111, 120, false), # No do Documento
32
- 20 => Position.new(121, 126, true), # Data do Vencimento do Título
33
- 21 => Position.new(127, 139, true), # Valor do Título
34
- 22 => Position.new(140, 152, true, '0'), # Banco Encarregado da Cobrança (Preencher com zeros)
35
- 23 => Position.new(143, 147, true, '0'), # Agência Depositária (Preencher com zeros)
36
- 24 => Position.new(148, 149, true), # Espécie de Título: 01-Duplicata, 03-Nota de Seguro, 04-Cobrança Seriada, 05-Recibo, 10-Letras de Câmbio, 11-Nota de Débito, 12-Duplicata de Serv., 99-Outros
37
- 25 => Position.new(150, 150, false, 'N', true), # Identificação ( Fixo)
38
- 26 => Position.new(151, 156, true), # Data da emissão do Título
39
- 27 => Position.new(157, 158, true), # 1a instrução
40
- 28 => Position.new(159, 160, true), # 2a instrução
41
- 29 => Position.new(161, 173, true), # Valor a ser cobrado por Dia de Atraso
42
- 30 => Position.new(174, 179, true), # Data Limite P/Concessão de Desconto
43
- 31 => Position.new(180, 192, true), # Valor do Desconto
44
- 32 => Position.new(193, 205, true), # Valor do IOF
45
- 33 => Position.new(206, 218, true), # Valor Abatimento
46
- 34 => Position.new(219, 220, true), # 01-CPF, 02-CNPJ, 03-PIS/PASEP, 98-Não tem, 99-Outros,
47
- 35 => Position.new(221, 234, true), # CNPJ/ CPF
48
- 36 => Position.new(235, 274, false), # Nome do Sacado
49
- 37 => Position.new(235, 314, false), # Endereço do Sacado
50
- 38 => Position.new(315, 326, false), # 1a Mensagem
51
- 39 => Position.new(317, 334, true), # CEP
52
- 40 => Position.new(335, 394, false), # Sacador/Avalista ou 2a Mensagem
53
- 41 => Position.new(395, 400, true), # No Seqüencial do Registro
54
- })
55
- end
56
-
57
- #-------------------------------------------------------------------
58
- #-------------------------------------------------------------------
59
- # Gerais
60
- def process_section file
61
- self.set_id_registro file[1, 1]
62
- self.set_agencia_debito file[2, 7]
63
- self.set_razao_conta file[8, 12]
64
- self.set_conta_corrente file[13, 20]
65
- self.set_codigo_empresa file[21, 37]
66
- self.set_numero_controle file[38, 62]
67
- self.set_codigo_banco file[63, 65]
68
- self.set_multa file[66, 66]
69
- self.set_percent_multa file[67, 70]
70
- self.set_id_titulo file[71, 81]
71
- self.set_digito_conferencia file[82, 82]
72
- self.set_desconto_dia file[83, 92]
73
- self.set_condicao_emissao file[93, 93]
74
- self.set_emite_boleto file[94, 94]
75
- self.set_id_operacao file[95, 104]
76
- self.set_indicador_rateio file[105, 105]
77
- self.set_enderecamento file[106, 106]
78
- self.set_branco file[107, 108]
79
- self.set_id_ocorrencia file[109, 110]
80
- self.set_numero_documento file[111, 120]
81
- self.set_data_vencimento file[121, 126]
82
- self.set_valor file[127, 139]
83
- self.set_banco_cobranca file[140, 152]
84
- self.set_agencia_depositaria file[143, 147]
85
- self.set_especie_titulo file[148, 149]
86
- self.set_identificacao file[150, 150]
87
- self.set_data_emissao file[151, 156]
88
- self.set_primeira_instrucao file[157, 158]
89
- self.set_segunda_instrucao file[159, 160]
90
- self.set_valor_dia_atraso file[161, 173]
91
- self.set_data_limite_concessao file[174, 179]
92
- self.set_valor_desconto file[180, 192]
93
- self.set_valor_iof file[193, 205]
94
- self.set_valor_abatimento file[206, 218]
95
- self.set_tipo_inscricao file[219, 220]
96
- self.set_numero_inscricao file[221, 234]
97
- self.set_nome_sacado file[235, 274]
98
- self.set_endereco_sacado file[235, 314]
99
- self.set_primeira_mensagem file[315, 326]
100
- self.set_cep file[317, 334]
101
- self.set_sacador_avalista file[335, 394]
102
- self.set_seq_registro file[395, 400]
103
- end
104
-
105
- #-------------------------------------------------------------------
106
- #-------------------------------------------------------------------
107
- # Setters
108
- def set_id_registro(valor)
109
- unless valor
110
- self.set_section_value(0, valor)
111
- else
112
- raise
113
- end
114
- end
115
-
116
- def set_agencia_debito(valor)
117
- unless valor
118
- self.set_section_value(1, valor)
119
- else
120
- raise
121
- end
122
- end
123
-
124
- def set_razao_conta(valor)
125
- unless valor
126
- self.set_section_value(2, valor)
127
- else
128
- raise
129
- end
130
- end
131
-
132
- def set_conta_corrente(valor)
133
- unless valor
134
- self.set_section_value(3, valor)
135
- else
136
- raise
137
- end
138
- end
139
-
140
- def set_codigo_empresa(valor)
141
- unless valor
142
- self.set_section_value(4, valor)
143
- else
144
- raise
145
- end
146
- end
147
-
148
- def set_numero_controle(valor)
149
- unless valor
150
- self.set_section_value(5, valor)
151
- else
152
- raise
153
- end
154
- end
155
-
156
- def set_codigo_banco(valor)
157
- unless valor
158
- self.set_section_value(6, valor)
159
- else
160
- raise
161
- end
162
- end
163
-
164
- def set_multa(valor)
165
- unless valor
166
- self.set_section_value(7, valor)
167
- else
168
- raise
169
- end
170
- end
171
-
172
- def set_percent_multa(valor)
173
- unless valor
174
- self.set_section_value(8, valor)
175
- else
176
- raise
177
- end
178
- end
179
-
180
- def set_id_titulo(valor)
181
- unless valor
182
- self.set_section_value(9, valor)
183
- else
184
- raise
185
- end
186
- end
187
-
188
- def set_digito_conferencia(valor)
189
- unless valor
190
- self.set_section_value(10, valor)
191
- else
192
- raise
193
- end
194
- end
195
-
196
- def set_desconto_dia(valor)
197
- unless valor
198
- self.set_section_value(11, valor)
199
- else
200
- raise
201
- end
202
- end
203
-
204
- def set_condicao_emissao(valor)
205
- unless valor
206
- self.set_section_value(12, valor)
207
- else
208
- raise
209
- end
210
- end
211
-
212
- def set_emite_boleto(valor)
213
- unless valor
214
- self.set_section_value(13, valor)
215
- else
216
- raise
217
- end
218
- end
219
-
220
- def set_id_operacao(valor)
221
- unless valor
222
- self.set_section_value(14, valor)
223
- else
224
- raise
225
- end
226
- end
227
-
228
- def set_indicador_rateio(valor)
229
- unless valor
230
- self.set_section_value(15, valor)
231
- else
232
- raise
233
- end
234
- end
235
-
236
- def set_enderecamento(valor)
237
- unless valor
238
- self.set_section_value(16, valor)
239
- else
240
- raise
241
- end
242
- end
243
-
244
- def set_branco(valor)
245
- unless valor
246
- self.set_section_value(17, valor)
247
- else
248
- raise
249
- end
250
- end
251
-
252
- def set_id_ocorrencia(valor)
253
- unless valor
254
- self.set_section_value(18, valor)
255
- else
256
- raise
257
- end
258
- end
259
-
260
- def set_numero_documento(valor)
261
- unless valor
262
- self.set_section_value(19, valor)
263
- else
264
- raise
265
- end
266
- end
267
-
268
- def set_data_vencimento(valor)
269
- unless valor
270
- self.set_section_value(20, valor)
271
- else
272
- raise
273
- end
274
- end
275
-
276
- def set_valor(valor)
277
- unless valor
278
- self.set_section_value(21, valor)
279
- else
280
- raise
281
- end
282
- end
283
-
284
- def set_banco_cobranca(valor)
285
- unless valor
286
- self.set_section_value(22, valor)
287
- else
288
- raise
289
- end
290
- end
291
-
292
- def set_agencia_depositaria(valor)
293
- unless valor
294
- self.set_section_value(23, valor)
295
- else
296
- raise
297
- end
298
- end
299
-
300
- def set_especie_titulo(valor)
301
- unless valor
302
- self.set_section_value(24, valor)
303
- else
304
- raise
305
- end
306
- end
307
-
308
- def set_identificacao(valor)
309
- unless valor
310
- self.set_section_value(25, valor)
311
- else
312
- raise
313
- end
314
- end
315
-
316
- def set_data_emissao(valor)
317
- unless valor
318
- self.set_section_value(26, valor)
319
- else
320
- raise
321
- end
322
- end
323
-
324
- def set_primeira_instrucao(valor)
325
- unless valor
326
- self.set_section_value(27, valor)
327
- else
328
- raise
329
- end
330
- end
331
-
332
- def set_segunda_instrucao(valor)
333
- unless valor
334
- self.set_section_value(28, valor)
335
- else
336
- raise
337
- end
338
- end
339
-
340
- def set_valor_dia_atraso(valor)
341
- unless valor
342
- self.set_section_value(29, valor)
343
- else
344
- raise
345
- end
346
- end
347
-
348
- def set_data_limite_concessao(valor)
349
- unless valor
350
- self.set_section_value(30, valor)
351
- else
352
- raise
353
- end
354
- end
355
-
356
- def set_valor_desconto(valor)
357
- unless valor
358
- self.set_section_value(31, valor)
359
- else
360
- raise
361
- end
362
- end
363
-
364
- def set_valor_iof(valor)
365
- unless valor
366
- self.set_section_value(32, valor)
367
- else
368
- raise
369
- end
370
- end
371
-
372
- def set_valor_abatimento(valor)
373
- unless valor
374
- self.set_section_value(33, valor)
375
- else
376
- raise
377
- end
378
- end
379
-
380
- def set_tipo_inscricao(valor)
381
- unless valor
382
- self.set_section_value(34, valor)
383
- else
384
- raise
385
- end
386
- end
387
-
388
- def set_numero_inscricao(valor)
389
- unless valor
390
- self.set_section_value(35, valor)
391
- else
392
- raise
393
- end
394
- end
395
-
396
- def set_nome_sacado(valor)
397
- unless valor
398
- self.set_section_value(36, valor)
399
- else
400
- raise
401
- end
402
- end
403
-
404
- def set_endereco_sacado(valor)
405
- unless valor
406
- self.set_section_value(37, valor)
407
- else
408
- raise
409
- end
410
- end
411
-
412
- def set_primeira_mensagem(valor)
413
- unless valor
414
- self.set_section_value(38, valor)
415
- else
416
- raise
417
- end
418
- end
419
-
420
- def set_cep(valor)
421
- unless valor
422
- self.set_section_value(39, valor)
423
- else
424
- raise
425
- end
426
- end
427
-
428
- def set_sacador_avalista(valor)
429
- unless valor
430
- self.set_section_value(40, valor)
431
- else
432
- raise
433
- end
434
- end
435
-
436
- def set_seq_registro(valor)
437
- unless valor
438
- self.set_section_value(41, valor)
439
- else
440
- raise
441
- end
442
- end
443
- end