brcobranca 2.0.2 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|