Class: BoletoBancario::Core::Sicoob

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

Overview

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

Documentação Implementada

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

Código da Carteira

'1' - Cobrança SEM registro
'9' - Cobrança COM registro

Instance Attribute Summary

Attributes inherited from Boleto

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

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)


50
51
52
# File 'lib/boleto_bancario/core/sicoob.rb', line 50

def self.carteiras_suportadas
  %w[1 9]
end

.tamanho_maximo_agenciaFixnum

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

Returns:

  • (Fixnum)

    4



22
23
24
# File 'lib/boleto_bancario/core/sicoob.rb', line 22

def self.tamanho_maximo_agencia
  4
end

.tamanho_maximo_codigo_cedenteFixnum

Tamanho máximo do codigo cedente no Banco Sicoob. Método criado justamente para ficar documentado o tamanho máximo aceito até a data corrente.

Returns:

  • (Fixnum)

    7



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

def self.tamanho_maximo_codigo_cedente
  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)

    6



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

def self.tamanho_maximo_numero_documento
  6
end

Instance Method Details

#agenciaString

Returns 4 caracteres.

Returns:

  • (String)

    4 caracteres



91
92
93
# File 'lib/boleto_bancario/core/sicoob.rb', line 91

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

#agencia_codigo_cedenteString

Campo Agência / Código do Cedente

Returns:

  • (String)


123
124
125
# File 'lib/boleto_bancario/core/sicoob.rb', line 123

def agencia_codigo_cedente
  "#{agencia} / #{codigo_cedente}"
end

#anoString

Ano atual usado para os calculos

Returns:

  • (String)


140
141
142
# File 'lib/boleto_bancario/core/sicoob.rb', line 140

def ano
  Date.today.strftime('%y')
end

#codigo_bancoString

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

Returns:

  • (String)

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



109
110
111
# File 'lib/boleto_bancario/core/sicoob.rb', line 109

def codigo_banco
  '756'
end

#codigo_cedenteString

Returns 7 caracteres.

Returns:

  • (String)

    7 caracteres



97
98
99
# File 'lib/boleto_bancario/core/sicoob.rb', line 97

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

#codigo_de_barras_do_bancoString

Código de barras do banco

 ___________________________________________________________
| Posição | Tamanho | Descrição                             |
|---------|---------|---------------------------------------|
| 20 - 20 |    01   | Código da carteira                    |
| 21 - 24 |    04   | Código da agência                     |
| 25 - 26 |    02   | Código da modalidade de cobrança (01) |
| 27 - 33 |    07   | Código do Cedente                     |
| 34 - 41 |    08   | Nosso Número do título                |
| 42 - 44 |    03   | Número da Parcela do Título (001)     |
|___________________________________________________________|

Returns:

  • (String)


159
160
161
# File 'lib/boleto_bancario/core/sicoob.rb', line 159

def codigo_de_barras_do_banco
  "#{carteira}#{agencia}#{modalidade_cobranca}#{codigo_cedente}#{nosso_numero}#{parcelas}"
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.



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

def digito_codigo_banco
  '0'
end

#modalidade_cobrancaObject



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

def modalidade_cobranca
  '01'
end

#nosso_numeroString

O nosso número descrino na documentação é formado pelo dois ultimos digitos do ano autal e por outros 6 digitos que o clinte usara para numerar os documentos, assim sendo composto por 8 dígitos.

Returns:

  • (String)


132
133
134
# File 'lib/boleto_bancario/core/sicoob.rb', line 132

def nosso_numero
  "#{ano}#{numero_documento}"
end

#numero_documentoString

Returns 6 caracteres.

Returns:

  • (String)

    6 caracteres



103
104
105
# File 'lib/boleto_bancario/core/sicoob.rb', line 103

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

#parcelasObject



167
168
169
# File 'lib/boleto_bancario/core/sicoob.rb', line 167

def parcelas
  '001'
end