Class: BoletoBancario::Core::Banrisul
- Defined in:
- lib/boleto_bancario/core/banrisul.rb
Overview
Implementação de emissão de boleto bancário do Banrisul.
Documentação Implementada
A documentação na qual essa implementação foi baseada está localizada na pasta ‘documentacoes_dos_boletos/banrisul’ dentro dessa biblioteca.
Contrato das classes de emissão de boletos
Para ver o “contrato” da Emissão de Boletos (geração de código de barras, linha digitável, etc) veja a classe BoletoBancario::Core::Boleto.
Carteiras Suportadas
00 - CCB sem registro 08 - CCB com registro
Usage
class BoletoBanrisul < BoletoBancario::Banrisul
end
boleto = BoletoBanrisul.new do |boleto|
boleto.numero_documento = 22832563
boleto.agencia = 100
boleto.data_vencimento = Date.parse('2004-07-04')
boleto.codigo_cedente = "0000001"
boleto.valor_documento = 5.0
end
Instance Attribute Summary
Attributes inherited from Boleto
#aceite, #cedente, #codigo_moeda, #conta_corrente, #data_documento, #data_vencimento, #documento_cedente, #documento_sacado, #endereco_cedente, #endereco_sacado, #especie, #especie_documento, #instrucoes1, #instrucoes2, #instrucoes3, #instrucoes4, #instrucoes5, #instrucoes6, #local_pagamento, #logo, #sacado, #valor_documento
Class Method Summary collapse
-
.carteiras_suportadas ⇒ Array
Carteiras suportadas..
-
.maximo_agencia ⇒ Fixnum
Tamanho máximo de uma agência no Banrisul (sem número de controle).
-
.maximo_codigo_cedente ⇒ Fixnum
Tamanho máximo do código cedente.
-
.maximo_numero_documento ⇒ Fixnum
Tamanho máximo do número do documento.
Instance Method Summary collapse
-
#agencia ⇒ String
3 caracteres.
-
#agencia_codigo_cedente ⇒ String
Retorna a Agencia, digito da agencia, código do cedente e o dígito do código do cedente.
-
#carteira ⇒ String
2 caracteres.
-
#codigo_banco ⇒ String
Código do Banco descrito na documentação.
-
#codigo_cedente ⇒ String
7 caracteres.
-
#codigo_de_barras_do_banco ⇒ Object
Código de barras do banco.
-
#digito_agencia ⇒ String
Dígito do código da agência.
-
#digito_codigo_banco ⇒ String
Dígito do código do banco.
-
#digito_codigo_cedente ⇒ String
Dígito do código do cedente.
-
#nosso_numero ⇒ String
Retorna o número do documento com seu número de controle.
-
#numero_documento ⇒ String
8 caracteres.
-
#tipo_da_cobranca ⇒ String
Tipo da cobranca do boleto.
Methods inherited from Boleto
#aceite_formatado, #carteira_formatada, #codigo_banco_formatado, #codigo_de_barras, #codigo_de_barras_padrao, #data_vencimento_deve_ser_uma_data, #default_options, #deve_validar_agencia?, #deve_validar_carteira?, #deve_validar_codigo_cedente?, #deve_validar_conta_corrente?, #deve_validar_numero_documento?, #digito_codigo_de_barras, #fator_de_vencimento, #initialize, #linha_digitavel, #persisted?, #to_partial_path, valor_documento_tamanho_maximo, #valor_formatado_para_codigo_de_barras
Constructor Details
This class inherits a constructor from BoletoBancario::Core::Boleto
Class Method Details
.carteiras_suportadas ⇒ Array
Carteiras suportadas.
Método criado para validar se a carteira informada é suportada.
67 68 69 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 67 def self.carteiras_suportadas %w[00 08] end |
.maximo_agencia ⇒ Fixnum
Tamanho máximo de uma agência no Banrisul (sem número de controle). Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.
39 40 41 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 39 def self.maximo_agencia 3 end |
.maximo_codigo_cedente ⇒ Fixnum
Tamanho máximo do código cedente. Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.
48 49 50 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 48 def self.maximo_codigo_cedente 7 end |
.maximo_numero_documento ⇒ Fixnum
Tamanho máximo do número do documento. Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.
57 58 59 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 57 def self.maximo_numero_documento 8 end |
Instance Method Details
#agencia ⇒ String
Returns 3 caracteres.
81 82 83 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 81 def agencia @agencia.to_s.rjust(3, '0') if @agencia.present? end |
#agencia_codigo_cedente ⇒ String
Retorna a Agencia, digito da agencia, código do cedente e o dígito do código do cedente.
137 138 139 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 137 def agencia_codigo_cedente "#{agencia}.#{digito_agencia} #{codigo_cedente}.#{digito_codigo_cedente}" end |
#carteira ⇒ String
Returns 2 caracteres.
99 100 101 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 99 def carteira @carteira.to_s.rjust(2, '0') if @carteira.present? end |
#codigo_banco ⇒ String
Returns Código do Banco descrito na documentação.
105 106 107 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 105 def codigo_banco '041' end |
#codigo_cedente ⇒ String
Returns 7 caracteres.
93 94 95 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 93 def codigo_cedente @codigo_cedente.to_s.rjust(7, '0') if @codigo_cedente.present? end |
#codigo_de_barras_do_banco ⇒ Object
Código de barras do banco
________________________________________________________________________________________________
| Posição | Tamanho | Descrição |
|---------|---------|---------------------------------------------------------------------------|
| 20 | 01 | Tipo da cobrança do produto (mais detalhes veja #tipo_da_cobranca) |
| 21 | 01 | Constante '1' |
| 22-24 | 03 | Agência (sem número de controle) |
| 25-31 | 07 | Código do Cedente (sem número de controle) |
| 32-39 | 08 | Nosso número (número do documento sem número de controle) |
| 40-42 | 03 | Constante '041' |
| 43-44 | 02 | Duplo Dígito referente às posições 20 a 42 (módulo do numero de controle) |
------------------------------------------------------------------------------------------------|
165 166 167 168 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 165 def codigo = "#{tipo_da_cobranca}1#{agencia}#{codigo_cedente}#{numero_documento}041" "#{codigo}#{ModuloNumeroDeControle.new(codigo)}" end |
#digito_agencia ⇒ String
Dígito do código da agência. Precisa mostrar esse dígito no boleto.
121 122 123 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 121 def digito_agencia ModuloNumeroDeControle.new(agencia) end |
#digito_codigo_banco ⇒ String
Dígito do código do banco. Precisa mostrar esse dígito no boleto.
113 114 115 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 113 def digito_codigo_banco '8' end |
#digito_codigo_cedente ⇒ String
Dígito do código do cedente. Precisa mostrar esse dígito no boleto.
129 130 131 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 129 def digito_codigo_cedente ModuloNumeroDeControle.new(codigo_cedente) end |
#nosso_numero ⇒ String
Retorna o número do documento com seu número de controle.
Para mais detalhes do cálculo, veja a classe ModuloNumeroDeControle.
147 148 149 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 147 def nosso_numero "#{numero_documento}.#{ModuloNumeroDeControle.new(numero_documento)}" end |
#numero_documento ⇒ String
Returns 8 caracteres.
87 88 89 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 87 def numero_documento @numero_documento.to_s.rjust(8, '0') if @numero_documento.present? end |
#tipo_da_cobranca ⇒ String
Tipo da cobranca do boleto
“1” Cobrança Normal, Fichário emitido pelo BANRISUL. “2” Cobrança Direta, Fichário emitido pelo CLIENTE.
177 178 179 |
# File 'lib/boleto_bancario/core/banrisul.rb', line 177 def tipo_da_cobranca "2" end |