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


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

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.


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

def byte_idt
  @byte_idt
end

#postoObject

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


11
12
13
# File 'lib/brcobranca/boleto/sicredi.rb', line 11

def posto
  @posto
end

Instance Method Details

#agencia_conta_boletoObject


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

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

#agencia_posto_contaObject


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

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

#bancoString

Codigo do banco emissor (3 dígitos sempre)


38
39
40
# File 'lib/brcobranca/boleto/sicredi.rb', line 38

def banco
  '748'
end

#banco_dvString

Dígito verificador do banco


70
71
72
# File 'lib/brcobranca/boleto/sicredi.rb', line 70

def banco_dv
  'X'
end

#carteira=(valor) ⇒ String

Carteira


45
46
47
# File 'lib/brcobranca/boleto/sicredi.rb', line 45

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)


127
128
129
130
# File 'lib/brcobranca/boleto/sicredi.rb', line 127

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


58
59
60
# File 'lib/brcobranca/boleto/sicredi.rb', line 58

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

#convenio=(valor) ⇒ String

Código Beneficiário


64
65
66
# File 'lib/brcobranca/boleto/sicredi.rb', line 64

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.


97
98
99
# File 'lib/brcobranca/boleto/sicredi.rb', line 97

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"

83
84
85
# File 'lib/brcobranca/boleto/sicredi.rb', line 83

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


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

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

#nosso_numero_dvInteger

Dígito verificador do nosso número


103
104
105
106
# File 'lib/brcobranca/boleto/sicredi.rb', line 103

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

#nosso_numero_with_byte_idtObject


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

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