Module: BrBoleto::Remessa::Cnab240::Helper::SegmentoR

Included in:
Base
Defined in:
lib/br_boleto/remessa/cnab240/helper/segmento_r.rb

Instance Method Summary collapse

Instance Method Details

#monta_segmento_r(pagamento, nr_lote, sequencial) ⇒ String

Monta o registro segmento Q do arquivo

Parameters:

  • pagamento (BrBoleto::Remessa::Pagamento)

    objeto contendo os detalhes do boleto (valor, vencimento, sacado, etc)

  • nr_lote (Integer)

    numero do lote que o segmento esta inserido

  • sequencial (Integer)

    numero sequencial do registro no lote

Returns:

  • (String)


17
18
19
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
45
46
47
48
49
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 17

def monta_segmento_r(pagamento, nr_lote, sequencial)
  segmento_r = ''
  segmento_r << segmento_r_posicao_001_a_003 
  segmento_r << segmento_r_posicao_004_a_007(nr_lote)
  segmento_r << segmento_r_posicao_008_a_008
  segmento_r << segmento_r_posicao_009_a_013(sequencial)
  segmento_r << segmento_r_posicao_014_a_014
  segmento_r << segmento_r_posicao_015_a_015
  segmento_r << segmento_r_posicao_016_a_017
  segmento_r << segmento_r_posicao_018_a_018(pagamento)
  segmento_r << segmento_r_posicao_019_a_026(pagamento)
  segmento_r << segmento_r_posicao_027_a_041(pagamento)
  segmento_r << segmento_r_posicao_042_a_042(pagamento)
  segmento_r << segmento_r_posicao_043_a_050(pagamento)
  segmento_r << segmento_r_posicao_051_a_065(pagamento)
  segmento_r << segmento_r_posicao_066_a_066(pagamento)
  segmento_r << segmento_r_posicao_067_a_074(pagamento)
  segmento_r << segmento_r_posicao_075_a_089(pagamento)
  segmento_r << segmento_r_posicao_090_a_099
  segmento_r << segmento_r_posicao_100_a_139
  segmento_r << segmento_r_posicao_140_a_179
  segmento_r << segmento_r_posicao_180_a_199
  segmento_r << segmento_r_posicao_200_a_207
  segmento_r << segmento_r_posicao_208_a_210
  segmento_r << segmento_r_posicao_211_a_215
  segmento_r << segmento_r_posicao_216_a_216
  segmento_r << segmento_r_posicao_217_a_228
  segmento_r << segmento_r_posicao_229_a_229
  segmento_r << segmento_r_posicao_230_a_230
  segmento_r << segmento_r_posicao_231_a_231
  segmento_r << segmento_r_posicao_232_a_240   
  segmento_r.upcase
end

#segmento_r_posicao_001_a_003Object

Código do banco 3 posições



54
55
56
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 54

def segmento_r_posicao_001_a_003 
  conta.codigo_banco
end

#segmento_r_posicao_004_a_007(numero_do_lote) ⇒ Object

Lote de Serviço: Número seqüencial para identificar univocamente um lote de serviço. Criado e controlado pelo responsável pela geração magnética dos dados contidos no arquivo. Preencher com ‘0001’ para o primeiro lote do arquivo. Para os demais: número do lote anterior acrescido de 1. O número não poderá ser repetido dentro do arquivo. 4 posições



64
65
66
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 64

def segmento_r_posicao_004_a_007(numero_do_lote)
  "#{numero_do_lote}".adjust_size_to(4, '0', :right)
end

#segmento_r_posicao_008_a_008Object

Tipo do registro -> Padrão 3 1 posição



71
72
73
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 71

def segmento_r_posicao_008_a_008
  '3'
end

#segmento_r_posicao_009_a_013(sequencial) ⇒ Object

Nº Sequencial do Registro no Lote 5 posições



78
79
80
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 78

def segmento_r_posicao_009_a_013(sequencial)
  "#{sequencial}".adjust_size_to(5, '0', :right)
end

#segmento_r_posicao_014_a_014Object

Cód. Segmento do Registro Detalhe 1 posição



85
86
87
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 85

def segmento_r_posicao_014_a_014
  'R'
end

#segmento_r_posicao_015_a_015Object

Uso Exclusivo FEBRABAN/CNAB 1 posição



92
93
94
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 92

def segmento_r_posicao_015_a_015
  ' '
end

#segmento_r_posicao_016_a_017Object

Código de Movimento Remessa - 01 = Entrada de Titulos 2 posições



99
100
101
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 99

def segmento_r_posicao_016_a_017
  '01'
end

#segmento_r_posicao_018_a_018(pagamento) ⇒ Object

Código do desconto 2 1 posição



106
107
108
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 106

def segmento_r_posicao_018_a_018(pagamento)
  "#{pagamento.desconto_2_codigo}".adjust_size_to(1)
end

#segmento_r_posicao_019_a_026(pagamento) ⇒ Object

Data do desconto 2 8 posições



113
114
115
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 113

def segmento_r_posicao_019_a_026(pagamento)
  "#{pagamento.desconto_2_data_formatado('%d%m%Y')}".adjust_size_to(8, '0')
end

#segmento_r_posicao_027_a_041(pagamento) ⇒ Object

Valor do desconto 2 15 posições



120
121
122
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 120

def segmento_r_posicao_027_a_041(pagamento)
  pagamento.desconto_2_valor_formatado(15)
end

#segmento_r_posicao_042_a_042(pagamento) ⇒ Object

Código do desconto 3 1 posição



127
128
129
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 127

def segmento_r_posicao_042_a_042(pagamento)
  "#{pagamento.desconto_3_codigo}".adjust_size_to(1)
end

#segmento_r_posicao_043_a_050(pagamento) ⇒ Object

Data do desconto 3 8 posições



134
135
136
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 134

def segmento_r_posicao_043_a_050(pagamento)
  "#{pagamento.desconto_3_data_formatado('%d%m%Y')}".adjust_size_to(8, '0')
end

#segmento_r_posicao_051_a_065(pagamento) ⇒ Object

Valor do desconto 3 15 posições



141
142
143
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 141

def segmento_r_posicao_051_a_065(pagamento)
  pagamento.desconto_3_valor_formatado(15)
end

#segmento_r_posicao_066_a_066(pagamento) ⇒ Object

Codigo da multa 1 posição Padrão FEBRABAN = (1 = Valor fixo e 2 = Percentual, 3 = isento)



149
150
151
152
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 149

def segmento_r_posicao_066_a_066(pagamento)
  cod = "#{pagamento.codigo_multa}".adjust_size_to(1, '3')
  cod.in?(['1','2','3']) ? cod : '3'
end

#segmento_r_posicao_067_a_074(pagamento) ⇒ Object

Data da multa 8 posição



157
158
159
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 157

def segmento_r_posicao_067_a_074(pagamento)
  "#{pagamento.data_multa_formatado('%d%m%Y')}".adjust_size_to(8, '0')
end

#segmento_r_posicao_075_a_089(pagamento) ⇒ Object

valor da multa 15 posições



164
165
166
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 164

def segmento_r_posicao_075_a_089(pagamento)
  pagamento.valor_multa_formatado(15)
end

#segmento_r_posicao_090_a_099Object

Informação ao pagador 10 posições



171
172
173
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 171

def segmento_r_posicao_090_a_099
  ''.rjust(10, " ")
end

#segmento_r_posicao_100_a_139Object

Informação 3 40 posições



178
179
180
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 178

def segmento_r_posicao_100_a_139
  ''.rjust(40, " ")
end

#segmento_r_posicao_140_a_179Object

Informação 4 40 posições



185
186
187
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 185

def segmento_r_posicao_140_a_179
  ''.rjust(40, " ")
end

#segmento_r_posicao_180_a_199Object

CNAB Uso exclusivo FEBRABAN 20 posições



192
193
194
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 192

def segmento_r_posicao_180_a_199
  ''.rjust(20, " ")
end

#segmento_r_posicao_200_a_207Object

Cod. Ocor. do pagador 8 posições



199
200
201
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 199

def segmento_r_posicao_200_a_207
  ''.rjust(8, "0")
end

#segmento_r_posicao_208_a_210Object

Cod. do banco para débido 3 posições



206
207
208
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 206

def segmento_r_posicao_208_a_210
  ''.rjust(3, "0")
end

#segmento_r_posicao_211_a_215Object

Agencia para débido 5 posições



213
214
215
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 213

def segmento_r_posicao_211_a_215
  ''.rjust(5, "0")
end

#segmento_r_posicao_216_a_216Object

DV agencia para débido 1 posições



220
221
222
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 220

def segmento_r_posicao_216_a_216
  " "
end

#segmento_r_posicao_217_a_228Object

Conta corrente para débito 12 posições



227
228
229
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 227

def segmento_r_posicao_217_a_228
  "".rjust(12, '0')
end

#segmento_r_posicao_229_a_229Object

DV Conta corrente para débito 1 posições



234
235
236
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 234

def segmento_r_posicao_229_a_229
  " "
end

#segmento_r_posicao_230_a_230Object

DV Aencia/Conta 1 posições



241
242
243
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 241

def segmento_r_posicao_230_a_230
  " "
end

#segmento_r_posicao_231_a_231Object

Ident. Da emissão do Aviso Debito Automatico 1 posição



248
249
250
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 248

def segmento_r_posicao_231_a_231
  "0"
end

#segmento_r_posicao_232_a_240Object

Uso exclusivo 9 posições



255
256
257
# File 'lib/br_boleto/remessa/cnab240/helper/segmento_r.rb', line 255

def segmento_r_posicao_232_a_240
  "".rjust(9, " ")
end