Class: Brcobranca::Boleto::Sicoob
- Defined in:
- lib/brcobranca/boleto/sicoob.rb
Overview
Sicoob (Bancoob)
Instance Attribute Summary
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, #descontos_e_abatimentos, #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
-
#agencia=(valor) ⇒ String
Agência.
- #agencia_conta_boleto ⇒ Object
-
#banco ⇒ String
Codigo do banco emissor (3 dígitos sempre).
-
#banco_dv ⇒ String
Dígito verificador do banco.
-
#codigo_barras_segunda_parte ⇒ Object
Posição Tamanho Conteúdo 20 a 20 01 Código da carteira de cobrança - vide planilha “Capa” deste arquivo 21 a 24 04 Código da agência/cooperativa - verificar na planilha “Capa” deste arquivo 25 a 26 02 Código da modalidade - verificar na planilha “Capa” deste arquivo 27 a 33 07 Código do cedente/cliente - verificar na planilha “Capa” deste arquivo 34 a 41 08 Nosso número do boleto 41 a 44 03 Número da parcela a que o boleto se refere - “001” se parcela única.
-
#convenio=(valor) ⇒ String
Convênio.
-
#initialize(campos = {}) ⇒ Sicoob
constructor
A new instance of Sicoob.
-
#nosso_numero=(valor) ⇒ String
Número documento.
-
#nosso_numero_boleto ⇒ String
Nosso número para exibição no boleto.
-
#nosso_numero_dv ⇒ Object
3.13.
-
#quantidade=(valor) ⇒ String
Quantidade.
Methods inherited from Base
#agencia_dv, #codigo_barras, #conta_corrente_dv, #fator_vencimento, #logotipo, #valor_documento
Methods included from Template::Base
Methods included from Validations
#errors, included, #invalid?, #valid?
Constructor Details
#initialize(campos = {}) ⇒ Sicoob
Returns a new instance of Sicoob.
14 15 16 17 |
# File 'lib/brcobranca/boleto/sicoob.rb', line 14 def initialize(campos = {}) campos = { carteira: '1', variacao: '01', quantidade: '001' }.merge!(campos) super(campos) end |
Instance Method Details
#agencia=(valor) ⇒ String
Agência
36 37 38 |
# File 'lib/brcobranca/boleto/sicoob.rb', line 36 def agencia=(valor) @agencia = valor.to_s.rjust(4, '0') if valor end |
#agencia_conta_boleto ⇒ Object
104 105 106 |
# File 'lib/brcobranca/boleto/sicoob.rb', line 104 def agencia_conta_boleto "#{agencia} / #{convenio}" end |
#banco ⇒ String
Codigo do banco emissor (3 dígitos sempre)
22 23 24 |
# File 'lib/brcobranca/boleto/sicoob.rb', line 22 def banco '756' end |
#banco_dv ⇒ String
Dígito verificador do banco
29 30 31 |
# File 'lib/brcobranca/boleto/sicoob.rb', line 29 def banco_dv '0' end |
#codigo_barras_segunda_parte ⇒ Object
Posição Tamanho Conteúdo
20 a 20 01 Código da carteira de cobrança - vide planilha "Capa" deste arquivo
21 a 24 04 Código da agência/cooperativa - verificar na planilha "Capa" deste arquivo
25 a 26 02 Código da modalidade - verificar na planilha "Capa" deste arquivo
27 a 33 07 Código do cedente/cliente - verificar na planilha "Capa" deste arquivo
34 a 41 08 Nosso número do boleto
41 a 44 03 Número da parcela a que o boleto se refere - "001" se parcela única
115 116 117 |
# File 'lib/brcobranca/boleto/sicoob.rb', line 115 def "#{carteira}#{agencia}#{variacao}#{convenio}#{nosso_numero_boleto}#{quantidade}" end |
#convenio=(valor) ⇒ String
Convênio
43 44 45 |
# File 'lib/brcobranca/boleto/sicoob.rb', line 43 def convenio=(valor) @convenio = valor.to_s.rjust(7, '0') if valor end |
#nosso_numero=(valor) ⇒ String
Número documento
50 51 52 |
# File 'lib/brcobranca/boleto/sicoob.rb', line 50 def nosso_numero=(valor) @nosso_numero = valor.to_s.rjust(7, '0') if valor end |
#nosso_numero_boleto ⇒ String
Nosso número para exibição no boleto.
64 65 66 |
# File 'lib/brcobranca/boleto/sicoob.rb', line 64 def nosso_numero_boleto "#{nosso_numero}#{nosso_numero_dv}" end |
#nosso_numero_dv ⇒ Object
3.13. Nosso número: Código de controle que permite ao Sicoob e à empresa identificar os dados da cobrança que deu origem ao boleto.
Para o cálculo do dígito verificador do nosso número, deverá ser utilizada a fórmula abaixo: Número da Cooperativa 9(4) – vide planilha “Capa” deste arquivo Código do Cliente 9(10) – vide planilha “Capa” deste arquivo Nosso Número 9(7) – Iniciado em 1
Constante para cálculo = 3197
a) Concatenar na seqüência completando com zero à esquerda.
Ex.:Número da Cooperativa = 0001
Número do Cliente = 1-9
Nosso Número = 21
000100000000190000021
b) Alinhar a constante com a seqüência repetindo de traz para frente.
Ex.: 000100000000190000021
319731973197319731973
c) Multiplicar cada componente da seqüência com o seu correspondente da constante e somar os resultados.
Ex.: 1*7 + 1*3 + 9*1 + 2*7 + 1*3 = 36
d) Calcular o Resto através do Módulo 11.
Ex.: 36/11 = 3, resto = 3
e) O resto da divisão deverá ser subtraído de 11 achando assim o DV (Se o Resto for igual a 0 ou 1 então o DV é igual a 0).
Ex.: 11 – 3 = 8, então Nosso Número + DV = 21-8
96 97 98 99 100 101 102 |
# File 'lib/brcobranca/boleto/sicoob.rb', line 96 def nosso_numero_dv "#{agencia}#{convenio.rjust(10, '0')}#{nosso_numero}".modulo11( reverse: false, multiplicador: [3, 1, 9, 7], mapeamento: { 10 => 0, 11 => 0 } ) { |t| 11 - (t % 11) } end |
#quantidade=(valor) ⇒ String
Quantidade
57 58 59 |
# File 'lib/brcobranca/boleto/sicoob.rb', line 57 def quantidade=(valor) @quantidade = valor.to_s.rjust(3, '0') if valor end |