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.


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

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


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

def codigo_cobranca
  @codigo_cobranca
end

Instance Method Details

#cod_bancoObject


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

def cod_banco
  '756'
end

#codigo_convenioObject Also known as: convenio_lote


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

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

#complemento_headerObject


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

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

#complemento_p(pagamento) ⇒ Object


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

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

#complemento_trailerObject


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

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

#digito_contaObject


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

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

#info_contaObject


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

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)

81
82
83
84
85
86
87
88
89
90
# File 'lib/brcobranca/remessa/cnab240/sicoob_banco_brasil.rb', line 81

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


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

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

#valor_titulos_carteiraObject


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

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