brcobranca 10.1.0 → 11.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1 -191
  3. data/README.md +20 -19
  4. data/Rakefile +0 -5
  5. data/lib/brcobranca/boleto/ailos.rb +3 -2
  6. data/lib/brcobranca/boleto/banco_brasil.rb +4 -4
  7. data/lib/brcobranca/boleto/base.rb +1 -1
  8. data/lib/brcobranca/boleto/citibank.rb +1 -1
  9. data/lib/brcobranca/boleto/sicredi.rb +1 -1
  10. data/lib/brcobranca/boleto/template/rghost.rb +16 -11
  11. data/lib/brcobranca/boleto/template/rghost2.rb +243 -235
  12. data/lib/brcobranca/boleto/template/rghost_bolepix.rb +2 -2
  13. data/lib/brcobranca/boleto/template/rghost_carne.rb +8 -8
  14. data/lib/brcobranca/formatacao.rb +12 -12
  15. data/lib/brcobranca/remessa/base.rb +1 -2
  16. data/lib/brcobranca/remessa/cnab240/ailos.rb +4 -2
  17. data/lib/brcobranca/remessa/cnab240/base.rb +1 -1
  18. data/lib/brcobranca/remessa/cnab240/santander.rb +224 -0
  19. data/lib/brcobranca/remessa/cnab240/sicoob.rb +1 -1
  20. data/lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb +1 -1
  21. data/lib/brcobranca/remessa/cnab240/sicredi.rb +1 -1
  22. data/lib/brcobranca/remessa/cnab400/banco_brasil.rb +1 -1
  23. data/lib/brcobranca/remessa/cnab400/banrisul.rb +1 -1
  24. data/lib/brcobranca/remessa/cnab400/santander.rb +1 -1
  25. data/lib/brcobranca/remessa/pagamento.rb +3 -5
  26. data/lib/brcobranca/retorno/cnab240/ailos.rb +2 -2
  27. data/lib/brcobranca/retorno/cnab240/base.rb +1 -1
  28. data/lib/brcobranca/retorno/cnab240/santander.rb +2 -2
  29. data/lib/brcobranca/retorno/cnab240/sicoob.rb +2 -2
  30. data/lib/brcobranca/retorno/cnab240/sicredi.rb +2 -2
  31. data/lib/brcobranca/retorno/cnab400/banco_brasil.rb +1 -1
  32. data/lib/brcobranca/retorno/cnab400/banco_brasilia.rb +1 -1
  33. data/lib/brcobranca/retorno/cnab400/banco_nordeste.rb +1 -1
  34. data/lib/brcobranca/retorno/cnab400/banrisul.rb +1 -1
  35. data/lib/brcobranca/retorno/cnab400/base.rb +2 -2
  36. data/lib/brcobranca/retorno/cnab400/bradesco.rb +1 -1
  37. data/lib/brcobranca/retorno/cnab400/credisis.rb +1 -1
  38. data/lib/brcobranca/retorno/cnab400/itau.rb +1 -1
  39. data/lib/brcobranca/retorno/cnab400/santander.rb +1 -1
  40. data/lib/brcobranca/retorno/cnab400/unicred.rb +1 -1
  41. data/lib/brcobranca/retorno/retorno_cnab240.rb +2 -2
  42. data/lib/brcobranca/retorno/retorno_cnab400.rb +1 -1
  43. data/lib/brcobranca/version.rb +1 -1
  44. data/lib/brcobranca.rb +2 -0
  45. metadata +11 -11
  46. data/HISTORY.md +0 -71
@@ -0,0 +1,224 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Brcobranca
4
+ module Remessa
5
+ module Cnab240
6
+ class Santander < Brcobranca::Remessa::Cnab240::Base
7
+ # Código de Transmissão
8
+ attr_accessor :codigo_transmissao
9
+
10
+ validates_presence_of :codigo_transmissao, message: 'não pode estar em branco.'
11
+
12
+ validates_length_of :codigo_transmissao, maximum: 15, message: 'deve ter no máximo 15 dígitos.'
13
+ validates_length_of :agencia, maximum: 4, message: 'deve ter 4 dígitos.'
14
+ validates_length_of :conta_corrente, maximum: 9, message: 'deve ter 9 dígitos.'
15
+
16
+ def initialize(campos = {})
17
+ campos = { emissao_boleto: ' ', distribuicao_boleto: ' ',
18
+ especie_titulo: '02', tipo_documento: '2' }.merge!(campos)
19
+ super(campos)
20
+ end
21
+
22
+ def codigo_transmissao=(valor)
23
+ @codigo_transmissao = valor.to_s.strip.rjust(15, '0') if valor
24
+ end
25
+
26
+ def digito_agencia
27
+ agencia.modulo11(mapeamento: { 10 => 'X', 11 => 'X' }).to_s
28
+ end
29
+
30
+ def digito_conta
31
+ conta_corrente.modulo11(mapeamento: { 10 => 'X', 11 => 'X' }).to_s
32
+ end
33
+
34
+ def complemento_header
35
+ ''.rjust(29, ' ')
36
+ end
37
+
38
+ def complemento_trailer
39
+ ''.rjust(217, ' ')
40
+ end
41
+
42
+ def complemento_p(pagamento)
43
+ complemento_p = ''
44
+ complemento_p += conta_corrente.rjust(9, '0')
45
+ complemento_p << digito_conta.to_s
46
+ complemento_p << conta_corrente.rjust(9, '0')
47
+ complemento_p << digito_conta.to_s
48
+ complemento_p << ' '
49
+ complemento_p << identificador_titulo(pagamento.nosso_numero)
50
+ complemento_p
51
+ end
52
+
53
+ def complemento_r
54
+ ''.rjust(61, ' ')
55
+ end
56
+
57
+ def versao_layout_arquivo
58
+ '040'
59
+ end
60
+
61
+ def versao_layout_lote
62
+ '030'
63
+ end
64
+
65
+ def convenio_lote
66
+ identificacao_conta = ''
67
+ identificacao_conta += ''.rjust(20, ' ')
68
+ identificacao_conta << codigo_transmissao
69
+ identificacao_conta << ''.rjust(5, ' ')
70
+ identificacao_conta
71
+ end
72
+
73
+ def nome_banco
74
+ 'BANCO SANTANDER'.ljust(30, ' ')
75
+ end
76
+
77
+ def cod_banco
78
+ '033'
79
+ end
80
+
81
+ def info_conta
82
+ ''
83
+ end
84
+
85
+ def codigo_convenio
86
+ identificacao_conta = ''
87
+ identificacao_conta += codigo_transmissao
88
+ identificacao_conta << ''.rjust(25, ' ')
89
+ identificacao_conta
90
+ end
91
+
92
+ def identificador_titulo(nosso_numero)
93
+ nosso_numero_dv = nosso_numero.modulo11(
94
+ multiplicador: (2..9).to_a,
95
+ mapeamento: { 10 => 0, 11 => 0 }
96
+ ) { |total| 11 - (total % 11) }
97
+
98
+ "#{nosso_numero}#{nosso_numero_dv}".rjust(13, '0')
99
+ end
100
+
101
+ def formata_documento_ou_numero(pagamento, tamanho = 25, caracter = ' ')
102
+ doc = pagamento.documento_ou_numero.to_s.gsub(/[^0-9A-Za-z ]/, '')
103
+ doc.ljust(tamanho, caracter)[0...tamanho]
104
+ end
105
+
106
+ def densidade_gravacao
107
+ ''.rjust(5, ' ')
108
+ end
109
+
110
+ def uso_exclusivo_banco
111
+ ''.rjust(20, ' ')
112
+ end
113
+
114
+ def uso_exclusivo_empresa
115
+ ''.rjust(20, ' ')
116
+ end
117
+
118
+ def hora_geracao
119
+ ''.rjust(6, ' ')
120
+ end
121
+
122
+ def dv_agencia_cobradora
123
+ ''.rjust(1, ' ')
124
+ end
125
+
126
+ def monta_header_arquivo
127
+ header_arquivo = '' # CAMPO TAMANHO
128
+ header_arquivo += cod_banco # codigo do banco 3
129
+ header_arquivo << '0000' # lote do servico 4
130
+ header_arquivo << '0' # tipo de registro 1
131
+ header_arquivo << ''.rjust(8, ' ') # uso exclusivo FEBRABAN 9
132
+ header_arquivo << Brcobranca::Util::Empresa.new(documento_cedente, false).tipo # tipo inscricao 1
133
+ header_arquivo << documento_cedente.to_s.rjust(15, '0') # numero de inscricao 15
134
+ header_arquivo << codigo_convenio # codigo do convenio no banco 20
135
+ header_arquivo << info_conta # informacoes da conta 20
136
+ header_arquivo << empresa_mae.format_size(30) # nome da empresa 30
137
+ header_arquivo << nome_banco.format_size(30) # nome do banco 30
138
+ header_arquivo << ''.rjust(10, ' ') # uso exclusivo FEBRABAN 10
139
+ header_arquivo << '1' # codigo remessa 1
140
+ header_arquivo << data_geracao # data geracao 8
141
+ header_arquivo << hora_geracao # hora geracao 6
142
+ header_arquivo << sequencial_remessa.to_s.rjust(6, '0') # numero seq. arquivo 6
143
+ header_arquivo << versao_layout_arquivo # num. versao arquivo 3
144
+ header_arquivo << densidade_gravacao # densidade gravacao 5
145
+ header_arquivo << uso_exclusivo_banco # uso exclusivo 20
146
+ header_arquivo << uso_exclusivo_empresa # uso exclusivo 20
147
+ header_arquivo << complemento_header # complemento do arquivo 29
148
+ header_arquivo
149
+ end
150
+
151
+ def monta_segmento_p(pagamento, nro_lote, sequencial)
152
+ segmento_p = ''
153
+ # # DESCRICAO TAMANHO
154
+ segmento_p += cod_banco # codigo banco 3
155
+ segmento_p << nro_lote.to_s.rjust(4, '0') # lote de servico 4
156
+ segmento_p << '3' # tipo de registro 1
157
+ segmento_p << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
158
+ segmento_p << 'P' # cod. segmento 1
159
+ segmento_p << ' ' # uso exclusivo 1
160
+ segmento_p << pagamento.identificacao_ocorrencia # cod. movimento remessa 2
161
+ segmento_p << agencia.to_s.rjust(4, '0') # agencia 4
162
+ segmento_p << digito_agencia.to_s # dv agencia 1
163
+ segmento_p << complemento_p(pagamento) # informacoes da conta 34
164
+ segmento_p << codigo_carteira # codigo da carteira 1
165
+ segmento_p << forma_cadastramento # forma de cadastro do titulo 1
166
+ segmento_p << tipo_documento # tipo de documento 1
167
+ segmento_p << emissao_boleto # identificaco emissao 1
168
+ segmento_p << distribuicao_boleto # indentificacao entrega 1
169
+ segmento_p << formata_documento_ou_numero(pagamento, 15) # uso exclusivo 4
170
+ segmento_p << pagamento.data_vencimento.strftime('%d%m%Y') # data de venc. 8
171
+ segmento_p << pagamento.formata_valor(15) # valor documento 15
172
+ segmento_p << ''.rjust(5, '0') # agencia cobradora 5
173
+ segmento_p << dv_agencia_cobradora # dv agencia cobradora 1
174
+ segmento_p << especie_titulo # especie do titulo 2
175
+ segmento_p << aceite # aceite 1
176
+ segmento_p << pagamento.data_emissao.strftime('%d%m%Y') # data de emissao titulo 8
177
+ segmento_p << pagamento.tipo_mora # cod. do mora 1
178
+ segmento_p << data_mora(pagamento) # data mora 8
179
+ segmento_p << pagamento.formata_valor_mora(15) # valor mora 15
180
+ segmento_p << codigo_desconto(pagamento) # cod. do desconto 1
181
+ segmento_p << pagamento.formata_data_desconto('%d%m%Y') # data desconto 8
182
+ segmento_p << pagamento.formata_valor_desconto(15) # valor desconto 15
183
+ segmento_p << pagamento.formata_valor_iof(15) # valor IOF 15
184
+ segmento_p << pagamento.formata_valor_abatimento(15) # valor abatimento 15
185
+ segmento_p << formata_documento_ou_numero(pagamento) # identificacao titulo empresa 25
186
+ segmento_p << pagamento.codigo_protesto # cod. para protesto 1
187
+ segmento_p << pagamento.dias_protesto.to_s.rjust(2, '0') # dias para protesto 2
188
+ segmento_p << '3' # cod. para baixa 1
189
+ segmento_p << '0' # zero fixo 1
190
+ segmento_p << '00' # dias para baixa 2
191
+ segmento_p << '00' # cod. da moeda 2
192
+ segmento_p << ''.rjust(11, ' ') # uso exclusivo 11
193
+ segmento_p
194
+ end
195
+
196
+ def monta_segmento_q(pagamento, nro_lote, sequencial)
197
+ segmento_q = '' # CAMPO TAMANHO
198
+ segmento_q += cod_banco # codigo banco 3
199
+ segmento_q << nro_lote.to_s.rjust(4, '0') # lote de servico 4
200
+ segmento_q << '3' # tipo de registro 1
201
+ segmento_q << sequencial.to_s.rjust(5, '0') # num. sequencial do registro no lote 5
202
+ segmento_q << 'Q' # cod. segmento 1
203
+ segmento_q << ' ' # uso exclusivo 1
204
+ segmento_q << pagamento.identificacao_ocorrencia # cod. movimento remessa 2
205
+ segmento_q << pagamento.identificacao_sacado(false) # tipo insc. sacado 1
206
+ segmento_q << pagamento.documento_sacado.to_s.rjust(15, '0') # documento sacado 14
207
+ segmento_q << pagamento.nome_sacado.format_size(40) # nome cliente 40
208
+ segmento_q << pagamento.endereco_sacado.format_size(40) # endereco cliente 40
209
+ segmento_q << pagamento.bairro_sacado.format_size(15) # bairro 15
210
+ segmento_q << pagamento.cep_sacado[0..4] # cep 5
211
+ segmento_q << pagamento.cep_sacado[5..7] # sufixo cep 3
212
+ segmento_q << pagamento.cidade_sacado.format_size(15) # cidade 15
213
+ segmento_q << pagamento.uf_sacado # uf 2
214
+ segmento_q << pagamento.identificacao_avalista(false) # identificacao do sacador 1
215
+ segmento_q << pagamento.documento_avalista.to_s.rjust(15, '0') # documento sacador 15
216
+ segmento_q << pagamento.nome_avalista.format_size(40) # nome avalista 40
217
+ segmento_q << ''.rjust(12, '0') # Reservado (uso Branco) 12
218
+ segmento_q << ''.rjust(19, ' ') # Reservado (uso Branco) 19
219
+ segmento_q
220
+ end
221
+ end
222
+ end
223
+ end
224
+ end
@@ -121,7 +121,7 @@ module Brcobranca
121
121
  total_cobranca_caucionada = ''.rjust(23, '0')
122
122
  total_cobranca_descontada = ''.rjust(23, '0')
123
123
 
124
- "#{total_cobranca_simples}#{total_cobranca_vinculada}#{total_cobranca_caucionada}"\
124
+ "#{total_cobranca_simples}#{total_cobranca_vinculada}#{total_cobranca_caucionada}" \
125
125
  "#{total_cobranca_descontada}".ljust(217, ' ')
126
126
  end
127
127
 
@@ -58,7 +58,7 @@ module Brcobranca
58
58
  alias convenio_lote codigo_convenio
59
59
 
60
60
  def totaliza_valor_titulos
61
- pagamentos.inject(0) { |sum, pag| sum += pag.valor.to_f }
61
+ pagamentos.inject(0) { |sum, pag| sum + pag.valor.to_f }
62
62
  end
63
63
 
64
64
  def valor_titulos_carteira
@@ -104,7 +104,7 @@ module Brcobranca
104
104
  total_cobranca_caucionada = ''.rjust(23, '0')
105
105
  total_cobranca_descontada = ''.rjust(23, '0')
106
106
 
107
- "#{total_cobranca_simples}#{total_cobranca_vinculada}#{total_cobranca_caucionada}"\
107
+ "#{total_cobranca_simples}#{total_cobranca_vinculada}#{total_cobranca_caucionada}" \
108
108
  "#{total_cobranca_descontada}".ljust(217, ' ')
109
109
  end
110
110
 
@@ -120,7 +120,7 @@ module Brcobranca
120
120
  detalhe << tipo_cobranca.to_s.ljust(5, ' ') # tipo de cobranca 9[05] 102 a 106
121
121
  detalhe << carteira # carteira 9[02] 107 a 108
122
122
  detalhe << pagamento.identificacao_ocorrencia # comando / ocorrência 9[02] 109 a 110
123
- detalhe << pagamento.nosso_numero.to_s.rjust(10, '0') # numero atribuido pela empresa X[10] 111 a 120
123
+ detalhe << pagamento.documento_ou_numero.to_s.rjust(10, '0') # numero atribuido pela empresa X[10] 111 a 120
124
124
  detalhe << pagamento.data_vencimento.strftime('%d%m%y') # data de vencimento 9[06] 121 a 126
125
125
  detalhe << pagamento.formata_valor # valor do titulo 9[13] 127 a 139
126
126
  detalhe << cod_banco # numero do banco 9[03] 140 a 142
@@ -142,7 +142,7 @@ module Brcobranca
142
142
  end
143
143
 
144
144
  def formata_percentual_multa(pagamento)
145
- raise ValorInvalido, 'Deve ser um Float' unless /\./.match?(pagamento.percentual_multa.to_s)
145
+ raise ValorInvalido, 'Deve ser um Float' unless pagamento.percentual_multa.to_s.include?('.')
146
146
 
147
147
  format('%.1f', pagamento.percentual_multa).delete('.').rjust(3, '0')
148
148
  end
@@ -199,7 +199,7 @@ module Brcobranca
199
199
  end
200
200
 
201
201
  def conta_padrao_novo?
202
- conta_corrente.present? && conta_corrente.length > 8
202
+ !conta_corrente.blank? && conta_corrente.length > 8
203
203
  end
204
204
 
205
205
  # Valor total de todos os títulos
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/core_ext/object/blank'
4
-
5
3
  module Brcobranca
6
4
  module Remessa
7
5
  class Pagamento
@@ -134,7 +132,7 @@ module Brcobranca
134
132
 
135
133
  campos = padrao.merge!(campos)
136
134
  campos.each do |campo, valor|
137
- send "#{campo}=", valor
135
+ send :"#{campo}=", valor
138
136
  end
139
137
 
140
138
  yield self if block_given?
@@ -219,7 +217,7 @@ module Brcobranca
219
217
  end
220
218
 
221
219
  def documento_ou_numero
222
- documento.present? ? documento : numero
220
+ documento || numero
223
221
  end
224
222
 
225
223
  def formata_documento_ou_numero(tamanho = 25, caracter = ' ')
@@ -313,7 +311,7 @@ module Brcobranca
313
311
  def format_value(attribute, tamanho)
314
312
  value = send(attribute)
315
313
 
316
- raise ValorInvalido, "Pagamento##{attribute}: Deve ser um Float" unless /\./.match?(value.to_s)
314
+ raise ValorInvalido, "Pagamento##{attribute}: Deve ser um Float" unless value.to_s.include?('.')
317
315
 
318
316
  format('%.2f', value).delete('.').rjust(tamanho, '0')
319
317
  end
@@ -23,11 +23,11 @@ module Brcobranca
23
23
  cnab_lines.each do |line|
24
24
  if line.tipo_registro == 'T'
25
25
  Line::REGISTRO_T_FIELDS.each do |attr|
26
- retorno.send("#{attr}=", line.send(attr))
26
+ retorno.send(:"#{attr}=", line.send(attr))
27
27
  end
28
28
  else
29
29
  Line::REGISTRO_U_FIELDS.each do |attr|
30
- retorno.send("#{attr}=", line.send(attr))
30
+ retorno.send(:"#{attr}=", line.send(attr))
31
31
  end
32
32
  end
33
33
  end
@@ -8,7 +8,7 @@ module Brcobranca
8
8
  class Base < Brcobranca::Retorno::Base
9
9
  # Load lines
10
10
  def self.load_lines(file, options = {})
11
- return nil if file.blank?
11
+ return nil unless file
12
12
 
13
13
  codigo_banco = codigo_banco_do_arquivo(file)
14
14
 
@@ -21,11 +21,11 @@ module Brcobranca
21
21
  cnab_lines.each do |line|
22
22
  if line.tipo_registro == 'T'
23
23
  Line::REGISTRO_T_FIELDS.each do |attr|
24
- retorno.send("#{attr}=", line.send(attr))
24
+ retorno.send(:"#{attr}=", line.send(attr))
25
25
  end
26
26
  else
27
27
  Line::REGISTRO_U_FIELDS.each do |attr|
28
- retorno.send("#{attr}=", line.send(attr))
28
+ retorno.send(:"#{attr}=", line.send(attr))
29
29
  end
30
30
  end
31
31
  end
@@ -23,11 +23,11 @@ module Brcobranca
23
23
  cnab_lines.each do |line|
24
24
  if line.tipo_registro == 'T'
25
25
  Line::REGISTRO_T_FIELDS.each do |attr|
26
- retorno.send("#{attr}=", line.send(attr))
26
+ retorno.send(:"#{attr}=", line.send(attr))
27
27
  end
28
28
  else
29
29
  Line::REGISTRO_U_FIELDS.each do |attr|
30
- retorno.send("#{attr}=", line.send(attr))
30
+ retorno.send(:"#{attr}=", line.send(attr))
31
31
  end
32
32
  end
33
33
  end
@@ -23,11 +23,11 @@ module Brcobranca
23
23
  cnab_lines.each do |line|
24
24
  if line.tipo_registro == 'T'
25
25
  Line::REGISTRO_T_FIELDS.each do |attr|
26
- retorno.send("#{attr}=", line.send(attr))
26
+ retorno.send(:"#{attr}=", line.send(attr))
27
27
  end
28
28
  else
29
29
  Line::REGISTRO_U_FIELDS.each do |attr|
30
- retorno.send("#{attr}=", line.send(attr))
30
+ retorno.send(:"#{attr}=", line.send(attr))
31
31
  end
32
32
  end
33
33
  end
@@ -14,7 +14,7 @@ module Brcobranca
14
14
  def self.load_lines(file, options = {})
15
15
  default_options = { except: [1] } # por padrao ignora a primeira linha que é header
16
16
  options = default_options.merge!(options)
17
- super file, options
17
+ super(file, options)
18
18
  end
19
19
 
20
20
  fixed_width_layout do |parse|
@@ -13,7 +13,7 @@ module Brcobranca
13
13
  default_options = { except: [1] } # por padrao ignora a primeira linha que é header
14
14
  options = default_options.merge!(options)
15
15
 
16
- super file, options
16
+ super(file, options)
17
17
  end
18
18
 
19
19
  fixed_width_layout do |parse|
@@ -13,7 +13,7 @@ module Brcobranca
13
13
  default_options = { except: [1] } # por padrao ignora a primeira linha que é header
14
14
  options = default_options.merge!(options)
15
15
 
16
- super file, options
16
+ super(file, options)
17
17
  end
18
18
 
19
19
  fixed_width_layout do |parse|
@@ -9,7 +9,7 @@ module Brcobranca
9
9
  def self.load_lines(file, options = {})
10
10
  default_options = { except: [1] } # por padrao ignora a primeira linha que é header
11
11
  options = default_options.merge!(options)
12
- super file, options
12
+ super(file, options)
13
13
  end
14
14
 
15
15
  fixed_width_layout do |parse|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require 'active_support/core_ext/object/blank'
2
+
3
3
  require 'parseline'
4
4
 
5
5
  module Brcobranca
@@ -8,7 +8,7 @@ module Brcobranca
8
8
  class Base < Brcobranca::Retorno::Base
9
9
  # Load lines
10
10
  def self.load_lines(file, options = {})
11
- return nil if file.blank?
11
+ return nil unless file
12
12
 
13
13
  codigo_banco = codigo_banco_do_arquivo(file)
14
14
 
@@ -12,7 +12,7 @@ module Brcobranca
12
12
  def self.load_lines(file, options = {})
13
13
  default_options = { except: [1] } # por padrao ignora a primeira linha que é header
14
14
  options = default_options.merge!(options)
15
- super file, options
15
+ super(file, options)
16
16
  end
17
17
 
18
18
  # Fixed width layout for Bradesco
@@ -13,7 +13,7 @@ module Brcobranca
13
13
  default_options = { except: [1] } # por padrao ignora a primeira linha que é header
14
14
  options = default_options.merge!(options)
15
15
 
16
- super file, options
16
+ super(file, options)
17
17
  end
18
18
 
19
19
  # Fixed width layout for Bradesco
@@ -14,7 +14,7 @@ module Brcobranca
14
14
  def self.load_lines(file, options = {})
15
15
  default_options = { except: [1] } # por padrao ignora a primeira linha que é header
16
16
  options = default_options.merge!(options)
17
- super file, options
17
+ super(file, options)
18
18
  end
19
19
 
20
20
  fixed_width_layout do |parse|
@@ -14,7 +14,7 @@ module Brcobranca
14
14
  def self.load_lines(file, options = {})
15
15
  default_options = { except: [1] } # por padrao ignora a primeira linha que é header
16
16
  options = default_options.merge!(options)
17
- super file, options
17
+ super(file, options)
18
18
  end
19
19
 
20
20
  fixed_width_layout do |parse|
@@ -14,7 +14,7 @@ module Brcobranca
14
14
  default_options = { except: [1] }
15
15
  options = default_options.merge!(options)
16
16
 
17
- super file, options
17
+ super(file, options)
18
18
  end
19
19
 
20
20
  fixed_width_layout do |parse|
@@ -22,11 +22,11 @@ module Brcobranca
22
22
  cnab_lines.each do |line|
23
23
  if line.tipo_registro == 'T'
24
24
  Line::REGISTRO_T_FIELDS.each do |attr|
25
- retorno.send("#{attr}=", line.send(attr))
25
+ retorno.send(:"#{attr}=", line.send(attr))
26
26
  end
27
27
  else
28
28
  Line::REGISTRO_U_FIELDS.each do |attr|
29
- retorno.send("#{attr}=", line.send(attr))
29
+ retorno.send(:"#{attr}=", line.send(attr))
30
30
  end
31
31
  end
32
32
  end
@@ -19,7 +19,7 @@ module Brcobranca
19
19
  default_options = { except: [1] } # por padrao ignora a primeira linha que é header
20
20
  options = default_options.merge!(options)
21
21
 
22
- super file, options
22
+ super(file, options)
23
23
  end
24
24
 
25
25
  fixed_width_layout do |parse|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Brcobranca
4
- VERSION = '10.1.0'
4
+ VERSION = '11.0.0'
5
5
  end
data/lib/brcobranca.rb CHANGED
@@ -8,6 +8,7 @@ require 'brcobranca/calculo_data'
8
8
  require 'brcobranca/currency'
9
9
  require 'brcobranca/validations'
10
10
  require 'brcobranca/util/date'
11
+ require 'fast_blank'
11
12
 
12
13
  module Brcobranca
13
14
  # Exception lançada quando algum tipo de boleto soicitado ainda não tiver sido implementado.
@@ -180,6 +181,7 @@ module Brcobranca
180
181
  autoload :BaseCorrespondente, 'brcobranca/remessa/cnab240/base_correspondente'
181
182
  autoload :Caixa, 'brcobranca/remessa/cnab240/caixa'
182
183
  autoload :BancoBrasil, 'brcobranca/remessa/cnab240/banco_brasil'
184
+ autoload :Santander, 'brcobranca/remessa/cnab240/santander'
183
185
  autoload :Sicoob, 'brcobranca/remessa/cnab240/sicoob'
184
186
  autoload :SicoobBancoBrasil, 'brcobranca/remessa/cnab240/sicoob_banco_brasil'
185
187
  autoload :Sicredi, 'brcobranca/remessa/cnab240/sicredi'
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brcobranca
3
3
  version: !ruby/object:Gem::Version
4
- version: 10.1.0
4
+ version: 11.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kivanio Barbosa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-06 00:00:00.000000000 Z
11
+ date: 2024-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: activesupport
14
+ name: fast_blank
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.6
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 5.2.6
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: parseline
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0.9'
47
+ version: 0.9.8
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0.9'
54
+ version: 0.9.8
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rghost_barcode
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -73,7 +73,6 @@ extensions: []
73
73
  extra_rdoc_files: []
74
74
  files:
75
75
  - CHANGELOG.md
76
- - HISTORY.md
77
76
  - LICENSE
78
77
  - README.md
79
78
  - Rakefile
@@ -152,6 +151,7 @@ files:
152
151
  - lib/brcobranca/remessa/cnab240/base.rb
153
152
  - lib/brcobranca/remessa/cnab240/base_correspondente.rb
154
153
  - lib/brcobranca/remessa/cnab240/caixa.rb
154
+ - lib/brcobranca/remessa/cnab240/santander.rb
155
155
  - lib/brcobranca/remessa/cnab240/sicoob.rb
156
156
  - lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb
157
157
  - lib/brcobranca/remessa/cnab240/sicredi.rb
@@ -194,7 +194,7 @@ files:
194
194
  - lib/brcobranca/util/errors.rb
195
195
  - lib/brcobranca/validations.rb
196
196
  - lib/brcobranca/version.rb
197
- homepage: http://rubygems.org/gems/brcobranca
197
+ homepage: https://github.com/kivanio/brcobranca
198
198
  licenses: []
199
199
  metadata:
200
200
  rubygems_mfa_required: 'true'
@@ -206,7 +206,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
206
206
  requirements:
207
207
  - - ">="
208
208
  - !ruby/object:Gem::Version
209
- version: 2.6.0
209
+ version: 2.7.0
210
210
  required_rubygems_version: !ruby/object:Gem::Requirement
211
211
  requirements:
212
212
  - - ">="
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  version: '0'
215
215
  requirements:
216
216
  - GhostScript > 9.0, para gerar PDF e código de Barras
217
- rubygems_version: 3.4.7
217
+ rubygems_version: 3.5.4
218
218
  signing_key:
219
219
  specification_version: 4
220
220
  summary: Gem que permite trabalhar com boletos e CNABs para bancos brasileiros.