Class: Brcobranca::Remessa::Cnab240::SicoobBancoBrasil

Inherits:
BaseCorrespondente show all
Defined in:
lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb

Instance Attribute Summary collapse

Attributes inherited from BaseCorrespondente

#codigo_carteira, #convenio, #distribuicao_boleto, #emissao_boleto, #especie_titulo, #forma_cadastramento, #mensagem_1, #mensagem_2, #tipo_documento

Attributes inherited from Base

#aceite, #agencia, #carteira, #conta_corrente, #documento_cedente, #empresa_mae, #pagamentos, #sequencial_remessa

Instance Method Summary collapse

Methods inherited from BaseCorrespondente

#codigo_protesto, #data_geracao, #formata_nosso_numero, #gera_arquivo, #hora_geracao, #identificacao_avalista, #identificacao_sacado, #monta_header_arquivo, #monta_lote, #monta_segmento_p, #monta_segmento_q

Methods inherited from Base

#quantidade_titulos_cobranca

Methods included from Validations

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

Constructor Details

#initialize(campos = {}) ⇒ SicoobBancoBrasil

Returns a new instance of SicoobBancoBrasil.



16
17
18
19
20
21
22
23
24
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 16

def initialize(campos = {})
  campos = {
    emissao_boleto: '2',
    distribuicao_boleto: '2',
    codigo_carteira: '9',
    tipo_documento: '02'
  }.merge!(campos)
  super(campos)
end

Instance Attribute Details

#codigo_cobrancaObject

Returns the value of attribute codigo_cobranca.



7
8
9
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 7

def codigo_cobranca
  @codigo_cobranca
end

Instance Method Details

#cod_bancoObject



26
27
28
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 26

def cod_banco
  '756'
end

#codigo_convenioObject Also known as: convenio_lote



52
53
54
55
56
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 52

def codigo_convenio
  # CAMPO                TAMANHO
  # num. convenio        20 BRANCOS
  ''.rjust(20, ' ')
end

#complemento_headerObject



42
43
44
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 42

def complemento_header
  "#{''.rjust(11, '0')}#{''.rjust(33, ' ')}"
end

#complemento_p(pagamento) ⇒ Object



46
47
48
49
50
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 46

def complemento_p(pagamento)
  # CAMPO                   TAMANHO
  # num. doc. de corbanca   15
  pagamento.nosso_numero.to_s.rjust(15, '0').to_s
end

#complemento_trailerObject



69
70
71
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 69

def complemento_trailer
  ''.rjust(217, ' ')
end

#digito_contaObject



30
31
32
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 30

def digito_conta
  conta_corrente.modulo11(mapeamento: { 10 => 'X' }).to_s
end

#info_contaObject



34
35
36
37
38
39
40
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 34

def info_conta
  # CAMPO                  TAMANHO
  # agencia                4
  # codigo cobranca        7
  # conta corrente         11
  "#{agencia.rjust(4, '0')}#{codigo_cobranca.rjust(7, '0')}#{conta_corrente.rjust(10, '0')}#{digito_conta}"
end

#monta_trailer_arquivo(nro_lotes, _sequencial) ⇒ String

Monta o registro trailer do arquivo

Parameters:

  • nro_lotes (Integer)

    numero de lotes no arquivo

  • sequencial (Integer)

    numero de registros(linhas) no arquivo

Returns:

  • (String)


82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 82

def monta_trailer_arquivo(nro_lotes, _sequencial)
  # CAMPO                     TAMANHO
  # zeros                     7
  # registro trailer lote     1
  # uso FEBRABAN              9
  # nro de lotes              6
  # nro de registros(linhas)  6
  # uso FEBRABAN              211
  "#{''.rjust(7,
              '0')}5#{''.rjust(9,
                               ' ')}#{nro_lotes.to_s.rjust(6,
                                                           '0')}#{valor_titulos_carteira}#{''.rjust(6,
                                                                                                    '0')}#{''.rjust(
                                                                                                      194, ' '
                                                                                                    )}"
end

#totaliza_valor_titulosObject



60
61
62
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 60

def totaliza_valor_titulos
  pagamentos.inject(0) { |sum, pag| sum + pag.valor.to_f }
end

#valor_titulos_carteiraObject



64
65
66
67
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 64

def valor_titulos_carteira
  total = format '%.2f', totaliza_valor_titulos
  total.somente_numeros.rjust(17, '0')
end