br_boleto 2.2.2 → 2.2.3

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: 14b335d2c150038b7a73ea02c1f1252a7150d5a8
4
- data.tar.gz: bac0af9ca5150fcc722a97fecf0f3a2267fbed2f
3
+ metadata.gz: eb0e64f3266b753466757dc9edab8bbcf595c95b
4
+ data.tar.gz: 32673e61506c6363f45110cbc12fe1c42b080cd4
5
5
  SHA512:
6
- metadata.gz: f2c8e7cdeaf637e77ea5e6be9b6943e17063e1dc2d19a0e97fc821546a420b27f9950d8859312096f6920946d5aee23c213c09f933867dbe40f65d3d863c805f
7
- data.tar.gz: 60d71d69791148d46d2004b2d6c33b244bb1009ae5c58939c9a751c15c725e223c6198fdd7f56689133a46edb948a14aa124c2964253b35b4ba5839f0728211b
6
+ metadata.gz: 2845f01fd1c0c3e52eba462083925e6070c1d4dbb4e9f788edb40ec92e45a7a3fb2e02cea0b86438106de4a8b8ee5334d371c6120c1f0d49571bb3810335a8bc
7
+ data.tar.gz: e8974384f70e3b42758900906696bec80f79102aefb73c8c02b2163acd6f11fecc27762cce020d184e6044eeff7afc4171c330ea2fa0ffca737ea187f8f599bd
@@ -176,6 +176,29 @@ module BrBoleto
176
176
  raise NotImplementedError.new("Not implemented #nosso_numero in #{self}.")
177
177
  end
178
178
 
179
+ # Esse método deve ser utilizado para salvar o nosso número que
180
+ # será retornado no arquivo de retorno.
181
+ # Foi necessário fazer esse método pois alguns bancos como o
182
+ # Bradesco e Itaú desconsideram o número da carteira no retorno,
183
+ # porém a carteira deve ser apresentada no boleto.
184
+ # Com o bjetivo de facilitar o desenvolvimento para não fazer essa
185
+ # regra da aplicação, foi desenvolvido esse método para que seja
186
+ # salvo o valor desse método na aplicação para que posteriormente
187
+ # a conciliação dos boletos funcione adecuadamente.
188
+ #
189
+ # Por padrão retorna os núemros e letras do nosso número, na qual
190
+ # é utilizada para a maioria dos bancos.
191
+ # Deve ser sobrescrito para os bancos que utilizam de forma diferente.
192
+ #
193
+ # O retorno é uma string pois em alguns bancos o DV do nosso número
194
+ # pode ser uma Letra.
195
+ #
196
+ # @return [String] 999999999 OR 999999999X
197
+ #
198
+ def nosso_numero_retorno
199
+ "#{nosso_numero}".gsub(/[^\w\d]/i, '')
200
+ end
201
+
179
202
  # Formata o valor do documentado para ser mostrado no código de barras
180
203
  # e na linha digitável com 08 dígitos na casa dos Reais e 02 dígitos nas casas dos centavos.
181
204
  #
@@ -52,6 +52,12 @@ module BrBoleto
52
52
  "#{conta.carteira}/#{numero_documento}-#{digito_verificador_nosso_numero}"
53
53
  end
54
54
 
55
+ # No arquivo de retorno a carteira não vem junto com o nosso núemro
56
+ #
57
+ def nosso_numero_retorno
58
+ "#{nosso_numero}".gsub(/[^\w\d]/i, '')[2..-1]
59
+ end
60
+
55
61
  # Para o cálculo do dígito, será necessário acrescentar o número da carteira à esquerda
56
62
  # antes do Nosso Número (número do documento), e aplicar o módulo 11, com fatores de 2 a 7.
57
63
  # @return [String] Retorno do cálculo do módulo 11 na base 7 (2,3,4,5,6,7)
@@ -51,6 +51,12 @@ module BrBoleto
51
51
  def nosso_numero
52
52
  "#{conta.carteira}/#{numero_documento}-#{digito_verificador_nosso_numero}"
53
53
  end
54
+
55
+ # No arquivo de retorno a carteira não vem junto com o nosso núemro
56
+ #
57
+ def nosso_numero_retorno
58
+ "#{nosso_numero}".gsub(/[^\w\d]/i, '')[3..-1]
59
+ end
54
60
 
55
61
  # Para a grande maioria das carteiras, são considerados para a obtenção do dígito do nosso número,
56
62
  # os dados “AGÊNCIA / CONTA (sem dígito) / CARTEIRA / NOSSO NÚMERO”, calculado pelo critério do Módulo 10.
@@ -2,7 +2,7 @@ module BrBoleto
2
2
  module Version
3
3
  MAJOR = 2 #inclui alterações de API e pode quebrar compatibilidade com versões anteriores
4
4
  MINOR = 2 #inclui novas funcionalidades, sem quebrar APIs existentes
5
- PATCH = 2 #corrige bugs ou traz melhorias em implementações já existentes
5
+ PATCH = 3 #corrige bugs ou traz melhorias em implementações já existentes
6
6
  CURRENT = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
  end
8
8
  end
@@ -240,4 +240,11 @@ describe BrBoleto::Boleto::Base do
240
240
  subject.codigo_de_barras_do_banco
241
241
  end
242
242
  end
243
+
244
+ describe '#nosso_numero_retorno' do
245
+ it "deve retornar os números e letras encontrados no nosso_numero" do
246
+ subject.expects(:nosso_numero).returns(' 01/200000000365-X')
247
+ subject.nosso_numero_retorno.must_equal '01200000000365X'
248
+ end
249
+ end
243
250
  end
@@ -65,6 +65,13 @@ describe BrBoleto::Boleto::Bradesco do
65
65
  end
66
66
  end
67
67
 
68
+ describe '#nosso_numero_retorno' do
69
+ it "deve pegar o valor do nosso_numero desconsiderando a carteira" do
70
+ subject.expects(:nosso_numero).returns('21/00000003646-9')
71
+ subject.nosso_numero_retorno.must_equal '000000036469'
72
+ end
73
+ end
74
+
68
75
  describe "#codigo_de_barras_do_banco" do
69
76
  subject do
70
77
  FactoryGirl.build(:boleto_bradesco, conta: {
@@ -73,6 +73,13 @@ describe BrBoleto::Boleto::Itau do
73
73
  end
74
74
  end
75
75
 
76
+ describe '#nosso_numero_retorno' do
77
+ it "deve pegar o valor do nosso_numero desconsiderando a carteira" do
78
+ subject.expects(:nosso_numero).returns('109/00003646-9')
79
+ subject.nosso_numero_retorno.must_equal '000036469'
80
+ end
81
+ end
82
+
76
83
  describe "#codigo_de_barras_do_banco (com as carteiras especiais de cobrança 107, 122, 142, 143, 196 e 198)" do
77
84
  subject do
78
85
  FactoryGirl.build(:boleto_itau, conta: {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: br_boleto
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bruno M. Mergen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-17 00:00:00.000000000 Z
11
+ date: 2017-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake