brcobranca 2.0.6 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +30 -0
- data/Gemfile +11 -0
- data/Gemfile.lock +48 -0
- data/History.txt +13 -1
- data/LICENSE +20 -0
- data/README.rdoc +12 -5
- data/Rakefile +33 -37
- data/VERSION +1 -0
- data/brcobranca.gemspec +26 -35
- data/lib/brcobranca/arquivos/logos/{bb.jpg → bancobrasil.jpg} +0 -0
- data/lib/brcobranca/arquivos/logos/banespa.jpg +0 -0
- data/lib/brcobranca/arquivos/logos/caixa.jpg +0 -0
- data/lib/brcobranca/boleto/banco_brasil.rb +150 -77
- data/lib/brcobranca/boleto/base.rb +146 -75
- data/lib/brcobranca/boleto/bradesco.rb +69 -0
- data/lib/brcobranca/boleto/caixa.rb +100 -0
- data/lib/brcobranca/boleto/hsbc.rb +95 -0
- data/lib/brcobranca/boleto/itau.rb +133 -0
- data/lib/brcobranca/boleto/real.rb +74 -0
- data/lib/brcobranca/boleto/template/base.rb +13 -0
- data/lib/brcobranca/boleto/template/rghost.rb +136 -62
- data/lib/brcobranca/boleto/unibanco.rb +115 -0
- data/lib/brcobranca/calculo.rb +132 -0
- data/lib/brcobranca/calculo_data.rb +42 -0
- data/lib/brcobranca/currency.rb +3 -4
- data/lib/brcobranca/formatacao.rb +102 -0
- data/lib/brcobranca/limpeza.rb +19 -0
- data/lib/brcobranca/retorno/base.rb +1 -2
- data/lib/brcobranca/retorno/retorno_cbr643.rb +42 -40
- data/lib/brcobranca/version.rb +3 -0
- data/lib/brcobranca.rb +93 -16
- data/spec/brcobranca/banco_bradesco_spec.rb +63 -50
- data/spec/brcobranca/banco_brasil_spec.rb +102 -136
- data/spec/brcobranca/banco_caixa_spec.rb +166 -0
- data/spec/brcobranca/banco_hsbc_spec.rb +83 -76
- data/spec/brcobranca/banco_real_spec.rb +54 -37
- data/spec/brcobranca/banco_unibanco_spec.rb +69 -52
- data/spec/brcobranca/base_spec.rb +24 -79
- data/spec/brcobranca/boletos_em_lote_spec.rb +46 -0
- data/spec/brcobranca/core_ext_spec.rb +24 -114
- data/spec/brcobranca/currency_spec.rb +1 -0
- data/spec/brcobranca/{banco_itau_spec.rb → itau_spec.rb} +112 -67
- data/spec/brcobranca/retorno_cbr643_spec.rb +13 -12
- data/spec/brcobranca/rghost_spec.rb +8 -7
- data/spec/brcobranca_spec.rb +16 -6
- data/spec/spec_helper.rb +11 -8
- metadata +107 -58
- data/Manifest.txt +0 -51
- data/PostInstall.txt +0 -4
- data/lib/brcobranca/boleto/banco_banespa.rb +0 -85
- data/lib/brcobranca/boleto/banco_bradesco.rb +0 -44
- data/lib/brcobranca/boleto/banco_hsbc.rb +0 -77
- data/lib/brcobranca/boleto/banco_itau.rb +0 -115
- data/lib/brcobranca/boleto/banco_real.rb +0 -70
- data/lib/brcobranca/boleto/banco_unibanco.rb +0 -79
- data/lib/brcobranca/boleto/template/util.rb +0 -32
- data/lib/brcobranca/config.rb +0 -9
- data/lib/brcobranca/core_ext.rb +0 -279
- data/spec/brcobranca/banco_banespa_spec.rb +0 -195
- data/spec/brcobranca/template/rghost_spec.rb +0 -65
- data/spec/brcobranca/template/util_spec.rb +0 -42
- data/spec/rcov.opts +0 -2
- data/spec/spec.opts +0 -6
- data/tasks/rcov.rake +0 -12
- data/tasks/rspec.rake +0 -21
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brcobranca
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 7
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 3
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 3.0.0
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Kivanio Barbosa
|
@@ -9,140 +15,183 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
18
|
+
date: 2011-04-14 00:00:00 -04:00
|
13
19
|
default_executable:
|
14
20
|
dependencies:
|
15
21
|
- !ruby/object:Gem::Dependency
|
16
22
|
name: rghost
|
17
|
-
|
18
|
-
|
19
|
-
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
20
26
|
requirements:
|
21
27
|
- - ">="
|
22
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 49
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 8
|
33
|
+
- 7
|
23
34
|
version: 0.8.7
|
24
|
-
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
25
37
|
- !ruby/object:Gem::Dependency
|
26
38
|
name: rghost_barcode
|
27
|
-
|
28
|
-
|
29
|
-
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
30
42
|
requirements:
|
31
43
|
- - ">="
|
32
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 27
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
- 8
|
33
49
|
version: "0.8"
|
34
|
-
|
50
|
+
type: :runtime
|
51
|
+
version_requirements: *id002
|
35
52
|
- !ruby/object:Gem::Dependency
|
36
53
|
name: parseline
|
37
|
-
|
38
|
-
|
39
|
-
|
54
|
+
prerelease: false
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
40
57
|
requirements:
|
41
58
|
- - ">="
|
42
59
|
- !ruby/object:Gem::Version
|
60
|
+
hash: 17
|
61
|
+
segments:
|
62
|
+
- 1
|
63
|
+
- 0
|
64
|
+
- 3
|
43
65
|
version: 1.0.3
|
44
|
-
|
66
|
+
type: :runtime
|
67
|
+
version_requirements: *id003
|
45
68
|
- !ruby/object:Gem::Dependency
|
46
|
-
name:
|
47
|
-
|
48
|
-
|
49
|
-
|
69
|
+
name: activemodel
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
50
73
|
requirements:
|
51
74
|
- - ">="
|
52
75
|
- !ruby/object:Gem::Version
|
53
|
-
|
54
|
-
|
76
|
+
hash: 7
|
77
|
+
segments:
|
78
|
+
- 3
|
79
|
+
- 0
|
80
|
+
- 0
|
81
|
+
version: 3.0.0
|
82
|
+
type: :runtime
|
83
|
+
version_requirements: *id004
|
55
84
|
description: "Gem para emiss\xC3\xA3o de bloquetos de cobran\xC3\xA7a de bancos brasileiros."
|
56
|
-
email:
|
57
|
-
- kivanio@gmail.com
|
85
|
+
email: kivanio@gmail.com
|
58
86
|
executables: []
|
59
87
|
|
60
88
|
extensions: []
|
61
89
|
|
62
|
-
extra_rdoc_files:
|
63
|
-
|
64
|
-
- Manifest.txt
|
65
|
-
- PostInstall.txt
|
90
|
+
extra_rdoc_files: []
|
91
|
+
|
66
92
|
files:
|
93
|
+
- .document
|
94
|
+
- .gitignore
|
95
|
+
- Gemfile
|
96
|
+
- Gemfile.lock
|
67
97
|
- History.txt
|
68
|
-
-
|
69
|
-
- PostInstall.txt
|
98
|
+
- LICENSE
|
70
99
|
- README.rdoc
|
71
100
|
- Rakefile
|
101
|
+
- VERSION
|
72
102
|
- brcobranca.gemspec
|
73
103
|
- lib/brcobranca.rb
|
104
|
+
- lib/brcobranca/arquivos/logos/bancobrasil.jpg
|
74
105
|
- lib/brcobranca/arquivos/logos/banespa.jpg
|
75
|
-
- lib/brcobranca/arquivos/logos/bb.jpg
|
76
106
|
- lib/brcobranca/arquivos/logos/bradesco.jpg
|
107
|
+
- lib/brcobranca/arquivos/logos/caixa.jpg
|
77
108
|
- lib/brcobranca/arquivos/logos/hsbc.jpg
|
78
109
|
- lib/brcobranca/arquivos/logos/itau.jpg
|
79
110
|
- lib/brcobranca/arquivos/logos/real.jpg
|
80
111
|
- lib/brcobranca/arquivos/logos/unibanco.jpg
|
81
112
|
- lib/brcobranca/arquivos/templates/modelo_generico.eps
|
82
|
-
- lib/brcobranca/boleto/banco_banespa.rb
|
83
|
-
- lib/brcobranca/boleto/banco_bradesco.rb
|
84
113
|
- lib/brcobranca/boleto/banco_brasil.rb
|
85
|
-
- lib/brcobranca/boleto/banco_hsbc.rb
|
86
|
-
- lib/brcobranca/boleto/banco_itau.rb
|
87
|
-
- lib/brcobranca/boleto/banco_real.rb
|
88
|
-
- lib/brcobranca/boleto/banco_unibanco.rb
|
89
114
|
- lib/brcobranca/boleto/base.rb
|
115
|
+
- lib/brcobranca/boleto/bradesco.rb
|
116
|
+
- lib/brcobranca/boleto/caixa.rb
|
117
|
+
- lib/brcobranca/boleto/hsbc.rb
|
118
|
+
- lib/brcobranca/boleto/itau.rb
|
119
|
+
- lib/brcobranca/boleto/real.rb
|
120
|
+
- lib/brcobranca/boleto/template/base.rb
|
90
121
|
- lib/brcobranca/boleto/template/rghost.rb
|
91
|
-
- lib/brcobranca/boleto/
|
92
|
-
- lib/brcobranca/
|
93
|
-
- lib/brcobranca/
|
122
|
+
- lib/brcobranca/boleto/unibanco.rb
|
123
|
+
- lib/brcobranca/calculo.rb
|
124
|
+
- lib/brcobranca/calculo_data.rb
|
94
125
|
- lib/brcobranca/currency.rb
|
126
|
+
- lib/brcobranca/formatacao.rb
|
127
|
+
- lib/brcobranca/limpeza.rb
|
95
128
|
- lib/brcobranca/retorno/base.rb
|
96
129
|
- lib/brcobranca/retorno/retorno_cbr643.rb
|
130
|
+
- lib/brcobranca/version.rb
|
97
131
|
- spec/arquivos/CBR64310.RET
|
98
|
-
- spec/brcobranca/banco_banespa_spec.rb
|
99
132
|
- spec/brcobranca/banco_bradesco_spec.rb
|
100
133
|
- spec/brcobranca/banco_brasil_spec.rb
|
134
|
+
- spec/brcobranca/banco_caixa_spec.rb
|
101
135
|
- spec/brcobranca/banco_hsbc_spec.rb
|
102
|
-
- spec/brcobranca/banco_itau_spec.rb
|
103
136
|
- spec/brcobranca/banco_real_spec.rb
|
104
137
|
- spec/brcobranca/banco_unibanco_spec.rb
|
105
138
|
- spec/brcobranca/base_spec.rb
|
139
|
+
- spec/brcobranca/boletos_em_lote_spec.rb
|
106
140
|
- spec/brcobranca/core_ext_spec.rb
|
107
141
|
- spec/brcobranca/currency_spec.rb
|
142
|
+
- spec/brcobranca/itau_spec.rb
|
108
143
|
- spec/brcobranca/retorno_cbr643_spec.rb
|
109
144
|
- spec/brcobranca/rghost_spec.rb
|
110
|
-
- spec/brcobranca/template/rghost_spec.rb
|
111
|
-
- spec/brcobranca/template/util_spec.rb
|
112
145
|
- spec/brcobranca_spec.rb
|
113
|
-
- spec/rcov.opts
|
114
|
-
- spec/spec.opts
|
115
146
|
- spec/spec_helper.rb
|
116
|
-
- tasks/rcov.rake
|
117
|
-
- tasks/rspec.rake
|
118
147
|
has_rdoc: true
|
119
|
-
homepage: http://
|
148
|
+
homepage: http://rubygems.org/gems/brcobranca
|
120
149
|
licenses: []
|
121
150
|
|
122
|
-
post_install_message:
|
123
|
-
rdoc_options:
|
124
|
-
|
125
|
-
- README.rdoc
|
151
|
+
post_install_message: "\n ===========================================================================\n Visite http://www.boletorails.com.br para ver exemplos!\n ===========================================================================\n "
|
152
|
+
rdoc_options: []
|
153
|
+
|
126
154
|
require_paths:
|
127
155
|
- lib
|
128
156
|
required_ruby_version: !ruby/object:Gem::Requirement
|
157
|
+
none: false
|
129
158
|
requirements:
|
130
159
|
- - ">="
|
131
160
|
- !ruby/object:Gem::Version
|
161
|
+
hash: 3
|
162
|
+
segments:
|
163
|
+
- 0
|
132
164
|
version: "0"
|
133
|
-
version:
|
134
165
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
|
+
none: false
|
135
167
|
requirements:
|
136
168
|
- - ">="
|
137
169
|
- !ruby/object:Gem::Version
|
170
|
+
hash: 3
|
171
|
+
segments:
|
172
|
+
- 0
|
138
173
|
version: "0"
|
139
|
-
|
140
|
-
|
141
|
-
|
174
|
+
requirements:
|
175
|
+
- "GhostScript > 8.0, para gear PDF e c\xC3\xB3digo de Barras"
|
142
176
|
rubyforge_project: brcobranca
|
143
|
-
rubygems_version: 1.
|
177
|
+
rubygems_version: 1.5.2
|
144
178
|
signing_key:
|
145
179
|
specification_version: 3
|
146
180
|
summary: "Gem que permite trabalhar com bloquetos de cobran\xC3\xA7a para bancos brasileiros."
|
147
|
-
test_files:
|
148
|
-
|
181
|
+
test_files:
|
182
|
+
- spec/arquivos/CBR64310.RET
|
183
|
+
- spec/brcobranca/banco_bradesco_spec.rb
|
184
|
+
- spec/brcobranca/banco_brasil_spec.rb
|
185
|
+
- spec/brcobranca/banco_caixa_spec.rb
|
186
|
+
- spec/brcobranca/banco_hsbc_spec.rb
|
187
|
+
- spec/brcobranca/banco_real_spec.rb
|
188
|
+
- spec/brcobranca/banco_unibanco_spec.rb
|
189
|
+
- spec/brcobranca/base_spec.rb
|
190
|
+
- spec/brcobranca/boletos_em_lote_spec.rb
|
191
|
+
- spec/brcobranca/core_ext_spec.rb
|
192
|
+
- spec/brcobranca/currency_spec.rb
|
193
|
+
- spec/brcobranca/itau_spec.rb
|
194
|
+
- spec/brcobranca/retorno_cbr643_spec.rb
|
195
|
+
- spec/brcobranca/rghost_spec.rb
|
196
|
+
- spec/brcobranca_spec.rb
|
197
|
+
- spec/spec_helper.rb
|
data/Manifest.txt
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
History.txt
|
2
|
-
Manifest.txt
|
3
|
-
PostInstall.txt
|
4
|
-
README.rdoc
|
5
|
-
Rakefile
|
6
|
-
brcobranca.gemspec
|
7
|
-
lib/brcobranca.rb
|
8
|
-
lib/brcobranca/arquivos/logos/banespa.jpg
|
9
|
-
lib/brcobranca/arquivos/logos/bb.jpg
|
10
|
-
lib/brcobranca/arquivos/logos/bradesco.jpg
|
11
|
-
lib/brcobranca/arquivos/logos/hsbc.jpg
|
12
|
-
lib/brcobranca/arquivos/logos/itau.jpg
|
13
|
-
lib/brcobranca/arquivos/logos/real.jpg
|
14
|
-
lib/brcobranca/arquivos/logos/unibanco.jpg
|
15
|
-
lib/brcobranca/arquivos/templates/modelo_generico.eps
|
16
|
-
lib/brcobranca/boleto/banco_banespa.rb
|
17
|
-
lib/brcobranca/boleto/banco_bradesco.rb
|
18
|
-
lib/brcobranca/boleto/banco_brasil.rb
|
19
|
-
lib/brcobranca/boleto/banco_hsbc.rb
|
20
|
-
lib/brcobranca/boleto/banco_itau.rb
|
21
|
-
lib/brcobranca/boleto/banco_real.rb
|
22
|
-
lib/brcobranca/boleto/banco_unibanco.rb
|
23
|
-
lib/brcobranca/boleto/base.rb
|
24
|
-
lib/brcobranca/boleto/template/rghost.rb
|
25
|
-
lib/brcobranca/boleto/template/util.rb
|
26
|
-
lib/brcobranca/config.rb
|
27
|
-
lib/brcobranca/core_ext.rb
|
28
|
-
lib/brcobranca/currency.rb
|
29
|
-
lib/brcobranca/retorno/base.rb
|
30
|
-
lib/brcobranca/retorno/retorno_cbr643.rb
|
31
|
-
spec/arquivos/CBR64310.RET
|
32
|
-
spec/brcobranca/banco_banespa_spec.rb
|
33
|
-
spec/brcobranca/banco_bradesco_spec.rb
|
34
|
-
spec/brcobranca/banco_brasil_spec.rb
|
35
|
-
spec/brcobranca/banco_hsbc_spec.rb
|
36
|
-
spec/brcobranca/banco_itau_spec.rb
|
37
|
-
spec/brcobranca/banco_real_spec.rb
|
38
|
-
spec/brcobranca/banco_unibanco_spec.rb
|
39
|
-
spec/brcobranca/base_spec.rb
|
40
|
-
spec/brcobranca/core_ext_spec.rb
|
41
|
-
spec/brcobranca/currency_spec.rb
|
42
|
-
spec/brcobranca/retorno_cbr643_spec.rb
|
43
|
-
spec/brcobranca/rghost_spec.rb
|
44
|
-
spec/brcobranca/template/rghost_spec.rb
|
45
|
-
spec/brcobranca/template/util_spec.rb
|
46
|
-
spec/brcobranca_spec.rb
|
47
|
-
spec/rcov.opts
|
48
|
-
spec/spec.opts
|
49
|
-
spec/spec_helper.rb
|
50
|
-
tasks/rcov.rake
|
51
|
-
tasks/rspec.rake
|
data/PostInstall.txt
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
# Banco BANESPA
|
2
|
-
class BancoBanespa < Brcobranca::Boleto::Base
|
3
|
-
|
4
|
-
def initialize(campos={})
|
5
|
-
padrao = {:carteira => "COB", :banco => "033"}
|
6
|
-
campos = padrao.merge!(campos)
|
7
|
-
super(campos)
|
8
|
-
end
|
9
|
-
|
10
|
-
# Número sequencial utilizado para distinguir os boletos na agência
|
11
|
-
def nosso_numero
|
12
|
-
"#{self.agencia.zeros_esquerda(:tamanho => 3)}#{self.numero_documento.zeros_esquerda(:tamanho => 7)}"
|
13
|
-
end
|
14
|
-
|
15
|
-
# Retorna dígito verificador do nosso número calculado como contas na documentação
|
16
|
-
def nosso_numero_dv
|
17
|
-
self.nosso_numero.zeros_esquerda(:tamanho => 10).modulo_10_banespa
|
18
|
-
end
|
19
|
-
|
20
|
-
# Retorna nosso numero pronto para exibir no boleto
|
21
|
-
def nosso_numero_boleto
|
22
|
-
"#{self.nosso_numero[0..2]} #{self.nosso_numero[3..9]} #{self.nosso_numero_dv}"
|
23
|
-
end
|
24
|
-
|
25
|
-
def agencia_conta_boleto
|
26
|
-
convenio = self.convenio.zeros_esquerda(:tamanho => 11)
|
27
|
-
"#{convenio[0..2]} #{convenio[3..4]} #{convenio[5..9]} #{convenio[10..10]}"
|
28
|
-
end
|
29
|
-
|
30
|
-
# Responsável por montar uma String com 43 caracteres que será usado na criação do código de barras.
|
31
|
-
def monta_codigo_43_digitos
|
32
|
-
banco = self.banco.zeros_esquerda(:tamanho => 3)
|
33
|
-
fator = self.data_vencimento.fator_vencimento.zeros_esquerda(:tamanho => 4)
|
34
|
-
valor_documento = self.valor_documento.limpa_valor_moeda.zeros_esquerda(:tamanho => 10)
|
35
|
-
numero = "#{banco}#{self.moeda}#{fator}#{valor_documento}#{self.campo_livre_com_dv1_e_dv2}"
|
36
|
-
numero.size == 43 ? numero : nil
|
37
|
-
end
|
38
|
-
|
39
|
-
# CAMPO LIVRE
|
40
|
-
# Código do cedente PIC 9 (011)
|
41
|
-
# Nosso número PIC 9 (007)
|
42
|
-
# Filler PIC 9 (002) = 00
|
43
|
-
# Código do banco cedente PIC 9 (003) = 033
|
44
|
-
# Dígito verificador 1 PIC 9 (001)
|
45
|
-
# Dígito verificador 2 PIC 9 (001)
|
46
|
-
def campo_livre
|
47
|
-
"#{self.convenio.zeros_esquerda(:tamanho => 11)}#{self.numero_documento.zeros_esquerda(:tamanho => 7)}00#{self.banco.zeros_esquerda(:tamanho => 3)}"
|
48
|
-
end
|
49
|
-
|
50
|
-
#campo livre com os digitos verificadores como conta na documentação do banco
|
51
|
-
def campo_livre_com_dv1_e_dv2
|
52
|
-
dv1 = self.campo_livre.modulo10 #dv 1 inicial
|
53
|
-
dv2 = nil
|
54
|
-
multiplicadores = [2,3,4,5,6,7]
|
55
|
-
begin
|
56
|
-
recalcular_dv2 = false
|
57
|
-
valor_inicial = "#{self.campo_livre}#{dv1}"
|
58
|
-
total = 0
|
59
|
-
multiplicador_posicao = 0
|
60
|
-
|
61
|
-
valor_inicial.split(//).reverse!.each do |caracter|
|
62
|
-
multiplicador_posicao = 0 if (multiplicador_posicao == 6)
|
63
|
-
total += (caracter.to_i * multiplicadores[multiplicador_posicao])
|
64
|
-
multiplicador_posicao += 1
|
65
|
-
end
|
66
|
-
|
67
|
-
case total % 11
|
68
|
-
when 0 then
|
69
|
-
dv2 = 0
|
70
|
-
when 1 then
|
71
|
-
if dv1 == 9
|
72
|
-
dv1 = 0
|
73
|
-
else
|
74
|
-
dv1 += 1
|
75
|
-
end
|
76
|
-
recalcular_dv2 = true
|
77
|
-
else
|
78
|
-
dv2 = 11 - (total % 11)
|
79
|
-
end
|
80
|
-
end while(recalcular_dv2)
|
81
|
-
|
82
|
-
return "#{self.campo_livre}#{dv1}#{dv2}"
|
83
|
-
end
|
84
|
-
|
85
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# Banco BRADESCO
|
2
|
-
class BancoBradesco < Brcobranca::Boleto::Base
|
3
|
-
# Responsável por definir dados iniciais quando se cria uma nova intancia da classe BancoBradesco
|
4
|
-
def initialize(campos={})
|
5
|
-
padrao={:carteira => "06", :banco => "237"}
|
6
|
-
campos = padrao.merge!(campos)
|
7
|
-
super(campos)
|
8
|
-
end
|
9
|
-
|
10
|
-
# Campo usado apenas na exibição no boleto
|
11
|
-
# Deverá ser sobreescrito para cada banco
|
12
|
-
def nosso_numero_boleto
|
13
|
-
"#{self.carteira}/#{self.numero_documento.zeros_esquerda(:tamanho => 11)}-#{self.nosso_numero_dv}"
|
14
|
-
end
|
15
|
-
|
16
|
-
# Campo usado apenas na exibição no boleto
|
17
|
-
# Deverá ser sobreescrito para cada banco
|
18
|
-
def agencia_conta_boleto
|
19
|
-
"#{self.agencia}-#{self.agencia_dv} / #{self.conta_corrente}-#{self.conta_corrente_dv}"
|
20
|
-
end
|
21
|
-
|
22
|
-
# Responsável por montar uma String com 43 caracteres que será usado na criação do código de barras
|
23
|
-
# As posições do campo livre ficam a critério de cada Banco arrecadador, sendo que o
|
24
|
-
# padrão do Bradesco é:
|
25
|
-
# Posição Tamanho Conteúdo
|
26
|
-
# 20 a 23 4 Agência Cedente (Sem o digito verificador, completar com zeros a esquerda quando necessário)
|
27
|
-
# 24 a 25 2 Carteira
|
28
|
-
# 26 a 36 11 Número do Nosso Número(Sem o digito verificador)
|
29
|
-
# 37 a 43 7 Conta do Cedente (Sem o digito verificador, completar com zeros a esquerda quando necessário)
|
30
|
-
# 44 a 44 1 Zero
|
31
|
-
|
32
|
-
def monta_codigo_43_digitos
|
33
|
-
banco = self.banco.zeros_esquerda(:tamanho => 3)
|
34
|
-
fator = self.data_vencimento.fator_vencimento
|
35
|
-
valor_documento = self.valor_documento.limpa_valor_moeda.zeros_esquerda(:tamanho => 10)
|
36
|
-
agencia = self.agencia.zeros_esquerda(:tamanho => 4)
|
37
|
-
carteira = self.carteira.zeros_esquerda(:tamanho => 2)
|
38
|
-
numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 11)
|
39
|
-
conta = self.conta_corrente.zeros_esquerda(:tamanho => 7)
|
40
|
-
|
41
|
-
numero = "#{banco}#{self.moeda}#{fator}#{valor_documento}#{agencia}#{carteira}#{numero_documento}#{conta}0"
|
42
|
-
numero.size == 43 ? numero : nil
|
43
|
-
end
|
44
|
-
end
|
@@ -1,77 +0,0 @@
|
|
1
|
-
# Banco HSBC
|
2
|
-
class BancoHsbc < Brcobranca::Boleto::Base
|
3
|
-
|
4
|
-
# Responsável por definir dados iniciais quando se cria uma nova intância da classe BancoBrasil
|
5
|
-
def initialize(campos={})
|
6
|
-
padrao={:carteira => "CNR", :banco => "399"}
|
7
|
-
campos = padrao.merge!(campos)
|
8
|
-
super(campos)
|
9
|
-
end
|
10
|
-
|
11
|
-
# Número sequencial utilizado para distinguir os boletos na agência
|
12
|
-
def nosso_numero
|
13
|
-
if self.data_vencimento.kind_of?(Date)
|
14
|
-
self.codigo_servico = 4
|
15
|
-
dia = self.data_vencimento.day.to_s.zeros_esquerda(:tamanho => 2)
|
16
|
-
mes = self.data_vencimento.month.to_s.zeros_esquerda(:tamanho => 2)
|
17
|
-
ano = self.data_vencimento.year.to_s[2..3]
|
18
|
-
data = "#{dia}#{mes}#{ano}"
|
19
|
-
|
20
|
-
numero_documento = "#{self.numero_documento.to_s}#{self.numero_documento.to_s.modulo11_9to2_10_como_zero}#{self.codigo_servico.to_s}"
|
21
|
-
soma = numero_documento.to_i + self.conta_corrente.to_i + data.to_i
|
22
|
-
numero = "#{numero_documento}#{soma.to_s.modulo11_9to2_10_como_zero}"
|
23
|
-
numero
|
24
|
-
else
|
25
|
-
self.codigo_servico = 5
|
26
|
-
numero_documento = "#{self.numero_documento.to_s}#{self.numero_documento.to_s.modulo11_9to2_10_como_zero}#{self.codigo_servico.to_s}"
|
27
|
-
soma = numero_documento.to_i + self.conta_corrente.to_i
|
28
|
-
numero = "#{numero_documento}#{soma.to_s.modulo11_9to2_10_como_zero}"
|
29
|
-
numero
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
# Campo usado apenas na exibição no boleto
|
34
|
-
# Deverá ser sobreescrito para cada banco
|
35
|
-
def nosso_numero_boleto
|
36
|
-
"#{self.nosso_numero}"
|
37
|
-
end
|
38
|
-
|
39
|
-
# Campo usado apenas na exibição no boleto
|
40
|
-
# Deverá ser sobreescrito para cada banco
|
41
|
-
def agencia_conta_boleto
|
42
|
-
"#{self.conta_corrente}"
|
43
|
-
end
|
44
|
-
|
45
|
-
# Responsável por montar uma String com 43 caracteres que será usado na criação do código de barras
|
46
|
-
def monta_codigo_43_digitos
|
47
|
-
banco = self.banco.zeros_esquerda(:tamanho => 3)
|
48
|
-
valor_documento = self.valor_documento.limpa_valor_moeda.zeros_esquerda(:tamanho => 10)
|
49
|
-
convenio = self.convenio.to_s
|
50
|
-
conta = self.conta_corrente.zeros_esquerda(:tamanho => 7)
|
51
|
-
|
52
|
-
# Montagem é baseada no tipo de carteira e na presença da data de vencimento
|
53
|
-
if self.carteira == "CNR"
|
54
|
-
if self.data_vencimento.kind_of?(Date)
|
55
|
-
raise "numero_documento pode ser de no máximo 13 caracteres." if (self.numero_documento.to_s.size > 13)
|
56
|
-
fator = self.data_vencimento.fator_vencimento
|
57
|
-
dias_julianos = self.data_vencimento.to_juliano
|
58
|
-
self.codigo_servico = 4
|
59
|
-
numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 13)
|
60
|
-
numero = "#{banco}#{self.moeda}#{fator}#{valor_documento}#{conta}#{numero_documento}#{dias_julianos}2"
|
61
|
-
numero.size == 43 ? numero : nil
|
62
|
-
else
|
63
|
-
# TODO
|
64
|
-
nil
|
65
|
-
end
|
66
|
-
else
|
67
|
-
# TODO
|
68
|
-
# raise "numero_documento pode ser de no máximo 6 caracteres." if (self.numero_documento.to_s.size > 6)
|
69
|
-
# numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 6)
|
70
|
-
# nosso_numero = self.nosso_numero.zeros_esquerda(:tamanho => 9)
|
71
|
-
# self.codigo_servico = 5
|
72
|
-
|
73
|
-
nil
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
end
|
@@ -1,115 +0,0 @@
|
|
1
|
-
# Banco Itaú
|
2
|
-
class BancoItau < Brcobranca::Boleto::Base
|
3
|
-
# Usado somente em carteiras especiais com registro para complementar o número do cocumento
|
4
|
-
attr_accessor :seu_numero
|
5
|
-
|
6
|
-
# Responsável por definir dados iniciais quando se cria uma nova intancia da classe BancoItau
|
7
|
-
def initialize(campos={})
|
8
|
-
padrao={:carteira => "175", :banco => "341"}
|
9
|
-
campos = padrao.merge!(campos)
|
10
|
-
super(campos)
|
11
|
-
end
|
12
|
-
|
13
|
-
# Retorna dígito verificador do nosso número, calculado com modulo10.
|
14
|
-
# Para a grande maioria das carteiras, são considerados para a obtenção do DAC/DV, os dados
|
15
|
-
# "AGENCIA(sem DAC/DV)/CONTA(sem DAC/DV)/CARTEIRA/NOSSO NUMERO", calculado pelo criterio do Modulo 10.
|
16
|
-
# A excecao, estão as carteiras 126, 131, 146, 150 e 168 cuja obtenção esta baseada apenas nos
|
17
|
-
# dados "CARTEIRA/NOSSO NUMERO".
|
18
|
-
def nosso_numero_dv
|
19
|
-
if %w(126 131 146 150 168).include?(self.carteira)
|
20
|
-
"#{self.carteira}#{self.numero_documento}".modulo10
|
21
|
-
else
|
22
|
-
numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 8)
|
23
|
-
"#{self.agencia}#{self.conta_corrente}#{self.carteira}#{numero_documento}".modulo10
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# Calcula o dígito verificador para conta corrente do Itau.
|
28
|
-
# Retorna apenas o dígito verificador da conta ou nil caso seja impossível calcular.
|
29
|
-
def agencia_conta_corrente_dv
|
30
|
-
"#{self.agencia}#{self.conta_corrente}".modulo10
|
31
|
-
end
|
32
|
-
|
33
|
-
# Campo usado apenas na exibição no boleto
|
34
|
-
# Deverá ser sobreescrito para cada banco
|
35
|
-
def nosso_numero_boleto
|
36
|
-
"#{self.carteira}/#{self.numero_documento}-#{self.nosso_numero_dv}"
|
37
|
-
end
|
38
|
-
|
39
|
-
# Campo usado apenas na exibição no boleto
|
40
|
-
# Deverá ser sobreescrito para cada banco
|
41
|
-
def agencia_conta_boleto
|
42
|
-
"#{self.agencia}-#{self.agencia_dv} / #{self.conta_corrente}-#{self.conta_corrente_dv}"
|
43
|
-
end
|
44
|
-
|
45
|
-
# Responsável por montar uma String com 43 caracteres que será usado na criação do código de barras.
|
46
|
-
def monta_codigo_43_digitos
|
47
|
-
valor_documento_formatado = self.valor_documento.limpa_valor_moeda.zeros_esquerda(:tamanho => 10)
|
48
|
-
fator_vencimento = self.data_vencimento.fator_vencimento
|
49
|
-
numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 8)
|
50
|
-
return nil if numero_documento.size != 8
|
51
|
-
|
52
|
-
# Monta a String baseado no tipo de carteira
|
53
|
-
case self.carteira.to_i
|
54
|
-
when 126, 131, 146, 150, 168
|
55
|
-
# CARTEIRAS 126 131 146 150 168
|
56
|
-
# 01 a 03 03 9(03) Código do Banco na Câmara de Compensação = '341'
|
57
|
-
# 04 a 04 01 9(01) Código da Moeda = '9'
|
58
|
-
# 05 a 05 01 9(01) DAC código de Barras MOD 11-2a9
|
59
|
-
# 06 a 09 04 9(04) Fator de Vencimento
|
60
|
-
# 10 a 19 10 9(08)V(2) Valor
|
61
|
-
# 20 a 22 03 9(03) Carteira
|
62
|
-
# 23 a 30 08 9(08) Nosso Número
|
63
|
-
# 31 a 31 01 9(01) DAC [Carteira/Nosso Número] MOD 10
|
64
|
-
# 32 a 35 04 9(04) N.º da Agência cedente
|
65
|
-
# 36 a 40 05 9(05) N.º da Conta Corrente
|
66
|
-
# 41 a 41 01 9(01) DAC [Agência/Conta Corrente] MOD 10
|
67
|
-
# 42 a 44 03 9(03) Zeros
|
68
|
-
codigo = "#{self.banco}#{self.moeda}#{fator_vencimento}#{valor_documento_formatado}#{self.carteira}"
|
69
|
-
codigo << "#{numero_documento}#{self.nosso_numero_dv}#{self.agencia}#{self.conta_corrente}#{self.agencia_conta_corrente_dv}000"
|
70
|
-
codigo
|
71
|
-
codigo.size == 43 ? codigo : nil
|
72
|
-
when 198, 106, 107, 122, 142, 143, 195, 196
|
73
|
-
# CARTEIRAS 198, 106, 107,122, 142, 143, 195 e 196
|
74
|
-
# 01 a 03 03 9(3) Código do Banco na Câmara de Compensação = ‘341’
|
75
|
-
# 04 a 04 01 9(1) Código da Moeda = '9'
|
76
|
-
# 05 a 05 01 9(1) DAC do Código de Barras MOD 11-2a9
|
77
|
-
# 06 a 09 04 9(04) Fator de Vencimento
|
78
|
-
# 10 a 19 10 9(08) V(2) Valor
|
79
|
-
# 20 a 22 03 9(3) Carteira
|
80
|
-
# 23 a 30 08 9(8) Nosso Número
|
81
|
-
# 31 a 37 07 9(7) Seu Número (Número do Documento)
|
82
|
-
# 38 a 42 05 9(5) Código do Cliente (fornecido pelo Banco)
|
83
|
-
# 43 a 43 01 9(1) DAC dos campos acima (posições 20 a 42) MOD 10
|
84
|
-
# 44 a 44 01 9(1) Zero
|
85
|
-
seu_numero = self.seu_numero.zeros_esquerda(:tamanho => 7)
|
86
|
-
return nil if seu_numero.size != 7
|
87
|
-
convenio = self.convenio.zeros_esquerda(:tamanho => 5)
|
88
|
-
return nil if convenio.size != 5
|
89
|
-
dv = "#{self.carteira}#{numero_documento}#{seu_numero}#{convenio}".modulo10
|
90
|
-
|
91
|
-
codigo = "#{self.banco}#{self.moeda}#{fator_vencimento}#{valor_documento_formatado}#{self.carteira}"
|
92
|
-
codigo << "#{numero_documento}#{seu_numero}#{convenio}#{dv}0"
|
93
|
-
codigo
|
94
|
-
codigo.size == 43 ? codigo : nil
|
95
|
-
else
|
96
|
-
# DEMAIS CARTEIRAS
|
97
|
-
# 01 a 03 03 9(03) Código do Banco na Câmara de Compensação = '341'
|
98
|
-
# 04 a 04 01 9(01) Código da Moeda = '9'
|
99
|
-
# 05 a 05 01 9(01) DAC código de Barras MOD 11-2a9
|
100
|
-
# 06 a 09 04 9(04) Fator de Vencimento
|
101
|
-
# 10 a 19 10 9(08)V(2) Valor
|
102
|
-
# 20 a 22 03 9(03) Carteira
|
103
|
-
# 23 a 30 08 9(08) Nosso Número
|
104
|
-
# 31 a 31 01 9(01) DAC [Agência /Conta/Carteira/Nosso Número] MOD 10
|
105
|
-
# 32 a 35 04 9(04) N.º da Agência cedente
|
106
|
-
# 36 a 40 05 9(05) N.º da Conta Corrente
|
107
|
-
# 41 a 41 01 9(01) DAC [Agência/Conta Corrente] MOD 10
|
108
|
-
# 42 a 44 03 9(03) Zeros
|
109
|
-
codigo = "#{self.banco}#{self.moeda}#{fator_vencimento}#{valor_documento_formatado}#{self.carteira}"
|
110
|
-
codigo << "#{numero_documento}#{self.nosso_numero_dv}#{self.agencia}#{self.conta_corrente}#{self.agencia_conta_corrente_dv}000"
|
111
|
-
codigo
|
112
|
-
codigo.size == 43 ? codigo : nil
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|