Class: BrBoleto::Remessa::Cnab400::Caixa

Inherits:
Base show all
Defined in:
lib/br_boleto/remessa/cnab400/caixa.rb

Instance Attribute Summary

Attributes inherited from Base

#data_hora_arquivo, #sequencial_remessa

Instance Method Summary collapse

Methods inherited from Base

#dados_do_arquivo, #informacoes_do_banco

Methods included from Helper::Trailer

#monta_trailer, #trailer_arquivo_posicao_001_a_001, #trailer_arquivo_posicao_002_a_394, #trailer_arquivo_posicao_394_a_400

Methods included from Helper::Detalhe

#detalhe_posicao_001_001, #detalhe_posicao_002_003, #detalhe_posicao_004_017, #detalhe_posicao_018_037, #detalhe_posicao_063_076, #detalhe_posicao_109_110, #detalhe_posicao_111_120, #detalhe_posicao_121_160, #detalhe_posicao_161_218, #detalhe_posicao_219_394, #detalhe_posicao_395_400, #monta_detalhe

Methods included from Helper::Header

#header_posicao_001_a_001, #header_posicao_003_a_009, #header_posicao_010_a_011, #header_posicao_012_a_026, #header_posicao_027_a_046, #header_posicao_047_a_076, #header_posicao_077_a_094, #header_posicao_095_a_100, #header_posicao_101_a_394, #header_posicao_395_a_400, #monta_header

Methods inherited from Base

#data_geracao, #hora_geracao, #pagamento_valid_cod_desconto_length, #pagamento_valid_distribuicao_boleto_length, #pagamento_valid_emissao_boleto_length, #pagamento_valid_tipo_impressao_required, #persisted?

Methods included from HaveConta

#conta, #conta=

Methods inherited from ActiveModelBase

#assign_attributes, #default_values, #initialize

Constructor Details

This class inherits a constructor from BrBoleto::ActiveModelBase

Instance Method Details

#complemento_registroObject

Complemento do registro Posição: 101 até 394

POSI

101 a 389 289 Uso Exclusivo CAIXA (Brancos) 390 a 394 005 No Seqüencial de Remessa (iniciar com ‘00001’ e evoluir de 1 em 1 para cada Header de Arquivo) Tamanho total: 294



25
26
27
28
29
30
# File 'lib/br_boleto/remessa/cnab400/caixa.rb', line 25

def complemento_registro
  complemento = ''
  complemento << ''.adjust_size_to(289)
  complemento <<  "#{sequencial_remessa}".adjust_size_to(5, '0', :right)
  complemento
end

#conta_classObject



6
7
8
# File 'lib/br_boleto/remessa/cnab400/caixa.rb', line 6

def conta_class
  BrBoleto::Conta::Caixa
end

#dados_do_pagamento(pagamento) ⇒ Object

POSIÇÂO TAM. Descrição


059 a 073 015 Número do Documento 074 a 076 003 Campos em branco

Tamanho: 18



89
90
91
92
93
94
# File 'lib/br_boleto/remessa/cnab400/caixa.rb', line 89

def dados_do_pagamento(pagamento)
  detalhe = ''
  detalhe << "#{pagamento.numero_documento}".adjust_size_to(15, '0', :right)
  detalhe << "".adjust_size_to(3)
  detalhe
end

#detalhe_multas_e_juros_do_pagamento(pagamento, sequencial) ⇒ Object

Informações referente aos juros e multas do pagamento Posição: 161 a 218 POSIÇÂO TAM. Descrição 161 a 173 013 Valor a ser cobrado por Dia de Atraso 174 a 179 006 Data Limite P/Concessão de Desconto 180 a 192 013 Valor do Desconto 193 a 205 013 Valor do IOF 206 a 218 013 Valor do Abatimento a ser concedido ou cancelado Tamanho: 58



147
148
149
150
151
152
153
154
155
# File 'lib/br_boleto/remessa/cnab400/caixa.rb', line 147

def detalhe_multas_e_juros_do_pagamento(pagamento, sequencial)
  detalhe = ''
  detalhe << pagamento.valor_juros_monetario_formatado(13)
  detalhe << "#{pagamento.data_desconto_formatado('%d%m%y')}".adjust_size_to(6,'0', :right )
  detalhe << "#{pagamento.valor_desconto_formatado}".adjust_size_to(13,'0', :right )
  detalhe << "#{pagamento.valor_iof_formatado}".adjust_size_to(13,'0', :right )
  detalhe << "#{pagamento.valor_abatimento_formatado}".adjust_size_to(13,'0', :right )
  detalhe
end

#detalhe_posicao_028_058(pagamento) ⇒ Object

detalhe_posicao_028_058 POSIÇÂO TAM. Descrição


028 a 028 001 Identificação da Emissão do Boleto 029 a 029 001 ID Entrega/Distribuição do Boleto 030 a 031 002 Comissão de Permanência (Informar ‘00’) 032 a 056 025 Número do Documento 057 a 058 002 Carteira

Tamanho: 31



69
70
71
72
73
74
75
76
77
78
# File 'lib/br_boleto/remessa/cnab400/caixa.rb', line 69

def detalhe_posicao_028_058(pagamento)
  detalhe = ''
  detalhe << "#{conta.get_identificacao_emissao(pagamento.emissao_boleto, 400)}".adjust_size_to(1, '0', :right)
  detalhe << "#{conta.get_distribuicao_boleto(pagamento.distribuicao_boleto)}".adjust_size_to(1, '0', :right)
  detalhe << "00"
  detalhe << "#{pagamento.numero_documento}".adjust_size_to(25, '0', :right)
  detalhe << "#{conta.carteira}".adjust_size_to(2, '0', :right)
  detalhe
  
end

#detalhe_posicao_038_062(pagamento) ⇒ Object



79
80
81
# File 'lib/br_boleto/remessa/cnab400/caixa.rb', line 79

def detalhe_posicao_038_062(pagamento)
  detalhe_posicao_028_058(pagamento)
end

#detalhe_posicao_077_108(pagamento, sequencial) ⇒ Object

POSIÇÂO TAM. Descrição


077 a 106 030 Mensagem a ser impressa no boleto 107 a 108 002 Código da Carteira

Tamanho: 32



102
103
104
105
106
107
# File 'lib/br_boleto/remessa/cnab400/caixa.rb', line 102

def detalhe_posicao_077_108(pagamento, sequencial)
  detalhe = ''
  detalhe << "".adjust_size_to(30)
  detalhe << "#{conta.get_tipo_cobranca(conta.codigo_carteira, 400)}".adjust_size_to(2, '0', :right)
  detalhe
end

#header_posicao_002_a_002Object

Código da remessa Tipo: Numérico Tamanho: 001



15
16
17
# File 'lib/br_boleto/remessa/cnab400/caixa.rb', line 15

def header_posicao_002_a_002
  '1'
end

#informacoes_da_conta(local) ⇒ Object

Informações da conta <- Específico para cada banco Posição: 018 até 037 (Detalhe) Posição: 027 até 046 (Header) Tamanho: 020



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/br_boleto/remessa/cnab400/caixa.rb', line 38

def informacoes_da_conta(local)

  # POSIÇÂO:
  #  Detalhe  |  Header       TAM.  Descrição
  #  18 a 21     27 a 30      004   Agência
  #  22 a 27     31 a 36      006   Convênio

  info = ''
  info << "#{conta.agencia}".adjust_size_to(4, '0', :right)
  info << "#{conta.convenio}".adjust_size_to(6, '0', :right)

  if local == :header
    # POSIÇÂO    TAM.  Descrição
    # ---------------------------------------------------
    # 037 a 046  010   Uso Exclusivo CAIXA (Brancos)
    info << ''.adjust_size_to(10)
  end

  info
end

#informacoes_do_pagamento(pagamento, sequencial) ⇒ Object

Informações referente ao pagamento Posição 121 até 160 POSIÇÂO TAM. Descrição 121 a 126 006 Data do Vencimento do Título 127 a 139 013 Valor do Título 140 a 142 003 Banco Encarregado da Cobrança (Preencher ‘104’) 143 a 147 005 Agência Depositária (Preencher com zeros) 148 a 149 002 Espécie de Título 150 a 150 001 Identificação (Sempre ‘N’) 151 a 156 006 Data da emissão do Título 157 a 158 002 1a instrução (Código para Protesto / Devolução) 159 a 160 002 2a instrução (Preencher com zeros) Tamanho: 40



123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/br_boleto/remessa/cnab400/caixa.rb', line 123

def informacoes_do_pagamento(pagamento, sequencial)
  dados = ''
  dados << pagamento.data_vencimento_formatado('%d%m%y')
  dados << pagamento.valor_documento_formatado(13)
  dados << '104'
  dados << ''.adjust_size_to(5,'0', :right)
  dados << "#{conta.get_especie_titulo(pagamento.especie_titulo, 400)}".adjust_size_to(2, '0', :right)
  dados << 'N'
  dados << pagamento.data_emissao_formatado('%d%m%y')

  dados << "#{conta.get_codigo_protesto(pagamento.codigo_protesto, 400)}".adjust_size_to(2, '0', :right) # 1a Instrução
  dados << ''.adjust_size_to(2,'0', :right) # 2a Instrução
  dados
end

#informacoes_do_sacado(pagamento, sequencial) ⇒ Object

Informações referente aos dados do sacado/pagador Posição: 219 a 394 POSIÇÂO TAM. Descrição 219 a 220 002 Identificação do Tipo de Inscrição do Pagador 221 a 234 014 No Inscrição do Pagador 235 a 274 040 Nome do Pagador 275 a 314 040 Endereço Paagador 315 a 326 012 Bairro do Pagador 327 a 334 008 CEP 335 a 349 015 Cidade do Pagador 350 a 351 002 UF do Pagador 352 a 357 006 Data da Multa 358 a 367 010 Valor da Multa 368 a 389 022 Nome Sacador/Avalista 390 a 391 002 3a instrução (Preencher com ‘00’ = Não imprime mensagem no verso do boleto) 392 a 393 002 Número de dias para início do protesto/devolução 394 a 394 001 Código da Moeda Tamanho: 176



175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
# File 'lib/br_boleto/remessa/cnab400/caixa.rb', line 175

def informacoes_do_sacado(pagamento, sequencial)
  info = ''
  # Tipo de Inscrição do Pagador: "01" = CPF , "02" = CNPJ , "03" = PIS/PASEP , "98" = Não tem , "99" = Outros
  info << "#{pagamento.pagador.tipo_cpf_cnpj}".adjust_size_to(2, '0', :right)
  info << "#{pagamento.pagador.cpf_cnpj}".adjust_size_to(14, '0', :right)
  info << "#{pagamento.pagador.nome}".adjust_size_to(40)
  info << "#{pagamento.pagador.endereco}".adjust_size_to(40)
  info << "#{pagamento.pagador.bairro}".adjust_size_to(12)
  info << "#{pagamento.pagador.cep}".adjust_size_to(8, '0', :right)
  info << "#{pagamento.pagador.cidade}".adjust_size_to(15)
  info << "#{pagamento.pagador.uf}".adjust_size_to(2)
  info << "#{pagamento.data_multa_formatado}".adjust_size_to(6, '0', :right)                       # Data da Multa
  info << "#{pagamento.valor_multa_formatado(10)}".adjust_size_to(10, '0', :right)                 # Valor da Multa
  info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(22)                                  # Sacador/Avalista (Nome)
  info << "00"                                                                                     # 3a instrução
  info << "#{pagamento.dias_protesto}".adjust_size_to(2, '0', :right)                              # Número de dias protesto/devolução
  info << "#{conta.get_codigo_moeda(pagamento.codigo_moeda, 400)}".adjust_size_to(1, '1', :right)  # Código da Moeda
  info                                                
end