formatos-febraban 0.3.57 → 0.3.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c8a19b0c4637e8ee02b8242fe0ddb8aa780dde5d
4
- data.tar.gz: 270f49c1a2ce32216cade0d3fd83ab77d27b7409
3
+ metadata.gz: 102fad611316eb0e8a9a9e71f780b1c1c910fa2e
4
+ data.tar.gz: a747312e4cf23a15fdd0f0bc582d06f8df1cdbed
5
5
  SHA512:
6
- metadata.gz: 5aa3b01202487241fd903bcf3f06c40939c83e394a982261d313f14135533affcff9d2064af8652295165f0160084ffe00be8d07015f2fe8d1c6e295daa08a4e
7
- data.tar.gz: 2d889c08a6222e5363ce278f4084436cd240ada88a46c94f4fc423accbd51083d885517d87fc446fbd8c63674a57d62fd748a5ed8ba170f33c007e9638397f04
6
+ metadata.gz: 5735c0df15a0fc7a18d7adc048157602b971cc35f058a3c22fc5eaa8b65a26f9ec2f7ad4b0c75257588269ca937195cef1e97a1613a8439ab98ea02865c3cd42
7
+ data.tar.gz: 3b480685690c5500d9eb05293b853f54b3df5b67c439ff3bcae92f7ee90c3def7b2f239c8eca03d79d6a17cd470dcafff04b7f6bba5b15e704be7654e9cb5286
@@ -5,18 +5,18 @@ class CieloHeader < FormatSection
5
5
  super(master, true, true, false)
6
6
 
7
7
  @section = Section.new({
8
- 0 => Position.new(1, 2, false, "00", true), # Código do Registro
9
- 1 => Position.new(2, 8, true), # Data do Deposito
10
- 2 => Position.new(3, 7, true), # Numero do Resumo de operações
11
- 3 => Position.new(4, 10, false), # Reservado para o estabelecimento
12
- 4 => Position.new(5, 3, false), # Constantes zeros
13
- 5 => Position.new(6, 10, true), # Numero do estabelecimento na Cielo
14
- 6 => Position.new(7, 3, false), # Código da moeda
15
- 7 => Position.new(8, 1, false,"P"), # Indicador do processo
16
- 8 => Position.new(9, 1, false, "V"), # Indicador da venda
17
- 9 => Position.new(10, 1, false), # Indicador de estabelecimento especial (Brancos)
18
- 10 => Position.new(11, 204, false), # Constante (Brancos)
19
- })
8
+ 0 => Position.new(1, 2, false, "00", true), # Código do Registro
9
+ 1 => Position.new(2, 8, true), # Data do Deposito
10
+ 2 => Position.new(3, 7, true), # Numero do Resumo de operações
11
+ 3 => Position.new(4, 10, false), # Reservado para o estabelecimento
12
+ 4 => Position.new(5, 3, false), # Constantes zeros
13
+ 5 => Position.new(6, 10, true), # Numero do estabelecimento na Cielo
14
+ 6 => Position.new(7, 3, false), # Código da moeda
15
+ 7 => Position.new(8, 1, false,"P"), # Indicador do processo
16
+ 8 => Position.new(9, 1, false, "V"), # Indicador da venda
17
+ 9 => Position.new(10, 1, false), # Indicador de estabelecimento especial (Brancos)
18
+ 10 => Position.new(11, 204, false), # Constante (Brancos)
19
+ })
20
20
  end
21
21
 
22
22
  #-------------------------------------------------------------------
@@ -117,4 +117,4 @@ class CieloHeader < FormatSection
117
117
  self.get_numero_lote.length > 0 and
118
118
  self.get_moeda.length > 0)
119
119
  end
120
- end
120
+ end
@@ -0,0 +1,202 @@
1
+ module V08
2
+ require_relative 'detalhe_commons'
3
+
4
+ module Remessa
5
+ class Detalhe < FormatSection
6
+ include V08DetalheCommons
7
+
8
+ def initialize
9
+ @section = Section.new({
10
+ 0 => Position.new(1, 1, false, "1", true), # Código do Registro
11
+ 1 => Position.new(2, 5, false), # Agencia de Débito (opcional)
12
+ 2 => Position.new(3, 1, false), # Digito Agencia (opcional)
13
+ 3 => Position.new(4, 5, false), # Razao da Conta Corrente (opcional)
14
+ 4 => Position.new(5, 7, false), # Conta Corrente (opcional)
15
+ 5 => Position.new(6, 1, false), # Digito da CC (opcional)
16
+ 6 => Position.new(7, 17, false), # Identificação da empresa (zero, carteira, agencia e CC )
17
+ 7 => Position.new(8, 25, false), # Numero controle do participante
18
+ 8 => Position.new(9, 3, false), # Numero do Banco ("237")
19
+ 9 => Position.new(10, 1, true), # Campo de multa (0: Sem Multa/ 2: Com multa)
20
+ 10 => Position.new(11, 4, true), # Percentual de multa
21
+ 11 => Position.new(12, 11, true), # Identificação do titulo no banco
22
+ 12 => Position.new(13, 1, true), # Digito de AutoConferencia
23
+ 13 => Position.new(14, 10, true), # Desconto Bonificacao por dia
24
+ 14 => Position.new(15, 1, false, "2"), # Condicao para emissao da cobranca
25
+ 15 => Position.new(16, 1, false), # Id se emite Boleto para Debito Automatico (Diferente de N registra e emite boleto)
26
+ 16 => Position.new(17, 10, false), # Reservado - Brancos
27
+ 17 => Position.new(18, 1, false), # Indicador Rateio (opcional)
28
+ 18 => Position.new(19, 1, false), # Enderecamento para aviso de Debito em Cc (opcional)
29
+ 19 => Position.new(20, 2, false), # Reservado - Brancos
30
+ 20 => Position.new(21, 2, false, "01"), # Identificacao de ocorrencias
31
+ 21 => Position.new(22, 10, false), # Numero do documento
32
+ 22 => Position.new(23, 6, false), # Data vencimento do titulo (DDMMAA)
33
+ 23 => Position.new(24, 13, true), # Valor do titulo
34
+ 24 => Position.new(25, 3, true, "0"), # Banco cobrador - Zeros
35
+ 25 => Position.new(26, 5, true, "0"), # Agencia depositaria - Zeros
36
+ 26 => Position.new(27, 2, false, "99"), # Tipo do titulo
37
+ 27 => Position.new(28, 1, false, "N"), # Identificação
38
+ 28 => Position.new(29, 6, false), # Data emissao do titulo (DDMMAA)
39
+ 29 => Position.new(30, 2, true), # 1º instrucao
40
+ 30 => Position.new(31, 2, true), # 2º instrucao
41
+ 31 => Position.new(32, 13, true, "0"), # Valor por dia de atraso
42
+ 32 => Position.new(33, 6, false), # Data Limite para Concessao Desconto (DDMMAA)
43
+ 33 => Position.new(34, 13, true, "0"), # Valor desconto
44
+ 34 => Position.new(35, 13, true, "0"), # Valor IOF
45
+ 35 => Position.new(36, 13, true, "0"), # Valor Abatimento
46
+ 36 => Position.new(37, 2, false), # Tipo de inscrição (1:CPF, 2: CNPJ)
47
+ 37 => Position.new(38, 14, true), # Numero da inscricao
48
+ 38 => Position.new(39, 40, false), # Nome do sacado
49
+ 39 => Position.new(40, 40, false), # End. do sacado
50
+ 40 => Position.new(41, 12, false), # 1º mensagem
51
+ 41 => Position.new(42, 8, false), # CEP do sacado
52
+ 42 => Position.new(43, 60, false), # Sacador/Avalista ou 2º mensagem
53
+ 43 => Position.new(44, 6, true) # Numero sequencial
54
+
55
+ })
56
+ end
57
+
58
+ def set_values params
59
+ set_identificacao_empresa params[:identificacao_empresa]
60
+ set_nosso_numero params[:nosso_numero]
61
+ set_codigo_banco_debitado params[:codigo_banco_debitado]
62
+ set_reservado_1
63
+ set_indicador_rateio
64
+ set_enderecamento
65
+ set_reservado_2
66
+ set_numero_documento params[:numero_documento]
67
+ set_vencimento_titulo params[:vencimento]
68
+ set_valor_titulo params[:valor]
69
+ set_data_emissao_titulo Date.today
70
+ set_1_instrucao
71
+ set_2_instrucao
72
+ set_valor_por_atraso
73
+ set_id_inscricao_sacado params[:tipo_inscricao]
74
+ set_numero_inscricao_sacado params[:numero_inscricao]
75
+ set_nome_sacado params[:nome_sacado]
76
+ set_endereco params[:endereco]
77
+ set_1_mensagem
78
+ set_cep params[:cep]
79
+ set_2_mensagem
80
+ set_sequencial params[:sequencial]
81
+ end
82
+
83
+ def is_valid?
84
+ get_identificacao_empresa.length > 0 and
85
+ get_nosso_numero.length > 0 and
86
+ get_numero_documento.length > 0 and
87
+ get_sequencial.length > 0
88
+ end
89
+
90
+ end
91
+ end
92
+
93
+ module Retorno
94
+ class Detalhe < FormatSection
95
+ include V08DetalheCommons
96
+
97
+ def initialize
98
+ @section = Section.new({
99
+ 0 => Position.new(1, 1, false, "1", true), # Código do Registro
100
+ 1 => Position.new(2, 2, true), # Tipo de inscrição da empresa (01:CPF, 02: CNPJ)
101
+ 2 => Position.new(3, 14, false), # Numero da inscricao da empresa
102
+ 3 => Position.new(4, 3, false), # Reservado - Zeros
103
+ 4 => Position.new(5, 17, true), # Identificação da empresa (zero, carteira, agencia e CC )
104
+ 5 => Position.new(6, 25, false), # Numero controle do participante
105
+ 6 => Position.new(7, 8, false), # Reservado - Zeros
106
+ 7 => Position.new(8, 12, true), # Identificação do titulo no banco
107
+ 8 => Position.new(9, 10, false), # Reservado - Zeros
108
+ 9 => Position.new(10, 12, false), # Reservado - Zeros
109
+ 10 => Position.new(11, 1, false), # Indicador Rateio
110
+ 11 => Position.new(12, 2, false), # Reservado - Zeros
111
+ 12 => Position.new(13, 1, false), # Carteira
112
+ 13 => Position.new(14, 2, false), # Id da Ocorrencia
113
+ 14 => Position.new(15, 6, false), # Data da Ocorrencia
114
+ 15 => Position.new(16, 10, false), # Numero Documento
115
+ 16 => Position.new(17, 20, false), # Id do titulo no banco
116
+ 17 => Position.new(18, 6, false), # Data vencimento do titulo (DDMMAA)
117
+ 18 => Position.new(19, 13, false), # Valor do titulo
118
+ 19 => Position.new(20, 3, false), # Banco cobrador
119
+ 20 => Position.new(21, 5, false), # Agencia Cobradora
120
+ 21 => Position.new(22, 2, false), # Especie de titulo - branco
121
+ 22 => Position.new(23, 13, false), # Valor despesa das ocorrencias
122
+ 23 => Position.new(24, 13, false), # Outras despesas
123
+ 24 => Position.new(25, 13, false), # Juros operação em atraso
124
+ 25 => Position.new(26, 13, false), # IOF devido
125
+ 26 => Position.new(27, 13, false), # Valor abatimento
126
+ 27 => Position.new(28, 13, false), # Valor desconto concedido
127
+ 28 => Position.new(29, 13, false), # Valor pago
128
+ 29 => Position.new(30, 13, false), # Juros de mora
129
+ 30 => Position.new(31, 13, false), # Outros creditos
130
+ 31 => Position.new(32, 2, false), # Reservado - branco
131
+ 32 => Position.new(33, 1, false), # Motivo do codigo de ocorrencia
132
+ 33 => Position.new(34, 6, false), # Data do credito
133
+ 34 => Position.new(35, 3, false), # Origem pagamento
134
+ 35 => Position.new(36, 10, false), # Reservado - brancos
135
+ 36 => Position.new(37, 4, false), # Codigo do banco - quando cheque
136
+ 37 => Position.new(38, 10, false), # Motivo das rejeicoes
137
+ 38 => Position.new(39, 40, false), # Reservado - brancos
138
+ 39 => Position.new(40, 2, false), # numero do cartorio
139
+ 40 => Position.new(41, 10, false), # numero do protocolo
140
+ 41 => Position.new(42, 14, false), # Reservado - brancos
141
+ 42 => Position.new(43, 6, false) # Numero sequencial
142
+ })
143
+ end
144
+
145
+ def process_section file
146
+ set_tipo_inscricao file[1..2]
147
+ set_numero_inscricao file[3..16]
148
+ set_zeros_1 file[17..19]
149
+ set_id_empresa file[20..36]
150
+ set_controle_participante file[37..61]
151
+ set_zeros_2 file[62..69]
152
+ set_id_titulo file[70..81]
153
+ set_zeros_3 file[82..91]
154
+ set_zeros_4 file[93..103]
155
+ set_indicador_rateio_retorno file[104..104]
156
+ set_zeros_5 file[105..106]
157
+ set_carteira file[107..107]
158
+ set_ocorrencia_retorno file[108..109]
159
+ set_data_ocorrencia file[110..115]
160
+ set_numero_documento_retorno file[116..125]
161
+ set_id_titulo_2 file[126..145]
162
+ set_data_titulo file[146..151]
163
+ set_valor_titulo_retorno file[152..164]
164
+ set_banco_cobrador_retorno file[165..167]
165
+ set_agencia_cobradora file[168..172]
166
+ set_especie_titulo_retorno file[173..174]
167
+ set_despesas file[175..187]
168
+ set_outras_despesas file[188..200]
169
+ set_juros file[201..213]
170
+ set_iof file[214..226]
171
+ set_abatimento_concedido file[227..239]
172
+ set_desconto_concedido file[240..252]
173
+ set_valor_pago file[253..265]
174
+ set_juros_mora file[266..278]
175
+ set_outros_creditos file[279..291]
176
+ set_brancos_1 file[292..293]
177
+ set_motivo_ocorrencia file[294..294]
178
+ set_data_credito file[295..300]
179
+ set_origem_pagamento file[301..303]
180
+ set_brancos_2 file[304..313]
181
+ set_codigo_banco_retorno file[314..317]
182
+ set_motivo_rejeicoes file[318..327]
183
+ set_brancos_3 file[328..367]
184
+ set_numero_cartorio file[368..369]
185
+ set_numero_protocolo file[370..379]
186
+ set_brancos_4 file[380..393]
187
+ set_sequencial_retorno file[394..399]
188
+ end
189
+
190
+ def is_valid?
191
+ get_tipo_inscricao.length > 0 and
192
+ get_numero_inscricao.length > 0 and
193
+ # get_controle_participante.length > 0 and
194
+ # get_numero_documento_retorno.length > 0 and
195
+ get_ocorrencia.length > 0 and
196
+ get_sequencial_retorno.length > 0
197
+ end
198
+
199
+ end
200
+ end
201
+ end
202
+
@@ -0,0 +1,445 @@
1
+ module V08DetalheCommons
2
+
3
+
4
+ #-------------------------------------------------------------------
5
+ #-------------------------------------------------------------------
6
+ # Getters
7
+ def get_agencia
8
+ self.get_section_value(1)
9
+ end
10
+
11
+ def get_identificacao_empresa
12
+ self.get_section_value(6)
13
+ end
14
+
15
+ def get_nosso_numero
16
+ self.get_section_value(7)
17
+ end
18
+
19
+ def get_numero_documento
20
+ self.get_section_value(21)
21
+ end
22
+
23
+ def get_vencimento_titulo
24
+ self.get_section_value(22)
25
+ end
26
+
27
+ def get_nome_sacado
28
+ self.get_section_value(38)
29
+ end
30
+
31
+ def get_endereco
32
+ self.get_section_value(39)
33
+ end
34
+
35
+ def get_sequencial
36
+ self.get_section_value(43)
37
+ end
38
+
39
+ def get_tipo_inscricao
40
+ self.get_section_value(1)
41
+ end
42
+
43
+ def get_numero_inscricao
44
+ self.get_section_value(2)
45
+ end
46
+
47
+ def get_controle_participante
48
+ self.get_section_value(5)
49
+ end
50
+
51
+ def get_ocorrencia
52
+ self.get_section_value(13)
53
+ end
54
+
55
+ def get_numero_documento_retorno
56
+ self.get_section_value(15)
57
+ end
58
+
59
+ def get_sequencial_retorno
60
+ self.get_section_value(42)
61
+ end
62
+
63
+
64
+ #-------------------------------------------------------------------
65
+ #-------------------------------------------------------------------
66
+ # Setters
67
+ def set_agencia valor = ""
68
+ self.set_section_value(1, valor)
69
+ end
70
+
71
+ def set_tipo_inscricao valor = ""
72
+ self.set_section_value(1, valor)
73
+ end
74
+
75
+ def set_dv_agencia valor = ""
76
+ self.set_section_value(2, valor)
77
+ end
78
+
79
+ def set_numero_inscricao valor = ""
80
+ self.set_section_value(2, valor)
81
+ end
82
+
83
+ def set_razao_conta_corrente valor = ""
84
+ self.set_section_value(3, valor)
85
+ end
86
+
87
+ def set_zeros_1 valor = ""
88
+ self.set_section_value(3, valor)
89
+ end
90
+
91
+ def set_conta_corrente valor = ""
92
+ self.set_section_value(4, valor)
93
+ end
94
+
95
+ def set_id_empresa valor
96
+ self.set_section_value(4, valor)
97
+ end
98
+
99
+ def set_dv_conta_corrente valor = ""
100
+ self.set_section_value(5, valor)
101
+ end
102
+
103
+ def set_controle_participante valor
104
+ self.set_section_value(5, valor)
105
+ end
106
+
107
+ def set_identificacao_empresa valor = ""
108
+ self.set_section_value(6, valor)
109
+ end
110
+
111
+ def set_zeros_2 valor
112
+ self.set_section_value(6, valor)
113
+ end
114
+
115
+ def set_nosso_numero valor = ""
116
+ self.set_section_value(7, valor)
117
+ end
118
+
119
+ def set_id_titulo valor
120
+ self.set_section_value(7, valor)
121
+ end
122
+
123
+ def set_codigo_banco_debitado valor = ""
124
+ self.set_section_value(8, valor)
125
+ end
126
+
127
+ def set_zeros_3 valor
128
+ self.set_section_value(8, valor)
129
+ end
130
+
131
+ def set_campo_multa valor = "0"
132
+ self.set_section_value(9, valor)
133
+ end
134
+
135
+ def set_zeros_4 valor
136
+ self.set_section_value(9, valor)
137
+ end
138
+
139
+ def set_percentual_multa valor = "0"
140
+ self.set_section_value(10, valor)
141
+ end
142
+
143
+ def set_indicador_rateio_retorno valor
144
+ self.set_section_value(10, valor)
145
+ end
146
+
147
+ def set_identificacao_titulo valor = "0"
148
+ self.set_section_value(11, valor)
149
+ end
150
+
151
+ def set_zeros_5 valor
152
+ self.set_section_value(11, valor)
153
+ end
154
+
155
+ def set_digito_conferencia valor = "0"
156
+ self.set_section_value(12, valor)
157
+ end
158
+
159
+ def set_carteira valor
160
+ self.set_section_value(12, valor)
161
+ end
162
+
163
+ def set_desconto_bonificacao valor = "0"
164
+ self.set_section_value(13, valor)
165
+ end
166
+
167
+ def set_ocorrencia_retorno valor
168
+ self.set_section_value(13, valor)
169
+ end
170
+
171
+ def set_condicao_emissao valor
172
+ self.set_section_value(14, valor)
173
+ end
174
+
175
+ def set_data_ocorrencia valor
176
+ self.set_section_value(14, valor)
177
+ end
178
+
179
+ def set_id_boleto_debito valor = " "
180
+ self.set_section_value(15, valor)
181
+ end
182
+
183
+ def set_numero_documento_retorno valor
184
+ self.set_section_value(15, valor)
185
+ end
186
+
187
+ def set_reservado_1 valor = " "
188
+ self.set_section_value(16, valor)
189
+ end
190
+
191
+ def set_id_titulo_2 valor
192
+ self.set_section_value(16, valor)
193
+ end
194
+
195
+ def set_indicador_rateio valor = ""
196
+ self.set_section_value(17, valor)
197
+ end
198
+
199
+ def set_data_titulo valor = ""
200
+ self.set_section_value(17, valor)
201
+ end
202
+
203
+ def set_enderecamento valor = ""
204
+ self.set_section_value(18, valor)
205
+ end
206
+
207
+ def set_valor_titulo_retorno valor
208
+ self.set_section_value(18, valor)
209
+ end
210
+
211
+ def set_reservado_2 valor = " "
212
+ self.set_section_value(19, valor)
213
+ end
214
+
215
+ def set_banco_cobrador_retorno valor
216
+ self.set_section_value(19, valor)
217
+ end
218
+
219
+ def set_indicador_ocorrencia valor
220
+ self.set_section_value(20, valor)
221
+ end
222
+
223
+ def set_agencia_cobradora valor
224
+ self.set_section_value(20, valor)
225
+ end
226
+
227
+ def set_numero_documento valor = ""
228
+ self.set_section_value(21, valor)
229
+ end
230
+
231
+ def set_especie_titulo_retorno valor
232
+ self.set_section_value(21, valor)
233
+ end
234
+
235
+ def set_vencimento_titulo valor
236
+ begin
237
+ valor = Date.strptime(valor, "%d%m%Y") if valor.is_a?(String)
238
+ real_data = valor.strftime("%d%m%y")
239
+
240
+ if real_data.length == 6
241
+ self.set_section_value(22, real_data)
242
+ else
243
+ raise "tamanho de data incorreto"
244
+ end
245
+
246
+ rescue
247
+ raise "#{get_id}: Data de Geração Inválida
248
+ Valor: #{valor}"
249
+ end
250
+ end
251
+
252
+ def set_despesas valor
253
+ self.set_section_value(22, valor)
254
+ end
255
+
256
+ def set_valor_titulo valor
257
+ self.set_section_value(23, valor)
258
+ end
259
+
260
+ def set_outras_despesas valor
261
+ self.set_section_value(23, valor)
262
+ end
263
+
264
+ def set_banco_cobrador valor = "0"
265
+ self.set_section_value(24, valor)
266
+ end
267
+
268
+ def set_juros valor
269
+ self.set_section_value(24, valor)
270
+ end
271
+
272
+ def set_agencia_depositaria valor = "0"
273
+ self.set_section_value(25, valor)
274
+ end
275
+
276
+ def set_iof valor
277
+ self.set_section_value(25, valor)
278
+ end
279
+
280
+ def set_especie_titulo valor = ""
281
+ self.set_section_value(26, valor)
282
+ end
283
+
284
+ def set_abatimento_concedido valor = ""
285
+ self.set_section_value(26, valor)
286
+ end
287
+
288
+ def set_identificacao valor = ""
289
+ self.set_section_value(27, valor)
290
+ end
291
+
292
+ def set_desconto_concedido valor = ""
293
+ self.set_section_value(27, valor)
294
+ end
295
+
296
+ def set_data_emissao_titulo valor
297
+ begin
298
+ valor = Date.strptime(valor, "%d%m%Y") if valor.is_a?(String)
299
+ real_data = valor.strftime("%d%m%y")
300
+
301
+ if real_data.length == 6
302
+ self.set_section_value(28, real_data)
303
+ else
304
+ raise "tamanho de data incorreto"
305
+ end
306
+
307
+ rescue
308
+ raise "#{get_id}: Data de Geração Inválida
309
+ Valor: #{valor}"
310
+ end
311
+ end
312
+
313
+ def set_valor_pago valor = ""
314
+ self.set_section_value(28, valor)
315
+ end
316
+
317
+ def set_1_instrucao valor = "0"
318
+ self.set_section_value(29, valor)
319
+ end
320
+
321
+ def set_juros_mora valor
322
+ self.set_section_value(29, valor)
323
+ end
324
+
325
+ def set_2_instrucao valor = "0"
326
+ self.set_section_value(30, valor)
327
+ end
328
+
329
+ def set_outros_creditos valor
330
+ self.set_section_value(30, valor)
331
+ end
332
+
333
+ def set_valor_por_atraso valor = "0"
334
+ self.set_section_value(31, valor)
335
+ end
336
+
337
+ def set_brancos_1 valor
338
+ self.set_section_value(31, valor)
339
+ end
340
+
341
+ def set_data_limite_desconto valor = ""
342
+ begin
343
+ valor = Date.strptime(valor, "%d%m%Y") if valor.is_a?(String)
344
+ real_data = valor.strftime("%d%m%y")
345
+
346
+ if real_data.length == 6
347
+ self.set_section_value(32, real_data)
348
+ else
349
+ raise "tamanho de data incorreto"
350
+ end
351
+
352
+ rescue
353
+ raise "#{get_id}: Data de Geração Inválida
354
+ Valor: #{valor}"
355
+ end
356
+ end
357
+
358
+ def set_motivo_ocorrencia valor
359
+ self.set_section_value(32, valor)
360
+ end
361
+
362
+ def set_valor_desconto valor = "0"
363
+ self.set_section_value(33, valor)
364
+ end
365
+
366
+ def set_data_credito valor = ""
367
+ self.set_section_value(33, valor)
368
+ end
369
+
370
+ def set_valor_iof valor = "0"
371
+ self.set_section_value(34, valor)
372
+ end
373
+
374
+ def set_origem_pagamento valor = ""
375
+ self.set_section_value(34, valor)
376
+ end
377
+
378
+ def set_valor_abatimento valor
379
+ self.set_section_value(35, valor)
380
+ end
381
+
382
+ def set_brancos_2 valor
383
+ self.set_section_value(35, valor)
384
+ end
385
+
386
+ def set_id_inscricao_sacado valor = ""
387
+ self.set_section_value(36, valor)
388
+ end
389
+
390
+ def set_codigo_banco_retorno valor = ""
391
+ self.set_section_value(36, valor)
392
+ end
393
+
394
+ def set_numero_inscricao_sacado valor = ""
395
+ self.set_section_value(37, valor)
396
+ end
397
+
398
+ def set_motivo_rejeicoes valor = ""
399
+ self.set_section_value(37, valor)
400
+ end
401
+
402
+ def set_nome_sacado valor = ""
403
+ self.set_section_value(38, valor)
404
+ end
405
+
406
+ def set_brancos_3 valor = ""
407
+ self.set_section_value(38, valor)
408
+ end
409
+
410
+ def set_endereco valor = ""
411
+ self.set_section_value(39, valor)
412
+ end
413
+
414
+ def set_numero_cartorio valor = ""
415
+ self.set_section_value(39, valor)
416
+ end
417
+
418
+ def set_1_mensagem valor = ""
419
+ self.set_section_value(40, valor)
420
+ end
421
+
422
+ def set_numero_protocolo valor = ""
423
+ self.set_section_value(40, valor)
424
+ end
425
+
426
+ def set_cep valor = ""
427
+ self.set_section_value(41, valor)
428
+ end
429
+
430
+ def set_brancos_4 valor = ""
431
+ self.set_section_value(41, valor)
432
+ end
433
+
434
+ def set_2_mensagem valor = ""
435
+ self.set_section_value(42, valor)
436
+ end
437
+
438
+ def set_sequencial_retorno valor = ""
439
+ self.set_section_value(42, valor)
440
+ end
441
+
442
+ def set_sequencial valor = ""
443
+ self.set_section_value(43, valor)
444
+ end
445
+ end