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 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