Class: Brcobranca::Boleto::Sicredi

Inherits:
Base
  • Object
show all
Defined in:
lib/brcobranca/boleto/sicredi.rb

Overview

Banco SICREDI

Instance Attribute Summary collapse

Attributes inherited from Base

#aceite, #agencia, #avalista, #avalista_documento, #carteira, #carteira_label, #cedente, #cedente_endereco, #codigo_servico, #conta_corrente, #convenio, #data_documento, #data_processamento, #data_vencimento, #demonstrativo, #documento_cedente, #documento_numero, #emv, #especie, #especie_documento, #instrucao1, #instrucao2, #instrucao3, #instrucao4, #instrucao5, #instrucao6, #instrucao7, #instrucoes, #local_pagamento, #moeda, #nosso_numero, #quantidade, #sacado, #sacado_documento, #sacado_endereco, #valor, #variacao

Instance Method Summary collapse

Methods inherited from Base

#agencia_dv, #codigo_barras, #conta_corrente_dv, #fator_vencimento, #logotipo, #valor_documento

Methods included from Template::Base

define_template

Methods included from Validations

#errors, included, #invalid?, #valid?

Constructor Details

#initialize(campos = {}) ⇒ Sicredi

Nova instancia do Bradesco

Parameters:

  • campos (Hash) (defaults to: {})


33
34
35
36
# File 'lib/brcobranca/boleto/sicredi.rb', line 33

def initialize(campos = {})
  campos = { carteira: '3', especie_documento: 'A' }.merge!(campos)
  super(campos)
end

Instance Attribute Details

#byte_idtObject

REQUERIDO: Byte de identificação do cedente do bloqueto utilizado para compor o nosso número.



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

def byte_idt
  @byte_idt
end

#postoObject

REQUERIDO: Código do posto da cooperativa de crédito



13
14
15
# File 'lib/brcobranca/boleto/sicredi.rb', line 13

def posto
  @posto
end

Instance Method Details

#agencia_conta_boletoObject



111
112
113
# File 'lib/brcobranca/boleto/sicredi.rb', line 111

def agencia_conta_boleto
  "#{agencia}.#{posto}.#{convenio}"
end

#agencia_posto_contaObject



115
116
117
# File 'lib/brcobranca/boleto/sicredi.rb', line 115

def agencia_posto_conta
  "#{agencia}#{posto}#{convenio}"
end

#bancoString

Codigo do banco emissor (3 dígitos sempre)

Returns:

  • (String)

    3 caracteres numéricos.



41
42
43
# File 'lib/brcobranca/boleto/sicredi.rb', line 41

def banco
  '748'
end

#banco_dvString

Dígito verificador do banco

Returns:

  • (String)

    1 caractere.



73
74
75
# File 'lib/brcobranca/boleto/sicredi.rb', line 73

def banco_dv
  'X'
end

#carteira=(valor) ⇒ String

Carteira

Returns:

  • (String)

    2 caracteres numéricos.



48
49
50
# File 'lib/brcobranca/boleto/sicredi.rb', line 48

def carteira=(valor)
  @carteira = valor.to_s.rjust(1, '0') if valor
end

#codigo_barras_segunda_parteObject

Segunda parte do código de barras. Posição Tamanho Conteúdo 20 – 20 01 Código numérico correspondente ao tipo de cobrança: “1” – Com Registro “3 – Sem Registro”. Obs.: O SICREDI não validará este campo. 21 – 21 01 Código numérico correspondente ao tipo de carteira: “1” - carteira simples 22 – 30 09 Nosso número 31 – 34 # 04 # Cooperativa de crédito/agência beneficiária 35 – 36 # 02 # Posto da cooperativa de crédito/agência beneficiária 37 – 41 # 05 # Código do beneficiário 42 – 42 # 01 # Será 1 (um) quando houver valor expresso no campo “valor do documento” 43 – 43 # 01 # Filler – zeros “0” 44 – 44 # 01 # DV do campo livre calculado por módulo 11 com aproveitamento total (resto igual a 0 ou 1 DV cai para 0)



130
131
132
133
# File 'lib/brcobranca/boleto/sicredi.rb', line 130

def codigo_barras_segunda_parte
  campo_livre = "#{carteira}1#{nosso_numero_codigo_barra}#{agencia_posto_conta}10"
  campo_livre + campo_livre.modulo11(mapeamento: mapeamento_para_modulo_11).to_s
end

#conta_corrente=(valor) ⇒ String

Número da conta corrente

Returns:

  • (String)

    5 caracteres numéricos.



61
62
63
# File 'lib/brcobranca/boleto/sicredi.rb', line 61

def conta_corrente=(valor)
  @conta_corrente = valor.to_s.rjust(5, '0') if valor
end

#convenio=(valor) ⇒ String

Código Beneficiário

Returns:

  • (String)

    5 caracteres numéricos.



67
68
69
# File 'lib/brcobranca/boleto/sicredi.rb', line 67

def convenio=(valor)
  @convenio = valor.to_s.rjust(5, '0') if valor
end

#nosso_numero=(valor) ⇒ String

Número seqüencial utilizado para identificar o boleto.

Returns:

  • (String)

    5 caracteres numéricos.



100
101
102
# File 'lib/brcobranca/boleto/sicredi.rb', line 100

def nosso_numero=(valor)
  @nosso_numero = valor.to_s.rjust(5, '0') if valor
end

#nosso_numero_boletoString

Nosso número para exibir no boleto. 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

Examples:

boleto.nosso_numero_boleto #=> "14/200022-5"

Returns:

  • (String)


86
87
88
# File 'lib/brcobranca/boleto/sicredi.rb', line 86

def nosso_numero_boleto
  "#{nosso_numero_with_byte_idt[0..1]}/#{nosso_numero_with_byte_idt[2..-1]}-#{nosso_numero_dv}"
end

#nosso_numero_codigo_barraObject



90
91
92
# File 'lib/brcobranca/boleto/sicredi.rb', line 90

def nosso_numero_codigo_barra
  nosso_numero_boleto.gsub(/\D/, '')
end

#nosso_numero_dvInteger

Dígito verificador do nosso número

Returns:

  • (Integer)

    1 caracteres numéricos.



106
107
108
109
# File 'lib/brcobranca/boleto/sicredi.rb', line 106

def nosso_numero_dv
  "#{agencia_posto_conta}#{nosso_numero_with_byte_idt}"
    .modulo11(mapeamento: mapeamento_para_modulo_11)
end

#nosso_numero_with_byte_idtObject



94
95
96
# File 'lib/brcobranca/boleto/sicredi.rb', line 94

def nosso_numero_with_byte_idt
  "#{data_processamento.strftime('%y')}#{byte_idt}#{nosso_numero}"
end