Class: BoletoBancario::Core::BancoBrasil

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

Overview

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

Documentação Implementada

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

Experimental

O Boleto do Banco do Brasil ainda está categorizado como experimental. POr favor ajude a validar e homologar esse banco para as carteiras suportadas conforme descrito abaixo.

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

Segue abaixo as carteiras suportadas do Banco do Brasil seguindo a documentação:

 ________________________________________________________________________________________________________
| Carteira | Descrição                                                    | Testada/Homologada no banco |
|   12     | Código do cedente de 6 dígitos                               | Esperando Contribuição      |
|   16     | Código do cedente de 6 dígitos e nosso numero com 17 dígitos | Esperando Contribuição      |
|   16     | Código do cedente de 4 dígitos                               | Esperando Contribuição      |
|   16     | Código do cedente de 6 dígitos                               | Esperando Contribuição      |
|   17     | Código do cedente de 7 dígitos                               | Esperando Contribuição      |
|   17     | Código do cedente de 8 dígitos                               | Esperando Contribuição      |
|   18     | Código do cedente de 4 dígitos                               | Esperando Contribuição      |
|   18     | Código do cedente de 6 dígitos                               | Esperando Contribuição      |
|   18     | Código do cedente de 6 dígitos e nosso numero com 17 dígitos | Esperando Contribuição      |
|   18     | Código do cedente de 7 dígitos                               | Esperando Contribuição      |
|   18     | Código do cedente de 8 dígitos                               | Esperando Contribuição      |
---------------------------------------------------------------------------------------------------------

# OBS.: Seja um contribuidor dessa gem. Contribua para homologar os boletos e as devidas carteiras junto ao banco Bradesco.

Instance Attribute Summary

Attributes inherited from Boleto

#aceite, #carteira, #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)


125
126
127
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 125

def self.carteiras_suportadas
  %w[12 16 17 18]
end

.tamanho_maximo_agenciaFixnum

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

Returns:

  • (Fixnum)

    4



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

def self.tamanho_maximo_agencia
  4
end

.tamanho_maximo_conta_correnteFixnum

Tamanho máximo de uma conta corrente no Banco do Brasil. Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.

Returns:

  • (Fixnum)

    8



58
59
60
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 58

def self.tamanho_maximo_conta_corrente
  8
end

.tamanho_maximo_numero_documento_com_codigo_cedente_oito_digitosFixnum

Tamanho máximo do número do documento emitido no Boleto, quando o código do cedente tiver 8 dígitos.

Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.

Returns:

  • (Fixnum)

    9



104
105
106
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 104

def self.tamanho_maximo_numero_documento_com_codigo_cedente_oito_digitos
  9
end

.tamanho_maximo_numero_documento_com_codigo_cedente_quatro_digitosFixnum

Tamanho máximo do número do documento emitido no Boleto, quando o código do cedente tiver 4 dígitos.

Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.

Returns:

  • (Fixnum)

    7



68
69
70
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 68

def self.tamanho_maximo_numero_documento_com_codigo_cedente_quatro_digitos
  7
end

.tamanho_maximo_numero_documento_com_codigo_cedente_seis_digitosFixnum

Tamanho máximo do número do documento emitido no Boleto, quando o código do cedente tiver 6 dígitos.

Convenção

Sempre que você for usar o número do documento com 17 dígitos nas carteiras 16 ou 18 com código cedente de 6 dígitos, fica a seu cargo colocar os 17 dígitos do número do documento.

Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.

Returns:

  • (Fixnum)

    17 ou 5



84
85
86
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 84

def self.tamanho_maximo_numero_documento_com_codigo_cedente_seis_digitos
  5
end

.tamanho_maximo_numero_documento_com_codigo_cedente_sete_digitosFixnum

Tamanho máximo do número do documento emitido no Boleto, quando o código do cedente tiver 7 dígitos.

Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.

Returns:

  • (Fixnum)

    10



94
95
96
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 94

def self.tamanho_maximo_numero_documento_com_codigo_cedente_sete_digitos
  10
end

.tamanho_maximo_numero_documento_dezessete_digitosFixnum

Tamanho máximo do número do documento emitido no Boleto, quando o código do cedente tiver 6 dígitos, ser carteira 16 ou 18 e ter o nosso número com 17 dígitos.

Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.

Returns:

  • (Fixnum)

    9



115
116
117
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 115

def self.tamanho_maximo_numero_documento_dezessete_digitos
  17
end

Instance Method Details

#agenciaString

Returns 4 caracteres.

Returns:

  • (String)

    4 caracteres



163
164
165
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 163

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

#agencia_codigo_cedenteString

Campo Agencia / Código do Cedente Retorna formatado a agência, digito da agência, número da conta corrente e dígito da conta.

Returns:

  • (String)


247
248
249
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 247

def agencia_codigo_cedente
  "#{agencia}-#{digito_agencia} / #{conta_corrente}-#{digito_conta_corrente}"
end

#carteiras_nosso_numero_dezessete_posicoesArray

Retorna as carteiras que aceitam nosso número com 17 posições.

Returns:

  • (Array)


498
499
500
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 498

def carteiras_nosso_numero_dezessete_posicoes
  %w(16 18)
end

#codigo_bancoString

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

Returns:

  • (String)

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



214
215
216
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 214

def codigo_banco
  '001'
end

#codigo_cedente_oito_digitos?true, false

Verifica se o código do cedente possui 8 dígitos.

Returns:

  • (true, false)


469
470
471
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 469

def codigo_cedente_oito_digitos?
  tamanho_codigo_cedente == 8
end

#codigo_cedente_quatro_digitos?true, false

Verifica se o código do cedente possui 4 dígitos.

Returns:

  • (true, false)


445
446
447
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 445

def codigo_cedente_quatro_digitos?
  tamanho_codigo_cedente == 4
end

#codigo_cedente_seis_digitos?true, false

Verifica se o código do cedente possui 6 dígitos.

Returns:

  • (true, false)


453
454
455
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 453

def codigo_cedente_seis_digitos?
  tamanho_codigo_cedente == 6
end

#codigo_cedente_sete_digitos?true, false

Verifica se o código do cedente possui 7 dígitos.

Returns:

  • (true, false)


461
462
463
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 461

def codigo_cedente_sete_digitos?
  tamanho_codigo_cedente == 7
end

#codigo_de_barras_codigo_cedente_quatro_ou_seis_digitosString

Retorna o código de barras do campo livre para emissão de boletos com:

Nosso número de 11 posições - EXCLUSIVO PARA CONVÊNIOS DE SEIS POSIÇÕES.

Returns:

  • (String)


408
409
410
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 408

def codigo_de_barras_codigo_cedente_quatro_ou_seis_digitos
  "#{codigo_cedente}#{numero_documento}#{agencia}#{conta_corrente}#{carteira}"
end

#codigo_de_barras_codigo_cedente_seis_posicoes_nosso_numero_dezessete_posicoesString

Retorna o código de barras do campo livre para emissão de bloquetos com:

Nosso número de 17 posições - EXCLUSIVO PARA AS CARTEIRAS 16 E 18, VINCULADAS À CONVÊNIOS COM SEIS POSIÇÕES.

Returns:

  • (String)


428
429
430
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 428

def codigo_de_barras_codigo_cedente_seis_posicoes_nosso_numero_dezessete_posicoes
  "#{codigo_cedente}#{numero_documento}#{modalidade_de_cobranca}"
end

#codigo_de_barras_codigo_cedente_sete_ou_oito_digitosString

Retorna o código de barras do campo livre para emissão de boletos com:

Carteira 17 e 18 - VINCULADOS À CONVÊNIOS COM NUMERAÇÃO SUPERIOR A 1.000.000 (um milhão).

Returns:

  • (String)


418
419
420
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 418

def codigo_de_barras_codigo_cedente_sete_ou_oito_digitos
  "000000#{codigo_cedente}#{numero_documento}#{carteira}"
end

#codigo_de_barras_do_bancoObject

Código do cedente com 4 dígitos

Quando o código do cedente possui 4 dígitos o formato do código de barras deve ficar assim:

 __________________________________________________________________________
| Posição  | Tamanho | Descrição                                          |
|----------|---------|----------------------------------------------------|
| 20-30    |  11     | Nosso-Número, sem dígito verificador               |
|       20-23        | Código do cedente fornecido pelo Banco (4 dígitos) |
|       24-30        | Nosso-Número, sem dígito verificador (7 dígitos)   |
| 31-34    |  04     | Agência (sem o dígito)                             |
| 35-42    |  08     | Conta corrente (sem o dígito)                      |
| 43-44    |  02     | Carteira                                           |
---------------------------------------------------------------------------

Código do cedente com 6 dígitos

Quando o código do cedente possui 6 dígitos o formato do código de barras deve ficar assim:

 __________________________________________________________________________
| Posição  | Tamanho | Descrição                                          |
|----------|---------|----------------------------------------------------|
| 20-30    |  11     | Nosso-Número, sem dígito verificador               |
|       20-25        | Código do cedente fornecido pelo Banco (6 dígitos) |
|       26-30        | Nosso-Número, sem dígito verificador (5 dígitos)   |
| 31-34    |  04     | Agência (sem o dígito)                             |
| 35-42    |  08     | Conta corrente (sem o dígito)                      |
| 43-44    |  02     | Carteira                                           |
---------------------------------------------------------------------------

Código do cedente com 7 dígitos

Quando o código do cedente possui 7 dígitos o formato do código de barras deve ficar assim:

 __________________________________________________________________________
| Posição  | Tamanho | Descrição                                          |
|----------|---------|----------------------------------------------------|
| 20-30    |  17     | Nosso-Número, sem dígito verificador               |
|       20-32        | Código do cedente fornecido pelo Banco (7 dígitos) |
|       33-42        | Nosso-Número, sem dígito verificador (10 dígitos)  |
| 43-44    |  02     | Carteira                                           |
---------------------------------------------------------------------------

Código do cedente com 8 dígitos

Quando o código do cedente possui 8 dígitos o formato do código de barras deve ficar assim:

 __________________________________________________________________________
| Posição  | Tamanho | Descrição                                          |
|----------|---------|----------------------------------------------------|
| 20-30    |  17     | Nosso-Número, sem dígito verificador               |
|       20-33        | Código do cedente fornecido pelo Banco (8 dígitos) |
|       34-42        | Nosso-Número, sem dígito verificador (9 dígitos)   |
| 43-44    |  02     | Carteira                                           |
---------------------------------------------------------------------------

Carteiras 16 e 18, código do cedente de 6 posições, nosso número com 17 dígitos.

Código do cedente possui 6 dígitos, nosso número com 17 dígitos e a carteira for 16 ou 18, o formato do código de barras deve ficar assim:

 ___________________________________________________________
| Posição  | Tamanho | Descrição                           |
|----------|---------|-------------------------------------|
| 20-25    |  6      | Código do cedente de 6 dígitos      |
| 26-42    |  17     | Nosso número livre do cliente       |
| 43-44    |  02     | "21" Tipo da modalidade de cobranca |
------------------------------------------------------------


388
389
390
391
392
393
394
395
396
397
398
399
400
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 388

def codigo_de_barras_do_banco
  if nosso_numero_dezessete_posicoes?
    return codigo_de_barras_codigo_cedente_seis_posicoes_nosso_numero_dezessete_posicoes
  end

  if codigo_cedente_quatro_digitos? or codigo_cedente_seis_digitos?
    return codigo_de_barras_codigo_cedente_quatro_ou_seis_digitos
  end

  if codigo_cedente_sete_digitos? or codigo_cedente_oito_digitos?
    codigo_de_barras_codigo_cedente_sete_ou_oito_digitos
  end
end

#conta_correnteString

Returns 8 caracteres.

Returns:

  • (String)

    8 caracteres



169
170
171
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 169

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

#deve_validar_com_codigo_cedente_oito_digitos?Boolean

Método que pode ser sobrescrito na subclasse se você não quiser que essa validação ocorra.

Lembre-se que fica a seu critério, mudar as validações da gem.

Returns:

  • (Boolean)


552
553
554
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 552

def deve_validar_com_codigo_cedente_oito_digitos?
  deve_validar_codigo_cedente? and codigo_cedente_oito_digitos?
end

#deve_validar_com_codigo_cedente_quatro_digitos?Boolean

Método que pode ser sobrescrito na subclasse se você não quiser que essa validação ocorra.

Lembre-se que fica a seu critério, mudar as validações da gem.

Returns:

  • (Boolean)


520
521
522
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 520

def deve_validar_com_codigo_cedente_quatro_digitos?
  deve_validar_codigo_cedente? and codigo_cedente_quatro_digitos?
end

#deve_validar_com_codigo_cedente_seis_digitos?Boolean

Método que pode ser sobrescrito na subclasse se você não quiser que essa validação ocorra.

Lembre-se que fica a seu critério, mudar as validações da gem.

Returns:

  • (Boolean)


528
529
530
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 528

def deve_validar_com_codigo_cedente_seis_digitos?
  deve_validar_codigo_cedente? and codigo_cedente_seis_digitos? and not nosso_numero_dezessete_posicoes?
end

#deve_validar_com_codigo_cedente_sete_digitos?Boolean

Método que pode ser sobrescrito na subclasse se você não quiser que essa validação ocorra.

Lembre-se que fica a seu critério, mudar as validações da gem.

Returns:

  • (Boolean)


544
545
546
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 544

def deve_validar_com_codigo_cedente_sete_digitos?
  deve_validar_codigo_cedente? and codigo_cedente_sete_digitos?
end

#deve_validar_com_nosso_numero_dezessete_digitos?Boolean

Método que pode ser sobrescrito na subclasse se você não quiser que essa validação ocorra.

Lembre-se que fica a seu critério, mudar as validações da gem.

Returns:

  • (Boolean)


536
537
538
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 536

def deve_validar_com_nosso_numero_dezessete_digitos?
  deve_validar_codigo_cedente? and codigo_cedente_seis_digitos? and nosso_numero_dezessete_posicoes?
end

#digito_agenciaString

Dígito do código da agência. Precisa mostrar esse dígito no boleto.

Returns:

  • (String)

    Dígito da agência calculado apartir do Modulo11FatorDe9a2RestoX.



230
231
232
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 230

def digito_agencia
  Modulo11FatorDe9a2RestoX.new(agencia)
end

#digito_codigo_bancoString

Dígito do código do banco. Precisa mostrar esse dígito no boleto.

Returns:

  • (String)

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



222
223
224
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 222

def digito_codigo_banco
  '9'
end

#digito_conta_correnteString

Dígito da conta corrente. Precisa mostrar esse dígito no boleto.

Returns:

  • (String)

    Dígito da conta corrente calculado apartir do Modulo11FatorDe9a2RestoX.



238
239
240
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 238

def digito_conta_corrente
  Modulo11FatorDe9a2RestoX.new(conta_corrente)
end

#digito_nosso_numeroString

Para o cálculo do dígito, será necessário acrescentar o código do cedente e Nosso Número (número do documento), e aplicar o módulo 11, com fatores de 9 a 2 verificando o resto da divisão.

Para mais detalhes de como o cálculo é feito veja a classe Modulo11FatorDe9a2RestoX.

Returns:

  • (String)

    Retorno do cálculo do módulo 11 com os fatores (9,8,7,6,5,4,3,2).



315
316
317
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 315

def digito_nosso_numero
  Modulo11FatorDe9a2RestoX.new("#{codigo_cedente}#{numero_documento}")
end

#modalidade_de_cobrancaString

Modalidade de cobranca definida pelo Banco do Brasil para ser mostrado no código de barras com código de cedente de seis posições e nosso número de 17 posições, carteira 16 e 18.

Returns:

  • (String)

    21



437
438
439
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 437

def modalidade_de_cobranca
  "21"
end

#nosso_numeroString

Composição do nosso número

Código do Cedente de 4 dígitos

 ___________________________________________________________
| Posição  | Tamanho | Descrição                           |
|----------|---------|-------------------------------------|
| 01-04    |  04     | Código do cedente de 4 dígitos      |
| 05-11    |  07     | Nosso número livre do cliente       |
| 12       |  01     | Dígito Verificador do Nosso número  |
------------------------------------------------------------

Código do Cedente de 6 dígitos

 ___________________________________________________________
| Posição  | Tamanho | Descrição                           |
|----------|---------|-------------------------------------|
| 01-06    |  06     | Código do cedente de 6 dígitos      |
| 07-11    |  05     | Nosso número livre do cliente       |
| 12       |  01     | Dígito Verificador do Nosso número  |
------------------------------------------------------------

Código do Cedente de 7 dígitos

 ___________________________________________________________
| Posição  | Tamanho | Descrição                           |
|----------|---------|-------------------------------------|
| 01-07    |  07     | Código do cedente de 7 dígitos      |
| 08-17    |  10     | Nosso número livre do cliente       |
------------------------------------------------------------

Obs.: Não existe Dígito Verificador na composição do nosso-número para convênios de sete posições.

Código do Cedente de 8 dígitos

 ___________________________________________________________
| Posição  | Tamanho | Descrição                           |
|----------|---------|-------------------------------------|
| 01-08    |  08     | Código do cedente de 7 dígitos      |
| 09-17    |  09     | Nosso número livre do cliente       |
------------------------------------------------------------

Obs.: Não existe Dígito Verificador na composição do nosso-número para convênios de oito posições.

Returns:

  • (String)

    Nosso número que será mostrado no boleto



299
300
301
302
303
304
305
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 299

def nosso_numero
  if codigo_cedente_oito_digitos? or codigo_cedente_sete_digitos?
    "#{codigo_cedente}#{numero_documento}"
  else
    "#{codigo_cedente}#{numero_documento}-#{digito_nosso_numero}"
  end
end

#nosso_numero_dezessete_posicoes?true, false

Verifica se:

  • Número do documento possui 17 dígitos

  • Carteira está habilitada para usar 17 dígitos do número documento.

  • Código do Cedente está habilitado para usar 17 dígitos do número documento (se tiver 6 dígitos).

Returns:

  • (true, false)


490
491
492
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 490

def nosso_numero_dezessete_posicoes?
  codigo_cedente_seis_digitos? and carteira.to_s.in?(carteiras_nosso_numero_dezessete_posicoes) and numero_documento.to_s.size == 17
end

#numero_documentoString

Número do Documento VS. Código do Cedente

No caso do Banco do Brasil, o tamanho do código do cedente ditará o tamanho do número do documento. Ou seja, quando o código do cedente for X, o tamanho do número do documento deverá ser Y. Segue abaixo:

 ______________________________________________________________
| Tamanho do Código Cedente  | Tamanho do Número do documento |
|----------------------------|--------------------------------|
|          04                |           07                   |
|          06                |           05                   |
|          07                |           10                   |
|          08                |           09                   |
---------------------------------------------------------------

OBS.: Quando o tamanho do código do cedente for 6, o número do documento pode ter 17 dígitos, se for usado com a carteira 16 ou 18.

Returns:

  • (String)


193
194
195
196
197
198
199
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 193

def numero_documento
  if @numero_documento.present? and numero_documento_esperado[tamanho_codigo_cedente].present?
    @numero_documento.to_s.rjust(numero_documento_esperado[tamanho_codigo_cedente], '0')
  else
    @numero_documento
  end
end

#numero_documento_esperadoHash

Para ficar documentado preferi criar um método onde retorna o tamanho esperado do número do documento dependendo do tamanho do código do cedente.

Para mais detalhes veja o método #numero_documento dessa classe.

Returns:

  • (Hash)

    As chaves significam o tamanho do código cedente e o valor o tamanho esperado do número do documento.



208
209
210
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 208

def numero_documento_esperado
  { 0 => 0, 4 => 7, 6 => 5, 7 => 10, 8 => 9 }
end

#tamanho_codigo_cedenteFixnum

Retorna o tamanho do campo código do cedente. Super importante para o número do documento e e para o código de barras

Returns:

  • (Fixnum)

    Tamanho do campo código do cedente.



478
479
480
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 478

def tamanho_codigo_cedente
  codigo_cedente.to_s.size
end

#tamanhos_codigo_cedente_suportadoArray

Retorna os tamanhos do código do cedente suportados pelo Banco do Brasil.

Returns:

  • (Array)


512
513
514
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 512

def tamanhos_codigo_cedente_suportado
  [4, 6, 7, 8]
end

#validacao_tamanho_de_digitos_codigo_cedenteObject

Verifica se o campo código do cedente tem o tamanho suportado pelo Banco do Brasil.



504
505
506
# File 'lib/boleto_bancario/core/banco_brasil.rb', line 504

def validacao_tamanho_de_digitos_codigo_cedente
  errors.add(:codigo_cedente, :invalid) unless tamanho_codigo_cedente.in?(tamanhos_codigo_cedente_suportado)
end