bbrcobranca 0.0.1 → 0.0.2

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: 16b6484b29d1c85fcb71b09b5bbd30ed85419522
4
- data.tar.gz: 7c843d413438eeea068a5769c92a209166f16bde
3
+ metadata.gz: 0c0671ce4d1bfd91d27b00ee73c4c86916422478
4
+ data.tar.gz: 8f48b644d39e06abfe345547941244df34dbba6e
5
5
  SHA512:
6
- metadata.gz: 1577c91586ff74084ed3e26cdc9628c052ceb9241e02b9500826b3c4f397406920bf17d4d634638c35789cd180ae8bf365b545d2ac662e06f00929374de88688
7
- data.tar.gz: df0f6bf3493a1d2de1d9c6bc03385f8aac87a07a03463db8ed3bf5b04988ca6ead442488183d5d1cbdad0089cf8fc45b8c270b91753fe6ebed330f684dc4756d
6
+ metadata.gz: fa1a203939e9535719b75612f2252cd3434e38100be5db68289e516901f2c53f6ada67ce95aab1a3a098e5efe6e1d101c65305044dbf82f797a0602dc35f5551
7
+ data.tar.gz: 941c1a5ed7291de2993501bc982a0ebfd33c4da44e7141656311e3afd21078b394a68163a116d3ad83e0bd115a37195bac23d6b4bede648767ddfd55ee81e9cb
@@ -1 +1,15 @@
1
1
  # Change Log
2
+
3
+ ## 0.0.2 (30/08/2018)
4
+
5
+ - Adiciona campo `codigo_barras` para gerador de boleto Itau
6
+ - Adiciona campos `codigo_barras` e `nosso_numero_dv` para gerador de boleto Santander
7
+
8
+ ## 0.0.1 (30/08/2018)
9
+
10
+ - Renomeia classes para lançar como Bbrcobraca
11
+
12
+ ## Before 0.0.1
13
+
14
+ - Fork brcobranca gem
15
+ - Adiciona campos `linha_cabecalho1`, `linha_cabecalho2`, `logotipo_cabecalho` e `linha_digitavel` para permitir maior customização dos boletos
data/README.md CHANGED
@@ -2,11 +2,8 @@
2
2
 
3
3
  Fork modificado do brcobranca.
4
4
 
5
- ## Motivo do fork
5
+ ## Motivo do fork?
6
6
 
7
- Incluir os seguintes campos em todos os boletos:
7
+ Permitir maior customização de boletos gerados.
8
8
 
9
- - linha_cabecalho1
10
- - linha_cabecalho2
11
- - logotipo_cabecalho
12
- - linha_digitavel
9
+ Veja nosso [CHANGELOG.md](https://github.com/adimplere/bbrcobranca/blob/master/CHANGELOG.md) para mais informações
@@ -112,10 +112,7 @@ module Bbrcobranca
112
112
  autoload :Banrisul, 'bbrcobranca/boleto/banrisul'
113
113
  autoload :Credisis, 'bbrcobranca/boleto/credisis'
114
114
  autoload :Cecred, 'bbrcobranca/boleto/cecred'
115
- autoload :SantanderAdimplere, 'bbrcobranca/boleto/santander_adimplere'
116
115
  autoload :BradescoGRB, 'bbrcobranca/boleto/bradesco_grb'
117
- autoload :ItauAdimplere, 'bbrcobranca/boleto/itau_adimplere'
118
-
119
116
 
120
117
  # Módulos para classes de template
121
118
  module Template
@@ -6,6 +6,7 @@ module Bbrcobranca
6
6
  class Itau < Base # Banco Itaú
7
7
  # Usado somente em carteiras especiais com registro para complementar o número do cocumento
8
8
  attr_reader :seu_numero
9
+ attr_writer :codigo_barras
9
10
 
10
11
  validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
11
12
  validates_length_of :convenio, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
@@ -21,6 +22,10 @@ module Bbrcobranca
21
22
  super(campos)
22
23
  end
23
24
 
25
+ def codigo_barras
26
+ instance_variable_get("@codigo_barras") || super
27
+ end
28
+
24
29
  # Codigo do banco emissor (3 dígitos sempre)
25
30
  #
26
31
  # @return [String] 3 caracteres numéricos.
@@ -5,6 +5,8 @@
5
5
  module Bbrcobranca
6
6
  module Boleto
7
7
  class Santander < Base # Banco Santander
8
+ attr_writer :codigo_barras, :nosso_numero_dv
9
+
8
10
  validates_presence_of :convenio, message: 'não pode estar em branco.'
9
11
  validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
10
12
  validates_length_of :convenio, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
@@ -17,6 +19,21 @@ module Bbrcobranca
17
19
  super(campos)
18
20
  end
19
21
 
22
+ def codigo_barras
23
+ instance_variable_get("@codigo_barras") || super
24
+ end
25
+
26
+ def nosso_numero_dv
27
+ if instance_variable_get("@nosso_numero_dv")
28
+ instance_variable_get("@nosso_numero_dv").gsub(/\D/, '')
29
+ else
30
+ nosso_numero.modulo11(
31
+ multiplicador: (2..9).to_a,
32
+ mapeamento: { 10 => 0, 11 => 0 }
33
+ ) { |total| 11 - (total % 11) }
34
+ end
35
+ end
36
+
20
37
  # Codigo do banco emissor (3 dígitos sempre)
21
38
  #
22
39
  # @return [String] 3 caracteres numéricos.
@@ -43,15 +60,6 @@ module Bbrcobranca
43
60
  @nosso_numero = valor.to_s.rjust(7, '0') if valor
44
61
  end
45
62
 
46
- # Dígito verificador do nosso número.
47
- # @return [String] 1 caracteres numéricos.
48
- def nosso_numero_dv
49
- nosso_numero.modulo11(
50
- multiplicador: (2..9).to_a,
51
- mapeamento: { 10 => 0, 11 => 0 }
52
- ) { |total| 11 - (total % 11) }
53
- end
54
-
55
63
  # Nosso número para exibir no boleto.
56
64
  # @return [String]
57
65
  # @example
@@ -2,5 +2,5 @@
2
2
  #
3
3
 
4
4
  module Bbrcobranca
5
- VERSION = '0.0.1'
5
+ VERSION = '0.0.2'
6
6
  end
@@ -58,6 +58,15 @@ RSpec.describe Bbrcobranca::Boleto::Itau do
58
58
  expect(boleto_novo.carteira).to eql('175')
59
59
  end
60
60
 
61
+ it 'usa codigo de barras dado' do
62
+ boleto = described_class.new(
63
+ @valid_attributes.merge(codigo_barras: '34191377000000135001750025828170810536789000')
64
+ )
65
+ expect(boleto.codigo_barras).to eq(
66
+ '34191377000000135001750025828170810536789000'
67
+ )
68
+ end
69
+
61
70
  it '#usa_seu_numero?' do
62
71
  @valid_attributes[:carteira] = 198
63
72
  boleto_novo = described_class.new(@valid_attributes)
@@ -34,6 +34,17 @@ RSpec.describe Bbrcobranca::Boleto::Santander do
34
34
  expect(boleto_novo.carteira).to eql('102')
35
35
  end
36
36
 
37
+ it 'usa codigo de barras e nosso numero dv dados' do
38
+ boleto_novo = described_class.new(
39
+ @valid_attributes.merge(
40
+ codigo_barras: '03399511500000025009189977500000900002690102',
41
+ nosso_numero_dv: '8'
42
+ )
43
+ )
44
+ expect(boleto_novo.codigo_barras).to eql('03399511500000025009189977500000900002690102')
45
+ expect(boleto_novo.nosso_numero_boleto).to eql('9000026-8')
46
+ end
47
+
37
48
  it 'Criar nova instancia com atributos válidos' do
38
49
  boleto_novo = described_class.new(@valid_attributes)
39
50
  expect(boleto_novo.banco).to eql('033')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bbrcobranca
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Glauco Custódio
@@ -122,9 +122,7 @@ files:
122
122
  - lib/bbrcobranca/boleto/credisis.rb
123
123
  - lib/bbrcobranca/boleto/hsbc.rb
124
124
  - lib/bbrcobranca/boleto/itau.rb
125
- - lib/bbrcobranca/boleto/itau_adimplere.rb
126
125
  - lib/bbrcobranca/boleto/santander.rb
127
- - lib/bbrcobranca/boleto/santander_adimplere.rb
128
126
  - lib/bbrcobranca/boleto/sicoob.rb
129
127
  - lib/bbrcobranca/boleto/sicredi.rb
130
128
  - lib/bbrcobranca/boleto/template/base.rb
@@ -1,159 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- #
3
-
4
- module Bbrcobranca
5
- module Boleto
6
- class ItauAdimplere < Base # Banco Itaú
7
- # Usado somente em carteiras especiais com registro para complementar o número do cocumento
8
- attr_reader :seu_numero
9
- attr_writer :codigo_barras
10
-
11
- def codigo_barras
12
- instance_variable_get("@codigo_barras")
13
- end
14
-
15
- def logotipo
16
- if Bbrcobranca.configuration.gerador == :rghost_carne
17
- File.join(
18
- brcobranca_path, "lib", "bbrcobranca", "arquivos", "logos", "itau_carne.eps"
19
- )
20
- else
21
- File.join(brcobranca_path, "lib", "bbrcobranca", "arquivos", "logos", "itau.eps")
22
- end
23
- end
24
-
25
- validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
26
- validates_length_of :convenio, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
27
- validates_length_of :nosso_numero, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
28
- validates_length_of :conta_corrente, maximum: 5, message: 'deve ser menor ou igual a 5 dígitos.'
29
- with_options if: :usa_seu_numero? do |v|
30
- v.validates_length_of :seu_numero, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
31
- end
32
- # Nova instancia do Itau
33
- # @param (see Bbrcobranca::Boleto::Base#initialize)
34
- def initialize(campos = {})
35
- campos = { carteira: '175' }.merge!(campos)
36
- super(campos)
37
- end
38
-
39
- # Codigo do banco emissor (3 dígitos sempre)
40
- #
41
- # @return [String] 3 caracteres numéricos.
42
- def banco
43
- '341'
44
- end
45
-
46
- # Número do convênio/contrato do cliente junto ao banco.
47
- # @return [String] 5 caracteres numéricos.
48
- def convenio=(valor)
49
- @convenio = valor.to_s.rjust(5, '0') if valor
50
- end
51
-
52
- # Conta corrente
53
- # @return [String] 5 caracteres numéricos.
54
- def conta_corrente=(valor)
55
- @conta_corrente = valor.to_s.rjust(5, '0') if valor
56
- end
57
-
58
- # Número seqüencial utilizado para identificar o boleto.
59
- # @return [String] 8 caracteres numéricos.
60
- def nosso_numero=(valor)
61
- @nosso_numero = valor.to_s.rjust(8, '0') if valor
62
- end
63
-
64
- # Número seqüencial utilizado para identificar o boleto.
65
- # @return [String] 7 caracteres numéricos.
66
- def seu_numero=(valor)
67
- @seu_numero = valor.to_s.rjust(7, '0') if valor
68
- end
69
-
70
- def usa_seu_numero?
71
- %w(198 106 107 122 142 143 195 196).include?(carteira.to_s)
72
- end
73
-
74
- # Dígito verificador do nosso número.
75
- #
76
- # Para a grande maioria das carteiras, são considerados para a obtenção do DAC/DV, os dados
77
- # "AGENCIA(sem DAC/DV)/CONTA(sem DAC/DV)/CARTEIRA/NOSSO NUMERO", calculado pelo criterio do Modulo 10.<br/>
78
- # A excecao, estão as carteiras 112, 126, 131, 146, 150 e 168 cuja obtenção esta baseada apenas nos
79
- # dados "CARTEIRA/NOSSO NUMERO".
80
- #
81
- # @return [String] 1 caracteres numéricos.
82
- def nosso_numero_dv
83
- if %w(112 126 131 146 150 168).include?(carteira)
84
- "#{carteira}#{nosso_numero}".modulo10
85
- else
86
- "#{agencia}#{conta_corrente}#{carteira}#{nosso_numero}".modulo10
87
- end
88
- end
89
-
90
- # Calcula o dígito verificador para conta corrente do Itau.
91
- # Retorna apenas o dígito verificador da conta ou nil caso seja impossível calcular.
92
- def agencia_conta_corrente_dv
93
- "#{agencia}#{conta_corrente}".modulo10
94
- end
95
-
96
- # Nosso número para exibir no boleto.
97
- # @return [String]
98
- # @example
99
- # boleto.nosso_numero_boleto #=> "175/12345678-4"
100
- def nosso_numero_boleto
101
- "#{carteira}/#{nosso_numero}-#{nosso_numero_dv}"
102
- end
103
-
104
- # Agência + conta corrente do cliente para exibir no boleto.
105
- # @return [String]
106
- # @example
107
- # boleto.agencia_conta_boleto #=> "0811 / 53678-8"
108
- def agencia_conta_boleto
109
- "#{agencia} / #{conta_corrente}-#{agencia_conta_corrente_dv}"
110
- end
111
-
112
- # Segunda parte do código de barras.
113
- #
114
- # CARTEIRAS 198, 106, 107,122, 142, 143, 195 e 196<br/>
115
- # 01 a 03 | 03 | 9(3) | Código do Banco na Câmara de Compensação = ‘341’<br/>
116
- # 04 a 04 | 01 | 9(1) | Código da Moeda = '9'<br/>
117
- # 05 a 05 | 01 | 9(1) | DAC do Código de Barras MOD 11-2a9<br/>
118
- # 06 a 09 | 04 | 9(04) | Fator de Vencimento<br/>
119
- # 10 a 19 | 10 | 9(08) | V(2) Valor<br/>
120
- # 20 a 22 | 03 | 9(3) | Carteira<br/>
121
- # 23 a 30 | 08 | 9(8) | Nosso Número<br/>
122
- # 31 a 37 | 07 | 9(7) | Seu Número (Número do Documento)<br/>
123
- # 38 a 42 | 05 | 9(5) | Código do Cliente (fornecido pelo Banco)<br/>
124
- # 43 a 43 | 01 | 9(1) | DAC dos campos acima (posições 20 a 42) MOD 10<br/>
125
- # 44 a 44 | 01 | 9(1) | Zero<br/>
126
- #
127
- # DEMAIS CARTEIRAS<br/>
128
- # 01 a 03 | 03 | 9(03) | Código do Banco na Câmara de Compensação = '341'<br/>
129
- # 04 a 04 | 01 | 9(01) | Código da Moeda = '9'<br/>
130
- # 05 a 05 | 01 | 9(01) | DAC código de Barras MOD 11-2a9<br/>
131
- # 06 a 09 | 04 | 9(04) | Fator de Vencimento<br/>
132
- # 10 a 19 | 10 | 9(08)V(2) | Valor<br/>
133
- # 20 a 22 | 03 | 9(03) | Carteira<br/>
134
- # 23 a 30 | 08 | 9(08) | Nosso Número<br/>
135
- # 31 a 31 | 01 | 9(01) | DAC [Agência /Conta/Carteira/Nosso Número] MOD 10<br/>
136
- # 32 a 35 | 04 | 9(04) | N.º da Agência cedente<br/>
137
- # 36 a 40 | 05 | 9(05) | N.º da Conta Corrente<br/>
138
- # 41 a 41 | 01 | 9(01) | DAC [Agência/Conta Corrente] MOD 10<br/>
139
- # 42 a 44 | 03 | 9(03) | Zeros<br/>
140
- #
141
- # @return [String] 25 caracteres numéricos.
142
- def codigo_barras_segunda_parte
143
- case carteira.to_i
144
- when 198, 106, 107, 122, 142, 143, 195, 196
145
- dv = "#{carteira}#{nosso_numero}#{seu_numero}#{convenio}".modulo10
146
- "#{carteira}#{nosso_numero}#{seu_numero}#{convenio}#{dv}0"
147
- else
148
- "#{carteira}#{nosso_numero}#{nosso_numero_dv}#{agencia}#{conta_corrente}#{agencia_conta_corrente_dv}000"
149
- end
150
- end
151
-
152
- private
153
-
154
- def brcobranca_path
155
- @brcobranca_path ||= Gem::Specification.find_by_name("bbrcobranca").gem_dir
156
- end
157
- end
158
- end
159
- end
@@ -1,73 +0,0 @@
1
- module Bbrcobranca
2
- module Boleto
3
- class SantanderAdimplere < Base
4
- attr_writer :codigo_barras, :nosso_numero_dv
5
-
6
- def codigo_barras
7
- instance_variable_get("@codigo_barras").remove(/\D/) rescue nil
8
- end
9
-
10
- def nosso_numero_dv
11
- instance_variable_get("@nosso_numero_dv").remove(/\D/) rescue nil
12
- end
13
-
14
- def logotipo
15
- if Bbrcobranca.configuration.gerador == :rghost_carne
16
- File.join(
17
- brcobranca_path, "lib", "bbrcobranca", "arquivos", "logos", "santander_carne.eps"
18
- )
19
- else
20
- File.join(brcobranca_path, "lib", "bbrcobranca", "arquivos", "logos", "santander.eps")
21
- end
22
- end
23
-
24
- validates_presence_of :convenio, message: 'não pode estar em branco.'
25
- validates_length_of :agencia, maximum: 4, message: 'deve ser menor ou igual a 4 dígitos.'
26
- validates_length_of :convenio, maximum: 7, message: 'deve ser menor ou igual a 7 dígitos.'
27
- validates_length_of :nosso_numero, maximum: 8, message: 'deve ser menor ou igual a 8 dígitos.'
28
-
29
- def initialize(campos = {})
30
- campos = { carteira: '102' }.merge!(campos)
31
- super(campos)
32
- end
33
-
34
- def banco
35
- '033'
36
- end
37
-
38
- def conta_corrente=(valor)
39
- @conta_corrente = valor.to_s.rjust(9, '0') if valor
40
- end
41
-
42
- def convenio=(valor)
43
- @convenio = valor.to_s.rjust(7, '0') if valor
44
- end
45
-
46
- def nosso_numero=(valor)
47
- @nosso_numero = valor.to_s.rjust(8, '0') if valor
48
- end
49
-
50
- def nosso_numero_boleto
51
- if nosso_numero_dv
52
- "#{nosso_numero}-#{nosso_numero_dv}"
53
- else
54
- nosso_numero
55
- end
56
- end
57
-
58
- def agencia_conta_boleto
59
- "#{agencia}/#{convenio}"
60
- end
61
-
62
- def codigo_barras_segunda_parte
63
- "9#{convenio}00000#{nosso_numero}#{nosso_numero_dv}0#{carteira}"
64
- end
65
-
66
- private
67
-
68
- def brcobranca_path
69
- @brcobranca_path ||= Gem::Specification.find_by_name("bbrcobranca").gem_dir
70
- end
71
- end
72
- end
73
- end