Class: BrBoleto::Remessa::Cnab400::Unicred

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

Overview

A Unicred (CobExpress) utiliza o layout de boleto e os arquivos de remessa/retorno disponibilizados pelo Banco Bradesco.

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, #detalhe_multas_e_juros_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_018_037, #detalhe_posicao_109_110, #detalhe_posicao_121_160, #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 107 007 Branco 108 a 110 003 Código da Variação carteira da UNICRED (000) 111 a 117 007 No Seqüencial de Remessa (deve iniciar de 0000001 e incrementado de + 1 a cada NOVO Arquivo Remessa) 118 a 394 277 Branco Tamanho total: 294



28
29
30
31
32
33
34
# File 'lib/br_boleto/remessa/cnab400/unicred.rb', line 28

def complemento_registro
  info = ''.adjust_size_to(7)
  info << '000'
  info <<  "#{sequencial_remessa}".adjust_size_to(7, '0', :right)
  info << ''.adjust_size_to(277)
  info
end

#conta_classObject



7
8
9
# File 'lib/br_boleto/remessa/cnab400/unicred.rb', line 7

def conta_class
  BrBoleto::Conta::Unicred
end

#detalhe_posicao_002_003(pagamento) ⇒ Object

Informações Opcionais no Bradesco. Somente deverão ser preenchidos, caso o cliente Beneficiário esteja previamente cadastrado para operar com a modalidade de cobrança com débito automático



42
43
44
# File 'lib/br_boleto/remessa/cnab400/unicred.rb', line 42

def detalhe_posicao_002_003(pagamento)
  ''
end

#detalhe_posicao_004_017(pagamento, sequencial) ⇒ Object



45
46
47
# File 'lib/br_boleto/remessa/cnab400/unicred.rb', line 45

def detalhe_posicao_004_017(pagamento, sequencial)
  ''
end

#detalhe_posicao_038_062(pagamento) ⇒ Object

detalhe_posicao_038_062 Numero de controle do participante DESCRIÇÃO TAMANHO POSIÇÃO


Brancos 14 38 - 51 Numero Doc. 11 52 - 62

TOTAL = 25 posições



89
90
91
# File 'lib/br_boleto/remessa/cnab400/unicred.rb', line 89

def detalhe_posicao_038_062(pagamento)
  "#{pagamento.numero_documento}".adjust_size_to(25, ' ')
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 065 003 Numero do banco 136 066 a 067 002 Zeros 068 a 092 025 Branco 093 a 093 001 Filler Zero 094 a 094 001 Código da Multa 095 a 104 010 Valor/Percentual da Multa 105 a 105 001 Tipo de Valor Mora 106 a 106 001 Filler Zeros 107 a 108 002 Branco Tamanho: 46



95
96
97
# File 'lib/br_boleto/remessa/cnab400/unicred.rb', line 95

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

#detalhe_posicao_063_108(pagamento) ⇒ Object



118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# File 'lib/br_boleto/remessa/cnab400/unicred.rb', line 118

def detalhe_posicao_063_108(pagamento)
  info = '136'
  info << '00'
  info << ''.rjust(25, ' ')
  info << '0'
  if "#{pagamento.codigo_multa}".in?(%w[1 2])
    info << '2'
    info << pagamento.percentual_multa_formatado(10) # tem multa: preencher com percentual da multa com 2 decimais
  else
    info << '3'
    info << ''.adjust_size_to(10)
  end

  if "#{pagamento.codigo_juros}".in?(%w[1 2])
    info << '1'
  else
    info << '5'
  end

  info << '0'
  info << ''.adjust_size_to(2)
  info
end

#detalhe_posicao_077_108(pagamento, sequencial) ⇒ Object



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

def detalhe_posicao_077_108(pagamento, sequencial)
  ''
end

#detalhe_posicao_111_120(pagamento, sequencial) ⇒ Object

Seu número Tipo: N Tamanho: 10



145
146
147
# File 'lib/br_boleto/remessa/cnab400/unicred.rb', line 145

def detalhe_posicao_111_120(pagamento, sequencial)
  "#{pagamento.numero_documento}".adjust_size_to(10, ' ')
end

#detalhe_posicao_161_218(pagamento, sequencial) ⇒ Object

Informações de multa e juros POSIÇÂO TAM. Descrição 161 a 173 013 Valor de Mora Vide Obs. X 174 a 179 006 Data Limite P/Concessão de Desconto 180 a 192 013 Valor do Desconto 193 a 203 011 Nosso Número na UNICRED 204 a 205 002 Zeros 206 a 218 013 Valor do Abatimento a ser concedido Tamanho: 58



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

def detalhe_posicao_161_218(pagamento, sequencial)
  info = ''
  info << pagamento.valor_juros_monetario_formatado(13)
  info << pagamento.data_desconto_formatado
  info << pagamento.valor_desconto_formatado(13)
  info << "#{pagamento.nosso_numero.to_i}".adjust_size_to(11, '0', :right)
  info << '00'
  info << pagamento.valor_abatimento_formatado(13)
  info.adjust_size_to(58, '5', :right)
end

#header_posicao_002_a_002Object

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



16
17
18
# File 'lib/br_boleto/remessa/cnab400/unicred.rb', line 16

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 Tipo: Numérico Tamanho: 020



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/br_boleto/remessa/cnab400/unicred.rb', line 53

def informacoes_da_conta(local)

  # POSIÇÂO    TAM.  Descrição
  # 002 a 006  005   Agência do BENEFICIÁRIO na UNICRED
  # 007 a 007  001  Dígito da Agência
  # 008 a 019  012  Conta Corrente
  # 020 a 020  001  Dígito Conta Corrente
  # 021 a 021  001  Zero
  # 022 a 024  003  Código da Carteira
  # 025 a 037  013  Zeros
  if local == :detalhe
    info = ''
    info << "#{conta.agencia}".adjust_size_to(5, '0', :right)
    info << "#{conta.agencia_dv}".adjust_size_to(1, '0')
    info << "#{conta.conta_corrente}".adjust_size_to(12, '0', :right)
    info << "#{conta.conta_corrente_dv}".adjust_size_to(1, '0', :right)
    info << '0'
    info << '021'
    info << ''.rjust(13, '0')
    info

  # POSIÇÂO    TAM.  Descrição
  # 027 a 046  020   Codigo da Empresa
  elsif local == :header
    info =  "#{conta.codigo_empresa}".adjust_size_to(20, '0', :right) # Será informado pelo Bradesco, quando do cadastramento da Conta beneficiário na sua Agência.
  end
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 Filler 143 a 147 005 Filler Zeros 148 a 149 002 Filler Zeros 150 a 150 001 Código do desconto 151 a 156 006 Data da emissão do Título 157 a 160 004 Filler Zeros Tamanho: 40



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# File 'lib/br_boleto/remessa/cnab400/unicred.rb', line 162

def informacoes_do_pagamento(pagamento, sequencial)
  dados = ''
  dados << pagamento.data_vencimento_formatado('%d%m%y')
  dados << pagamento.valor_documento_formatado(13)
  dados << ''.adjust_size_to(3) # 140 a 142
  dados << ''.adjust_size_to(7,'0', :right) # 143 a 149
  dados << "#{pagamento.cod_desconto}".adjust_size_to(1, '0') # 150
  dados << pagamento.data_emissao_formatado('%d%m%y') # 151 a 156
  dados << ''.adjust_size_to(4,'0', :right) # 157 a 160

  # dados << "#{conta.get_especie_titulo(pagamento.especie_titulo, 400)}".adjust_size_to(2, '0', :right)

  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

Tamanho: 176



213
214
215
216
217
218
219
220
221
222
223
224
225
226
# File 'lib/br_boleto/remessa/cnab400/unicred.rb', line 213

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) # Endereço
  info << "#{pagamento.pagador.bairro}".adjust_size_to(12) # Bairro
  info << "#{pagamento.pagador.cep}".adjust_size_to(8, '0', :right) # CEP + Sufixo do CEP
  info << "#{pagamento.pagador.cidade}".adjust_size_to(20) # Cidade
  info << "#{pagamento.pagador.uf}".adjust_size_to(2) # UF
  info << ''.adjust_size_to(38)
  info
end