bbrcobranca 0.0.1 → 0.0.2

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