Class: BrBoleto::Remessa::Cnab400::Sicredi

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

Instance Attribute Summary

Attributes inherited from Base

#data_hora_arquivo, #sequencial_remessa

Instance Method Summary collapse

Methods inherited from Base

#complemento_registro, #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_394_a_400

Methods included from Helper::Detalhe

#detalhe_posicao_001_001, #detalhe_posicao_018_037, #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_077_a_094, #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

#conta_classObject



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

def conta_class
  BrBoleto::Conta::Sicredi
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 (Preencher com Zeros) 206 a 218 013 Valor do Abatimento a ser concedido ou cancelado Tamanho: 58



207
208
209
210
211
212
213
214
215
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 207

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 << ''.adjust_size_to(13,'0')
  detalhe << "#{pagamento.valor_abatimento_formatado}".adjust_size_to(13,'0', :right )
  detalhe
end

#detalhe_posicao_002_003(pagamento) ⇒ Object



101
102
103
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 101

def detalhe_posicao_002_003(pagamento)
  detalhe_posicao_002_004(pagamento)
end

#detalhe_posicao_002_004(pagamento) ⇒ Object

Detalhe Posição 002 a 004 POSIÇÂO TAM. Descrição


002 a 002 001 Tipo de cobrança (“A” - Sicredi Com Registro) 003 a 003 001 Tipo de carteira (“A” – Simples) 004 a 004 001 Tipo de Impressão (“A” – Normal)

Tamanho: 003



94
95
96
97
98
99
100
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 94

def detalhe_posicao_002_004(pagamento)
  detalhe = ''
  detalhe << "#{conta.get_tipo_cobranca(conta.carteira, 400)}".adjust_size_to(1, 'A')
  detalhe << "#{conta.get_tipo_cobranca(conta.codigo_carteira, 400)}".adjust_size_to(1, 'A')
  detalhe << "#{conta.get_tipo_impressao(pagamento.tipo_impressao, 400)}".adjust_size_to(1, 'A')
  detalhe
end

#detalhe_posicao_004_017Object



115
116
117
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 115

def detalhe_posicao_004_017
  detalhe_posicao_005_016
end

#detalhe_posicao_005_016Object

Detalhe Posição 005 a 016 POSIÇÂO TAM. Descrição


005 a 016 012 Deixar em Branco

Tamanho: 012



112
113
114
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 112

def detalhe_posicao_005_016
  detalhe = ''.adjust_size_to(12)
end

#detalhe_posicao_038_062(pagamento) ⇒ Object

Detalhe Posição 038 a 062


POSIÇÂO TAM. Descrição 038 a 047 010 Deixar em Branco 048 a 056 009 Nosso número Sicredi 057 a 062 006 Deixar em Branco

Tamanho: 25



127
128
129
130
131
132
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 127

def detalhe_posicao_038_062(pagamento)
  detalhe = "".adjust_size_to(10)
  detalhe << "#{pagamento.nosso_numero}".adjust_size_to(9, '0', :right)
  detalhe << "".adjust_size_to(6)
  detalhe
end

#detalhe_posicao_063_076(pagamento, sequencial) ⇒ Object

Detalhe Posição 063 a 108 POSIÇÂO TAM. Descrição


063 a 070 008 Data da Instrução 071 a 071 001 Campo alterado ( Branco ) 072 a 072 001 Postagem do título ( “N” - Não postar e remeter o título para o beneficiário ) 073 a 073 001 Branco 074 a 074 001 Emissão do boleto 075 a 076 002 Número da parcela do carnê 077 a 078 002 Número Total de parcelas do carnê 079 a 082 004 Brancos 083 a 092 010 Valor Desconto por dia de antecipação (Preencher com Zeros) 093 a 096 004 % multa por pagamento em atraso (Preencher com Zeros) 097 a 108 012 Brancos

Tamanho: 46



150
151
152
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 150

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

#detalhe_posicao_063_108(pagamento) ⇒ Object



156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 156

def detalhe_posicao_063_108(pagamento)
  dados = ''
  dados << "#{pagamento.data_emissao_formatado('%Y%m%d')}"
  dados << ''.adjust_size_to(1)
  dados << 'N'
  dados << ''.adjust_size_to(1)
  dados << "#{conta.get_identificacao_emissao(pagamento.emissao_boleto, 400)}".adjust_size_to(1, 'A')
  dados << ''.adjust_size_to(2)
  dados << ''.adjust_size_to(2)
  dados << ''.adjust_size_to(4)
  dados << ''.adjust_size_to(10, '0')
  dados << ''.adjust_size_to(4, '0')
  dados << ''.adjust_size_to(12)
  dados
end

#detalhe_posicao_077_108(pagamento, sequencial) ⇒ Object



153
154
155
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 153

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/sicredi.rb', line 15

def header_posicao_002_a_002
  '1'
end

#header_posicao_047_a_076Object

Nome do cedente Deixar em Brancos (sem preenchimento) Tamanho: 030



49
50
51
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 49

def header_posicao_047_a_076
  ''.adjust_size_to(30)
end

#header_posicao_095_a_100Object



59
60
61
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 59

def header_posicao_095_a_100
  header_posicao_095_a_102
end

#header_posicao_095_a_102Object

Data de Gravação Formato da data = AAAAMMDD Tamanho: 008



56
57
58
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 56

def header_posicao_095_a_102
  data_geracao('%Y%m%d')
end

#header_posicao_101_a_394Object

Complemento do registro Posição 103 até 394 POSIÇÂO TAM. Descrição


103 a 110 008 Brancos 111 a 117 007 Número da remessa 118 a 390 273 Brancos 391 a 394 004 Versão do sistema (2.00)

Tamanho: 292



73
74
75
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 73

def header_posicao_101_a_394
  header_posicao_103_a_394
end

#header_posicao_103_a_394Object



76
77
78
79
80
81
82
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 76

def header_posicao_103_a_394
  info = ''.adjust_size_to(8)
  info <<  "#{sequencial_remessa}".adjust_size_to(7, '0', :right)
  info << ''.adjust_size_to(273)
  info << '2.00'
  info
end

#informacoes_da_conta(local) ⇒ Object

Informações da conta <- Específico para cada banco



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 20

def informacoes_da_conta(local)

  # Detalhe Posição:  017 até 037
  if local == :detalhe 
    # POSIÇÂO    TAM.  Descrição
    # 017 a 017  001  Tipo de moeda     ( “A” – Real )
    # 018 a 018  001  Tipo de desconto  ( “B” – Percentual )
    # 019 a 019  001  Tipo de juros     ( “B” – Percentual )
    # 020 a 037  018  Branco
    info = 'ABB'
    info << ''.adjust_size_to(18)

  # Header Posição: 027 até 046
  elsif local == :header
    # POSIÇÂO    TAM.  Descrição
    # 027 a 031  005  Contas Corrente
    # 032 a 045  014  CPF/CNPJ
    # 046 a 046  001  Branco
    info = ''
    info << "#{conta.conta_corrente}".adjust_size_to(5, '0', :right)
    info << "#{conta.cpf_cnpj}".adjust_size_to(14, '0', :right)
    info << ''.adjust_size_to(1)
    info
  end
end

#informacoes_do_pagamento(pagamento, sequencial) ⇒ Object

Informações referente ao pagamento 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 148 009 Brancos 149 a 149 001 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



185
186
187
188
189
190
191
192
193
194
195
196
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 185

def informacoes_do_pagamento(pagamento, sequencial)
  info = ''
  info << pagamento.data_vencimento_formatado('%d%m%y')
  info << pagamento.valor_documento_formatado(13)
  info << ''.adjust_size_to(9)
  info << "#{conta.get_especie_titulo(pagamento.especie_titulo, 400)}".adjust_size_to(1, '0', :right)
  info << 'N'
  info << pagamento.data_emissao_formatado('%d%m%y')
  info << ''.adjust_size_to(2,'0', :right) # 1a Instrução
  info << ''.adjust_size_to(2,'0', :right) # 2a Instrução
  info
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 219 001 Identificação do Tipo de Inscrição do Pagador 220 a 220 001 Zero 221 a 234 014 No Inscrição do Pagador 235 a 274 040 Nome do Pagador 275 a 314 040 Endereço Completo 315 a 319 005 Código do Pagador na cooperativa beneficiária ( Preencher com zeros ) 320 a 325 006 Preencher com zeros 326 a 326 001 Branco 332 a 334 003 Sufixo do CEP 335 a 339 005 Código do Pagador junto ao cliente (Preencher com Zeros) 340 a 353 014 CPF/CNPJ Sacador/Avalista ou 2a Mensagem 354 a 394 041 Nome Sacador/Avalista Tamanho: 176



233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 233

def informacoes_do_sacado(pagamento, sequencial)
  info = ''
  info << "#{pagamento.pagador.tipo_cpf_cnpj}".last.adjust_size_to(1, '0', :right) # Tipo de Inscrição do Pagador
  info << ''.adjust_size_to(1, '0')
  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(18)                         # Endereço Completo
  info << "#{pagamento.pagador.bairro}".adjust_size_to(10)                           # Endereço Completo
  info << "#{pagamento.pagador.cidade}".adjust_size_to(10)                           # Endereço Completo
  info << "#{pagamento.pagador.uf}".adjust_size_to(2)                                # Endereço Completo
  info << ''.adjust_size_to(5, '0')                                                  # Código do Pagador na cooperativa
  info << ''.adjust_size_to(6, '0')                                                  # Preencher com zeros
  info << ''.adjust_size_to(1)                                                       # Preencher com Espaço em Branco
  info << "#{pagamento.pagador.cep}".adjust_size_to(8, '0', :right)                  # CEP + Sufixo do CEP
  info << ''.adjust_size_to(5, '0')                                                  # Código do Pagador
  info << "#{pagamento.pagador.documento_avalista}".adjust_size_to(14, '0', :right)  # Sacador/Avalista (CPF/CNPJ)
  info << "#{pagamento.pagador.nome_avalista}".adjust_size_to(41)                    # Sacador/Avalista (Nome)
  info                                                
end

#trailer_arquivo_posicao_002_a_394(sequencial) ⇒ Object

Detalhe Posição 002 a 0349 POSIÇÂO TAM. Descrição


002 a 002 001 Identificação do arquivo remessa 003 a 005 003 Número do Sicredi (748) 006 a 010 005 Código do beneficiário 011 a 394 384 Bracos

Tamanho: 393



264
265
266
267
268
269
270
271
# File 'lib/br_boleto/remessa/cnab400/sicredi.rb', line 264

def trailer_arquivo_posicao_002_a_394(sequencial)
  dados = ''
  dados << '1'                                                         # Identificação do arquivo remessa
  dados << "#{conta.codigo_banco}".adjust_size_to(3, '0', :right)      # Número do Sicredi
  dados << "#{conta.conta_corrente}".adjust_size_to(5, '0', :right)    # Código do beneficiário
  dados << ''.adjust_size_to(384)
  dados
end