brcobranca 6.9.1 → 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/CHANGELOG.md +4 -0
  4. data/Gemfile.lock +7 -7
  5. data/README.md +14 -12
  6. data/Rakefile +1 -0
  7. data/brcobranca.gemspec +1 -0
  8. data/lib/brcobranca/arquivos/logos/banrisul.eps +121 -0
  9. data/lib/brcobranca/arquivos/logos/banrisul_carne.eps +121 -0
  10. data/lib/brcobranca/boleto/banco_brasil.rb +8 -8
  11. data/lib/brcobranca/boleto/banco_nordeste.rb +1 -0
  12. data/lib/brcobranca/boleto/banestes.rb +10 -10
  13. data/lib/brcobranca/boleto/banrisul.rb +84 -0
  14. data/lib/brcobranca/boleto/base.rb +6 -5
  15. data/lib/brcobranca/boleto/bradesco.rb +2 -1
  16. data/lib/brcobranca/boleto/caixa.rb +6 -5
  17. data/lib/brcobranca/boleto/hsbc.rb +7 -6
  18. data/lib/brcobranca/boleto/itau.rb +1 -0
  19. data/lib/brcobranca/boleto/santander.rb +1 -0
  20. data/lib/brcobranca/boleto/sicoob.rb +12 -11
  21. data/lib/brcobranca/boleto/sicredi.rb +1 -0
  22. data/lib/brcobranca/boleto/template/base.rb +5 -4
  23. data/lib/brcobranca/boleto/template/rghost.rb +7 -6
  24. data/lib/brcobranca/boleto/template/rghost_carne.rb +9 -9
  25. data/lib/brcobranca/boleto/unicred.rb +1 -1
  26. data/lib/brcobranca/calculo.rb +14 -15
  27. data/lib/brcobranca/calculo_data.rb +2 -0
  28. data/lib/brcobranca/currency.rb +4 -3
  29. data/lib/brcobranca/formatacao.rb +2 -1
  30. data/lib/brcobranca/formatacao_string.rb +1 -0
  31. data/lib/brcobranca/limpeza.rb +1 -0
  32. data/lib/brcobranca/remessa/base.rb +2 -1
  33. data/lib/brcobranca/remessa/cnab240/banco_brasil.rb +7 -6
  34. data/lib/brcobranca/remessa/cnab240/base.rb +16 -15
  35. data/lib/brcobranca/remessa/cnab240/caixa.rb +1 -0
  36. data/lib/brcobranca/remessa/cnab240/sicoob.rb +9 -9
  37. data/lib/brcobranca/remessa/cnab400/banco_brasil.rb +2 -3
  38. data/lib/brcobranca/remessa/cnab400/base.rb +8 -7
  39. data/lib/brcobranca/remessa/cnab400/bradesco.rb +2 -1
  40. data/lib/brcobranca/remessa/cnab400/citibank.rb +3 -2
  41. data/lib/brcobranca/remessa/cnab400/itau.rb +2 -1
  42. data/lib/brcobranca/remessa/cnab400/santander.rb +7 -5
  43. data/lib/brcobranca/remessa/cnab400/sicoob.rb +6 -5
  44. data/lib/brcobranca/remessa/pagamento.rb +4 -4
  45. data/lib/brcobranca/retorno/base.rb +1 -0
  46. data/lib/brcobranca/retorno/cnab240/base.rb +6 -7
  47. data/lib/brcobranca/retorno/cnab240/caixa.rb +1 -0
  48. data/lib/brcobranca/retorno/cnab240/santander.rb +3 -3
  49. data/lib/brcobranca/retorno/cnab240/sicoob.rb +7 -6
  50. data/lib/brcobranca/retorno/cnab400/base.rb +5 -6
  51. data/lib/brcobranca/retorno/cnab400/bradesco.rb +1 -0
  52. data/lib/brcobranca/retorno/cnab400/itau.rb +1 -0
  53. data/lib/brcobranca/retorno/retorno_cbr643.rb +1 -0
  54. data/lib/brcobranca/retorno/retorno_cnab240.rb +3 -2
  55. data/lib/brcobranca/retorno/retorno_cnab400.rb +1 -0
  56. data/lib/brcobranca/util/empresa.rb +2 -3
  57. data/lib/brcobranca/version.rb +2 -1
  58. data/lib/brcobranca.rb +3 -1
  59. data/spec/brcobranca/base_spec.rb +51 -50
  60. data/spec/brcobranca/boleto/banco_brasil_spec.rb +46 -45
  61. data/spec/brcobranca/boleto/banco_nordeste_spec.rb +13 -12
  62. data/spec/brcobranca/boleto/banestes_spec.rb +108 -105
  63. data/spec/brcobranca/boleto/banrisul_spec.rb +165 -0
  64. data/spec/brcobranca/boleto/bradesco_spec.rb +56 -52
  65. data/spec/brcobranca/boleto/caixa_spec.rb +9 -7
  66. data/spec/brcobranca/boleto/hsbc_spec.rb +17 -15
  67. data/spec/brcobranca/boleto/itau_spec.rb +22 -20
  68. data/spec/brcobranca/boleto/santander_spec.rb +16 -14
  69. data/spec/brcobranca/boleto/sicoob_spec.rb +94 -94
  70. data/spec/brcobranca/boleto/sicredi_spec.rb +32 -28
  71. data/spec/brcobranca/boleto/unicred_spec.rb +16 -14
  72. data/spec/brcobranca/boletos_em_lote_spec.rb +4 -3
  73. data/spec/brcobranca/calculo_data_spec.rb +2 -1
  74. data/spec/brcobranca/calculo_spec.rb +97 -97
  75. data/spec/brcobranca/currency_spec.rb +6 -5
  76. data/spec/brcobranca/formatacao_spec.rb +1 -0
  77. data/spec/brcobranca/formatacao_string_spec.rb +1 -2
  78. data/spec/brcobranca/limpeza_spec.rb +1 -0
  79. data/spec/brcobranca/remessa/base_spec.rb +11 -9
  80. data/spec/brcobranca/remessa/cnab240/banco_brasil_spec.rb +11 -9
  81. data/spec/brcobranca/remessa/cnab240/base_spec.rb +11 -9
  82. data/spec/brcobranca/remessa/cnab240/caixa_spec.rb +12 -10
  83. data/spec/brcobranca/remessa/cnab240/sicoob_spec.rb +13 -11
  84. data/spec/brcobranca/remessa/cnab400/banco_brasil_spec.rb +2 -1
  85. data/spec/brcobranca/remessa/cnab400/base_spec.rb +20 -18
  86. data/spec/brcobranca/remessa/cnab400/bradesco_spec.rb +11 -9
  87. data/spec/brcobranca/remessa/cnab400/citibank_spec.rb +11 -9
  88. data/spec/brcobranca/remessa/cnab400/itau_spec.rb +11 -9
  89. data/spec/brcobranca/remessa/cnab400/santander_spec.rb +12 -10
  90. data/spec/brcobranca/remessa/cnab400/sicoob_spec.rb +11 -9
  91. data/spec/brcobranca/remessa/pagamento_spec.rb +12 -10
  92. data/spec/brcobranca/retorno/cnab240/base_spec.rb +10 -9
  93. data/spec/brcobranca/retorno/cnab240/santander_spec.rb +23 -22
  94. data/spec/brcobranca/retorno/cnab240/sicoob_spec.rb +21 -20
  95. data/spec/brcobranca/retorno/cnab400/base_spec.rb +13 -12
  96. data/spec/brcobranca/retorno/cnab400/bradesco_spec.rb +3 -1
  97. data/spec/brcobranca/retorno/cnab400/itau_spec.rb +4 -1
  98. data/spec/brcobranca/retorno/retorno_cbr643_spec.rb +1 -0
  99. data/spec/brcobranca/retorno/retorno_cnab400_spec.rb +1 -0
  100. data/spec/brcobranca/retorno/retorno_cnab_240_spec.rb +1 -0
  101. data/spec/brcobranca/rghost_spec.rb +1 -0
  102. data/spec/brcobranca/util/empresa_spec.rb +13 -12
  103. data/spec/brcobranca_spec.rb +6 -5
  104. data/spec/spec_helper.rb +3 -3
  105. data/spec/support/remessa_helpers.rb +3 -1
  106. data/spec/support/shared_examples/busca_logotipo.rb +2 -0
  107. data/spec/support/shared_examples/cnab240.rb +22 -20
  108. data/spec/support/shared_examples/cnab400.rb +12 -12
  109. data/spec/support/shared_examples/formatos_validos.rb +6 -4
  110. metadata +7 -2
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
  module Brcobranca
3
4
  module Boleto
4
5
  class Bradesco < Base # Banco BRADESCO
@@ -12,7 +13,7 @@ module Brcobranca
12
13
  def initialize(campos = {})
13
14
  campos = { carteira: '06' }.merge!(campos)
14
15
 
15
- campos.merge!(local_pagamento: 'Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso')
16
+ campos[:local_pagamento] = 'Pagável preferencialmente na Rede Bradesco ou Bradesco Expresso'
16
17
 
17
18
  super(campos)
18
19
  end
@@ -1,5 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  #
3
+ #
3
4
  # A Caixa tem dois padrões para a geração de boleto: SIGCB e SICOB.
4
5
  # O SICOB foi substiuido pelo SIGCB que é implementado por esta classe.
5
6
  # http://downloads.caixa.gov.br/_arquivos/cobranca_caixa_sigcb/manuais/CODIGO_BARRAS_SIGCB.PDF
@@ -9,9 +10,9 @@ module Brcobranca
9
10
  class Caixa < Base # Caixa
10
11
  # <b>REQUERIDO</b>: Emissão do boleto
11
12
  attr_accessor :emissao
12
-
13
+
13
14
  # Validações
14
- #Modalidade/Carteira de Cobrança (1-Registrada | 2-Sem Registro)
15
+ # Modalidade/Carteira de Cobrança (1-Registrada | 2-Sem Registro)
15
16
  validates_length_of :carteira, is: 1, message: 'deve possuir 1 dígitos.'
16
17
  # Emissão do boleto (4-Beneficiário)
17
18
  validates_length_of :emissao, is: 1, message: 'deve possuir 1 dígitos.'
@@ -26,7 +27,7 @@ module Brcobranca
26
27
  emissao: '4'
27
28
  }.merge!(campos)
28
29
 
29
- campos.merge!(local_pagamento: 'PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE')
30
+ campos[:local_pagamento] = 'PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE'
30
31
 
31
32
  super(campos)
32
33
  end
@@ -68,7 +69,7 @@ module Brcobranca
68
69
  def nosso_numero
69
70
  "#{carteira}#{emissao}#{numero_documento}"
70
71
  end
71
-
72
+
72
73
  # Dígito verificador do Nosso Número
73
74
  # Utiliza-se o [-1..-1] para retornar o último caracter
74
75
  # @return [String]
@@ -115,7 +116,7 @@ module Brcobranca
115
116
  "#{nosso_numero[1..1]}" \
116
117
  "#{nosso_numero[8..16]}"
117
118
 
118
- "#{campo_livre}" +
119
+ campo_livre.to_s +
119
120
  campo_livre.modulo11(
120
121
  multiplicador: (2..9).to_a,
121
122
  mapeamento: { 10 => 0, 11 => 0 }
@@ -1,8 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
  module Brcobranca
3
4
  module Boleto
4
5
  class Hsbc < Base # Banco HSBC
5
- validates_inclusion_of :carteira, in: %w( CNR CSB ), message: 'não existente para este banco.'
6
+ validates_inclusion_of :carteira, in: %w(CNR CSB), message: 'não existente para este banco.'
6
7
  validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
7
8
  validates_length_of :numero_documento, maximum: 13, message: 'deve ser menor ou igual a 13 dígitos.'
8
9
  validates_length_of :conta_corrente, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
@@ -54,13 +55,13 @@ module Brcobranca
54
55
  soma = parte_1.to_i + conta_corrente.to_i + data.to_i
55
56
  "#{parte_1}#{soma.to_s.modulo11(mapeamento: { 10 => 0 })}"
56
57
  else
57
- self.errors.add(:data_vencimento, "não é uma data.")
58
- fail Brcobranca::BoletoInvalido.new(self)
58
+ errors.add(:data_vencimento, 'não é uma data.')
59
+ raise Brcobranca::BoletoInvalido, self
59
60
  end
60
61
  when 'CSB'
61
62
  @nosso_numero
62
63
  else
63
- fail Brcobranca::NaoImplementado.new('Tipo de carteira não implementado.')
64
+ raise Brcobranca::NaoImplementado, 'Tipo de carteira não implementado.'
64
65
  # TODO - Verificar outras carteiras.
65
66
  # self.codigo_servico = "5"
66
67
  # parte_1 = "#{self.numero_documento}#{self.numero_documento.modulo11(mapeamento: { 10 => 0 })}#{self.codigo_servico}"
@@ -99,10 +100,10 @@ module Brcobranca
99
100
  dias_julianos = data_vencimento.to_juliano
100
101
  "#{conta_corrente}#{numero_documento}#{dias_julianos}2"
101
102
  when 'CSB'
102
- fail Brcobranca::NaoImplementado.new('Nosso número não definido.') unless @nosso_numero
103
+ raise Brcobranca::NaoImplementado, 'Nosso número não definido.' unless @nosso_numero
103
104
  "#{nosso_numero}#{agencia}#{conta_corrente}001"
104
105
  else
105
- fail Brcobranca::NaoImplementado.new('Tipo de carteira não implementado.')
106
+ raise Brcobranca::NaoImplementado, 'Tipo de carteira não implementado.'
106
107
  end
107
108
  end
108
109
  end
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
  module Brcobranca
3
4
  module Boleto
4
5
  class Itau < Base # Banco Itaú
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
  # @author Kivanio Barbosa
3
4
  # @author Ronaldo Araujo
4
5
  module Brcobranca
@@ -1,16 +1,17 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
  module Brcobranca
3
4
  module Boleto
4
5
  class Sicoob < Base # Sicoob (Bancoob)
5
- validates_length_of :agencia, maximum: 4, message: "deve ser menor ou igual a 4 dígitos."
6
- validates_length_of :conta_corrente, maximum: 8, message: "deve ser menor ou igual a 8 dígitos."
7
- validates_length_of :numero_documento, maximum: 7, message: "deve ser menor ou igual a 7 dígitos."
6
+ validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
7
+ validates_length_of :conta_corrente, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
8
+ validates_length_of :numero_documento, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
8
9
  validates_length_of :convenio, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
9
10
  validates_length_of :variacao, maximum: 2, message: 'deve ser menor ou igual a 2 dígitos.'
10
11
  validates_length_of :quantidade, maximum: 3, message: 'deve ser menor ou igual a 3 dígitos.'
11
12
 
12
13
  def initialize(campos = {})
13
- campos = { carteira: "1", variacao: '01', quantidade: '001' }.merge!(campos)
14
+ campos = { carteira: '1', variacao: '01', quantidade: '001' }.merge!(campos)
14
15
  super(campos)
15
16
  end
16
17
 
@@ -18,42 +19,42 @@ module Brcobranca
18
19
  #
19
20
  # @return [String] 3 caracteres numéricos.
20
21
  def banco
21
- "756"
22
+ '756'
22
23
  end
23
24
 
24
25
  # Dígito verificador do banco
25
26
  #
26
27
  # @return [String] 1 caractere.
27
28
  def banco_dv
28
- "0"
29
+ '0'
29
30
  end
30
31
 
31
32
  # Agência
32
33
  #
33
34
  # @return [String] 4 caracteres numéricos.
34
35
  def agencia=(valor)
35
- @agencia = valor.to_s.rjust(4, "0") if valor
36
+ @agencia = valor.to_s.rjust(4, '0') if valor
36
37
  end
37
38
 
38
39
  # Convênio
39
40
  #
40
41
  # @return [String] 7 caracteres numéricos.
41
42
  def convenio=(valor)
42
- @convenio = valor.to_s.rjust(7, "0") if valor
43
+ @convenio = valor.to_s.rjust(7, '0') if valor
43
44
  end
44
45
 
45
46
  # Número documento
46
47
  #
47
48
  # @return [String] 7 caracteres numéricos.
48
49
  def numero_documento=(valor)
49
- @numero_documento = valor.to_s.rjust(7, "0") if valor
50
+ @numero_documento = valor.to_s.rjust(7, '0') if valor
50
51
  end
51
52
 
52
53
  # Quantidade
53
54
  #
54
55
  # @return [String] 3 caracteres numéricos.
55
56
  def quantidade=(valor)
56
- @quantidade = valor.to_s.rjust(3, "0") if valor
57
+ @quantidade = valor.to_s.rjust(3, '0') if valor
57
58
  end
58
59
 
59
60
  # Nosso número para exibição no boleto.
@@ -92,7 +93,7 @@ module Brcobranca
92
93
  # Ex.: 11 – 3 = 8, então Nosso Número + DV = 21-8
93
94
  #
94
95
  def nosso_numero_dv
95
- "#{agencia}#{convenio.rjust(10, "0")}#{numero_documento}".modulo11(
96
+ "#{agencia}#{convenio.rjust(10, '0')}#{numero_documento}".modulo11(
96
97
  reverse: false,
97
98
  multiplicador: [3, 1, 9, 7],
98
99
  mapeamento: { 10 => 0, 11 => 0 }
@@ -1,5 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  #
3
+ #
3
4
  # Sicredi
4
5
  # Documentação: Maio 2016
5
6
  #
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
 
3
4
  module Brcobranca
4
5
  module Boleto
@@ -9,13 +10,13 @@ module Brcobranca
9
10
  def define_template(template)
10
11
  case template
11
12
  when :rghost
12
- return [Brcobranca::Boleto::Template::Rghost]
13
+ [Brcobranca::Boleto::Template::Rghost]
13
14
  when :rghost_carne
14
- return [Brcobranca::Boleto::Template::RghostCarne]
15
+ [Brcobranca::Boleto::Template::RghostCarne]
15
16
  when :both
16
- return [Brcobranca::Boleto::Template::Rghost, Brcobranca::Boleto::Template::RghostCarne]
17
+ [Brcobranca::Boleto::Template::Rghost, Brcobranca::Boleto::Template::RghostCarne]
17
18
  else
18
- return [Brcobranca::Boleto::Template::Rghost]
19
+ [Brcobranca::Boleto::Template::Rghost]
19
20
  end
20
21
  end
21
22
  end
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
 
3
4
  begin
4
5
  require 'rghost'
@@ -22,7 +23,7 @@ module Brcobranca
22
23
  # Templates para usar com Rghost
23
24
  module Rghost
24
25
  extend self
25
- include RGhost unless self.include?(RGhost)
26
+ include RGhost unless include?(RGhost)
26
27
  RGhost::Config::GS[:external_encoding] = Brcobranca.configuration.external_encoding
27
28
 
28
29
  # Gera o boleto em usando o formato desejado [:pdf, :jpg, :tif, :png, :ps, :laserjet, ... etc]
@@ -72,7 +73,7 @@ module Brcobranca
72
73
 
73
74
  template_path = File.join(File.dirname(__FILE__), '..', '..', 'arquivos', 'templates', 'modelo_generico.eps')
74
75
 
75
- fail 'Não foi possível encontrar o template. Verifique o caminho' unless File.exist?(template_path)
76
+ raise 'Não foi possível encontrar o template. Verifique o caminho' unless File.exist?(template_path)
76
77
 
77
78
  modelo_generico_template(doc, boleto, template_path)
78
79
  modelo_generico_cabecalho(doc, boleto)
@@ -99,7 +100,7 @@ module Brcobranca
99
100
 
100
101
  template_path = File.join(File.dirname(__FILE__), '..', '..', 'arquivos', 'templates', 'modelo_generico.eps')
101
102
 
102
- fail 'Não foi possível encontrar o template. Verifique o caminho' unless File.exist?(template_path)
103
+ raise 'Não foi possível encontrar o template. Verifique o caminho' unless File.exist?(template_path)
103
104
 
104
105
  boletos.each_with_index do |boleto, index|
105
106
  modelo_generico_template(doc, boleto, template_path)
@@ -148,7 +149,7 @@ module Brcobranca
148
149
  doc.moveto x: '0.7 cm', y: '22.2 cm'
149
150
  doc.show boleto.numero_documento
150
151
  doc.moveto x: '7 cm', y: '22.2 cm'
151
- doc.show "#{boleto.documento_cedente.formata_documento}"
152
+ doc.show boleto.documento_cedente.formata_documento.to_s
152
153
  doc.moveto x: '12 cm', y: '22.2 cm'
153
154
  doc.show boleto.data_vencimento.to_s_br
154
155
  doc.moveto x: '20.3 cm', y: '23 cm'
@@ -158,7 +159,7 @@ module Brcobranca
158
159
  doc.moveto x: '1.5 cm', y: '20.9 cm'
159
160
  doc.show "#{boleto.sacado} - #{boleto.sacado_documento.formata_documento}"
160
161
  doc.moveto x: '1.5 cm', y: '20.6 cm'
161
- doc.show "#{boleto.sacado_endereco}"
162
+ doc.show boleto.sacado_endereco.to_s
162
163
  doc.moveto x: '0.7 cm', y: '19.8 cm'
163
164
  doc.show boleto.demonstrativo1
164
165
  doc.moveto x: '0.7 cm', y: '19.4 cm'
@@ -232,7 +233,7 @@ module Brcobranca
232
233
  doc.moveto x: '1.2 cm', y: '8.8 cm'
233
234
  doc.show "#{boleto.sacado} - CPF/CNPJ: #{boleto.sacado_documento.formata_documento}" if boleto.sacado && boleto.sacado_documento
234
235
  doc.moveto x: '1.2 cm', y: '8.4 cm'
235
- doc.show "#{boleto.sacado_endereco}"
236
+ doc.show boleto.sacado_endereco.to_s
236
237
 
237
238
  if boleto.avalista && boleto.avalista_documento
238
239
  doc.moveto x: '2.4 cm', y: '7.47 cm'
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
 
3
4
  begin
4
5
  require 'rghost'
@@ -22,7 +23,7 @@ module Brcobranca
22
23
  # Templates para usar com Rghost
23
24
  module RghostCarne
24
25
  extend self
25
- include RGhost unless self.include?(RGhost)
26
+ include RGhost unless include?(RGhost)
26
27
  RGhost::Config::GS[:external_encoding] = Brcobranca.configuration.external_encoding
27
28
 
28
29
  # Gera o boleto em usando o formato desejado [:pdf, :jpg, :tif, :png, :ps, :laserjet, ... etc]
@@ -116,12 +117,11 @@ module Brcobranca
116
117
  modelo_carne_build_data_left(doc, boleto, colunas, linhas)
117
118
  modelo_carne_build_data_right(doc, boleto, colunas, linhas)
118
119
 
119
- if curr_page_position >= max_per_page # maximo 3 boletos por pagina
120
- # Cria nova página se não for o último boleto
121
- doc.next_page unless index == boletos.length - 1
120
+ next unless curr_page_position >= max_per_page # maximo 3 boletos por pagina
121
+ # Cria nova página se não for o último boleto
122
+ doc.next_page unless index == boletos.length - 1
122
123
 
123
- curr_page_position = 0 # reinicia contador por página
124
- end
124
+ curr_page_position = 0 # reinicia contador por página
125
125
  end
126
126
 
127
127
  # Gerando stream
@@ -134,7 +134,7 @@ module Brcobranca
134
134
  # carrega background do boleto
135
135
  def modelo_carne_load_background(doc, margin_bottom)
136
136
  template_path = File.join(File.dirname(__FILE__), '..', '..', 'arquivos', 'templates', 'modelo_carne.eps')
137
- fail 'Não foi possível encontrar o template. Verifique o caminho' unless File.exist?(template_path)
137
+ raise 'Não foi possível encontrar o template. Verifique o caminho' unless File.exist?(template_path)
138
138
 
139
139
  doc.image template_path, x: 1, y: margin_bottom
140
140
  end
@@ -202,7 +202,7 @@ module Brcobranca
202
202
 
203
203
  # sacado
204
204
  doc.moveto x: colunas[0], y: linhas[13]
205
- doc.show "#{boleto.sacado}"
205
+ doc.show boleto.sacado.to_s
206
206
  end
207
207
 
208
208
  # aplica dados do lado direito
@@ -301,7 +301,7 @@ module Brcobranca
301
301
 
302
302
  # Sacado endereço
303
303
  doc.moveto x: colunas[2], y: linhas[12]
304
- doc.show "#{boleto.sacado_endereco}"
304
+ doc.show boleto.sacado_endereco.to_s
305
305
 
306
306
  # codigo de barras
307
307
  # Gerando codigo de barra com rghost_barcode
@@ -1,8 +1,8 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
  module Brcobranca
3
4
  module Boleto
4
5
  class Unicred < Brcobranca::Boleto::Sicredi
5
-
6
6
  # Nova instancia do Unicred
7
7
  # @param (see Brcobranca::Boleto::Base#initialize)
8
8
  def initialize(campos = {})
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
  # @author Kivanio Barbosa
3
4
  module Brcobranca
4
5
  # Métodos auxiliares de cálculos
@@ -8,7 +9,7 @@ module Brcobranca
8
9
  # @return [Integer]
9
10
  # @raise [ArgumentError] Caso não seja um número inteiro.
10
11
  def modulo10
11
- fail ArgumentError, 'Número inválido' unless self.is_number?
12
+ raise ArgumentError, 'Número inválido' unless is_number?
12
13
 
13
14
  total = 0
14
15
  multiplicador = 2
@@ -43,7 +44,7 @@ module Brcobranca
43
44
  #
44
45
  # @return [Boolean]
45
46
  def is_number?
46
- to_s.empty? ? false : (to_s =~ (/\D/)).nil?
47
+ to_s.empty? ? false : (to_s =~ /\D/).nil?
47
48
  end
48
49
 
49
50
  # Soma dígitos de números inteiros positivos com 2 dígitos ou mais.
@@ -72,8 +73,8 @@ module Brcobranca
72
73
  # @return [Integer]
73
74
  # @raise [ArgumentError] Caso não seja um número inteiro.
74
75
  def multiplicador(options = {}, &_block)
75
- fail ArgumentError, 'Número inválido' unless self.is_number?
76
- fail ArgumentError, 'Fatores não podem estar em branco' unless options[:fatores]
76
+ raise ArgumentError, 'Número inválido' unless is_number?
77
+ raise ArgumentError, 'Fatores não podem estar em branco' unless options[:fatores]
77
78
 
78
79
  total = 0
79
80
  multiplicador_posicao = 0
@@ -83,7 +84,7 @@ module Brcobranca
83
84
  numeros.each do |caracter|
84
85
  fator = fatores[multiplicador_posicao]
85
86
  total += block_given? ? yield(caracter, fator) : (caracter.to_i * fator)
86
- multiplicador_posicao = (multiplicador_posicao < (fatores.size - 1)) ? (multiplicador_posicao + 1) : 0
87
+ multiplicador_posicao = multiplicador_posicao < (fatores.size - 1) ? (multiplicador_posicao + 1) : 0
87
88
  end
88
89
  total
89
90
  end
@@ -93,24 +94,22 @@ module Brcobranca
93
94
  # @return [String]
94
95
  # @raise [ArgumentError] Caso não seja um número inteiro.
95
96
  def duplo_digito
96
- fail ArgumentError, 'Número inválido' unless self.is_number?
97
+ raise ArgumentError, 'Número inválido' unless is_number?
97
98
 
98
- digito_1 = self.modulo10
99
+ digito_1 = modulo10
99
100
  digito_2 = "#{self}#{digito_1}".modulo11(multiplicador: [2, 3, 4, 5, 6, 7]) { |total| (total % 11) }
100
101
 
101
102
  while digito_2 == 1
102
- if digito_1 == 9
103
- digito_1 = 0
104
- else
105
- digito_1 = digito_1 + 1
106
- end
103
+ digito_1 = if digito_1 == 9
104
+ 0
105
+ else
106
+ digito_1 + 1
107
+ end
107
108
 
108
109
  digito_2 = "#{self}#{digito_1}".modulo11(multiplicador: [2, 3, 4, 5, 6, 7])
109
110
  end
110
111
 
111
- if digito_2 != 0
112
- digito_2 = 11 - digito_2
113
- end
112
+ digito_2 = 11 - digito_2 if digito_2 != 0
114
113
 
115
114
  "#{digito_1}#{digito_2}"
116
115
  end
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
  # @author Kivanio Barbosa
3
4
  module Brcobranca
4
5
  # Métodos auxiliares de cálculos envolvendo Datas.
@@ -19,6 +20,7 @@ module Brcobranca
19
20
  def to_s_br
20
21
  strftime('%d/%m/%Y')
21
22
  end
23
+
22
24
  # Calcula número de dias julianos.
23
25
  #
24
26
  # O cálculo é feito subtraindo-se a data atual, pelo último dia válido do ano anterior,
@@ -1,17 +1,18 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
 
3
4
  # @author Fernando Vieira do http://simplesideias.com.br
4
5
  module Brcobranca #:nodoc:[all]
5
6
  module Currency #:nodoc:[all]
6
7
  # Implementação feita por Fernando Vieira do http://simplesideias.com.br
7
8
  # post http://simplesideias.com.br/usando-number_to_currency-em-modelos-no-rails
8
- BRL = { delimiter: '.', separator: ',', unit: 'R$', precision: 2, position: 'before' }
9
- USD = { delimiter: ',', separator: '.', unit: 'US$', precision: 2, position: 'before' }
9
+ BRL = { delimiter: '.', separator: ',', unit: 'R$', precision: 2, position: 'before' }.freeze
10
+ USD = { delimiter: ',', separator: '.', unit: 'US$', precision: 2, position: 'before' }.freeze
10
11
  DEFAULT = BRL.merge(unit: '')
11
12
 
12
13
  module String #:nodoc:[all]
13
14
  def to_number(_options = {})
14
- return gsub(/,/, '.').to_f if self.numeric?
15
+ return tr(',', '.').to_f if numeric?
15
16
  nil
16
17
  end
17
18
 
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
  # @author Kivanio Barbosa
3
4
  module Brcobranca
4
5
  # Métodos auxiliares de formatação
@@ -91,7 +92,7 @@ module Brcobranca
91
92
  linha << Regexp.last_match[3]
92
93
  linha.gsub(/^(.{5})(.{5})(.{5})(.{6})(.{5})(.{6})(.{1})(.{14})$/, '\1.\2 \3.\4 \5.\6 \7 \8')
93
94
  else
94
- fail ArgumentError, "#{self} Precisa conter 44 caracteres numéricos."
95
+ raise ArgumentError, "#{self} Precisa conter 44 caracteres numéricos."
95
96
  end
96
97
  end
97
98
  end
@@ -1,3 +1,4 @@
1
+ #
1
2
  require 'active_support/core_ext/string/filters'
2
3
  require 'active_support/inflector/transliterate'
3
4
 
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
  module Brcobranca
3
4
  module Limpeza
4
5
  # Transforma Float em String preservando o zero a direita.
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
  require 'unidecoder'
3
4
 
4
5
  module Brcobranca
@@ -59,7 +60,7 @@ module Brcobranca
59
60
  # Soma de todos os boletos
60
61
  #
61
62
  # @return [String]
62
- def valor_total_titulos(tamanho=13)
63
+ def valor_total_titulos(tamanho = 13)
63
64
  value = pagamentos.inject(0.0) { |sum, pagamento| sum += pagamento.valor }
64
65
  sprintf('%.2f', value).delete('.').rjust(tamanho, '0')
65
66
  end
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ #
2
3
  module Brcobranca
3
4
  module Remessa
4
5
  module Cnab240
@@ -20,9 +21,9 @@ module Brcobranca
20
21
 
21
22
  def initialize(campos = {})
22
23
  campos = { emissao_boleto: '0',
23
- distribuicao_boleto: '0',
24
- especie_titulo: '02',
25
- codigo_carteira: '7',}.merge!(campos)
24
+ distribuicao_boleto: '0',
25
+ especie_titulo: '02',
26
+ codigo_carteira: '7' }.merge!(campos)
26
27
  super(campos)
27
28
  end
28
29
 
@@ -64,7 +65,7 @@ module Brcobranca
64
65
  "#{convenio.rjust(9, '0')}0014#{carteira}#{variacao} "
65
66
  end
66
67
 
67
- alias_method :convenio_lote, :codigo_convenio
68
+ alias convenio_lote codigo_convenio
68
69
 
69
70
  def info_conta
70
71
  # CAMPO TAMANHO
@@ -109,7 +110,7 @@ module Brcobranca
109
110
  when 7 then
110
111
  10
111
112
  else
112
- fail Brcobranca::NaoImplementado.new('Tipo de convênio não implementado.')
113
+ raise Brcobranca::NaoImplementado, 'Tipo de convênio não implementado.'
113
114
  end
114
115
  nosso_numero = nosso_numero.to_s.rjust(quantidade, '0')
115
116
 
@@ -225,7 +226,7 @@ module Brcobranca
225
226
  # No caso de carteira 31 ou carteira 11/17 modalidade Vinculada,
226
227
  # se não informado nenhum código,
227
228
  # o sistema assume automaticamente Protesto em 3 dias úteis.
228
- segmento_p << '3' # cod. para protesto 1 *
229
+ segmento_p << '3' # cod. para protesto 1 *
229
230
  # Preencher de acordo com o código informado na posição 221.
230
231
  # Para código '1' – é possível, de 6 a 29 dias, 35o, 40o, dia corrido.
231
232
  # Para código '2' – é possível, 3o, 4o ou 5o dia útil.