Class: BrBoleto::Conta::Sicoob

Inherits:
Base show all
Defined in:
lib/br_boleto/conta/sicoob.rb

Instance Attribute Summary

Attributes inherited from Base

#agencia, #carteira, #codigo_carteira, #conta_corrente, #convenio, #convenio_dv, #cpf_cnpj, #endereco, #modalidade, #razao_social, #valid_agencia_length, #valid_carteira_inclusion, #valid_carteira_length, #valid_carteira_maximum, #valid_carteira_minimum, #valid_carteira_required, #valid_codigo_carteira_length, #valid_codigo_carteira_required, #valid_conta_corrente_length, #valid_conta_corrente_maximum, #valid_conta_corrente_minimum, #valid_conta_corrente_required, #valid_convenio_inclusion, #valid_convenio_length, #valid_convenio_maximum, #valid_convenio_minimum, #valid_convenio_required, #valid_endereco_required, #valid_modalidade_inclusion, #valid_modalidade_length, #valid_modalidade_maximum, #valid_modalidade_minimum, #valid_modalidade_required

Instance Method Summary collapse

Methods inherited from Base

#agencia_codigo_cedente, #carteira_formatada, #codigo_banco_formatado, #cpf_cnpj_formatado, #cpf_cnpj_formatado_com_label, #tipo_cobranca, #tipo_cpf_cnpj

Methods included from Helper::DefaultCodes

#codigos_movimento_retorno_para_ocorrencia_A_240, #codigos_movimento_retorno_para_ocorrencia_A_400, #codigos_movimento_retorno_para_ocorrencia_B_240, #codigos_movimento_retorno_para_ocorrencia_B_400, #codigos_movimento_retorno_para_ocorrencia_C_240, #codigos_movimento_retorno_para_ocorrencia_C_400, #codigos_movimento_retorno_para_ocorrencia_D_240, #codigos_movimento_retorno_para_ocorrencia_D_400, #equivalent_codigo_desconto, #equivalent_codigo_moeda_240, #equivalent_codigo_moeda_400, #equivalent_codigo_motivo_ocorrencia_A_240, #equivalent_codigo_motivo_ocorrencia_A_400, #equivalent_codigo_motivo_ocorrencia_B_240, #equivalent_codigo_motivo_ocorrencia_B_400, #equivalent_codigo_motivo_ocorrencia_C_240, #equivalent_codigo_motivo_ocorrencia_C_400, #equivalent_codigo_motivo_ocorrencia_D_240, #equivalent_codigo_motivo_ocorrencia_D_400, #equivalent_codigo_movimento_remessa_240, #equivalent_codigo_movimento_retorno_240, #equivalent_codigo_ocorrencia_pagador_240, #equivalent_codigo_ocorrencia_pagador_400, #equivalent_codigo_protesto_240, #equivalent_codigo_protesto_400, #equivalent_distribuicao_boleto, #equivalent_especie_titulo_240, #equivalent_especie_titulo_400, #equivalent_identificacao_emissao_240, #equivalent_identificacao_emissao_400, #equivalent_tipo_cobranca_240, #equivalent_tipo_cobranca_400, #equivalent_tipo_impressao_240, #equivalent_tipo_impressao_400, #get_codigo_desconto, #get_codigo_juros, #get_codigo_moeda, #get_codigo_motivo_ocorrencia, #get_codigo_movimento_remessa, #get_codigo_movimento_retorno, #get_codigo_multa, #get_codigo_ocorrencia_pagador, #get_codigo_protesto, #get_distribuicao_boleto, #get_especie_titulo, #get_identificacao_emissao, #get_tipo_cobranca, #get_tipo_impressao

Methods inherited from ActiveModelBase

#assign_attributes, #initialize

Constructor Details

This class inherits a constructor from BrBoleto::ActiveModelBase

Instance Method Details

#agencia_dvObject



53
54
55
56
57
# File 'lib/br_boleto/conta/sicoob.rb', line 53

def agencia_dv
	# utilizando a agencia com 4 digitos
	# para calcular o digito
	@agencia_dv ||= BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new(agencia).to_s
end

#codigo_bancoObject



32
33
34
# File 'lib/br_boleto/conta/sicoob.rb', line 32

def codigo_banco
	'756'
end

#codigo_banco_dvObject

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



37
38
39
# File 'lib/br_boleto/conta/sicoob.rb', line 37

def codigo_banco_dv
	'0'
end

#conta_corrente_dvObject



59
60
61
62
63
# File 'lib/br_boleto/conta/sicoob.rb', line 59

def conta_corrente_dv
	# utilizando a conta corrente com 5 digitos
	# para calcular o digito
	@conta_corrente_dv ||= BrBoleto::Calculos::Modulo11FatorDe2a9RestoZero.new(conta_corrente).to_s
end

#default_codigo_jurosObject



88
89
90
# File 'lib/br_boleto/conta/sicoob.rb', line 88

def default_codigo_juros
	'0'
end

#default_codigo_multaObject



91
92
93
# File 'lib/br_boleto/conta/sicoob.rb', line 91

def default_codigo_multa
	'0'
end

#default_valuesObject

MODALIDADE O banco siccob utiliza a combinação da carteira e modalidade para saber se é um pagamento com registro, sem registrou ou caucionada. Carteira / Modalidade = Tipo de pagamento

1     /    01       = Simples com Registro
1     /    02       = Simples sem Registro
3     /    03       = Garantia caicionada


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/br_boleto/conta/sicoob.rb', line 14

def default_values
	super.merge({
		carteira:                      '1',         # Simples
		modalidade:                    '01',        # Com registro
		valid_modalidade_required:     true,        # <- Validação dinâmica que a modalidade é obrigatória
		valid_modalidade_length:       2,           # <- Validação dinâmica que a modalidade deve ter 2 digitos
		valid_modalidade_inclusion:    %w[01 02 03],# <- Validação dinâmica de valores aceitos para a modalidade
		valid_carteira_required:       true,        # <- Validação dinâmica que a carteira é obrigatória
		valid_carteira_length:         1,           # <- Validação dinâmica que a carteira deve ter 1 digito
		valid_carteira_inclusion:      %w[1 3],     # <- Validação dinâmica de valores aceitos para a carteira
		codigo_carteira:               '1',  # Cobrança Simples
		valid_codigo_carteira_length:   1,           # <- Validação dinâmica que a carteira deve ter 1 digito
		valid_conta_corrente_required: true, # <- Validação dinâmica que a conta_corrente é obrigatória
		valid_conta_corrente_maximum:  8,    # <- Validação que a conta_corrente deve ter no máximo 8 digitos
		valid_codigo_cedente_maximum:  6,    # <- Validação que a codigo_cedente/convênio deve ter no máximo 7 digitos
	})
end

#equivalent_codigo_jurosObject

Código que representa a isenção de juros e multa deve ser ‘0’ Diferentemente do padrão da FEBRABAN que é ‘3’ Ou seja, se passar o código 3 deve considerar ‘0’



81
82
83
# File 'lib/br_boleto/conta/sicoob.rb', line 81

def equivalent_codigo_juros
	super.merge({'3' => '0', '0'=>'0'})
end

#equivalent_codigo_movimento_remessa_400Object

Códigos de Movimento Remessa / Identificacao Ocorrência específicos do Banco



69
70
71
72
73
74
75
# File 'lib/br_boleto/conta/sicoob.rb', line 69

def equivalent_codigo_movimento_remessa_400
	super.merge(
		{
			'23' => '12',  # Alteração de Pagador
			'46' => '34',  # Baixa - Pagamento Direto ao Beneficiário
		})
end

#equivalent_codigo_movimento_retorno_400Object

Identificações de Ocorrência / Código de ocorrência:



96
97
98
99
100
101
102
103
104
# File 'lib/br_boleto/conta/sicoob.rb', line 96

def equivalent_codigo_movimento_retorno_400
	super.merge(
		#  Padrão    Código para  
		{# do Banco    a GEM
			'05'    =>  '17' , # Liquidação Sem Registro: Identifica a liquidação de título da modalidade "SEM REGISTRO";
			'15'    =>  '101', # Liquidação em Cartório: Identifica as liquidações dos títulos ocorridas em cartórios de protesto;
			'23'    =>  '19' , # Encaminhado a Protesto: Identifica o recebimento da instrução de protesto
		})
end

#equivalent_codigo_multaObject



84
85
86
# File 'lib/br_boleto/conta/sicoob.rb', line 84

def equivalent_codigo_multa
	super.merge({'3' => '0', '0'=>'0'})
end

#nome_bancoObject



41
42
43
# File 'lib/br_boleto/conta/sicoob.rb', line 41

def nome_banco
	@nome_banco ||= 'SICOOB'
end

#versao_layout_arquivo_cnab_240Object



45
46
47
# File 'lib/br_boleto/conta/sicoob.rb', line 45

def versao_layout_arquivo_cnab_240
	'081'
end

#versao_layout_lote_cnab_240Object



49
50
51
# File 'lib/br_boleto/conta/sicoob.rb', line 49

def versao_layout_lote_cnab_240
	'040'
end