Class: BoletoBancario::Core::Real

Inherits:
Boleto
  • Object
show all
Defined in:
lib/boleto_bancario/core/real.rb

Overview

Implementação de emissão de boleto bancário pelo Banco Real.

Documentação Implementada

A documentação na qual essa implementação foi baseada está localizada na pasta ‘documentacoes_dos_boletos/real’ dentro dessa biblioteca.

Cobrança sem registro:

Nosso número: 13 dígitos
Código da Agência: 4 dígitos
Número da Conta: 7 dígitos

Código da Carteira

'00' - Carteira do convênio
'20' - Cobrança Simples
'31' - Cobrança Câmbio
'42' - Cobrança Caucionada
'47' - Cobr. Caucionada Crédito Imobiliário
'85' - Cobrança Partilhada

Instance Attribute Summary

Attributes inherited from Boleto

#aceite, #cedente, #codigo_cedente, #codigo_moeda, #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

Instance Method Summary collapse

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_suportadasArray

Carteiras suportadas.

Método criado para validar se a carteira informada é suportada.

Returns:

  • (Array)


59
60
61
# File 'lib/boleto_bancario/core/real.rb', line 59

def self.carteiras_suportadas
  %w[00 20 31 42 47 85]
end

.tamanho_maximo_agenciaFixnum

Tamanho máximo de uma agência no Banco Real. Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.

Returns:

  • (Fixnum)

    4



31
32
33
# File 'lib/boleto_bancario/core/real.rb', line 31

def self.tamanho_maximo_agencia
  4
end

.tamanho_maximo_conta_correnteFixnum

Tamanho máximo da conta corrente no Boleto. Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.

Returns:

  • (Fixnum)

    7



40
41
42
# File 'lib/boleto_bancario/core/real.rb', line 40

def self.tamanho_maximo_conta_corrente
  7
end

.tamanho_maximo_numero_documentoFixnum

Tamanho máximo do numero do documento no Boleto. Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.

Returns:

  • (Fixnum)

    13



49
50
51
# File 'lib/boleto_bancario/core/real.rb', line 49

def self.tamanho_maximo_numero_documento
  13
end

Instance Method Details

#agenciaString

Returns 4 caracteres.

Returns:

  • (String)

    4 caracteres



100
101
102
# File 'lib/boleto_bancario/core/real.rb', line 100

def agencia
  @agencia.to_s.rjust(4, '0') if @agencia.present?
end

#agencia_codigo_cedenteString

Campo Agência/Código Cedente

Returns:

  • (String)

    Campo descrito na documentação.



138
139
140
# File 'lib/boleto_bancario/core/real.rb', line 138

def agencia_codigo_cedente
  "#{agencia}/#{conta_corrente}/#{cobranca_dv}"
end

#carteiraString

Returns 2 caracteres.

Returns:

  • (String)

    2 caracteres



118
119
120
# File 'lib/boleto_bancario/core/real.rb', line 118

def carteira
  @carteira.to_s.rjust(2, '0') if @carteira.present?
end

#cobranca_dvString

Cálculo do Digito verificador da Cobrança

Nosso Número + Agência + Conta Corrente
Calculado atravez do modulo 10

Returns:

  • (String)


148
149
150
# File 'lib/boleto_bancario/core/real.rb', line 148

def cobranca_dv
  Modulo10.new("#{nosso_numero}#{agencia}#{conta_corrente}")
end

#codigo_bancoString

Returns Código do Banco descrito na documentação.

Returns:

  • (String)

    Código do Banco descrito na documentação.



124
125
126
# File 'lib/boleto_bancario/core/real.rb', line 124

def codigo_banco
  '356'
end

#codigo_de_barras_do_bancoString

Código de barras do banco

 ____________________________________________________
| Posição | Tamanho | Descrição                      |
|---------|---------|--------------------------------|
| 20 – 23 |   04    | Agencia                        |
| 24 – 30 |   07    | Conta corrente                 |
| 31 – 31 |   01    | Digito verificador da cobrança |
| 32 – 44 |   13    | Nosso numero                   |
|____________________________________________________|

Returns:

  • (String)


172
173
174
# File 'lib/boleto_bancario/core/real.rb', line 172

def codigo_de_barras_do_banco
  "#{agencia}#{conta_corrente}#{cobranca_dv}#{nosso_numero}"
end

#conta_correnteString

Returns 7 caracteres.

Returns:

  • (String)

    7 caracteres



106
107
108
# File 'lib/boleto_bancario/core/real.rb', line 106

def conta_corrente
  @conta_corrente.to_s.rjust(7, '0') if @conta_corrente.present?
end

#digito_codigo_bancoString

Returns Dígito do código do banco descrito na documentação.

Returns:

  • (String)

    Dígito do código do banco descrito na documentação.



130
131
132
# File 'lib/boleto_bancario/core/real.rb', line 130

def digito_codigo_banco
  '5'
end

#nosso_numeroString

O nosso numero é o mesmo numero que o cliente informa para o numero do documento

Returns:

  • (String)


156
157
158
# File 'lib/boleto_bancario/core/real.rb', line 156

def nosso_numero
  "#{numero_documento}"
end

#numero_documentoString

Returns 13 caracteres.

Returns:

  • (String)

    13 caracteres



112
113
114
# File 'lib/boleto_bancario/core/real.rb', line 112

def numero_documento
  @numero_documento.to_s.rjust(13, '0') if @numero_documento.present?
end