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