formatos-febraban 0.3.49 → 0.3.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 987c9458d97877aca613838288688e24857f4867
4
- data.tar.gz: e99f6a7743086a35fac50122218efaf7bdac09e9
3
+ metadata.gz: 8bde1e8637dde00460547b5dfe7e5169f8aa5b32
4
+ data.tar.gz: 89ee496811f6d637e785463b28543c48cbe6feba
5
5
  SHA512:
6
- metadata.gz: c5c333fb415aa36768b5670619eb552cc529c916f8c3d65d030928470d5cc8ba0d1037fbd7f22743c10a5ce88d1c1514e0128928833a900a44931ce2c7ffffcb
7
- data.tar.gz: 7b6992ab5a097fa17d0a232c783b61cb5b5a095bcbd24ffef39f74ce89244effd8329833f2e98b4bb7059f280d9c0b96b9d584db008eef73e4ad26c8a0c7b98b
6
+ metadata.gz: 15fe0a9a68967068cd84ada9524cffae0d1807eac6d623e55e0178f6c6c9553c4031e2251c914053cd542343f47b8caefbcd5474397efd249114e79958e0b00a
7
+ data.tar.gz: 9298934d17ba521b2d16f4e57ed4af5370a4ebffdc817c5d7aa3cf8860ad14657915f053bee14bb449d9118afb8447b9c3e7d89a4ebe86f088b86229d9e98952
@@ -1,5 +1,5 @@
1
1
  module Formatos
2
2
  module Febraban
3
- VERSION = '0.3.49'
3
+ VERSION = '0.3.50'
4
4
  end
5
5
  end
@@ -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
- unless code
196
- self.set_section_value(0, code)
197
- else
198
- raise
199
- end
167
+ def get_nome_empresa
168
+ self.get_section_value(3)
200
169
  end
201
170
 
202
- def set_codigo_remessa code
203
- code = code.to_s
171
+ def get_codigo_banco
172
+ self.get_section_value(4).to_i
173
+ end
204
174
 
205
- if code.length >= 1
206
- self.set_section_value(1, code)
207
- else
208
- raise
209
- end
175
+ def get_nome_banco
176
+ self.get_section_value(5)
210
177
  end
211
178
 
212
- def set_literal literal
213
- nome = literal.to_s
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
- if nome.to_s.length > 0
216
- self.set_section_value(2, nome)
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 set_codigo_servico codigo
223
- codigo = codigo.to_i
188
+ def get_versao_layout
189
+ data = self.get_section_value(8).to_i
190
+ end
224
191
 
225
- if codigo > 0
226
- self.set_section_value(3, codigo)
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 nome.to_s.length > 0
245
- self.set_section_value(4, nome)
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
- rescue
268
- raise
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(6, nome)
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(7, codigo)
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(8, nome)
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, "%d%m%y") if data.is_a?(String)
305
- real_data = data.strftime('%d%m%y')
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 == 6
308
- self.set_section_value(9, real_data)
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 set_branco_1 branco
320
- branco = branco.to_s
321
- self.set_section_value(10, branco)
322
- end
274
+ def set_numero_sequencial numero
275
+ numero = numero.to_i
323
276
 
324
- def set_id_sistema id
325
- id = id.to_s
326
- self.set_section_value(11, id)
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 set_seq_arquivo sequencial
330
- sequencial = sequencial.to_i
331
- self.set_section_value(12, sequencial)
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 set_branco_2 branco
335
- branco = branco.to_s
336
- self.set_section_value(13, branco)
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 set_seq_registro sequencial
340
- sequencial = sequencial.to_i
341
- self.set_section_value(14, sequencial)
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
-
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.49
4
+ version: 0.3.50
5
5
  platform: ruby
6
6
  authors:
7
7
  - José Ricardo Almeida