formatos-febraban 0.3.48 → 0.3.49
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/formatos/cnab400/cnab_400.rb +61 -157
- data/lib/formatos/cnab400/cnab_400_detalhe.rb +276 -0
- data/lib/formatos/cnab400/cnab_400_header.rb +175 -0
- data/lib/formatos/cnab400/cnab_400_trailler.rb +84 -0
- data/lib/formatos/febraban.rb +1 -0
- data/lib/formatos/febraban/version.rb +1 -1
- data/lib/formatos/febraban150/febraban_150.rb +5 -4
- data/lib/formatos/febraban150/febraban_150_a.rb +127 -70
- metadata +4 -7
- data/lib/formatos/cnab400/cnab_400_0.rb +0 -194
- data/lib/formatos/cnab400/cnab_400_1.rb +0 -443
- data/lib/formatos/cnab400/cnab_400_2.rb +0 -188
- data/lib/formatos/cnab400/cnab_400_3.rb +0 -194
- data/lib/formatos/cnab400/cnab_400_7.rb +0 -194
- data/lib/formatos/cnab400/cnab_400_9.rb +0 -55
@@ -0,0 +1,175 @@
|
|
1
|
+
|
2
|
+
#-------------------------------------------------------------------
|
3
|
+
#-------------------------------------------------------------------
|
4
|
+
# Header - Empresa e Banco
|
5
|
+
class Cnab4000Header < FormatSection
|
6
|
+
require 'date'
|
7
|
+
|
8
|
+
def initialize master
|
9
|
+
super(master, true, true, false)
|
10
|
+
debugger
|
11
|
+
@section = Section.new({
|
12
|
+
0 => Position.new(1, 1, false, "0", true), # Código do Registro
|
13
|
+
1 => Position.new(2, 1, false), # Código Arquivo (1-Remessa, 2-Retorno)
|
14
|
+
2 => Position.new(3, 7, false), # Identificação literal do arquivo (REMESSA/RETORNO)
|
15
|
+
3 => Position.new(4, 2, false, "01"), # Código do serviço
|
16
|
+
4 => Position.new(5, 15, false, "COBRANCA"), # Literal do serviço (COBRANÇA)
|
17
|
+
5 => Position.new(6, 20, true), # Código da Empresa
|
18
|
+
6 => Position.new(7, 30, false), # Nome da Empresa
|
19
|
+
7 => Position.new(8, 3, true), # Número do Banco (BRADESCO: 237)
|
20
|
+
8 => Position.new(9, 15, false), # Nome do Banco
|
21
|
+
9 => Position.new(10, 6, false), # Data de gravacao do arquivo (DDMMAA)
|
22
|
+
10 => Position.new(11, 8, false), # Reservado pelo Sistema - branco
|
23
|
+
11 => Position.new(12, 9, false), # Identificacao do sistema
|
24
|
+
12 => Position.new(13, 277, false), # Reservado pelo Sistema - branco
|
25
|
+
13 => Position.new(14, 6, false, "000001") # Numero sequencial no arquivo
|
26
|
+
})
|
27
|
+
end
|
28
|
+
|
29
|
+
#-------------------------------------------------------------------
|
30
|
+
#-------------------------------------------------------------------
|
31
|
+
# Gerais
|
32
|
+
def process_section file
|
33
|
+
self.set_codigo_arquivo file[1..1]
|
34
|
+
self.set_identificacao_arquivo file[2..8]
|
35
|
+
self.set_codigo_servico file[9..10]
|
36
|
+
self.set_literal_servico file[11..25]
|
37
|
+
self.set_codigo_empresa file[26..45]
|
38
|
+
self.set_nome_empresa file[46..75]
|
39
|
+
self.set_numero_banco file[76..78]
|
40
|
+
self.set_nome_banco file[79..93]
|
41
|
+
self.set_data_gravacao file[94..99]
|
42
|
+
self.set_reservado_1 file[100..107]
|
43
|
+
self.set_identificacao_sistema file[108..116]
|
44
|
+
self.set_reservado_2 file[117..393]
|
45
|
+
self.set_sequencial file[394..399]
|
46
|
+
end
|
47
|
+
|
48
|
+
#-------------------------------------------------------------------
|
49
|
+
#-------------------------------------------------------------------
|
50
|
+
# Validações
|
51
|
+
def is_valid?
|
52
|
+
self.get_codigo_arquivo > 0 and
|
53
|
+
self.get_data_gravacao.length > 0 and
|
54
|
+
self.get_nome_empresa.length > 0 and
|
55
|
+
self.get_identificacao_sistema.length > 0 and
|
56
|
+
self.get_nome_banco.length > 0
|
57
|
+
end
|
58
|
+
|
59
|
+
#-------------------------------------------------------------------
|
60
|
+
#-------------------------------------------------------------------
|
61
|
+
# Getters
|
62
|
+
def get_codigo_arquivo
|
63
|
+
self.get_section_value(1).to_i
|
64
|
+
end
|
65
|
+
|
66
|
+
def get_identificacao_arquivo
|
67
|
+
self.get_section_value(2)
|
68
|
+
end
|
69
|
+
|
70
|
+
def get_codigo_servico
|
71
|
+
self.get_section_value(3)
|
72
|
+
end
|
73
|
+
|
74
|
+
def get_literal_servico
|
75
|
+
self.get_section_value(4)
|
76
|
+
end
|
77
|
+
|
78
|
+
def get_codigo_empresa
|
79
|
+
self.get_section_value(5)
|
80
|
+
end
|
81
|
+
|
82
|
+
def get_nome_empresa
|
83
|
+
self.get_section_value(6)
|
84
|
+
end
|
85
|
+
|
86
|
+
def get_numero_banco
|
87
|
+
self.get_section_value(7)
|
88
|
+
end
|
89
|
+
|
90
|
+
def get_nome_banco
|
91
|
+
self.get_section_value(8)
|
92
|
+
end
|
93
|
+
|
94
|
+
def get_data_gravacao
|
95
|
+
self.get_section_value(9)
|
96
|
+
end
|
97
|
+
|
98
|
+
def get_identificacao_sistema
|
99
|
+
self.get_section_value(11)
|
100
|
+
end
|
101
|
+
|
102
|
+
def get_sequencial
|
103
|
+
self.get_section_value(13)
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
#-------------------------------------------------------------------
|
108
|
+
#-------------------------------------------------------------------
|
109
|
+
# Setters
|
110
|
+
def set_codigo_arquivo valor
|
111
|
+
self.set_section_value(1, valor)
|
112
|
+
end
|
113
|
+
|
114
|
+
def set_identificacao_arquivo valor
|
115
|
+
self.set_section_value(2, valor)
|
116
|
+
end
|
117
|
+
|
118
|
+
def set_codigo_servico valor
|
119
|
+
self.set_section_value(3, valor)
|
120
|
+
end
|
121
|
+
|
122
|
+
def set_literal_servico valor = ""
|
123
|
+
self.set_section_value(4, valor)
|
124
|
+
end
|
125
|
+
|
126
|
+
def set_codigo_empresa valor = ""
|
127
|
+
self.set_section_value(5, valor)
|
128
|
+
end
|
129
|
+
|
130
|
+
def set_nome_empresa valor = ""
|
131
|
+
self.set_section_value(6, valor)
|
132
|
+
end
|
133
|
+
|
134
|
+
def set_numero_banco valor = ""
|
135
|
+
self.set_section_value(7, valor)
|
136
|
+
end
|
137
|
+
|
138
|
+
def set_nome_banco valor = ""
|
139
|
+
self.set_section_value(8, valor)
|
140
|
+
end
|
141
|
+
|
142
|
+
def set_data_gravacao valor
|
143
|
+
begin
|
144
|
+
valor = Date.strptime(valor, "%d%m%Y") if valor.is_a?(String)
|
145
|
+
real_data = valor.strftime("%d%m%y")
|
146
|
+
|
147
|
+
if real_data.length == 6
|
148
|
+
self.set_section_value(9, real_data)
|
149
|
+
else
|
150
|
+
raise "tamanho de data incorreto"
|
151
|
+
end
|
152
|
+
|
153
|
+
rescue
|
154
|
+
raise "#{get_id}: Data de Geração Inválida
|
155
|
+
Valor: #{valor}"
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
def set_reservado_1 valor = ""
|
160
|
+
self.set_section_value(10, valor)
|
161
|
+
end
|
162
|
+
|
163
|
+
def set_identificacao_sistema valor = ""
|
164
|
+
self.set_section_value(11, valor)
|
165
|
+
end
|
166
|
+
|
167
|
+
def set_reservado_2 valor = ""
|
168
|
+
self.set_section_value(12, valor)
|
169
|
+
end
|
170
|
+
|
171
|
+
def set_sequencial valor
|
172
|
+
self.set_section_value(13, valor)
|
173
|
+
end
|
174
|
+
|
175
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
|
2
|
+
#-------------------------------------------------------------------
|
3
|
+
#-------------------------------------------------------------------
|
4
|
+
# Trailler - Empresa e Banco
|
5
|
+
class Cnab4000Trailler < FormatSection
|
6
|
+
require 'date'
|
7
|
+
|
8
|
+
def initialize master
|
9
|
+
super(master, true, true, false)
|
10
|
+
|
11
|
+
@section = Section.new({
|
12
|
+
0 => Position.new(1, 1, false, "9", true), # Código do Registro
|
13
|
+
1 => Position.new(2, 1, true, "9"), # Código Remessa
|
14
|
+
2 => Position.new(3, 6, false), # Total de Registros
|
15
|
+
3 => Position.new(4, 386, false), # Mensagem
|
16
|
+
4 => Position.new(14, 6, false) # Numero sequencial no arquivo
|
17
|
+
})
|
18
|
+
end
|
19
|
+
|
20
|
+
#-------------------------------------------------------------------
|
21
|
+
#-------------------------------------------------------------------
|
22
|
+
# Gerais
|
23
|
+
def process_section file
|
24
|
+
self.set_codigo_remessa file[1..1]
|
25
|
+
self.set_total_registros file[2..7]
|
26
|
+
self.set_mensagem file[8..393]
|
27
|
+
self.set_sequencial file[394..399]
|
28
|
+
end
|
29
|
+
|
30
|
+
#-------------------------------------------------------------------
|
31
|
+
#-------------------------------------------------------------------
|
32
|
+
# Validações
|
33
|
+
def is_valid?
|
34
|
+
result = (self.get_codigo_remessa > 0 and
|
35
|
+
self.get_codigo_convenio.length > 0 and
|
36
|
+
self.get_nome_empresa.length > 0 and
|
37
|
+
self.get_codigo_banco > 0 and
|
38
|
+
self.get_nome_banco.length > 0 and
|
39
|
+
!self.get_data_geracao.nil? and
|
40
|
+
self.get_numero_sequencial > 0 and
|
41
|
+
self.get_versao_layout > 0 and
|
42
|
+
self.get_identificacao_servico.length > 0)
|
43
|
+
end
|
44
|
+
|
45
|
+
#-------------------------------------------------------------------
|
46
|
+
#-------------------------------------------------------------------
|
47
|
+
# Getters
|
48
|
+
def get_codigo_remessa
|
49
|
+
self.get_section_value(1).to_i
|
50
|
+
end
|
51
|
+
|
52
|
+
def get_total_registros
|
53
|
+
self.get_section_value(2)
|
54
|
+
end
|
55
|
+
|
56
|
+
def get_mensagem
|
57
|
+
self.get_section_value(3)
|
58
|
+
end
|
59
|
+
|
60
|
+
def get_sequencial
|
61
|
+
self.get_section_value(4)
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
#-------------------------------------------------------------------
|
66
|
+
#-------------------------------------------------------------------
|
67
|
+
# Setters
|
68
|
+
def set_codigo_remessa valor
|
69
|
+
self.set_section_value(1, valor)
|
70
|
+
end
|
71
|
+
|
72
|
+
def set_total_registros valor
|
73
|
+
self.set_section_value(2, valor)
|
74
|
+
end
|
75
|
+
|
76
|
+
def set_mensagem valor
|
77
|
+
self.set_section_value(3, valor)
|
78
|
+
end
|
79
|
+
|
80
|
+
def set_sequencial valor
|
81
|
+
self.set_section_value(4, valor)
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
data/lib/formatos/febraban.rb
CHANGED
@@ -36,15 +36,12 @@ class Febraban150
|
|
36
36
|
@sections = []
|
37
37
|
@versao = versao
|
38
38
|
|
39
|
-
self.valida_versao(file)
|
40
39
|
self.valida_arquivo(file)
|
41
40
|
end
|
42
41
|
|
43
42
|
protected
|
44
43
|
def valida_versao(file)
|
45
|
-
|
46
|
-
@versao = @versao.present? ? @versao : IO.readlines(file)[0][79..80]
|
47
|
-
end
|
44
|
+
@versao = @versao ? (!@versao.nil? && !@versao.empty?) : IO.readlines(file)[0][79..80]
|
48
45
|
|
49
46
|
unless Febraban150::VersaoDisponivel.include?(@versao)
|
50
47
|
raise "Versão #{@versao} não suportada.
|
@@ -54,7 +51,11 @@ class Febraban150
|
|
54
51
|
|
55
52
|
def valida_arquivo(file = '')
|
56
53
|
if file.size > 0
|
54
|
+
self.valida_versao(file)
|
57
55
|
self.process_file file
|
56
|
+
|
57
|
+
else
|
58
|
+
raise 'Fornercer um arquivo válido'
|
58
59
|
end
|
59
60
|
end
|
60
61
|
|
@@ -5,9 +5,13 @@
|
|
5
5
|
class Febraban150A < FormatSection
|
6
6
|
require 'date'
|
7
7
|
|
8
|
+
<<<<<<< HEAD:lib/formatos/febraban150/febraban_150_a.rb
|
8
9
|
ID_SERVICO = "DÉBITO AUTOMÁTICO"
|
9
10
|
|
10
11
|
def initialize(master, versao = Febraban150::VERSAO)
|
12
|
+
=======
|
13
|
+
def initialize master
|
14
|
+
>>>>>>> Iniciando codificação do formato CNAB400 para boletos:lib/formatos/cnab400/cnab_400_0.rb
|
11
15
|
super(master, true, true, false)
|
12
16
|
|
13
17
|
@versao = versao
|
@@ -41,6 +45,7 @@ class Febraban150A < FormatSection
|
|
41
45
|
|
42
46
|
def monta_versao_05
|
43
47
|
@section = Section.new({
|
48
|
+
<<<<<<< HEAD:lib/formatos/febraban150/febraban_150_a.rb
|
44
49
|
0 => Position.new(1, 1, false,'A', true), # Código do Registro
|
45
50
|
1 => Position.new(2, 1, true), # Código Remessa (1-Remessa, 2-Retorno)
|
46
51
|
2 => Position.new(3, 20, false), # Código de ID enviado pelo Banco
|
@@ -52,12 +57,30 @@ class Febraban150A < FormatSection
|
|
52
57
|
8 => Position.new(9, 2, true, @versao), # Versão do Layout (5, desde 05.05.2008)
|
53
58
|
9 => Position.new(10, 17, false, Febraban150A::ID_SERVICO), # Identificação ("DÉBITO AUTOMÁTICO")
|
54
59
|
10 => Position.new(11, 52, false), # Reservado pelo Sistema
|
60
|
+
=======
|
61
|
+
0 => Position.new(1, 1, true, '0', true), # Identificação do Registro
|
62
|
+
1 => Position.new(2, 1, true, '1'), # Código Remessa (1-Remessa, 2-Retorno)
|
63
|
+
2 => Position.new(3, 7, false,'REMESSA'), # Literal Remessa
|
64
|
+
3 => Position.new(4, 2, true, '01'), # Código do Serviço
|
65
|
+
4 => Position.new(5, 15, false,'COBRANCA'), # Literal Serviço
|
66
|
+
5 => Position.new(6, 20, true), # Código da Empresa
|
67
|
+
6 => Position.new(7, 30, false), # Nome da Empresa
|
68
|
+
7 => Position.new(8, 3, true), # Código do Banco
|
69
|
+
8 => Position.new(9, 15, false, 'BRADESCO'), # Nome do Banco
|
70
|
+
9 => Position.new(10, 6, true), # Data de Geração de Arquivo
|
71
|
+
10 => Position.new(11, 8, false), # Brancos
|
72
|
+
11 => Position.new(12, 2, false), # Identificação do Sistema
|
73
|
+
12 => Position.new(13, 7, true), # Número Sequencial do Arquivo
|
74
|
+
13 => Position.new(14, 277, false), # Brancos
|
75
|
+
14 => Position.new(15, 6, true, '1'), # Sequencial de Regsitro
|
76
|
+
>>>>>>> Iniciando codificação do formato CNAB400 para boletos:lib/formatos/cnab400/cnab_400_0.rb
|
55
77
|
})
|
56
78
|
end
|
57
79
|
|
58
80
|
#-------------------------------------------------------------------
|
59
81
|
#-------------------------------------------------------------------
|
60
82
|
# Gerais
|
83
|
+
<<<<<<< HEAD:lib/formatos/febraban150/febraban_150_a.rb
|
61
84
|
public
|
62
85
|
def process_section(file)
|
63
86
|
case @versao
|
@@ -131,10 +154,29 @@ class Febraban150A < FormatSection
|
|
131
154
|
self.get_numero_sequencial > 0 and
|
132
155
|
self.get_versao_layout > 0 and
|
133
156
|
self.get_identificacao_servico.length > 0)
|
157
|
+
=======
|
158
|
+
def process_section(file)
|
159
|
+
self.set_id_registro (file[1..1])
|
160
|
+
self.set_codigo_remessa (file[2..2])
|
161
|
+
self.set_literal (file[3..9])
|
162
|
+
self.set_codigo_servico (file[10..11])
|
163
|
+
self.set_servico (file[12..26])
|
164
|
+
self.set_codigo_empresa (file[27..46])
|
165
|
+
self.set_nome_empresa (file[47..76])
|
166
|
+
self.set_codigo_banco (file[77..79])
|
167
|
+
self.set_nome_banco (file[80..94])
|
168
|
+
self.set_data_geracao (file[95..100])
|
169
|
+
self.set_branco_1 (file[101..108])
|
170
|
+
self.set_id_sistema (file[109..110])
|
171
|
+
self.set_seq_arquivo (file[111..117])
|
172
|
+
self.set_branco_2 (file[118..394])
|
173
|
+
self.set_seq_registro (file[395..400])
|
174
|
+
>>>>>>> Iniciando codificação do formato CNAB400 para boletos:lib/formatos/cnab400/cnab_400_0.rb
|
134
175
|
end
|
135
176
|
|
136
177
|
#-------------------------------------------------------------------
|
137
178
|
#-------------------------------------------------------------------
|
179
|
+
<<<<<<< HEAD:lib/formatos/febraban150/febraban_150_a.rb
|
138
180
|
# Getters
|
139
181
|
public
|
140
182
|
def get_codigo_remessa
|
@@ -144,74 +186,96 @@ class Febraban150A < FormatSection
|
|
144
186
|
def get_codigo_convenio
|
145
187
|
self.get_section_value(2)
|
146
188
|
end
|
189
|
+
=======
|
190
|
+
# Setters
|
191
|
+
def set_id_registro code
|
192
|
+
code = code.to_i
|
193
|
+
>>>>>>> Iniciando codificação do formato CNAB400 para boletos:lib/formatos/cnab400/cnab_400_0.rb
|
147
194
|
|
148
|
-
|
149
|
-
|
195
|
+
unless code
|
196
|
+
self.set_section_value(0, code)
|
197
|
+
else
|
198
|
+
raise
|
199
|
+
end
|
150
200
|
end
|
151
201
|
|
152
|
-
def
|
153
|
-
|
154
|
-
end
|
202
|
+
def set_codigo_remessa code
|
203
|
+
code = code.to_s
|
155
204
|
|
156
|
-
|
157
|
-
|
205
|
+
if code.length >= 1
|
206
|
+
self.set_section_value(1, code)
|
207
|
+
else
|
208
|
+
raise
|
209
|
+
end
|
158
210
|
end
|
159
211
|
|
160
|
-
def
|
161
|
-
|
162
|
-
Date.new(data[0..3].to_i, data[4..5].to_i, data[6..7].to_i)
|
163
|
-
end
|
212
|
+
def set_literal literal
|
213
|
+
nome = literal.to_s
|
164
214
|
|
165
|
-
|
166
|
-
|
215
|
+
if nome.to_s.length > 0
|
216
|
+
self.set_section_value(2, nome)
|
217
|
+
else
|
218
|
+
raise
|
219
|
+
end
|
167
220
|
end
|
168
221
|
|
169
|
-
def
|
170
|
-
|
171
|
-
end
|
222
|
+
def set_codigo_servico codigo
|
223
|
+
codigo = codigo.to_i
|
172
224
|
|
173
|
-
|
174
|
-
|
225
|
+
if codigo > 0
|
226
|
+
self.set_section_value(3, codigo)
|
227
|
+
else
|
228
|
+
raise
|
229
|
+
end
|
175
230
|
end
|
176
231
|
|
232
|
+
<<<<<<< HEAD:lib/formatos/febraban150/febraban_150_a.rb
|
177
233
|
#-------------------------------------------------------------------
|
178
234
|
#-------------------------------------------------------------------
|
179
235
|
# Setters
|
180
236
|
public
|
181
237
|
def set_codigo_remessa code
|
182
238
|
code = code.to_i
|
239
|
+
=======
|
240
|
+
def set_servico nome
|
241
|
+
nome = nome.to_s
|
242
|
+
>>>>>>> Iniciando codificação do formato CNAB400 para boletos:lib/formatos/cnab400/cnab_400_0.rb
|
183
243
|
|
184
|
-
if
|
185
|
-
self.set_section_value(
|
244
|
+
if nome.to_s.length > 0
|
245
|
+
self.set_section_value(4, nome)
|
186
246
|
else
|
187
|
-
raise
|
188
|
-
2 = Retorno - Enviado pelo Banco para a Empresa
|
189
|
-
Valor: #{code}"
|
247
|
+
raise
|
190
248
|
end
|
191
249
|
end
|
192
250
|
|
251
|
+
<<<<<<< HEAD:lib/formatos/febraban150/febraban_150_a.rb
|
193
252
|
def set_codigo_convenio code
|
194
253
|
code = code.to_s
|
195
254
|
|
196
255
|
if !code.nil? and
|
197
256
|
(code.length > 0 and code.length <= 20)
|
257
|
+
=======
|
258
|
+
def set_codigo_empresa codigo
|
259
|
+
begin
|
260
|
+
if codigo.length == 20
|
261
|
+
self.set_section_value(5, codigo)
|
262
|
+
else
|
263
|
+
raise
|
264
|
+
end
|
265
|
+
>>>>>>> Iniciando codificação do formato CNAB400 para boletos:lib/formatos/cnab400/cnab_400_0.rb
|
198
266
|
|
199
|
-
|
200
|
-
|
201
|
-
raise "#{get_id}: Código atribuído pelo Banco, para seu controle interno.
|
202
|
-
Este código será informado à Empresa, pelo Banco, antes
|
203
|
-
da implantação do serviço de débito automático.
|
204
|
-
Valor: #{code}"
|
267
|
+
rescue
|
268
|
+
raise
|
205
269
|
end
|
206
270
|
end
|
207
271
|
|
208
272
|
def set_nome_empresa nome
|
209
273
|
nome = nome.to_s
|
210
274
|
|
211
|
-
if nome
|
212
|
-
self.set_section_value(
|
275
|
+
if nome
|
276
|
+
self.set_section_value(6, nome)
|
213
277
|
else
|
214
|
-
raise
|
278
|
+
raise
|
215
279
|
end
|
216
280
|
end
|
217
281
|
|
@@ -219,29 +283,29 @@ class Febraban150A < FormatSection
|
|
219
283
|
codigo = codigo.to_i
|
220
284
|
|
221
285
|
if codigo > 0
|
222
|
-
self.set_section_value(
|
286
|
+
self.set_section_value(7, codigo)
|
223
287
|
else
|
224
|
-
raise
|
288
|
+
raise
|
225
289
|
end
|
226
290
|
end
|
227
291
|
|
228
292
|
def set_nome_banco nome
|
229
293
|
nome = nome.to_s
|
230
294
|
|
231
|
-
if nome.
|
232
|
-
self.set_section_value(
|
295
|
+
if nome.length > 0
|
296
|
+
self.set_section_value(8, nome)
|
233
297
|
else
|
234
|
-
raise
|
298
|
+
raise
|
235
299
|
end
|
236
300
|
end
|
237
301
|
|
238
302
|
def set_data_geracao data
|
239
303
|
begin
|
240
|
-
data = Date.strptime(data, "%
|
241
|
-
real_data = data.strftime(
|
304
|
+
data = Date.strptime(data, "%d%m%y") if data.is_a?(String)
|
305
|
+
real_data = data.strftime('%d%m%y')
|
242
306
|
|
243
|
-
if real_data.length ==
|
244
|
-
self.set_section_value(
|
307
|
+
if real_data.length == 6
|
308
|
+
self.set_section_value(9, real_data)
|
245
309
|
else
|
246
310
|
raise
|
247
311
|
end
|
@@ -252,41 +316,34 @@ class Febraban150A < FormatSection
|
|
252
316
|
end
|
253
317
|
end
|
254
318
|
|
255
|
-
def
|
256
|
-
|
257
|
-
|
258
|
-
if numero > 0
|
259
|
-
self.set_section_value(7, numero)
|
260
|
-
else
|
261
|
-
raise "#{get_id}: Número Sequencial deve ser positivo e maior que 0
|
262
|
-
Valor: #{numero}"
|
263
|
-
end
|
319
|
+
def set_branco_1 branco
|
320
|
+
branco = branco.to_s
|
321
|
+
self.set_section_value(10, branco)
|
264
322
|
end
|
265
323
|
|
266
|
-
def
|
267
|
-
|
268
|
-
|
269
|
-
if versao > 0
|
270
|
-
self.set_section_value(8, versao)
|
271
|
-
else
|
272
|
-
raise "#{get_id}: Versão deve ser 05 (a partir de 05.05.2008)
|
273
|
-
Valor: #{versao}"
|
274
|
-
end
|
324
|
+
def set_id_sistema id
|
325
|
+
id = id.to_s
|
326
|
+
self.set_section_value(11, id)
|
275
327
|
end
|
276
328
|
|
277
|
-
def
|
278
|
-
|
329
|
+
def set_seq_arquivo sequencial
|
330
|
+
sequencial = sequencial.to_i
|
331
|
+
self.set_section_value(12, sequencial)
|
332
|
+
end
|
279
333
|
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
raise "#{get_id}: Deve ser Débito Automático
|
284
|
-
Valor: #{identificacao}"
|
285
|
-
end
|
334
|
+
def set_branco_2 branco
|
335
|
+
branco = branco.to_s
|
336
|
+
self.set_section_value(13, branco)
|
286
337
|
end
|
287
338
|
|
288
|
-
def
|
289
|
-
|
290
|
-
self.set_section_value(
|
339
|
+
def set_seq_registro sequencial
|
340
|
+
sequencial = sequencial.to_i
|
341
|
+
self.set_section_value(14, sequencial)
|
291
342
|
end
|
292
343
|
end
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
|