Class: BrBoleto::Boleto::Sicredi

Inherits:
Base show all
Defined in:
lib/br_boleto/boleto/sicredi.rb

Instance Attribute Summary

Attributes inherited from Base

#aceite, #codigo_moeda, #data_documento, #data_vencimento, #especie, #especie_documento, #instrucoes1, #instrucoes2, #instrucoes3, #instrucoes4, #instrucoes5, #instrucoes6, #local_pagamento, #logo, #numero_documento, #parcelas, #valor_documento

Instance Method Summary collapse

Methods inherited from Base

#aceite_formatado, #codigo_de_barras, #codigo_de_barras_padrao, #data_vencimento_deve_ser_uma_data, #digito_codigo_de_barras, #fator_de_vencimento, #linha_digitavel, #nosso_numero_retorno, #persisted?, #to_partial_path, #valid_valor_documento_tamanho_maximo, #valor_formatado_para_codigo_de_barras

Methods included from HavePagador

#pagador, #pagador=

Methods included from HaveConta

#conta, #conta=

Methods inherited from ActiveModelBase

#assign_attributes, #initialize

Constructor Details

This class inherits a constructor from BrBoleto::ActiveModelBase

Instance Method Details

#anoObject



57
58
59
# File 'lib/br_boleto/boleto/sicredi.rb', line 57

def ano
  data_documento.strftime('%y')
end

#codigo_de_barras_do_bancoObject

Código de barras do banco

 ___________________________________________________________________________________________________
| Posi


77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/br_boleto/boleto/sicredi.rb', line 77

def codigo_de_barras_do_banco
  campo_livre =  "#{conta.carteira}"
  campo_livre << "#{conta.codigo_carteira}"
  campo_livre << "#{nosso_numero_codigo_de_barras}"
  campo_livre << "#{conta.agencia}"
  campo_livre << "#{conta.posto}"
  campo_livre << "#{conta.conta_corrente}"
  campo_livre << "#{valor_expresso}" 
  campo_livre << "0"
  campo_livre << "#{codigo_dv(campo_livre)}"
  campo_livre
end

#codigo_dv(codigo) ⇒ Object



89
90
91
# File 'lib/br_boleto/boleto/sicredi.rb', line 89

def codigo_dv(codigo)
  Modulo11FatorDe2a9RestoZero.new(codigo)
end

#conta_classObject



7
8
9
# File 'lib/br_boleto/boleto/sicredi.rb', line 7

def conta_class
  BrBoleto::Conta::Sicredi
end

#default_valuesObject

Conforme descrito na documentação, o valor que deve constar em local do pagamento é “PAGÁVEL PREFERENCIALMENTE NAS COOPERATIVAS DE CRÉDITO DO SICREDI”



38
39
40
41
42
# File 'lib/br_boleto/boleto/sicredi.rb', line 38

def default_values
  super.merge({
    :local_pagamento   => 'PAGÁVEL PREFERENCIALMENTE NAS COOPERATIVAS DE CRÉDITO DO SICREDI'
  })
end

#digito_verificador_nosso_numeroObject



54
55
56
# File 'lib/br_boleto/boleto/sicredi.rb', line 54

def digito_verificador_nosso_numero
  BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new("#{conta.agencia}#{conta.posto}#{conta.conta_corrente}#{ano}#{conta.byte_id}#{numero_documento}")
end

#nosso_numeroObject

Nosso Número descrito na documentação (Pag. 84). O campo Nosso Número deve ser apresentado no formato AA/BXXXXX-D, onde: AA = Ano atual B = Byte que pode ser de 2 a 9. Somente será 1 se forem boletos pré-impressos. XXXXX = número sequencial D = dígito verificador calculado Exemplo: “14/200022-5”



51
52
53
# File 'lib/br_boleto/boleto/sicredi.rb', line 51

def nosso_numero
  "#{ano}/#{conta.byte_id}#{numero_documento}-#{digito_verificador_nosso_numero}"
end

#nosso_numero_codigo_de_barrasObject



92
93
94
# File 'lib/br_boleto/boleto/sicredi.rb', line 92

def nosso_numero_codigo_de_barras
  "#{ano}#{conta.byte_id}#{numero_documento}#{digito_verificador_nosso_numero}"
end

#valid_carteira_inclusionObject



16
17
18
# File 'lib/br_boleto/boleto/sicredi.rb', line 16

def valid_carteira_inclusion
  %w[1 3]
end

#valid_conta_corrente_maximumObject

Tamanho máximo de uma conta corrente no Banco Sicredi



26
27
28
# File 'lib/br_boleto/boleto/sicredi.rb', line 26

def valid_conta_corrente_maximum 
  5
end

#valid_convenio_maximumObject

Tamanho máximo para o codigo_cedente/Convênio



21
22
23
# File 'lib/br_boleto/boleto/sicredi.rb', line 21

def valid_convenio_maximum 
  5
end

#valid_convenio_requiredObject

codigo_cedente/Convênio deve ser obrigatório



31
32
33
# File 'lib/br_boleto/boleto/sicredi.rb', line 31

def valid_convenio_required
  true
end

#valid_numero_documento_maximumObject

VALIDAÇÕES DINÂMICAS #################



12
13
14
# File 'lib/br_boleto/boleto/sicredi.rb', line 12

def valid_numero_documento_maximum
  5
end

#valor_expressoObject



95
96
97
# File 'lib/br_boleto/boleto/sicredi.rb', line 95

def valor_expresso
  @valor_documento.present? ? '1' : '0'
end