formatos-febraban 0.3.48 → 0.3.49
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 +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
@@ -1,188 +0,0 @@
|
|
1
|
-
|
2
|
-
#-------------------------------------------------------------------
|
3
|
-
#-------------------------------------------------------------------
|
4
|
-
# Header - Empresa e Banco
|
5
|
-
class Cnab4002 < 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, true, '0', true), # Identificação do Registro
|
13
|
-
1 => Position.new(2, 1, true, '1'), # Código Remessa (1-Remessa, 2-Retorno)
|
14
|
-
2 => Position.new(3, 7, false,'REMESSA'), # Literal Remessa
|
15
|
-
3 => Position.new(4, 2, true, '01'), # Código do Serviço
|
16
|
-
4 => Position.new(5, 15, false,'COBRANCA'), # Literal Serviço
|
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), # Código do Banco
|
20
|
-
8 => Position.new(9, 15, false, 'BRADESCO'), # Nome do Banco
|
21
|
-
9 => Position.new(10, 6, true), # Data de Geração de Arquivo
|
22
|
-
10 => Position.new(11, 8, false), # Brancos
|
23
|
-
11 => Position.new(12, 2, false), # Identificação do Sistema
|
24
|
-
12 => Position.new(13, 7, true), # Número Sequencial do Arquivo
|
25
|
-
13 => Position.new(14, 277, false), # Brancos
|
26
|
-
14 => Position.new(15, 6, true, '1'), # Sequencial de Regsitro
|
27
|
-
})
|
28
|
-
end
|
29
|
-
|
30
|
-
#-------------------------------------------------------------------
|
31
|
-
#-------------------------------------------------------------------
|
32
|
-
# Gerais
|
33
|
-
def process_section file
|
34
|
-
self.set_id_registro file[1..1]
|
35
|
-
self.set_codigo_remessa file[2..2]
|
36
|
-
self.set_literal file[3..9]
|
37
|
-
self.set_codigo_servico file[10..11]
|
38
|
-
self.set_servico file[12..26]
|
39
|
-
self.set_codigo_empresa file[27..46]
|
40
|
-
self.set_nome_empresa file[47..76]
|
41
|
-
self.set_codigo_banco file[77..79]
|
42
|
-
self.set_nome_banco file[80..94]
|
43
|
-
self.set_data_geracao file[95..100]
|
44
|
-
self.set_branco_1 file[101..108]
|
45
|
-
self.set_id_sistema file[109..110]
|
46
|
-
self.set_seq_arquivo file[111..117]
|
47
|
-
self.set_branco_2 file[118..394]
|
48
|
-
self.set_seq_registro file[395..400]
|
49
|
-
end
|
50
|
-
|
51
|
-
#-------------------------------------------------------------------
|
52
|
-
#-------------------------------------------------------------------
|
53
|
-
# Setters
|
54
|
-
def set_id_registro code
|
55
|
-
code = code.to_i
|
56
|
-
|
57
|
-
unless code
|
58
|
-
self.set_section_value(0, code)
|
59
|
-
else
|
60
|
-
raise
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def set_codigo_remessa code
|
65
|
-
code = code.to_s
|
66
|
-
|
67
|
-
if code.length >= 1
|
68
|
-
self.set_section_value(1, code)
|
69
|
-
else
|
70
|
-
raise
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
def set_literal literal
|
75
|
-
nome = literal.to_s
|
76
|
-
|
77
|
-
if nome.to_s.length > 0
|
78
|
-
self.set_section_value(2, nome)
|
79
|
-
else
|
80
|
-
raise
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def set_codigo_servico codigo
|
85
|
-
codigo = codigo.to_i
|
86
|
-
|
87
|
-
if codigo > 0
|
88
|
-
self.set_section_value(3, codigo)
|
89
|
-
else
|
90
|
-
raise
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
def set_servico nome
|
95
|
-
nome = nome.to_s
|
96
|
-
|
97
|
-
if nome.to_s.length > 0
|
98
|
-
self.set_section_value(4, nome)
|
99
|
-
else
|
100
|
-
raise
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
def set_codigo_empresa codigo
|
105
|
-
begin
|
106
|
-
if codigo.length == 20
|
107
|
-
self.set_section_value(5, codigo)
|
108
|
-
else
|
109
|
-
raise
|
110
|
-
end
|
111
|
-
|
112
|
-
rescue
|
113
|
-
raise
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def set_nome_empresa nome
|
118
|
-
nome = nome.to_s
|
119
|
-
|
120
|
-
if nome
|
121
|
-
self.set_section_value(6, nome)
|
122
|
-
else
|
123
|
-
raise
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
def set_codigo_banco codigo
|
128
|
-
codigo = codigo.to_i
|
129
|
-
|
130
|
-
if codigo > 0
|
131
|
-
self.set_section_value(7, codigo)
|
132
|
-
else
|
133
|
-
raise
|
134
|
-
end
|
135
|
-
end
|
136
|
-
|
137
|
-
def set_nome_banco nome
|
138
|
-
nome = nome.to_s
|
139
|
-
|
140
|
-
if nome.length > 0
|
141
|
-
self.set_section_value(8, nome)
|
142
|
-
else
|
143
|
-
raise
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
def set_data_geracao data
|
148
|
-
begin
|
149
|
-
data = Date.strptime(data, "%d%m%y") if data.is_a?(String)
|
150
|
-
real_data = data.strftime('%d%m%y')
|
151
|
-
|
152
|
-
if real_data.length == 6
|
153
|
-
self.set_section_value(9, real_data)
|
154
|
-
else
|
155
|
-
raise
|
156
|
-
end
|
157
|
-
|
158
|
-
rescue
|
159
|
-
raise "#{get_id}: Data de Geração Inválida
|
160
|
-
Valor: #{data}"
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
def set_branco_1 branco
|
165
|
-
branco = branco.to_s
|
166
|
-
self.set_section_value(10, branco)
|
167
|
-
end
|
168
|
-
|
169
|
-
def set_id_sistema id
|
170
|
-
id = id.to_s
|
171
|
-
self.set_section_value(11, id)
|
172
|
-
end
|
173
|
-
|
174
|
-
def set_seq_arquivo sequencial
|
175
|
-
sequencial = sequencial.to_i
|
176
|
-
self.set_section_value(12, sequencial)
|
177
|
-
end
|
178
|
-
|
179
|
-
def set_branco_2 branco
|
180
|
-
branco = branco.to_s
|
181
|
-
self.set_section_value(13, branco)
|
182
|
-
end
|
183
|
-
|
184
|
-
def set_seq_registro sequencial
|
185
|
-
sequencial = sequencial.to_i
|
186
|
-
self.set_section_value(14, sequencial)
|
187
|
-
end
|
188
|
-
end
|
@@ -1,194 +0,0 @@
|
|
1
|
-
|
2
|
-
#-------------------------------------------------------------------
|
3
|
-
#-------------------------------------------------------------------
|
4
|
-
# Header - Empresa e Banco
|
5
|
-
class Cnab4003 < 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, true, '0', true), # Identificação do Registro
|
13
|
-
1 => Position.new(2, 1, true, '1'), # Código Remessa (1-Remessa, 2-Retorno)
|
14
|
-
2 => Position.new(3, 7, false,'REMESSA'), # Literal Remessa
|
15
|
-
3 => Position.new(4, 2, true, '01'), # Código do Serviço
|
16
|
-
4 => Position.new(5, 15, false,'COBRANCA'), # Literal Serviço
|
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), # Código do Banco
|
20
|
-
8 => Position.new(9, 15, false, 'BRADESCO'), # Nome do Banco
|
21
|
-
9 => Position.new(10, 6, true), # Data de Geração de Arquivo
|
22
|
-
10 => Position.new(11, 8, false), # Brancos
|
23
|
-
11 => Position.new(12, 2, false), # Identificação do Sistema
|
24
|
-
12 => Position.new(13, 7, true), # Número Sequencial do Arquivo
|
25
|
-
13 => Position.new(14, 277, false), # Brancos
|
26
|
-
14 => Position.new(15, 6, true, '1'), # Sequencial de Regsitro
|
27
|
-
})
|
28
|
-
end
|
29
|
-
|
30
|
-
#-------------------------------------------------------------------
|
31
|
-
#-------------------------------------------------------------------
|
32
|
-
# Gerais
|
33
|
-
def process_section file
|
34
|
-
self.set_id_registro file[1..1]
|
35
|
-
self.set_codigo_remessa file[2..2]
|
36
|
-
self.set_literal file[3..9]
|
37
|
-
self.set_codigo_servico file[10..11]
|
38
|
-
self.set_servico file[12..26]
|
39
|
-
self.set_codigo_empresa file[27..46]
|
40
|
-
self.set_nome_empresa file[47..76]
|
41
|
-
self.set_codigo_banco file[77..79]
|
42
|
-
self.set_nome_banco file[80..94]
|
43
|
-
self.set_data_geracao file[95..100]
|
44
|
-
self.set_branco_1 file[101..108]
|
45
|
-
self.set_id_sistema file[109..110]
|
46
|
-
self.set_seq_arquivo file[111..117]
|
47
|
-
self.set_branco_2 file[118..394]
|
48
|
-
self.set_seq_registro file[395..400]
|
49
|
-
end
|
50
|
-
|
51
|
-
#-------------------------------------------------------------------
|
52
|
-
#-------------------------------------------------------------------
|
53
|
-
# Setters
|
54
|
-
def set_id_registro code
|
55
|
-
code = code.to_i
|
56
|
-
|
57
|
-
unless code
|
58
|
-
self.set_section_value(0, code)
|
59
|
-
else
|
60
|
-
raise
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def set_codigo_remessa code
|
65
|
-
code = code.to_s
|
66
|
-
|
67
|
-
if code.length >= 1
|
68
|
-
self.set_section_value(1, code)
|
69
|
-
else
|
70
|
-
raise
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
def set_literal literal
|
75
|
-
nome = literal.to_s
|
76
|
-
|
77
|
-
if nome.to_s.length > 0
|
78
|
-
self.set_section_value(2, nome)
|
79
|
-
else
|
80
|
-
raise
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def set_codigo_servico codigo
|
85
|
-
codigo = codigo.to_i
|
86
|
-
|
87
|
-
if codigo > 0
|
88
|
-
self.set_section_value(3, codigo)
|
89
|
-
else
|
90
|
-
raise
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
def set_servico nome
|
95
|
-
nome = nome.to_s
|
96
|
-
|
97
|
-
if nome.to_s.length > 0
|
98
|
-
self.set_section_value(4, nome)
|
99
|
-
else
|
100
|
-
raise
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
def set_codigo_empresa codigo
|
105
|
-
begin
|
106
|
-
if codigo.length == 20
|
107
|
-
self.set_section_value(5, codigo)
|
108
|
-
else
|
109
|
-
raise
|
110
|
-
end
|
111
|
-
|
112
|
-
rescue
|
113
|
-
raise
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def set_nome_empresa nome
|
118
|
-
nome = nome.to_s
|
119
|
-
|
120
|
-
if nome
|
121
|
-
self.set_section_value(6, nome)
|
122
|
-
else
|
123
|
-
raise
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
def set_codigo_banco codigo
|
128
|
-
codigo = codigo.to_i
|
129
|
-
|
130
|
-
if codigo > 0
|
131
|
-
self.set_section_value(7, codigo)
|
132
|
-
else
|
133
|
-
raise
|
134
|
-
end
|
135
|
-
end
|
136
|
-
|
137
|
-
def set_nome_banco nome
|
138
|
-
nome = nome.to_s
|
139
|
-
|
140
|
-
if nome.length > 0
|
141
|
-
self.set_section_value(8, nome)
|
142
|
-
else
|
143
|
-
raise
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
def set_data_geracao data
|
148
|
-
begin
|
149
|
-
data = Date.strptime(data, "%d%m%y") if data.is_a?(String)
|
150
|
-
real_data = data.strftime('%d%m%y')
|
151
|
-
|
152
|
-
if real_data.length == 6
|
153
|
-
self.set_section_value(9, real_data)
|
154
|
-
else
|
155
|
-
raise
|
156
|
-
end
|
157
|
-
|
158
|
-
rescue
|
159
|
-
raise "#{get_id}: Data de Geração Inválida
|
160
|
-
Valor: #{data}"
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
def set_branco_1 branco
|
165
|
-
branco = branco.to_s
|
166
|
-
self.set_section_value(10, branco)
|
167
|
-
end
|
168
|
-
|
169
|
-
def set_id_sistema id
|
170
|
-
id = id.to_s
|
171
|
-
self.set_section_value(11, id)
|
172
|
-
end
|
173
|
-
|
174
|
-
def set_seq_arquivo sequencial
|
175
|
-
sequencial = sequencial.to_i
|
176
|
-
self.set_section_value(12, sequencial)
|
177
|
-
end
|
178
|
-
|
179
|
-
def set_branco_2 branco
|
180
|
-
branco = branco.to_s
|
181
|
-
self.set_section_value(13, branco)
|
182
|
-
end
|
183
|
-
|
184
|
-
def set_seq_registro sequencial
|
185
|
-
sequencial = sequencial.to_i
|
186
|
-
self.set_section_value(14, sequencial)
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
@@ -1,194 +0,0 @@
|
|
1
|
-
|
2
|
-
#-------------------------------------------------------------------
|
3
|
-
#-------------------------------------------------------------------
|
4
|
-
# Header - Empresa e Banco
|
5
|
-
class Cnab4007 < 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, true, '0', true), # Identificação do Registro
|
13
|
-
1 => Position.new(2, 1, true, '1'), # Código Remessa (1-Remessa, 2-Retorno)
|
14
|
-
2 => Position.new(3, 7, false,'REMESSA'), # Literal Remessa
|
15
|
-
3 => Position.new(4, 2, true, '01'), # Código do Serviço
|
16
|
-
4 => Position.new(5, 15, false,'COBRANCA'), # Literal Serviço
|
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), # Código do Banco
|
20
|
-
8 => Position.new(9, 15, false, 'BRADESCO'), # Nome do Banco
|
21
|
-
9 => Position.new(10, 6, true), # Data de Geração de Arquivo
|
22
|
-
10 => Position.new(11, 8, false), # Brancos
|
23
|
-
11 => Position.new(12, 2, false), # Identificação do Sistema
|
24
|
-
12 => Position.new(13, 7, true), # Número Sequencial do Arquivo
|
25
|
-
13 => Position.new(14, 277, false), # Brancos
|
26
|
-
14 => Position.new(15, 6, true, '1'), # Sequencial de Regsitro
|
27
|
-
})
|
28
|
-
end
|
29
|
-
|
30
|
-
#-------------------------------------------------------------------
|
31
|
-
#-------------------------------------------------------------------
|
32
|
-
# Gerais
|
33
|
-
def process_section file
|
34
|
-
self.set_id_registro file[1..1]
|
35
|
-
self.set_codigo_remessa file[2..2]
|
36
|
-
self.set_literal file[3..9]
|
37
|
-
self.set_codigo_servico file[10..11]
|
38
|
-
self.set_servico file[12..26]
|
39
|
-
self.set_codigo_empresa file[27..46]
|
40
|
-
self.set_nome_empresa file[47..76]
|
41
|
-
self.set_codigo_banco file[77..79]
|
42
|
-
self.set_nome_banco file[80..94]
|
43
|
-
self.set_data_geracao file[95..100]
|
44
|
-
self.set_branco_1 file[101..108]
|
45
|
-
self.set_id_sistema file[109..110]
|
46
|
-
self.set_seq_arquivo file[111..117]
|
47
|
-
self.set_branco_2 file[118..394]
|
48
|
-
self.set_seq_registro file[395..400]
|
49
|
-
end
|
50
|
-
|
51
|
-
#-------------------------------------------------------------------
|
52
|
-
#-------------------------------------------------------------------
|
53
|
-
# Setters
|
54
|
-
def set_id_registro code
|
55
|
-
code = code.to_i
|
56
|
-
|
57
|
-
unless code
|
58
|
-
self.set_section_value(0, code)
|
59
|
-
else
|
60
|
-
raise
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def set_codigo_remessa code
|
65
|
-
code = code.to_s
|
66
|
-
|
67
|
-
if code.length >= 1
|
68
|
-
self.set_section_value(1, code)
|
69
|
-
else
|
70
|
-
raise
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
def set_literal literal
|
75
|
-
nome = literal.to_s
|
76
|
-
|
77
|
-
if nome.to_s.length > 0
|
78
|
-
self.set_section_value(2, nome)
|
79
|
-
else
|
80
|
-
raise
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def set_codigo_servico codigo
|
85
|
-
codigo = codigo.to_i
|
86
|
-
|
87
|
-
if codigo > 0
|
88
|
-
self.set_section_value(3, codigo)
|
89
|
-
else
|
90
|
-
raise
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
def set_servico nome
|
95
|
-
nome = nome.to_s
|
96
|
-
|
97
|
-
if nome.to_s.length > 0
|
98
|
-
self.set_section_value(4, nome)
|
99
|
-
else
|
100
|
-
raise
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
def set_codigo_empresa codigo
|
105
|
-
begin
|
106
|
-
if codigo.length == 20
|
107
|
-
self.set_section_value(5, codigo)
|
108
|
-
else
|
109
|
-
raise
|
110
|
-
end
|
111
|
-
|
112
|
-
rescue
|
113
|
-
raise
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def set_nome_empresa nome
|
118
|
-
nome = nome.to_s
|
119
|
-
|
120
|
-
if nome
|
121
|
-
self.set_section_value(6, nome)
|
122
|
-
else
|
123
|
-
raise
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
def set_codigo_banco codigo
|
128
|
-
codigo = codigo.to_i
|
129
|
-
|
130
|
-
if codigo > 0
|
131
|
-
self.set_section_value(7, codigo)
|
132
|
-
else
|
133
|
-
raise
|
134
|
-
end
|
135
|
-
end
|
136
|
-
|
137
|
-
def set_nome_banco nome
|
138
|
-
nome = nome.to_s
|
139
|
-
|
140
|
-
if nome.length > 0
|
141
|
-
self.set_section_value(8, nome)
|
142
|
-
else
|
143
|
-
raise
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
def set_data_geracao data
|
148
|
-
begin
|
149
|
-
data = Date.strptime(data, "%d%m%y") if data.is_a?(String)
|
150
|
-
real_data = data.strftime('%d%m%y')
|
151
|
-
|
152
|
-
if real_data.length == 6
|
153
|
-
self.set_section_value(9, real_data)
|
154
|
-
else
|
155
|
-
raise
|
156
|
-
end
|
157
|
-
|
158
|
-
rescue
|
159
|
-
raise "#{get_id}: Data de Geração Inválida
|
160
|
-
Valor: #{data}"
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
def set_branco_1 branco
|
165
|
-
branco = branco.to_s
|
166
|
-
self.set_section_value(10, branco)
|
167
|
-
end
|
168
|
-
|
169
|
-
def set_id_sistema id
|
170
|
-
id = id.to_s
|
171
|
-
self.set_section_value(11, id)
|
172
|
-
end
|
173
|
-
|
174
|
-
def set_seq_arquivo sequencial
|
175
|
-
sequencial = sequencial.to_i
|
176
|
-
self.set_section_value(12, sequencial)
|
177
|
-
end
|
178
|
-
|
179
|
-
def set_branco_2 branco
|
180
|
-
branco = branco.to_s
|
181
|
-
self.set_section_value(13, branco)
|
182
|
-
end
|
183
|
-
|
184
|
-
def set_seq_registro sequencial
|
185
|
-
sequencial = sequencial.to_i
|
186
|
-
self.set_section_value(14, sequencial)
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|