brcobranca 3.2.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +13 -0
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +7 -1
  5. data/Gemfile +13 -2
  6. data/Rakefile +2 -2
  7. data/brcobranca.gemspec +10 -17
  8. data/lib/brcobranca.rb +2 -5
  9. data/lib/brcobranca/arquivos/logos/bancobrasil.eps +0 -0
  10. data/lib/brcobranca/arquivos/logos/bradesco.eps +0 -0
  11. data/lib/brcobranca/arquivos/logos/caixa.eps +0 -0
  12. data/lib/brcobranca/arquivos/logos/hsbc.eps +0 -0
  13. data/lib/brcobranca/arquivos/logos/itau.eps +0 -0
  14. data/lib/brcobranca/arquivos/logos/santander.eps +0 -0
  15. data/lib/brcobranca/arquivos/logos/sicredi.eps +0 -0
  16. data/lib/brcobranca/arquivos/templates/modelo_generico.eps +0 -0
  17. data/lib/brcobranca/boleto/banco_brasil.rb +27 -29
  18. data/lib/brcobranca/boleto/base.rb +29 -30
  19. data/lib/brcobranca/boleto/bradesco.rb +14 -15
  20. data/lib/brcobranca/boleto/caixa.rb +25 -23
  21. data/lib/brcobranca/boleto/hsbc.rb +30 -34
  22. data/lib/brcobranca/boleto/itau.rb +23 -25
  23. data/lib/brcobranca/boleto/santander.rb +17 -19
  24. data/lib/brcobranca/boleto/sicredi.rb +19 -19
  25. data/lib/brcobranca/boleto/template/base.rb +0 -2
  26. data/lib/brcobranca/boleto/template/rghost.rb +72 -74
  27. data/lib/brcobranca/boleto/template/rghost_carne.rb +105 -118
  28. data/lib/brcobranca/calculo.rb +22 -22
  29. data/lib/brcobranca/calculo_data.rb +8 -8
  30. data/lib/brcobranca/currency.rb +11 -11
  31. data/lib/brcobranca/formatacao.rb +16 -16
  32. data/lib/brcobranca/limpeza.rb +4 -4
  33. data/lib/brcobranca/retorno/base.rb +0 -1
  34. data/lib/brcobranca/retorno/retorno_cbr643.rb +35 -35
  35. data/lib/brcobranca/retorno/retorno_cnab240.rb +39 -40
  36. data/lib/brcobranca/retorno/retorno_cnab400.rb +21 -26
  37. data/lib/brcobranca/version.rb +2 -2
  38. data/spec/brcobranca/banco_bradesco_spec.rb +113 -113
  39. data/spec/brcobranca/banco_brasil_spec.rb +167 -167
  40. data/spec/brcobranca/banco_caixa_spec.rb +58 -58
  41. data/spec/brcobranca/banco_hsbc_spec.rb +117 -118
  42. data/spec/brcobranca/banco_sicredi_spec.rb +92 -93
  43. data/spec/brcobranca/base_spec.rb +78 -78
  44. data/spec/brcobranca/boletos_em_lote_spec.rb +22 -22
  45. data/spec/brcobranca/core_ext_spec.rb +134 -135
  46. data/spec/brcobranca/currency_spec.rb +59 -59
  47. data/spec/brcobranca/itau_spec.rb +137 -137
  48. data/spec/brcobranca/retorno_cbr643_spec.rb +32 -32
  49. data/spec/brcobranca/retorno_cnab400_spec.rb +40 -42
  50. data/spec/brcobranca/retorno_cnab_240_spec.rb +17 -19
  51. data/spec/brcobranca/rghost_spec.rb +21 -21
  52. data/spec/brcobranca/santander_spec.rb +80 -80
  53. data/spec/brcobranca_spec.rb +4 -4
  54. data/spec/spec_helper.rb +1 -1
  55. metadata +12 -54
  56. data/VERSION +0 -1
  57. data/lib/brcobranca/arquivos/logos/bancobrasil.jpg +0 -0
  58. data/lib/brcobranca/arquivos/logos/bradesco.jpg +0 -0
  59. data/lib/brcobranca/arquivos/logos/caixa.jpg +0 -0
  60. data/lib/brcobranca/arquivos/logos/hsbc.jpg +0 -0
  61. data/lib/brcobranca/arquivos/logos/itau.jpg +0 -0
  62. data/lib/brcobranca/arquivos/logos/santander.jpg +0 -0
  63. data/lib/brcobranca/arquivos/logos/sicredi.jpg +0 -0
@@ -2,16 +2,15 @@
2
2
  module Brcobranca
3
3
  module Boleto
4
4
  class Bradesco < Base # Banco BRADESCO
5
-
6
- validates_length_of :agencia, :maximum => 4, :message => "deve ser menor ou igual a 4 dígitos."
7
- validates_length_of :numero_documento, :maximum => 11, :message => "deve ser menor ou igual a 11 dígitos."
8
- validates_length_of :conta_corrente, :maximum => 7, :message => "deve ser menor ou igual a 7 dígitos."
9
- validates_length_of :carteira, :maximum => 2, :message => "deve ser menor ou igual a 2 dígitos."
5
+ validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
6
+ validates_length_of :numero_documento, maximum: 11, message: 'deve ser menor ou igual a 11 dígitos.'
7
+ validates_length_of :conta_corrente, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
8
+ validates_length_of :carteira, maximum: 2, message: 'deve ser menor ou igual a 2 dígitos.'
10
9
 
11
10
  # Nova instancia do Bradesco
12
11
  # @param (see Brcobranca::Boleto::Base#initialize)
13
- def initialize(campos={})
14
- campos = {:carteira => "06"}.merge!(campos)
12
+ def initialize(campos = {})
13
+ campos = { carteira: '06' }.merge!(campos)
15
14
  super(campos)
16
15
  end
17
16
 
@@ -19,20 +18,20 @@ module Brcobranca
19
18
  #
20
19
  # @return [String] 3 caracteres numéricos.
21
20
  def banco
22
- "237"
21
+ '237'
23
22
  end
24
23
 
25
24
  # Carteira
26
25
  #
27
26
  # @return [String] 2 caracteres numéricos.
28
27
  def carteira=(valor)
29
- @carteira = valor.to_s.rjust(2,'0') if valor
28
+ @carteira = valor.to_s.rjust(2, '0') if valor
30
29
  end
31
30
 
32
31
  # Número seqüencial utilizado para identificar o boleto.
33
- # @return [String] 11 caracteres numéricos.
32
+ # @return [String] 11 caracteres numéricos.
34
33
  def numero_documento=(valor)
35
- @numero_documento = valor.to_s.rjust(11,'0') if valor
34
+ @numero_documento = valor.to_s.rjust(11, '0') if valor
36
35
  end
37
36
 
38
37
  # Nosso número para exibir no boleto.
@@ -40,7 +39,7 @@ module Brcobranca
40
39
  # @example
41
40
  # boleto.nosso_numero_boleto #=> ""06/00000004042-8"
42
41
  def nosso_numero_boleto
43
- "#{self.carteira}/#{self.numero_documento}-#{self.nosso_numero_dv}"
42
+ "#{carteira}/#{numero_documento}-#{nosso_numero_dv}"
44
43
  end
45
44
 
46
45
  # Agência + conta corrente do cliente para exibir no boleto.
@@ -48,7 +47,7 @@ module Brcobranca
48
47
  # @example
49
48
  # boleto.agencia_conta_boleto #=> "0548-7 / 00001448-6"
50
49
  def agencia_conta_boleto
51
- "#{self.agencia}-#{self.agencia_dv} / #{self.conta_corrente}-#{self.conta_corrente_dv}"
50
+ "#{agencia}-#{agencia_dv} / #{conta_corrente}-#{conta_corrente_dv}"
52
51
  end
53
52
 
54
53
  # Segunda parte do código de barras.
@@ -62,8 +61,8 @@ module Brcobranca
62
61
  #
63
62
  # @return [String] 25 caracteres numéricos.
64
63
  def codigo_barras_segunda_parte
65
- "#{self.agencia}#{self.carteira}#{self.numero_documento}#{self.conta_corrente}0"
64
+ "#{agencia}#{carteira}#{numero_documento}#{conta_corrente}0"
66
65
  end
67
66
  end
68
67
  end
69
- end
68
+ end
@@ -7,43 +7,46 @@
7
7
  module Brcobranca
8
8
  module Boleto
9
9
  class Caixa < Base # Caixa
10
-
11
10
  MODALIDADE_COBRANCA = {
12
- :registrada => '1',
13
- :sem_registro => '2'
11
+ registrada: '1',
12
+ sem_registro: '2'
14
13
  }
15
14
 
16
15
  EMISSAO_BOLETO = {
17
- :cedente => '4'
16
+ cedente: '4'
18
17
  }
19
18
 
20
19
  # Validações
21
- validates_length_of :carteira, :is => 2, :message => 'deve possuir 2 dígitos.'
22
- validates_length_of :convenio, :is => 6, :message => 'deve possuir 6 dígitos.'
23
- validates_length_of :numero_documento, :is => 15, :message => 'deve possuir 15 dígitos.'
20
+ validates_length_of :carteira, is: 2, message: 'deve possuir 2 dígitos.'
21
+ validates_length_of :convenio, is: 6, message: 'deve possuir 6 dígitos.'
22
+ validates_length_of :numero_documento, is: 15, message: 'deve possuir 15 dígitos.'
24
23
 
25
24
  # Nova instância da CaixaEconomica
26
25
  # @param (see Brcobranca::Boleto::Base#initialize)
27
- def initialize campos = {}
26
+ def initialize(campos = {})
28
27
  campos = {
29
- :carteira => "#{MODALIDADE_COBRANCA[:sem_registro]}#{EMISSAO_BOLETO[:cedente]}"
28
+ carteira: "#{MODALIDADE_COBRANCA[:sem_registro]}#{EMISSAO_BOLETO[:cedente]}"
30
29
  }.merge!(campos)
31
30
 
32
- campos.merge!(:convenio => campos[:convenio].rjust(6, '0')) if campos[:convenio]
33
- campos.merge!(:numero_documento => campos[:numero_documento].rjust(15, '0')) if campos[:numero_documento]
34
- campos.merge!(:local_pagamento => "PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE")
31
+ campos.merge!(convenio: campos[:convenio].rjust(6, '0')) if campos[:convenio]
32
+ campos.merge!(numero_documento: campos[:numero_documento].rjust(15, '0')) if campos[:numero_documento]
33
+ campos.merge!(local_pagamento: 'PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE')
35
34
 
36
35
  super(campos)
37
36
  end
38
37
 
39
38
  # Código do banco emissor
40
39
  # @return [String]
41
- def banco; '104' end
40
+ def banco
41
+ '104'
42
+ end
42
43
 
43
44
  # Dígito verificador do código do banco em módulo 10
44
45
  # Módulo 10 de 104 é 0
45
46
  # @return [String]
46
- def banco_dv; '0' end
47
+ def banco_dv
48
+ '0'
49
+ end
47
50
 
48
51
  # Nosso número, 17 dígitos
49
52
  # 1 à 2: carteira
@@ -64,7 +67,7 @@ module Brcobranca
64
67
  # @return [String]
65
68
  # @example
66
69
  # boleto.agencia_conta_boleto #=> "1565/100000-4"
67
- def agencia_conta_boleto
70
+ def agencia_conta_boleto
68
71
  "#{agencia}/#{convenio}-#{convenio_dv}"
69
72
  end
70
73
 
@@ -85,17 +88,16 @@ module Brcobranca
85
88
  # 25: dígito verificador do campo livre
86
89
  # @return [String]
87
90
  def codigo_barras_segunda_parte
88
- campo_livre = "#{convenio}" <<
89
- "#{convenio_dv}" <<
90
- "#{nosso_numero_boleto[2..4]}" <<
91
- "#{nosso_numero_boleto[0..0]}" <<
92
- "#{nosso_numero_boleto[5..7]}" <<
93
- "#{nosso_numero_boleto[1..1]}" <<
91
+ campo_livre = "#{convenio}" \
92
+ "#{convenio_dv}" \
93
+ "#{nosso_numero_boleto[2..4]}" \
94
+ "#{nosso_numero_boleto[0..0]}" \
95
+ "#{nosso_numero_boleto[5..7]}" \
96
+ "#{nosso_numero_boleto[1..1]}" \
94
97
  "#{nosso_numero_boleto[8..16]}"
95
-
98
+
96
99
  "#{campo_livre}#{campo_livre.modulo11_2to9_caixa}"
97
100
  end
98
-
99
101
  end
100
102
  end
101
103
  end
@@ -2,16 +2,15 @@
2
2
  module Brcobranca
3
3
  module Boleto
4
4
  class Hsbc < Base # Banco HSBC
5
-
6
- validates_inclusion_of :carteira, :in => %w( CNR CSB ), :message => "não existente para este banco."
7
- validates_length_of :agencia, :maximum => 4, :message => "deve ser menor ou igual a 4 dígitos."
8
- validates_length_of :numero_documento, :maximum => 13, :message => "deve ser menor ou igual a 13 dígitos."
9
- validates_length_of :conta_corrente, :maximum => 7, :message => "deve ser menor ou igual a 7 dígitos."
5
+ validates_inclusion_of :carteira, in: %w( CNR CSB ), message: 'não existente para este banco.'
6
+ validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
7
+ validates_length_of :numero_documento, maximum: 13, message: 'deve ser menor ou igual a 13 dígitos.'
8
+ validates_length_of :conta_corrente, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
10
9
 
11
10
  # Nova instancia do Hsbc
12
11
  # @param (see Brcobranca::Boleto::Base#initialize)
13
- def initialize(campos={})
14
- campos = {:carteira => "CNR"}.merge!(campos)
12
+ def initialize(campos = {})
13
+ campos = { carteira: 'CNR' }.merge!(campos)
15
14
  super(campos)
16
15
  end
17
16
 
@@ -19,22 +18,20 @@ module Brcobranca
19
18
  #
20
19
  # @return [String] 3 caracteres numéricos.
21
20
  def banco
22
- "399"
21
+ '399'
23
22
  end
24
23
 
25
24
  # Número seqüencial utilizado para identificar o boleto.
26
25
  # @return [String] 13 caracteres numéricos.
27
26
  def numero_documento=(valor)
28
- @numero_documento = valor.to_s.rjust(13,'0') if valor
27
+ @numero_documento = valor.to_s.rjust(13, '0') if valor
29
28
  end
30
29
 
31
30
  # Número seqüencial utilizado para identificar o boleto.
32
31
  #
33
32
  # O desenvolvedor poderá informar o código do nosso número quando gerado pelo banco
34
33
  # @param valor Nosso número
35
- def nosso_numero=(valor)
36
- @nosso_numero = valor
37
- end
34
+ attr_writer :nosso_numero
38
35
 
39
36
  # Número seqüencial utilizado para identificar o boleto.
40
37
  #
@@ -44,25 +41,25 @@ module Brcobranca
44
41
  # @return [String]
45
42
  # @raise [Brcobranca::NaoImplementado] Caso a carteira informada não for CNR/CSB.
46
43
  def nosso_numero
47
- case self.carteira
44
+ case carteira
48
45
  when 'CNR' then
49
- if self.data_vencimento.kind_of?(Date)
50
- self.codigo_servico = "4"
51
- dia = self.data_vencimento.day.to_s.rjust(2,'0')
52
- mes = self.data_vencimento.month.to_s.rjust(2,'0')
53
- ano = self.data_vencimento.year.to_s[2..3]
46
+ if data_vencimento.is_a?(Date)
47
+ self.codigo_servico = '4'
48
+ dia = data_vencimento.day.to_s.rjust(2, '0')
49
+ mes = data_vencimento.month.to_s.rjust(2, '0')
50
+ ano = data_vencimento.year.to_s[2..3]
54
51
  data = "#{dia}#{mes}#{ano}"
55
52
 
56
- parte_1 = "#{self.numero_documento}#{self.numero_documento.modulo11_9to2_10_como_zero}#{self.codigo_servico}"
57
- soma = parte_1.to_i + self.conta_corrente.to_i + data.to_i
53
+ parte_1 = "#{numero_documento}#{numero_documento.modulo11_9to2_10_como_zero}#{codigo_servico}"
54
+ soma = parte_1.to_i + conta_corrente.to_i + data.to_i
58
55
  "#{parte_1}#{soma.to_s.modulo11_9to2_10_como_zero}"
59
56
  else
60
- raise "data_vencimento não é uma data."
57
+ fail 'data_vencimento não é uma data.'
61
58
  end
62
59
  when 'CSB'
63
60
  @nosso_numero
64
61
  else
65
- raise Brcobranca::NaoImplementado.new("Tipo de carteira não implementado.")
62
+ fail Brcobranca::NaoImplementado.new('Tipo de carteira não implementado.')
66
63
  # TODO - Verificar outras carteiras.
67
64
  # self.codigo_servico = "5"
68
65
  # parte_1 = "#{self.numero_documento}#{self.numero_documento.modulo11_9to2_10_como_zero}#{self.codigo_servico}"
@@ -77,7 +74,7 @@ module Brcobranca
77
74
  # @example
78
75
  # boleto.nosso_numero_boleto #=> "0000000004042847"
79
76
  def nosso_numero_boleto
80
- self.nosso_numero
77
+ nosso_numero
81
78
  end
82
79
 
83
80
  # Número do convênio/contrato do cliente para exibir no boleto.
@@ -85,7 +82,7 @@ module Brcobranca
85
82
  # @example
86
83
  # boleto.agencia_conta_boleto #=> "0061900"
87
84
  def agencia_conta_boleto
88
- self.conta_corrente
85
+ conta_corrente
89
86
  end
90
87
 
91
88
  # Segunda parte do código de barras.
@@ -96,18 +93,17 @@ module Brcobranca
96
93
  # @return [String] 25 caracteres numéricos.
97
94
  # @raise [Brcobranca::NaoImplementado] Caso a carteira informada não for CNR/CSB.
98
95
  def codigo_barras_segunda_parte
99
- case self.carteira
100
- when "CNR"
101
- dias_julianos = self.data_vencimento.to_juliano
102
- "#{self.conta_corrente}#{self.numero_documento}#{dias_julianos}2"
103
- when "CSB"
104
- raise Brcobranca::NaoImplementado.new("Nosso número não definido.") unless @nosso_numero
105
- "#{self.nosso_numero}#{self.agencia}#{self.conta_corrente}001"
96
+ case carteira
97
+ when 'CNR'
98
+ dias_julianos = data_vencimento.to_juliano
99
+ "#{conta_corrente}#{numero_documento}#{dias_julianos}2"
100
+ when 'CSB'
101
+ fail Brcobranca::NaoImplementado.new('Nosso número não definido.') unless @nosso_numero
102
+ "#{nosso_numero}#{agencia}#{conta_corrente}001"
106
103
  else
107
- raise Brcobranca::NaoImplementado.new("Tipo de carteira não implementado.")
104
+ fail Brcobranca::NaoImplementado.new('Tipo de carteira não implementado.')
108
105
  end
109
106
  end
110
-
111
107
  end
112
108
  end
113
- end
109
+ end
@@ -2,20 +2,19 @@
2
2
  module Brcobranca
3
3
  module Boleto
4
4
  class Itau < Base # Banco Itaú
5
-
6
5
  # Usado somente em carteiras especiais com registro para complementar o número do cocumento
7
6
  attr_reader :seu_numero
8
7
 
9
- validates_length_of :agencia, :maximum => 4, :message => "deve ser menor ou igual a 4 dígitos."
10
- validates_length_of :convenio, :maximum => 5, :message => "deve ser menor ou igual a 5 dígitos."
11
- validates_length_of :numero_documento, :maximum => 8, :message => "deve ser menor ou igual a 8 dígitos."
12
- validates_length_of :conta_corrente, :maximum => 5, :message => "deve ser menor ou igual a 5 dígitos."
13
- validates_length_of :seu_numero, :maximum => 7, :message => "deve ser menor ou igual a 7 dígitos."
8
+ validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
9
+ validates_length_of :convenio, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
10
+ validates_length_of :numero_documento, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
11
+ validates_length_of :conta_corrente, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
12
+ validates_length_of :seu_numero, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
14
13
 
15
14
  # Nova instancia do Itau
16
15
  # @param (see Brcobranca::Boleto::Base#initialize)
17
- def initialize(campos={})
18
- campos = {:carteira => "175"}.merge!(campos)
16
+ def initialize(campos = {})
17
+ campos = { carteira: '175' }.merge!(campos)
19
18
  super(campos)
20
19
  end
21
20
 
@@ -23,31 +22,31 @@ module Brcobranca
23
22
  #
24
23
  # @return [String] 3 caracteres numéricos.
25
24
  def banco
26
- "341"
25
+ '341'
27
26
  end
28
27
 
29
28
  # Número do convênio/contrato do cliente junto ao banco.
30
29
  # @return [String] 5 caracteres numéricos.
31
30
  def convenio=(valor)
32
- @convenio = valor.to_s.rjust(5,'0') if valor
31
+ @convenio = valor.to_s.rjust(5, '0') if valor
33
32
  end
34
33
 
35
34
  # Conta corrente
36
35
  # @return [String] 5 caracteres numéricos.
37
36
  def conta_corrente=(valor)
38
- @conta_corrente = valor.to_s.rjust(5,'0') if valor
37
+ @conta_corrente = valor.to_s.rjust(5, '0') if valor
39
38
  end
40
39
 
41
40
  # Número seqüencial utilizado para identificar o boleto.
42
41
  # @return [String] 8 caracteres numéricos.
43
42
  def numero_documento=(valor)
44
- @numero_documento = valor.to_s.rjust(8,'0') if valor
43
+ @numero_documento = valor.to_s.rjust(8, '0') if valor
45
44
  end
46
45
 
47
46
  # Número seqüencial utilizado para identificar o boleto.
48
47
  # @return [String] 7 caracteres numéricos.
49
48
  def seu_numero=(valor)
50
- @seu_numero = valor.to_s.rjust(7,'0') if valor
49
+ @seu_numero = valor.to_s.rjust(7, '0') if valor
51
50
  end
52
51
 
53
52
  # Dígito verificador do nosso número.
@@ -59,17 +58,17 @@ module Brcobranca
59
58
  #
60
59
  # @return [String] 1 caracteres numéricos.
61
60
  def nosso_numero_dv
62
- if %w(112 126 131 146 150 168).include?(self.carteira)
63
- "#{self.carteira}#{self.numero_documento}".modulo10
61
+ if %w(112 126 131 146 150 168).include?(carteira)
62
+ "#{carteira}#{numero_documento}".modulo10
64
63
  else
65
- "#{self.agencia}#{self.conta_corrente}#{self.carteira}#{self.numero_documento}".modulo10
64
+ "#{agencia}#{conta_corrente}#{carteira}#{numero_documento}".modulo10
66
65
  end
67
66
  end
68
67
 
69
68
  # Calcula o dígito verificador para conta corrente do Itau.
70
69
  # Retorna apenas o dígito verificador da conta ou nil caso seja impossível calcular.
71
70
  def agencia_conta_corrente_dv
72
- "#{self.agencia}#{self.conta_corrente}".modulo10
71
+ "#{agencia}#{conta_corrente}".modulo10
73
72
  end
74
73
 
75
74
  # Nosso número para exibir no boleto.
@@ -77,7 +76,7 @@ module Brcobranca
77
76
  # @example
78
77
  # boleto.nosso_numero_boleto #=> "175/12345678-4"
79
78
  def nosso_numero_boleto
80
- "#{self.carteira}/#{self.numero_documento}-#{self.nosso_numero_dv}"
79
+ "#{carteira}/#{numero_documento}-#{nosso_numero_dv}"
81
80
  end
82
81
 
83
82
  # Agência + conta corrente do cliente para exibir no boleto.
@@ -85,7 +84,7 @@ module Brcobranca
85
84
  # @example
86
85
  # boleto.agencia_conta_boleto #=> "0811 / 53678-8"
87
86
  def agencia_conta_boleto
88
- "#{self.agencia} / #{self.conta_corrente}-#{self.agencia_conta_corrente_dv}"
87
+ "#{agencia} / #{conta_corrente}-#{agencia_conta_corrente_dv}"
89
88
  end
90
89
 
91
90
  # Segunda parte do código de barras.
@@ -119,15 +118,14 @@ module Brcobranca
119
118
  #
120
119
  # @return [String] 25 caracteres numéricos.
121
120
  def codigo_barras_segunda_parte
122
- case self.carteira.to_i
121
+ case carteira.to_i
123
122
  when 198, 106, 107, 122, 142, 143, 195, 196
124
- dv = "#{self.carteira}#{numero_documento}#{self.seu_numero}#{self.convenio}".modulo10
125
- "#{self.carteira}#{self.numero_documento}#{self.seu_numero}#{self.convenio}#{dv}0"
123
+ dv = "#{carteira}#{numero_documento}#{seu_numero}#{convenio}".modulo10
124
+ "#{carteira}#{numero_documento}#{seu_numero}#{convenio}#{dv}0"
126
125
  else
127
- "#{self.carteira}#{self.numero_documento}#{self.nosso_numero_dv}#{self.agencia}#{self.conta_corrente}#{self.agencia_conta_corrente_dv}000"
126
+ "#{carteira}#{numero_documento}#{nosso_numero_dv}#{agencia}#{conta_corrente}#{agencia_conta_corrente_dv}000"
128
127
  end
129
128
  end
130
-
131
129
  end
132
130
  end
133
- end
131
+ end
@@ -4,20 +4,19 @@
4
4
  module Brcobranca
5
5
  module Boleto
6
6
  class Santander < Base # Banco Santander
7
-
8
7
  # Usado somente em carteiras especiais com registro para complementar o número do documento
9
8
  attr_reader :seu_numero
10
9
 
11
- validates_length_of :agencia, :maximum => 4, :message => "deve ser menor ou igual a 4 dígitos."
12
- validates_length_of :convenio, :maximum => 7, :message => "deve ser menor ou igual a 7 dígitos."
13
- validates_length_of :numero_documento, :maximum => 8, :message => "deve ser menor ou igual a 8 dígitos."
14
- validates_length_of :seu_numero, :maximum => 7, :message => "deve ser menor ou igual a 7 dígitos."
10
+ validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
11
+ validates_length_of :convenio, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
12
+ validates_length_of :numero_documento, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
13
+ validates_length_of :seu_numero, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
15
14
 
16
15
  # Nova instancia do Santander
17
16
  # @param (see Brcobranca::Boleto::Base#initialize)
18
- def initialize(campos={})
19
- campos = {:carteira => "102",
20
- :conta_corrente => '00000' # Obrigatória na classe base
17
+ def initialize(campos = {})
18
+ campos = { carteira: '102',
19
+ conta_corrente: '00000' # Obrigatória na classe base
21
20
  }.merge!(campos)
22
21
  super(campos)
23
22
  end
@@ -26,32 +25,32 @@ module Brcobranca
26
25
  #
27
26
  # @return [String] 3 caracteres numéricos.
28
27
  def banco
29
- "033"
28
+ '033'
30
29
  end
31
30
 
32
31
  # Número do convênio/contrato do cliente junto ao banco. No Santander, é
33
32
  # chamado de Código do Cedente.
34
33
  # @return [String] 7 caracteres numéricos.
35
34
  def convenio=(valor)
36
- @convenio = valor.to_s.rjust(7,'0') if valor
35
+ @convenio = valor.to_s.rjust(7, '0') if valor
37
36
  end
38
37
 
39
38
  # Número sequencial utilizado para identificar o boleto.
40
39
  # @return [String] 8 caracteres numéricos.
41
40
  def numero_documento=(valor)
42
- @numero_documento = valor.to_s.rjust(8,'0') if valor
41
+ @numero_documento = valor.to_s.rjust(8, '0') if valor
43
42
  end
44
43
 
45
44
  # Número sequencial utilizado para identificar o boleto.
46
45
  # @return [String] 7 caracteres numéricos.
47
46
  def seu_numero=(valor)
48
- @seu_numero = valor.to_s.rjust(7,'0') if valor
47
+ @seu_numero = valor.to_s.rjust(7, '0') if valor
49
48
  end
50
49
 
51
50
  # Dígito verificador do nosso número.
52
51
  # @return [String] 1 caracteres numéricos.
53
52
  def nosso_numero_dv
54
- nosso_numero = self.numero_documento.to_s.rjust(12,'0') unless self.numero_documento.nil?
53
+ nosso_numero = numero_documento.to_s.rjust(12, '0') unless numero_documento.nil?
55
54
  nosso_numero.modulo11_2to9
56
55
  end
57
56
 
@@ -60,8 +59,8 @@ module Brcobranca
60
59
  # @example
61
60
  # boleto.nosso_numero_boleto #=> "000090002720-7"
62
61
  def nosso_numero_boleto
63
- nosso_numero = self.numero_documento.to_s.rjust(12,'0') unless self.numero_documento.nil?
64
- "#{nosso_numero}-#{self.nosso_numero_dv}"
62
+ nosso_numero = numero_documento.to_s.rjust(12, '0') unless numero_documento.nil?
63
+ "#{nosso_numero}-#{nosso_numero_dv}"
65
64
  end
66
65
 
67
66
  # Agência + codigo do cedente do cliente para exibir no boleto.
@@ -69,7 +68,7 @@ module Brcobranca
69
68
  # @example
70
69
  # boleto.agencia_conta_boleto #=> "0059/1899775"
71
70
  def agencia_conta_boleto
72
- "#{self.agencia}/#{self.convenio}"
71
+ "#{agencia}/#{convenio}"
73
72
  end
74
73
 
75
74
  # Segunda parte do código de barras.
@@ -82,9 +81,8 @@ module Brcobranca
82
81
  #
83
82
  # @return [String] 25 caracteres numéricos.
84
83
  def codigo_barras_segunda_parte
85
- "9#{self.convenio}00000#{self.numero_documento}0#{self.carteira}"
84
+ "9#{convenio}00000#{numero_documento}0#{carteira}"
86
85
  end
87
-
88
86
  end
89
87
  end
90
- end
88
+ end