br_boleto 2.2.2 → 2.2.3

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