Class: BrBoleto::Remessa::Cnab400::Itau

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

Instance Attribute Summary

Attributes inherited from Base

#data_hora_arquivo, #sequencial_remessa

Instance Method Summary collapse

Methods inherited from Base

#dados_do_arquivo, #dados_do_pagamento, #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_038_062, #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 TAM. Descrição


101 a 394 294 Brancos Tamanho total: 294



24
25
26
# File 'lib/br_boleto/remessa/cnab400/itau.rb', line 24

def complemento_registro
  ''.adjust_size_to(294)
end

#conta_classObject



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

def conta_class
  BrBoleto::Conta::Itau
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



135
136
137
138
139
140
141
142
143
# File 'lib/br_boleto/remessa/cnab400/itau.rb', line 135

def detalhe_multas_e_juros_do_pagamento(pagamento, sequencial)
  detalhe = ''
  detalhe << "#{pagamento.valor_mora_formatado}".adjust_size_to(13,'0', :right ) 
  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_063_076(pagamento, sequencial) ⇒ Object

Nosso numero do pagamento e outras informações Posição: 063 até 108 POSIÇÂO TAM. Descrição


063 a 070 008 Numero Documento 071 a 083 013 QUANTIDADE DE MOEDA VARIÁVEL 084 a 086 003 Carteira 087 a 107 021 Uso do banco 108 a 108 001 Cod. Carteira

Tamanho: 46



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

def detalhe_posicao_063_076(pagamento, sequencial)
  detalhe_posicao_063_108(pagamento)
end

#detalhe_posicao_063_108(pagamento) ⇒ Object



85
86
87
88
89
90
91
92
93
# File 'lib/br_boleto/remessa/cnab400/itau.rb', line 85

def detalhe_posicao_063_108(pagamento)
  info = ''
  info << "#{pagamento.numero_documento}".adjust_size_to(8, '0', :right)
  info << ''.adjust_size_to(13, '0', :right) # Este campo deverá ser preenchido com zeros caso a moeda seja o Real
  info << "#{conta.carteira}".adjust_size_to(3, '0', :right)
  info << ''.adjust_size_to(21)
  info << "#{conta.get_codigo_carteira}".adjust_size_to(1, 'I') 
  info
end

#detalhe_posicao_077_108(pagamento, sequencial) ⇒ Object



82
83
84
# File 'lib/br_boleto/remessa/cnab400/itau.rb', line 82

def detalhe_posicao_077_108(pagamento, sequencial)
  ''
end

#header_posicao_002_a_002Object

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



15
16
17
# File 'lib/br_boleto/remessa/cnab400/itau.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



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/br_boleto/remessa/cnab400/itau.rb', line 34

def informacoes_da_conta(local)

  # POSIÇÂO:
  #  Detalhe  |  Header       TAM.  Descrição
  #  18 a 21     27 a 30      004   Agência
  #  22 a 23     31 a 32      002   Zeros
  #  24 a 28     33 a 37      005   Conta Corrente
  #  29 a 29     38 a 38      001   Conta Corrente DV

  info = "#{conta.agencia}".adjust_size_to(4, '0', :right)
  info << '00'
  info << "#{conta.conta_corrente}".adjust_size_to(5, '0', :right)
  info << "#{conta.conta_corrente_dv}".adjust_size_to(1, '0', :right)

  if local == :detalhe 
    # POSIÇÂO    TAM.  Descrição
    # -------------------------------
    # 030 a 033  004   Brancos
    # 034 a 037  004   Cod. Instrução

    info << ''.adjust_size_to(4)
    info << ''.adjust_size_to(4, "0")

  elsif local == :header
    # POSIÇÂO    TAM.  Descrição
    # -------------------------------
    # 039 a 046  008   Brancos

    info << ''.adjust_size_to(8)
  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 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 159 a 160 002 2a instrução Tamanho: 40



109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/br_boleto/remessa/cnab400/itau.rb', line 109

def informacoes_do_pagamento(pagamento, sequencial)
  dados = ''
  dados << pagamento.data_vencimento_formatado('%d%m%y')
  dados << pagamento.valor_documento_formatado(13)
  dados << "#{conta.codigo_banco}".adjust_size_to(3,'0', :right)
  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')

  # 1a / 2a Instrução, conforme documentação (pag. 20, Nota 11):
  dados << ''.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

Tamanho: 176



166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# File 'lib/br_boleto/remessa/cnab400/itau.rb', line 166

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(30)
  info << ''.adjust_size_to(10)                                         # Complemento Registro (Brancos)
  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)    # CEP + Sufixo do CEP
  info << "#{pagamento.pagador.cidade}".adjust_size_to(15)             
  info << "#{pagamento.pagador.uf}".adjust_size_to(2)                  
  info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(30)      # Sacador/Avalista (Nome)
  info << ''.adjust_size_to(4)                                         # Complemento Registro (Brancos)

  info << ''.adjust_size_to(6, '0')                                    # Data de mora
  info << '03'                                                         # Quantidade de dias
  info << ''.adjust_size_to(1)                                         # Complemento Registro (Brancos)
  info                                                
end