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 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 cobranca do banco real(com e sem registro)
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 lancamento
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.2"
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.cert_chain = ["/Users/kivanio/.gem/gem-public_cert.pem"]
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
@@ -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
@@ -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
- # métodos auxiliares de cálculos
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
- # Métodos auxiliares de verificação e validação.
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
- # Métodos auxiliares de limpeza.
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
- # Métodos auxiliares de cálculos envolvendo <b>Datas</b>.
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.2'
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
@@ -1,6 +1,6 @@
1
1
  require File.join(File.dirname(__FILE__),'test_helper.rb')
2
2
 
3
- class BancoBrasilTest < Test::Unit::TestCase #:nodoc:[all]
3
+ class TestBancoBrasil < Test::Unit::TestCase #:nodoc:[all]
4
4
 
5
5
  def setup
6
6
  @boleto_novo = BancoBrasil.new
@@ -1,6 +1,6 @@
1
1
  require File.join(File.dirname(__FILE__),'test_helper.rb')
2
2
 
3
- class BancoHsbcTest < Test::Unit::TestCase #:nodoc:[all]
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"))
@@ -1,6 +1,6 @@
1
1
  require File.join(File.dirname(__FILE__),'test_helper.rb')
2
2
 
3
- class BancoItauTest < Test::Unit::TestCase #:nodoc:[all]
3
+ class TestBancoItau < Test::Unit::TestCase #:nodoc:[all]
4
4
 
5
5
  BOLETO_ITAU_CARTEIRA_175 = {
6
6
  :carteira => "175",
@@ -1,6 +1,6 @@
1
1
  require File.join(File.dirname(__FILE__),'test_helper.rb')
2
2
 
3
- class BancoRealTest < Test::Unit::TestCase #:nodoc:[all]
3
+ class TestBancoReal < Test::Unit::TestCase #:nodoc:[all]
4
4
 
5
5
  def setup
6
6
  @boleto_novo = BancoReal.new
@@ -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
@@ -1,6 +1,6 @@
1
1
  require File.join(File.dirname(__FILE__),'test_helper.rb')
2
2
 
3
- class BaseTest < Test::Unit::TestCase #:nodoc:[all]
3
+ class TestBase < Test::Unit::TestCase #:nodoc:[all]
4
4
 
5
5
  def setup
6
6
  @boleto = Brcobranca::Boleto::Base.new
@@ -1,6 +1,6 @@
1
1
  require File.join(File.dirname(__FILE__),'test_helper.rb')
2
2
 
3
- class CoreExtTest < Test::Unit::TestCase #:nodoc:[all]
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
@@ -1,6 +1,6 @@
1
1
  require File.join(File.dirname(__FILE__),'test_helper.rb')
2
2
 
3
- class CurrencyTest < Test::Unit::TestCase #:nodoc:[all]
3
+ class TestCurrency < Test::Unit::TestCase #:nodoc:[all]
4
4
  # Teste do modulo currency
5
5
 
6
6
  # Testa se é numero Ex. 1321 ou 13.32
@@ -1,6 +1,6 @@
1
1
  require File.join(File.dirname(__FILE__),'test_helper.rb')
2
2
 
3
- class RetornoCbr643Test < Test::Unit::TestCase #:nodoc:[all]
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.2
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-21 00:00:00 -04:00
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
@@ -1,2 +0,0 @@
1
- z(Z���W5�¥�l�6ݒ�3V/J#�<�]� ���Bt���,���^���VE@/
2
- ��bn;���Z��p)?cb��eX�olK�R̓��L�=������x�ꍩ��I�Ѧ9=Kduֶ:��U��ډ}5;P����E��S�+�PG�1
metadata.gz.sig DELETED
Binary file