brcobranca 2.0.2 → 2.0.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.
- data/History.txt +7 -2
- data/Manifest.txt +6 -0
- data/README.rdoc +8 -3
- data/brcobranca.gemspec +4 -6
- data/lib/brcobranca/arquivos/logos/bradesco.jpg +0 -0
- data/lib/brcobranca/arquivos/logos/unibanco.jpg +0 -0
- data/lib/brcobranca/boleto/banco_bradesco.rb +31 -0
- data/lib/brcobranca/boleto/banco_unibanco.rb +65 -0
- data/lib/brcobranca/boleto/base.rb +9 -0
- data/lib/brcobranca/boleto/template/util.rb +5 -1
- data/lib/brcobranca/core_ext.rb +25 -6
- data/lib/brcobranca.rb +2 -2
- data/test/test_banco_bradesco.rb +87 -0
- data/test/test_banco_brasil.rb +1 -1
- data/test/test_banco_hsbc.rb +1 -1
- data/test/test_banco_itau.rb +1 -1
- data/test/test_banco_real.rb +1 -1
- data/test/test_banco_unibanco.rb +92 -0
- data/test/test_base.rb +1 -1
- data/test/test_core_ext.rb +1 -1
- data/test/test_currency.rb +1 -1
- data/test/test_retorno_cbr643.rb +1 -1
- metadata +11 -24
- data.tar.gz.sig +0 -2
- metadata.gz.sig +0 -0
data/History.txt
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
+
== 2.0.3 25-04-2009
|
|
2
|
+
|
|
3
|
+
* Incluindo boleto para o banco Bradesco(Todas as Carteiras)
|
|
4
|
+
* Incluindo boleto para o banco UNIBANCO(com e sem registro)
|
|
5
|
+
|
|
1
6
|
== 2.0.2 21-04-2009
|
|
2
7
|
|
|
3
|
-
* Incluindo
|
|
8
|
+
* Incluindo boleto para o banco Real(com e sem registro)
|
|
4
9
|
|
|
5
10
|
== 2.0.1 19-04-2009
|
|
6
11
|
|
|
7
|
-
* Ajustes finais para
|
|
12
|
+
* Ajustes finais para lançamento
|
|
8
13
|
|
|
9
14
|
== 2.0.0 06-04-2009
|
|
10
15
|
|
data/Manifest.txt
CHANGED
|
@@ -6,14 +6,18 @@ brcobranca.gemspec
|
|
|
6
6
|
config/website.yml
|
|
7
7
|
lib/brcobranca.rb
|
|
8
8
|
lib/brcobranca/arquivos/logos/bb.jpg
|
|
9
|
+
lib/brcobranca/arquivos/logos/bradesco.jpg
|
|
9
10
|
lib/brcobranca/arquivos/logos/hsbc.jpg
|
|
10
11
|
lib/brcobranca/arquivos/logos/itau.jpg
|
|
11
12
|
lib/brcobranca/arquivos/logos/real.jpg
|
|
13
|
+
lib/brcobranca/arquivos/logos/unibanco.jpg
|
|
12
14
|
lib/brcobranca/arquivos/templates/modelo_generico.eps
|
|
15
|
+
lib/brcobranca/boleto/banco_bradesco.rb
|
|
13
16
|
lib/brcobranca/boleto/banco_brasil.rb
|
|
14
17
|
lib/brcobranca/boleto/banco_hsbc.rb
|
|
15
18
|
lib/brcobranca/boleto/banco_itau.rb
|
|
16
19
|
lib/brcobranca/boleto/banco_real.rb
|
|
20
|
+
lib/brcobranca/boleto/banco_unibanco.rb
|
|
17
21
|
lib/brcobranca/boleto/base.rb
|
|
18
22
|
lib/brcobranca/boleto/template/rghost.rb
|
|
19
23
|
lib/brcobranca/boleto/template/util.rb
|
|
@@ -26,10 +30,12 @@ script/destroy
|
|
|
26
30
|
script/generate
|
|
27
31
|
script/txt2html
|
|
28
32
|
test/arquivos/CBR64310.RET
|
|
33
|
+
test/test_banco_bradesco.rb
|
|
29
34
|
test/test_banco_brasil.rb
|
|
30
35
|
test/test_banco_hsbc.rb
|
|
31
36
|
test/test_banco_itau.rb
|
|
32
37
|
test/test_banco_real.rb
|
|
38
|
+
test/test_banco_unibanco.rb
|
|
33
39
|
test/test_base.rb
|
|
34
40
|
test/test_core_ext.rb
|
|
35
41
|
test/test_currency.rb
|
data/README.rdoc
CHANGED
|
@@ -12,7 +12,6 @@ Gem para emissão de bloquetos de cobrança para bancos brasileiros
|
|
|
12
12
|
|
|
13
13
|
== Bancos Disponíveis
|
|
14
14
|
|
|
15
|
-
|
|
16
15
|
* Banco do Brasil
|
|
17
16
|
* TODAS AS CARTEIRAS PRESENTES NA DOCUMENTAÇÃO
|
|
18
17
|
|
|
@@ -25,7 +24,13 @@ Gem para emissão de bloquetos de cobrança para bancos brasileiros
|
|
|
25
24
|
* Banco Real
|
|
26
25
|
* Sem registro
|
|
27
26
|
* Com registro
|
|
28
|
-
|
|
27
|
+
|
|
28
|
+
* Banco Bradesco
|
|
29
|
+
* TODAS AS CARTEIRAS PRESENTES NA DOCUMENTAÇÃO
|
|
30
|
+
|
|
31
|
+
* Banco UNIBANCO
|
|
32
|
+
* Sem registro
|
|
33
|
+
* Com registro
|
|
29
34
|
|
|
30
35
|
== Esta perdido?
|
|
31
36
|
|
|
@@ -36,7 +41,7 @@ Veja a documentação em http://brcobranca.rubyforge.org/rdoc
|
|
|
36
41
|
* rghost
|
|
37
42
|
* rghost_barcode
|
|
38
43
|
* parseline
|
|
39
|
-
* GhostScript
|
|
44
|
+
* GhostScript > 8.0
|
|
40
45
|
|
|
41
46
|
== INSTALAÇÃO
|
|
42
47
|
|
data/brcobranca.gemspec
CHANGED
|
@@ -2,25 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |s|
|
|
4
4
|
s.name = %q{brcobranca}
|
|
5
|
-
s.version = "2.0.
|
|
5
|
+
s.version = "2.0.3"
|
|
6
6
|
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
8
8
|
s.authors = ["Kivanio Barbosa"]
|
|
9
|
-
s.
|
|
10
|
-
s.date = %q{2009-04-21}
|
|
9
|
+
s.date = %q{2009-04-27}
|
|
11
10
|
s.description = %q{Gem para emissão de bloquetos de cobrança de bancos brasileiros.}
|
|
12
11
|
s.email = ["kivanio@gmail.com"]
|
|
13
12
|
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.rdoc", "website/index.txt"]
|
|
14
|
-
s.files = ["History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "brcobranca.gemspec", "config/website.yml", "lib/brcobranca.rb", "lib/brcobranca/arquivos/logos/bb.jpg", "lib/brcobranca/arquivos/logos/hsbc.jpg", "lib/brcobranca/arquivos/logos/itau.jpg", "lib/brcobranca/arquivos/logos/real.jpg", "lib/brcobranca/arquivos/templates/modelo_generico.eps", "lib/brcobranca/boleto/banco_brasil.rb", "lib/brcobranca/boleto/banco_hsbc.rb", "lib/brcobranca/boleto/banco_itau.rb", "lib/brcobranca/boleto/banco_real.rb", "lib/brcobranca/boleto/base.rb", "lib/brcobranca/boleto/template/rghost.rb", "lib/brcobranca/boleto/template/util.rb", "lib/brcobranca/config.rb", "lib/brcobranca/core_ext.rb", "lib/brcobranca/currency.rb", "lib/brcobranca/retorno/retorno_cbr643.rb", "script/console", "script/destroy", "script/generate", "script/txt2html", "test/arquivos/CBR64310.RET", "test/test_banco_brasil.rb", "test/test_banco_hsbc.rb", "test/test_banco_itau.rb", "test/test_banco_real.rb", "test/test_base.rb", "test/test_core_ext.rb", "test/test_currency.rb", "test/test_helper.rb", "test/test_retorno_cbr643.rb", "website/index.html", "website/index.txt", "website/javascripts/rounded_corners_lite.inc.js", "website/stylesheets/screen.css", "website/template.html.erb"]
|
|
13
|
+
s.files = ["History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "brcobranca.gemspec", "config/website.yml", "lib/brcobranca.rb", "lib/brcobranca/arquivos/logos/bb.jpg", "lib/brcobranca/arquivos/logos/bradesco.jpg", "lib/brcobranca/arquivos/logos/hsbc.jpg", "lib/brcobranca/arquivos/logos/itau.jpg", "lib/brcobranca/arquivos/logos/real.jpg", "lib/brcobranca/arquivos/logos/unibanco.jpg", "lib/brcobranca/arquivos/templates/modelo_generico.eps", "lib/brcobranca/boleto/banco_bradesco.rb", "lib/brcobranca/boleto/banco_brasil.rb", "lib/brcobranca/boleto/banco_hsbc.rb", "lib/brcobranca/boleto/banco_itau.rb", "lib/brcobranca/boleto/banco_real.rb", "lib/brcobranca/boleto/banco_unibanco.rb", "lib/brcobranca/boleto/base.rb", "lib/brcobranca/boleto/template/rghost.rb", "lib/brcobranca/boleto/template/util.rb", "lib/brcobranca/config.rb", "lib/brcobranca/core_ext.rb", "lib/brcobranca/currency.rb", "lib/brcobranca/retorno/retorno_cbr643.rb", "script/console", "script/destroy", "script/generate", "script/txt2html", "test/arquivos/CBR64310.RET", "test/test_banco_bradesco.rb", "test/test_banco_brasil.rb", "test/test_banco_hsbc.rb", "test/test_banco_itau.rb", "test/test_banco_real.rb", "test/test_banco_unibanco.rb", "test/test_base.rb", "test/test_core_ext.rb", "test/test_currency.rb", "test/test_helper.rb", "test/test_retorno_cbr643.rb", "website/index.html", "website/index.txt", "website/javascripts/rounded_corners_lite.inc.js", "website/stylesheets/screen.css", "website/template.html.erb"]
|
|
15
14
|
s.has_rdoc = true
|
|
16
15
|
s.homepage = %q{http://brcobranca.rubyforge.org}
|
|
17
16
|
s.rdoc_options = ["--main", "README.rdoc"]
|
|
18
17
|
s.require_paths = ["lib"]
|
|
19
18
|
s.rubyforge_project = %q{brcobranca}
|
|
20
19
|
s.rubygems_version = %q{1.3.2}
|
|
21
|
-
s.signing_key = %q{/Users/kivanio/.gem/gem-private_key.pem}
|
|
22
20
|
s.summary = %q{Gem para emissão de bloquetos de cobrança de bancos brasileiros.}
|
|
23
|
-
s.test_files = ["test/test_banco_brasil.rb", "test/test_banco_hsbc.rb", "test/test_banco_itau.rb", "test/test_banco_real.rb", "test/test_base.rb", "test/test_core_ext.rb", "test/test_currency.rb", "test/test_helper.rb", "test/test_retorno_cbr643.rb"]
|
|
21
|
+
s.test_files = ["test/test_banco_bradesco.rb", "test/test_banco_brasil.rb", "test/test_banco_hsbc.rb", "test/test_banco_itau.rb", "test/test_banco_real.rb", "test/test_banco_unibanco.rb", "test/test_base.rb", "test/test_core_ext.rb", "test/test_currency.rb", "test/test_helper.rb", "test/test_retorno_cbr643.rb"]
|
|
24
22
|
|
|
25
23
|
if s.respond_to? :specification_version then
|
|
26
24
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
# Responsável por montar uma String com 43 caracteres que será usado na criação do código de barras
|
|
11
|
+
# As posições do campo livre ficam a critério de cada Banco arrecadador, sendo que o
|
|
12
|
+
# padrão do Bradesco é:
|
|
13
|
+
# Posição Tamanho Conteúdo
|
|
14
|
+
# 20 a 23 4 Agência Cedente (Sem o digito verificador, completar com zeros a esquerda quando necessário)
|
|
15
|
+
# 24 a 25 2 Carteira
|
|
16
|
+
# 26 a 36 11 Número do Nosso Número(Sem o digito verificador)
|
|
17
|
+
# 37 a 43 7 Conta do Cedente (Sem o digito verificador, completar com zeros a esquerda quando necessário)
|
|
18
|
+
# 44 a 44 1 Zero
|
|
19
|
+
|
|
20
|
+
def monta_codigo_43_digitos
|
|
21
|
+
banco = self.banco.zeros_esquerda(:tamanho => 3)
|
|
22
|
+
fator = self.data_vencimento.fator_vencimento
|
|
23
|
+
valor_documento = self.valor_documento.limpa_valor_moeda.zeros_esquerda(:tamanho => 10)
|
|
24
|
+
agencia = self.agencia.zeros_esquerda(:tamanho => 4)
|
|
25
|
+
carteira = self.carteira.zeros_esquerda(:tamanho => 2)
|
|
26
|
+
numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 11)
|
|
27
|
+
conta = self.conta_corrente.zeros_esquerda(:tamanho => 7)
|
|
28
|
+
|
|
29
|
+
"#{banco}#{self.moeda}#{fator}#{valor_documento}#{agencia}#{carteira}#{numero_documento}#{conta}0"
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Banco UNIBANCO
|
|
2
|
+
class BancoUnibanco < Brcobranca::Boleto::Base
|
|
3
|
+
# Responsável por definir dados iniciais quando se cria uma nova intancia da classe BancoUnibanco
|
|
4
|
+
# Com Registro 4
|
|
5
|
+
# Sem Registro 5
|
|
6
|
+
def initialize(campos={})
|
|
7
|
+
padrao={:carteira => "5", :banco => "409"}
|
|
8
|
+
campos = padrao.merge!(campos)
|
|
9
|
+
super(campos)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def nosso_numero_dv
|
|
13
|
+
self.numero_documento.zeros_esquerda(:tamanho => 11).modulo11_2to9
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Responsável por montar uma String com 43 caracteres que será usado na criação do código de barras
|
|
17
|
+
def monta_codigo_43_digitos
|
|
18
|
+
banco = self.banco.zeros_esquerda(:tamanho => 3)
|
|
19
|
+
fator = self.data_vencimento.fator_vencimento
|
|
20
|
+
valor_documento = self.valor_documento.limpa_valor_moeda.zeros_esquerda(:tamanho => 10)
|
|
21
|
+
carteira = self.carteira.zeros_esquerda(:tamanho => 1)
|
|
22
|
+
|
|
23
|
+
case carteira.to_i
|
|
24
|
+
when 5
|
|
25
|
+
|
|
26
|
+
# Cobrança sem registro (CÓDIGO DE BARRAS)
|
|
27
|
+
# Posição Tamanho Descrição
|
|
28
|
+
# 1 a 3 3 número de identificação do Unibanco: 409 (número FIXO)
|
|
29
|
+
# 4 1 código da moeda. Real (R$)=9 (número FIXO)
|
|
30
|
+
# 5 1 dígito verificador do CÓDIGO DE BARRAS
|
|
31
|
+
# 6 a 9 4 fator de vencimento
|
|
32
|
+
# 10 a 19 10 valor do título com zeros à esquerda
|
|
33
|
+
# 20 1 código para transação CVT: 5 (número FIXO)(5=7744-5)
|
|
34
|
+
# 21 a 27 7 número do cliente no CÓDIGO DE BARRAS + dígito verificador
|
|
35
|
+
# 28 a 29 2 vago. Usar 00 (número FIXO)
|
|
36
|
+
# 30 a 43 14 Número de referência do cliente
|
|
37
|
+
# 44 1 Dígito verificador
|
|
38
|
+
|
|
39
|
+
convenio = self.convenio.zeros_esquerda(:tamanho => 6)
|
|
40
|
+
numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 14)
|
|
41
|
+
"#{banco}#{self.moeda}#{fator}#{valor_documento}#{carteira}#{convenio}00#{numero_documento}#{self.nosso_numero_dv}"
|
|
42
|
+
when 4
|
|
43
|
+
|
|
44
|
+
# Cobrança com registro (CÓDIGO DE BARRAS)
|
|
45
|
+
# Posição Tamanho Descrição
|
|
46
|
+
# 1 a 3 3 Número de identificação do Unibanco: 409 (número FIXO)
|
|
47
|
+
# 4 1 Código da moeda. Real (R$)=9 (número FIXO)
|
|
48
|
+
# 5 1 dígito verificador do CÓDIGO DE BARRAS
|
|
49
|
+
# 6 a 9 4 fator de vencimento em 4 algarismos, conforme tabela da página 14
|
|
50
|
+
# 10 a 19 10 valor do título com zeros à esquerda
|
|
51
|
+
# 20 a 21 2 Código para transação CVT: 04 (número FIXO) (04=5539-5)
|
|
52
|
+
# 22 a 27 6 data de vencimento (AAMMDD)
|
|
53
|
+
# 28 a 32 5 Código da agência + dígito verificador
|
|
54
|
+
# 33 a 43 11 “Nosso Número” (NNNNNNNNNNN)
|
|
55
|
+
# 44 1 Super dígito do “Nosso Número” (calculado com o MÓDULO 11 (de 2 a 9))
|
|
56
|
+
|
|
57
|
+
data = self.data_vencimento.strftime('%y%m%d')
|
|
58
|
+
agencia = self.agencia.zeros_esquerda(:tamanho => 4)
|
|
59
|
+
numero_documento = self.numero_documento.zeros_esquerda(:tamanho => 11)
|
|
60
|
+
"#{banco}#{self.moeda}#{fator}#{valor_documento}0#{carteira}#{data}#{agencia}#{self.agencia_dv}#{numero_documento}#{self.nosso_numero_dv}"
|
|
61
|
+
else
|
|
62
|
+
nil
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -120,6 +120,15 @@ module Brcobranca
|
|
|
120
120
|
end
|
|
121
121
|
|
|
122
122
|
# Retorna uma String com 44 caracteres representando o codigo de barras do boleto
|
|
123
|
+
# O código de barra para cobrança contém 44 posições dispostas da seguinte forma:
|
|
124
|
+
# Posição Tamanho Conteúdo
|
|
125
|
+
# 01 a 03 3 Identificação do Banco
|
|
126
|
+
# 04 a 04 1 Código da Moeda (Real = 9, Outras=0)
|
|
127
|
+
# 05 a 05 1 Dígito verificador do Código de Barras
|
|
128
|
+
# 06 a 09 4 Fator de Vencimento (Vide Nota)
|
|
129
|
+
# 10 a 19 10 Valor
|
|
130
|
+
# 20 a 44 25 Campo Livre
|
|
131
|
+
# As posições do campo livre ficam a critério de cada Banco arrecadador.
|
|
123
132
|
def codigo_barras
|
|
124
133
|
codigo = monta_codigo_43_digitos
|
|
125
134
|
return nil unless codigo
|
|
@@ -4,7 +4,7 @@ module Brcobranca
|
|
|
4
4
|
# Métodos auxiliares de montagem de template
|
|
5
5
|
module Util
|
|
6
6
|
# Responsável por definir a logotipo usada no template genérico,
|
|
7
|
-
# retorna o caminho para o <b>logotipo</b> ou <b>false</b> caso nao consiga encontrar o logotipo
|
|
7
|
+
# retorna o caminho para o <b>logotipo</b> ou <b>false</b> caso nao consiga encontrar o logotipo.
|
|
8
8
|
def monta_logo
|
|
9
9
|
case self.class.to_s
|
|
10
10
|
when "BancoBrasil"
|
|
@@ -15,6 +15,10 @@ module Brcobranca
|
|
|
15
15
|
imagem = 'hsbc.jpg'
|
|
16
16
|
when "BancoReal"
|
|
17
17
|
imagem = 'real.jpg'
|
|
18
|
+
when "BancoBradesco"
|
|
19
|
+
imagem = 'bradesco.jpg'
|
|
20
|
+
when "BancoUnibanco"
|
|
21
|
+
imagem = 'unibanco.jpg'
|
|
18
22
|
else
|
|
19
23
|
return false
|
|
20
24
|
end
|
data/lib/brcobranca/core_ext.rb
CHANGED
|
@@ -58,6 +58,22 @@ module Brcobranca
|
|
|
58
58
|
# Retorna + nil + para Codigo de Barras em branco,
|
|
59
59
|
# Codigo de Barras com tamanho diferente de 44 dígitos e
|
|
60
60
|
# Codigo de Barras que não tenham somente caracteres numéricos.
|
|
61
|
+
# A linha digitável será composta por cinco campos:
|
|
62
|
+
# 1º campo
|
|
63
|
+
# Composto pelo código de Banco, código da moeda, as cinco primeiras posições do campo livre
|
|
64
|
+
# e o dígito verificador deste campo;
|
|
65
|
+
# 2º campo
|
|
66
|
+
# Composto pelas posições 6ª a 15ª do campo livre e o dígito verificador deste campo;
|
|
67
|
+
# 3º campo
|
|
68
|
+
# Composto pelas posições 16ª a 25ª do campo livre e o dígito verificador deste campo;
|
|
69
|
+
# 4º campo
|
|
70
|
+
# Composto pelo dígito verificador do código de barras, ou seja, a 5ª posição do código de
|
|
71
|
+
# barras;
|
|
72
|
+
# 5º campo
|
|
73
|
+
# Composto pelo fator de vencimento com 4(quatro) caracteres e o valor do documento com
|
|
74
|
+
# 10(dez) caracteres, sem separadores e sem edição.
|
|
75
|
+
# Entre cada campo deverá haver espaço equivalente a 2 (duas) posições, sendo a 1ª
|
|
76
|
+
# interpretada por um ponto (.) e a 2ª por um espaço em branco.
|
|
61
77
|
def linha_digitavel
|
|
62
78
|
valor_inicial = self.kind_of?(String) ? self : self.to_s
|
|
63
79
|
return nil if (valor_inicial !~ /\S/) || valor_inicial.size != 44 || (!valor_inicial.scan(/\D/).empty?)
|
|
@@ -81,7 +97,8 @@ module Brcobranca
|
|
|
81
97
|
"#{campo_linha_1} #{campo_linha_2} #{campo_linha_3} #{campo_linha_4} #{campo_linha_5}"
|
|
82
98
|
end
|
|
83
99
|
end
|
|
84
|
-
|
|
100
|
+
|
|
101
|
+
# métodos auxiliares de cálculos
|
|
85
102
|
module Calculo
|
|
86
103
|
# Método padrão para cálculo de módulo 10 segundo a BACEN.
|
|
87
104
|
def modulo10
|
|
@@ -149,7 +166,7 @@ module Brcobranca
|
|
|
149
166
|
valor = self.modulo11_9to2
|
|
150
167
|
valor == 10 ? "X" : valor
|
|
151
168
|
end
|
|
152
|
-
|
|
169
|
+
|
|
153
170
|
# Retorna o dígito verificador de <b>modulo 11(9-2)</b> trocando retorno <b>10 por 0</b>.
|
|
154
171
|
# Usado por alguns bancos.
|
|
155
172
|
def modulo11_9to2_10_como_zero
|
|
@@ -175,9 +192,9 @@ module Brcobranca
|
|
|
175
192
|
return total
|
|
176
193
|
end
|
|
177
194
|
end
|
|
178
|
-
|
|
195
|
+
|
|
196
|
+
# Métodos auxiliares de verificação e validação.
|
|
179
197
|
module Validacao
|
|
180
|
-
|
|
181
198
|
# Verifica se o valor é moeda.
|
|
182
199
|
# Ex. +1.232.33
|
|
183
200
|
# Ex. -1.232.33
|
|
@@ -187,7 +204,8 @@ module Brcobranca
|
|
|
187
204
|
self =~ /^(\+|-)?\d+((\.|,)\d{3}*)*((\.|,)\d{2}*)$/ ? true : false
|
|
188
205
|
end
|
|
189
206
|
end
|
|
190
|
-
|
|
207
|
+
|
|
208
|
+
# Métodos auxiliares de limpeza.
|
|
191
209
|
module Limpeza
|
|
192
210
|
# Retorna uma String contendo exatamente o valor FLOAT
|
|
193
211
|
def limpa_valor_moeda
|
|
@@ -196,7 +214,8 @@ module Brcobranca
|
|
|
196
214
|
(valor_inicial + ("0" * (2 - valor_inicial.split(/\./).last.size ))).somente_numeros
|
|
197
215
|
end
|
|
198
216
|
end
|
|
199
|
-
|
|
217
|
+
|
|
218
|
+
# Métodos auxiliares de cálculos envolvendo <b>Datas</b>.
|
|
200
219
|
module CalculoData
|
|
201
220
|
# Calcula o número de dias corridos entre a <b>data base ("Fixada" em 07.10.1997)</b> e a <b>data de vencimento</b> desejado:
|
|
202
221
|
# VENCIMENTO 04/07/2000
|
data/lib/brcobranca.rb
CHANGED
|
@@ -2,7 +2,7 @@ $:.unshift(File.dirname(__FILE__)) unless $:.include?(File.dirname(__FILE__)) ||
|
|
|
2
2
|
|
|
3
3
|
%w(core_ext currency config).each {|req| require File.join(File.dirname(__FILE__),"brcobranca",req) }
|
|
4
4
|
|
|
5
|
-
%w(base banco_brasil banco_itau banco_hsbc banco_real).each {|req| require File.join(File.dirname(__FILE__),"brcobranca","boleto",req) }
|
|
5
|
+
%w(base banco_brasil banco_itau banco_hsbc banco_real banco_bradesco banco_unibanco).each {|req| require File.join(File.dirname(__FILE__),"brcobranca","boleto",req) }
|
|
6
6
|
|
|
7
7
|
%w(util rghost).each {|req| require File.join(File.dirname(__FILE__),"brcobranca","boleto","template",req) }
|
|
8
8
|
|
|
@@ -23,5 +23,5 @@ else
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
module Brcobranca
|
|
26
|
-
VERSION = '2.0.
|
|
26
|
+
VERSION = '2.0.3'
|
|
27
27
|
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__),'test_helper.rb')
|
|
2
|
+
|
|
3
|
+
class TestBancoBradesco < Test::Unit::TestCase #:nodoc:[all]
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@boleto_novo = BancoBradesco.new
|
|
7
|
+
@boleto_novo.cedente = "Kivanio Barbosa"
|
|
8
|
+
@boleto_novo.documento_cedente = "12345678912"
|
|
9
|
+
@boleto_novo.sacado = "Claudio Pozzebom"
|
|
10
|
+
@boleto_novo.sacado_documento = "12345678900"
|
|
11
|
+
@boleto_novo.aceite = "S"
|
|
12
|
+
@boleto_novo.agencia = "4042"
|
|
13
|
+
@boleto_novo.conta_corrente = "61900"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def boleto_1
|
|
17
|
+
@boleto_novo.agencia = "1172"
|
|
18
|
+
@boleto_novo.conta_corrente = "0403005"
|
|
19
|
+
@boleto_novo.carteira = "06"
|
|
20
|
+
@boleto_novo.moeda = "9"
|
|
21
|
+
@boleto_novo.valor = 2952.95
|
|
22
|
+
@boleto_novo.numero_documento = "75896452"
|
|
23
|
+
@boleto_novo.data_documento = Date.parse("2009-04-30")
|
|
24
|
+
@boleto_novo.dias_vencimento = 0
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def boleto_2
|
|
28
|
+
@boleto_novo.agencia = "4042"
|
|
29
|
+
@boleto_novo.conta_corrente = "61900"
|
|
30
|
+
@boleto_novo.carteira = "03"
|
|
31
|
+
@boleto_novo.moeda = "9"
|
|
32
|
+
@boleto_novo.valor = 135.00
|
|
33
|
+
@boleto_novo.numero_documento = "777700168"
|
|
34
|
+
@boleto_novo.data_documento = Date.parse("2008-02-01")
|
|
35
|
+
@boleto_novo.dias_vencimento = 1
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def boleto_nil
|
|
39
|
+
@boleto_novo.banco = ""
|
|
40
|
+
@boleto_novo.carteira = ""
|
|
41
|
+
@boleto_novo.moeda = ""
|
|
42
|
+
@boleto_novo.valor = 0
|
|
43
|
+
@boleto_novo.convenio = ""
|
|
44
|
+
@boleto_novo.numero_documento = ""
|
|
45
|
+
@boleto_novo.data_documento = Date.parse("2008-02-01")
|
|
46
|
+
@boleto_novo.dias_vencimento = 0
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_should_initialize_correctly
|
|
50
|
+
assert_equal '237', @boleto_novo.banco
|
|
51
|
+
assert_equal '06', @boleto_novo.carteira
|
|
52
|
+
assert_equal "DM", @boleto_novo.especie_documento
|
|
53
|
+
assert_equal "R$", @boleto_novo.especie
|
|
54
|
+
assert_equal "9", @boleto_novo.moeda
|
|
55
|
+
assert_equal Date.today, @boleto_novo.data_documento
|
|
56
|
+
assert_equal 1, @boleto_novo.dias_vencimento
|
|
57
|
+
assert_equal((Date.today + 1), @boleto_novo.data_vencimento)
|
|
58
|
+
assert_equal "S", @boleto_novo.aceite
|
|
59
|
+
assert_equal 1, @boleto_novo.quantidade
|
|
60
|
+
assert_equal 0.0, @boleto_novo.valor
|
|
61
|
+
assert_equal 0.0, @boleto_novo.valor_documento
|
|
62
|
+
assert_equal "QUALQUER BANCO ATÉ O VENCIMENTO", @boleto_novo.local_pagamento
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def test_should_mont_correct_codigo_barras
|
|
66
|
+
boleto_1
|
|
67
|
+
assert_equal "2379422300002952951172060007589645204030050", @boleto_novo.monta_codigo_43_digitos
|
|
68
|
+
assert_equal "23795422300002952951172060007589645204030050", @boleto_novo.codigo_barras
|
|
69
|
+
boleto_2
|
|
70
|
+
assert_equal "2379377000000135004042030077770016800619000", @boleto_novo.monta_codigo_43_digitos
|
|
71
|
+
assert_equal "23791377000000135004042030077770016800619000", @boleto_novo.codigo_barras
|
|
72
|
+
boleto_nil
|
|
73
|
+
assert_equal nil, @boleto_novo.codigo_barras
|
|
74
|
+
assert_raise RuntimeError do
|
|
75
|
+
boleto_nil
|
|
76
|
+
raise 'Verifique as informações do boleto!!!'
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def test_should_mont_correct_linha_digitalvel
|
|
81
|
+
boleto_1
|
|
82
|
+
assert_equal("23791.17209 60007.589645 52040.300502 5 42230000295295", @boleto_novo.codigo_barras.linha_digitavel)
|
|
83
|
+
boleto_2
|
|
84
|
+
assert_equal("23794.04201 30077.770011 68006.190000 1 37700000013500", @boleto_novo.codigo_barras.linha_digitavel)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
end
|
data/test/test_banco_brasil.rb
CHANGED
data/test/test_banco_hsbc.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require File.join(File.dirname(__FILE__),'test_helper.rb')
|
|
2
2
|
|
|
3
|
-
class
|
|
3
|
+
class TestBancoHsbc < Test::Unit::TestCase #:nodoc:[all]
|
|
4
4
|
|
|
5
5
|
def setup
|
|
6
6
|
@boleto_novo = BancoHsbc.new(:data_documento => Date.parse("2008-02-01"))
|
data/test/test_banco_itau.rb
CHANGED
data/test/test_banco_real.rb
CHANGED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__),'test_helper.rb')
|
|
2
|
+
|
|
3
|
+
class TestBancoUnibanco < Test::Unit::TestCase #:nodoc:[all]
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@boleto_novo = BancoUnibanco.new
|
|
7
|
+
@boleto_novo.cedente = "Kivanio Barbosa"
|
|
8
|
+
@boleto_novo.documento_cedente = "12345678912"
|
|
9
|
+
@boleto_novo.sacado = "Claudio Pozzebom"
|
|
10
|
+
@boleto_novo.sacado_documento = "12345678900"
|
|
11
|
+
@boleto_novo.aceite = "S"
|
|
12
|
+
@boleto_novo.agencia = "4042"
|
|
13
|
+
@boleto_novo.conta_corrente = "61900"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def boleto_com_registro
|
|
17
|
+
@boleto_novo.agencia = "0123"
|
|
18
|
+
@boleto_novo.conta_corrente = "100618"
|
|
19
|
+
@boleto_novo.carteira = "4"
|
|
20
|
+
@boleto_novo.convenio = 2031671
|
|
21
|
+
@boleto_novo.valor = 2952.95
|
|
22
|
+
@boleto_novo.numero_documento = "1803029901"
|
|
23
|
+
@boleto_novo.data_documento = Date.parse("2009-04-30")
|
|
24
|
+
@boleto_novo.dias_vencimento = 0
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def boleto_sem_registro
|
|
28
|
+
@boleto_novo.agencia = "0123"
|
|
29
|
+
@boleto_novo.conta_corrente = "100618"
|
|
30
|
+
@boleto_novo.carteira = "5"
|
|
31
|
+
@boleto_novo.convenio = 2031671
|
|
32
|
+
@boleto_novo.valor = 2952.95
|
|
33
|
+
@boleto_novo.numero_documento = "1803029901"
|
|
34
|
+
@boleto_novo.data_documento = Date.parse("2009-04-30")
|
|
35
|
+
@boleto_novo.dias_vencimento = 0
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def boleto_nil
|
|
39
|
+
@boleto_novo.banco = ""
|
|
40
|
+
@boleto_novo.carteira = ""
|
|
41
|
+
@boleto_novo.moeda = ""
|
|
42
|
+
@boleto_novo.valor = 0
|
|
43
|
+
@boleto_novo.convenio = ""
|
|
44
|
+
@boleto_novo.numero_documento = ""
|
|
45
|
+
@boleto_novo.data_documento = Date.parse("2008-02-01")
|
|
46
|
+
@boleto_novo.dias_vencimento = 0
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_should_initialize_correctly
|
|
50
|
+
assert_equal '409', @boleto_novo.banco
|
|
51
|
+
assert_equal '5', @boleto_novo.carteira
|
|
52
|
+
assert_equal "DM", @boleto_novo.especie_documento
|
|
53
|
+
assert_equal "R$", @boleto_novo.especie
|
|
54
|
+
assert_equal "9", @boleto_novo.moeda
|
|
55
|
+
assert_equal Date.today, @boleto_novo.data_documento
|
|
56
|
+
assert_equal 1, @boleto_novo.dias_vencimento
|
|
57
|
+
assert_equal((Date.today + 1), @boleto_novo.data_vencimento)
|
|
58
|
+
assert_equal "S", @boleto_novo.aceite
|
|
59
|
+
assert_equal 1, @boleto_novo.quantidade
|
|
60
|
+
assert_equal 0.0, @boleto_novo.valor
|
|
61
|
+
assert_equal 0.0, @boleto_novo.valor_documento
|
|
62
|
+
assert_equal "QUALQUER BANCO ATÉ O VENCIMENTO", @boleto_novo.local_pagamento
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def return_correct_nosso_numero_dv
|
|
66
|
+
@boleto_novo.numero_documento = "00001803029901"
|
|
67
|
+
assert_equal "5", @boleto_novo.nosso_numero_dv
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def test_should_mont_correct_codigo_barras
|
|
71
|
+
boleto_sem_registro
|
|
72
|
+
assert_equal "4099422300002952955203167100000018030299015", @boleto_novo.monta_codigo_43_digitos
|
|
73
|
+
assert_equal "40995422300002952955203167100000018030299015", @boleto_novo.codigo_barras
|
|
74
|
+
boleto_com_registro
|
|
75
|
+
assert_equal "4099422300002952950409043001236018030299015", @boleto_novo.monta_codigo_43_digitos
|
|
76
|
+
assert_equal "40997422300002952950409043001236018030299015", @boleto_novo.codigo_barras
|
|
77
|
+
boleto_nil
|
|
78
|
+
assert_equal nil, @boleto_novo.codigo_barras
|
|
79
|
+
assert_raise RuntimeError do
|
|
80
|
+
boleto_nil
|
|
81
|
+
raise 'Verifique as informações do boleto!!!'
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def test_should_mont_correct_linha_digitalvel
|
|
86
|
+
boleto_sem_registro
|
|
87
|
+
assert_equal("40995.20316 67100.000016 80302.990157 5 42230000295295", @boleto_novo.codigo_barras.linha_digitavel)
|
|
88
|
+
boleto_com_registro
|
|
89
|
+
assert_equal("40990.40901 43001.236017 80302.990157 7 42230000295295", @boleto_novo.codigo_barras.linha_digitavel)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
end
|
data/test/test_base.rb
CHANGED
data/test/test_core_ext.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require File.join(File.dirname(__FILE__),'test_helper.rb')
|
|
2
2
|
|
|
3
|
-
class
|
|
3
|
+
class TestCoreExt < Test::Unit::TestCase #:nodoc:[all]
|
|
4
4
|
# Teste da Extensão de core do Brcobranca
|
|
5
5
|
def test_should_format_correct_cpf
|
|
6
6
|
assert_equal "987.892.987-90", 98789298790.to_br_cpf
|
data/test/test_currency.rb
CHANGED
data/test/test_retorno_cbr643.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require File.join(File.dirname(__FILE__),'test_helper.rb')
|
|
2
2
|
|
|
3
|
-
class
|
|
3
|
+
class TestRetornoCbr643 < Test::Unit::TestCase #:nodoc:[all]
|
|
4
4
|
|
|
5
5
|
def test_should_correct_return_retorno
|
|
6
6
|
@pagamentos = Brcobranca::Retorno::Cbr643.load_lines(File.join(File.dirname(__FILE__),'arquivos','CBR64310.RET'))
|
metadata
CHANGED
|
@@ -1,36 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: brcobranca
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kivanio Barbosa
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
|
-
cert_chain:
|
|
11
|
-
- |
|
|
12
|
-
-----BEGIN CERTIFICATE-----
|
|
13
|
-
MIIDMDCCAhigAwIBAgIBADANBgkqhkiG9w0BAQUFADA+MRAwDgYDVQQDDAdraXZh
|
|
14
|
-
bmlvMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNjb20w
|
|
15
|
-
HhcNMDkwNDAxMTk1MTEyWhcNMTAwNDAxMTk1MTEyWjA+MRAwDgYDVQQDDAdraXZh
|
|
16
|
-
bmlvMRUwEwYKCZImiZPyLGQBGRYFZ21haWwxEzARBgoJkiaJk/IsZAEZFgNjb20w
|
|
17
|
-
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9romqf+5VfVc8BnlDKqpZ
|
|
18
|
-
nrwYaPq6Z2hom3hYZnLseJUQ4VaAKAq2S01enXfeD2i5dP1nWl3R/sb2CDZBzwJI
|
|
19
|
-
1m5oXlcWObycDChP7mzjNZn8CZcE2ywDjYLsCxG2u2wu5QddEoNW72OLj8wvR4vC
|
|
20
|
-
E8yukGrfLbmp+v6siwQ3m82PCKaX7mfbW8wtY+uq+b+sWzhNCgCux61G/TCzI8dz
|
|
21
|
-
5xk43+r65mHEPrwxjWsEHPJtxAoAtXvWpbxkGNGOeZiyJqHTyP1ZL3OlYTkQpMUY
|
|
22
|
-
MzHy2oty5yfnWC3sS8TciNcKR2MaxeWkwuTFT5L0GX6vpF2yinYWRCLmV/9a/SoL
|
|
23
|
-
AgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBTCpEDw
|
|
24
|
-
xD7IEt5P8+vEgQnDK81lfTANBgkqhkiG9w0BAQUFAAOCAQEAbhpIXJHpA4a3gOI/
|
|
25
|
-
DRWoQQZ+LVz6Kh4Gt4x8BqMAPn7aa5Gkl/5ltLO5PBzdKu7qzYgaMi6UNcDG3ia0
|
|
26
|
-
Tc3MCn88Vo6/xGxkvJZ6XXkwpGa9ZcFUCPkyZLU3pXjmsbhuoTcsRDd5Imb5vZFO
|
|
27
|
-
ApK2lZ7SXQ8XhpRhDpSH4Z/VnIocICeyPtcoYS8pSm4SApr7dhS2HpbbmFy8lSu6
|
|
28
|
-
fyKOdYPaoYrjXOTnlYjbeAvrxOsKn9XM8OYyjv5blnqQ5b2+J26BRrPa7nl1Xnef
|
|
29
|
-
bhkICrEt+qR6RqsKWvxBaoN3oQcbto4JrFiqsqOBLb0YT5olubd/oM1RK4S1vH+t
|
|
30
|
-
mua6xQ==
|
|
31
|
-
-----END CERTIFICATE-----
|
|
10
|
+
cert_chain: []
|
|
32
11
|
|
|
33
|
-
date: 2009-04-
|
|
12
|
+
date: 2009-04-27 00:00:00 -04:00
|
|
34
13
|
default_executable:
|
|
35
14
|
dependencies:
|
|
36
15
|
- !ruby/object:Gem::Dependency
|
|
@@ -104,14 +83,18 @@ files:
|
|
|
104
83
|
- config/website.yml
|
|
105
84
|
- lib/brcobranca.rb
|
|
106
85
|
- lib/brcobranca/arquivos/logos/bb.jpg
|
|
86
|
+
- lib/brcobranca/arquivos/logos/bradesco.jpg
|
|
107
87
|
- lib/brcobranca/arquivos/logos/hsbc.jpg
|
|
108
88
|
- lib/brcobranca/arquivos/logos/itau.jpg
|
|
109
89
|
- lib/brcobranca/arquivos/logos/real.jpg
|
|
90
|
+
- lib/brcobranca/arquivos/logos/unibanco.jpg
|
|
110
91
|
- lib/brcobranca/arquivos/templates/modelo_generico.eps
|
|
92
|
+
- lib/brcobranca/boleto/banco_bradesco.rb
|
|
111
93
|
- lib/brcobranca/boleto/banco_brasil.rb
|
|
112
94
|
- lib/brcobranca/boleto/banco_hsbc.rb
|
|
113
95
|
- lib/brcobranca/boleto/banco_itau.rb
|
|
114
96
|
- lib/brcobranca/boleto/banco_real.rb
|
|
97
|
+
- lib/brcobranca/boleto/banco_unibanco.rb
|
|
115
98
|
- lib/brcobranca/boleto/base.rb
|
|
116
99
|
- lib/brcobranca/boleto/template/rghost.rb
|
|
117
100
|
- lib/brcobranca/boleto/template/util.rb
|
|
@@ -124,10 +107,12 @@ files:
|
|
|
124
107
|
- script/generate
|
|
125
108
|
- script/txt2html
|
|
126
109
|
- test/arquivos/CBR64310.RET
|
|
110
|
+
- test/test_banco_bradesco.rb
|
|
127
111
|
- test/test_banco_brasil.rb
|
|
128
112
|
- test/test_banco_hsbc.rb
|
|
129
113
|
- test/test_banco_itau.rb
|
|
130
114
|
- test/test_banco_real.rb
|
|
115
|
+
- test/test_banco_unibanco.rb
|
|
131
116
|
- test/test_base.rb
|
|
132
117
|
- test/test_core_ext.rb
|
|
133
118
|
- test/test_currency.rb
|
|
@@ -168,10 +153,12 @@ signing_key:
|
|
|
168
153
|
specification_version: 3
|
|
169
154
|
summary: "Gem para emiss\xC3\xA3o de bloquetos de cobran\xC3\xA7a de bancos brasileiros."
|
|
170
155
|
test_files:
|
|
156
|
+
- test/test_banco_bradesco.rb
|
|
171
157
|
- test/test_banco_brasil.rb
|
|
172
158
|
- test/test_banco_hsbc.rb
|
|
173
159
|
- test/test_banco_itau.rb
|
|
174
160
|
- test/test_banco_real.rb
|
|
161
|
+
- test/test_banco_unibanco.rb
|
|
175
162
|
- test/test_base.rb
|
|
176
163
|
- test/test_core_ext.rb
|
|
177
164
|
- test/test_currency.rb
|
data.tar.gz.sig
DELETED
metadata.gz.sig
DELETED
|
Binary file
|