formatos-febraban 0.3.57 → 0.3.58
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/formatos/cielo/cielo_header.rb +13 -13
- data/lib/formatos/cnab400/arquivo/V08/detalhe.rb +202 -0
- data/lib/formatos/cnab400/arquivo/V08/detalhe_commons.rb +445 -0
- data/lib/formatos/cnab400/arquivo/V08/header.rb +89 -0
- data/lib/formatos/cnab400/arquivo/V08/header_commons.rb +179 -0
- data/lib/formatos/cnab400/arquivo/V08/trailler.rb +106 -0
- data/lib/formatos/cnab400/arquivo/V08/trailler_commons.rb +153 -0
- data/lib/formatos/cnab400/arquivo/VAldeias/detalhe.rb +167 -0
- data/lib/formatos/cnab400/arquivo/VAldeias/detalhe_commons.rb +184 -0
- data/lib/formatos/cnab400/arquivo/VAldeias/header.rb +83 -0
- data/lib/formatos/cnab400/arquivo/VAldeias/header_commons.rb +170 -0
- data/lib/formatos/cnab400/arquivo/VAldeias/trailler.rb +97 -0
- data/lib/formatos/cnab400/arquivo/VAldeias/trailler_commons.rb +36 -0
- data/lib/formatos/cnab400/cnab_400.rb +42 -64
- data/lib/formatos/febraban/version.rb +1 -1
- metadata +14 -5
- data/lib/formatos/cnab400/cnab_400_detalhe.rb +0 -659
- data/lib/formatos/cnab400/cnab_400_header.rb +0 -285
- data/lib/formatos/cnab400/cnab_400_trailler.rb +0 -257
@@ -0,0 +1,167 @@
|
|
1
|
+
module VAldeias
|
2
|
+
require_relative 'detalhe_commons'
|
3
|
+
|
4
|
+
module Remessa
|
5
|
+
class Detalhe < FormatSection
|
6
|
+
include VAldeiasDetalheCommons
|
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
|
12
|
+
2 => Position.new(3, 3, true, "0"), # Zeros
|
13
|
+
3 => Position.new(4, 7, false), # Conta Corrente
|
14
|
+
4 => Position.new(5, 1, false), # Digito da CC
|
15
|
+
5 => Position.new(6, 2, false), # Carteira
|
16
|
+
6 => Position.new(7, 3, true, "0"), # Zeros
|
17
|
+
7 => Position.new(8, 12, false), # Nosso numero
|
18
|
+
8 => Position.new(9, 4, true, "0"), # Zeros
|
19
|
+
9 => Position.new(10, 11, true), # Numero Documento
|
20
|
+
10 => Position.new(11, 4, true, "0"), # Zeros
|
21
|
+
11 => Position.new(12, 6, true), # Data do documento
|
22
|
+
12 => Position.new(13, 4, true, "0"), # Zeros
|
23
|
+
13 => Position.new(14, 6, true), # Data de vencimento
|
24
|
+
14 => Position.new(15, 40, false), # Nome do sacado
|
25
|
+
15 => Position.new(16, 60, false), # Endereço
|
26
|
+
16 => Position.new(17, 10, false), # Numero
|
27
|
+
17 => Position.new(18, 10, false), # Complemento
|
28
|
+
18 => Position.new(19, 30, false), # Bairro
|
29
|
+
19 => Position.new(20, 30, false), # Cidade
|
30
|
+
20 => Position.new(21, 2, false), # Estado
|
31
|
+
21 => Position.new(22, 8, false), # Cep
|
32
|
+
22 => Position.new(23, 15, false), # Valor do titulo
|
33
|
+
23 => Position.new(24, 44, false), # Código de barras
|
34
|
+
24 => Position.new(25, 4, true, "0"), # Zeros
|
35
|
+
25 => Position.new(26, 56, false), # Linha digitavel
|
36
|
+
26 => Position.new(27, 14, false), # Brancos
|
37
|
+
27 => Position.new(44, 6, true) # Numero sequencial
|
38
|
+
})
|
39
|
+
end
|
40
|
+
|
41
|
+
def set_values params
|
42
|
+
set_agencia params[:agencia]
|
43
|
+
set_conta_corrente params[:conta_corrente]
|
44
|
+
set_dv_conta_corrente params[:dv_conta_corrente]
|
45
|
+
set_carteira params[:carteira]
|
46
|
+
set_nosso_numero params[:nosso_numero]
|
47
|
+
set_numero_documento params[:numero_documento]
|
48
|
+
set_data_emissao_titulo Date.today
|
49
|
+
set_vencimento_titulo params[:vencimento]
|
50
|
+
set_nome_sacado params[:nome_sacado]
|
51
|
+
set_endereco params[:endereco]
|
52
|
+
set_numero params[:numero]
|
53
|
+
set_complemento params[:complemento]
|
54
|
+
set_bairro params[:bairro]
|
55
|
+
set_cidade params[:cidade]
|
56
|
+
set_estado params[:estado]
|
57
|
+
set_cep params[:cep]
|
58
|
+
set_valor_titulo params[:valor]
|
59
|
+
set_codigo_barras params[:codigo_barras]
|
60
|
+
set_linha_digitavel params[:linha_digitavel]
|
61
|
+
set_branco
|
62
|
+
set_sequencial params[:sequencial]
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
module Retorno
|
68
|
+
class Detalhe < FormatSection
|
69
|
+
include VAldeiasDetalheCommons
|
70
|
+
|
71
|
+
def initialize
|
72
|
+
@section = Section.new({
|
73
|
+
0 => Position.new(1, 1, false, "1", true), # Código do Registro
|
74
|
+
1 => Position.new(2, 2, true), # Tipo de inscrição da empresa (01:CPF, 02: CNPJ)
|
75
|
+
2 => Position.new(3, 14, false), # Numero da inscricao da empresa
|
76
|
+
3 => Position.new(4, 3, false), # Reservado - Zeros
|
77
|
+
4 => Position.new(5, 17, true), # Identificação da empresa (zero, carteira, agencia e CC )
|
78
|
+
5 => Position.new(6, 25, false), # Numero controle do participante
|
79
|
+
6 => Position.new(7, 8, false), # Reservado - Zeros
|
80
|
+
7 => Position.new(8, 12, true), # Identificação do titulo no banco
|
81
|
+
8 => Position.new(9, 10, false), # Reservado - Zeros
|
82
|
+
9 => Position.new(10, 12, false), # Reservado - Zeros
|
83
|
+
10 => Position.new(11, 1, false), # Indicador Rateio
|
84
|
+
11 => Position.new(12, 2, false), # Reservado - Zeros
|
85
|
+
12 => Position.new(13, 1, false), # Carteira
|
86
|
+
13 => Position.new(14, 2, false), # Id da Ocorrencia
|
87
|
+
14 => Position.new(15, 6, false), # Data da Ocorrencia
|
88
|
+
15 => Position.new(16, 10, false), # Numero Documento
|
89
|
+
16 => Position.new(17, 20, false), # Id do titulo no banco
|
90
|
+
17 => Position.new(18, 6, false), # Data vencimento do titulo (DDMMAA)
|
91
|
+
18 => Position.new(19, 13, false), # Valor do titulo
|
92
|
+
19 => Position.new(20, 3, false), # Banco cobrador
|
93
|
+
20 => Position.new(21, 5, false), # Agencia Cobradora
|
94
|
+
21 => Position.new(22, 2, false), # Especie de titulo - branco
|
95
|
+
22 => Position.new(23, 13, false), # Valor despesa das ocorrencias
|
96
|
+
23 => Position.new(24, 13, false), # Outras despesas
|
97
|
+
24 => Position.new(25, 13, false), # Juros operação em atraso
|
98
|
+
25 => Position.new(26, 13, false), # IOF devido
|
99
|
+
26 => Position.new(27, 13, false), # Valor abatimento
|
100
|
+
27 => Position.new(28, 13, false), # Valor desconto concedido
|
101
|
+
28 => Position.new(29, 13, false), # Valor pago
|
102
|
+
29 => Position.new(30, 13, false), # Juros de mora
|
103
|
+
30 => Position.new(31, 13, false), # Outros creditos
|
104
|
+
31 => Position.new(32, 2, false), # Reservado - branco
|
105
|
+
32 => Position.new(33, 1, false), # Motivo do codigo de ocorrencia
|
106
|
+
33 => Position.new(34, 6, false), # Data do credito
|
107
|
+
34 => Position.new(35, 3, false), # Origem pagamento
|
108
|
+
35 => Position.new(36, 10, false), # Reservado - brancos
|
109
|
+
36 => Position.new(37, 4, false), # Codigo do banco - quando cheque
|
110
|
+
37 => Position.new(38, 10, false), # Motivo das rejeicoes
|
111
|
+
38 => Position.new(39, 40, false), # Reservado - brancos
|
112
|
+
39 => Position.new(40, 2, false), # numero do cartorio
|
113
|
+
40 => Position.new(41, 10, false), # numero do protocolo
|
114
|
+
41 => Position.new(42, 14, false), # Reservado - brancos
|
115
|
+
42 => Position.new(43, 6, false) # Numero sequencial
|
116
|
+
})
|
117
|
+
end
|
118
|
+
|
119
|
+
def processa_section file
|
120
|
+
self.set_tipo_inscricao file[1..2]
|
121
|
+
self.set_numero_inscricao file[3..16]
|
122
|
+
self.set_zeros_1 file[17..19]
|
123
|
+
self.set_id_empresa file[20..36]
|
124
|
+
self.set_controle_participante file[37..61]
|
125
|
+
self.set_zeros_2 file[62..69]
|
126
|
+
self.set_id_titulo file[70..81]
|
127
|
+
self.set_zeros_3 file[82..91]
|
128
|
+
self.set_zeros_4 file[93..103]
|
129
|
+
self.set_indicador_rateio_retorno file[104..104]
|
130
|
+
self.set_zeros_5 file[105..106]
|
131
|
+
self.set_carteira_retorno file[107..107]
|
132
|
+
self.set_ocorrencia_retorno file[108..109]
|
133
|
+
self.set_data_ocorrencia file[110..115]
|
134
|
+
self.set_numero_documento_retorno file[116..125]
|
135
|
+
self.set_id_titulo file[126..145]
|
136
|
+
self.set_data_titulo file[146..151]
|
137
|
+
self.set_valor_titulo_retorno file[152..164]
|
138
|
+
self.set_banco_cobrador_retorno file[165..167]
|
139
|
+
self.set_agencia_cobradora file[168..172]
|
140
|
+
self.set_especie_titulo_retorno file[173..174]
|
141
|
+
self.set_despesas file[175..187]
|
142
|
+
self.set_outras_despesas file[188..200]
|
143
|
+
self.set_juros file[201..213]
|
144
|
+
self.set_iof file[214..226]
|
145
|
+
self.set_abatimento_concedido file[227..239]
|
146
|
+
self.set_desconto_concedido file[240..252]
|
147
|
+
self.set_valor_pago file[253..265]
|
148
|
+
self.set_juros_mora file[266..278]
|
149
|
+
self.set_outros_creditos file[279..291]
|
150
|
+
self.set_brancos_1 file[292..293]
|
151
|
+
self.set_motivo_ocorrencia file[294..294]
|
152
|
+
self.set_data_credito file[295..300]
|
153
|
+
self.set_origem_pagamento file[301..303]
|
154
|
+
self.set_brancos_2 file[304..313]
|
155
|
+
self.set_codigo_banco_retorno file[314..317]
|
156
|
+
self.set_motivo_rejeicoes file[318..327]
|
157
|
+
self.set_brancos_3 file[328..367]
|
158
|
+
self.set_numero_cartorio file[368..369]
|
159
|
+
self.set_numero_protocolo file[370..379]
|
160
|
+
self.set_brancos_4 file[380..393]
|
161
|
+
self.set_sequencial_retorno file[394..399]
|
162
|
+
end
|
163
|
+
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
@@ -0,0 +1,184 @@
|
|
1
|
+
module VAldeiasDetalheCommons
|
2
|
+
|
3
|
+
#-------------------------------------------------------------------
|
4
|
+
#-------------------------------------------------------------------
|
5
|
+
# Validações
|
6
|
+
def is_valid?
|
7
|
+
self.get_nosso_numero.length > 0 and
|
8
|
+
self.get_numero_documento.length > 0 and
|
9
|
+
self.get_sequencial.length > 0
|
10
|
+
end
|
11
|
+
|
12
|
+
#-------------------------------------------------------------------
|
13
|
+
#-------------------------------------------------------------------
|
14
|
+
# Getters
|
15
|
+
def get_agencia
|
16
|
+
self.get_section_value(1)
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_nosso_numero
|
20
|
+
self.get_section_value(7)
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_numero_documento
|
24
|
+
self.get_section_value(9)
|
25
|
+
end
|
26
|
+
|
27
|
+
def get_vencimento_titulo
|
28
|
+
self.get_section_value(13)
|
29
|
+
end
|
30
|
+
|
31
|
+
def get_nome_sacado
|
32
|
+
self.get_section_value(14)
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_endereco
|
36
|
+
self.get_section_value(15)
|
37
|
+
end
|
38
|
+
|
39
|
+
def get_sequencial
|
40
|
+
self.get_section_value(27)
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
#-------------------------------------------------------------------
|
45
|
+
#-------------------------------------------------------------------
|
46
|
+
# Setters
|
47
|
+
def set_agencia valor = ""
|
48
|
+
self.set_section_value(1, valor)
|
49
|
+
end
|
50
|
+
|
51
|
+
def set_zeros_1 valor = "0"
|
52
|
+
self.set_section_value(2, valor)
|
53
|
+
end
|
54
|
+
|
55
|
+
def set_numero_inscricao valor = ""
|
56
|
+
self.set_section_value(2, valor)
|
57
|
+
end
|
58
|
+
|
59
|
+
def set_conta_corrente valor = ""
|
60
|
+
self.set_section_value(3, valor)
|
61
|
+
end
|
62
|
+
|
63
|
+
def set_dv_conta_corrente valor = ""
|
64
|
+
self.set_section_value(4, valor)
|
65
|
+
end
|
66
|
+
|
67
|
+
def set_carteira valor = ""
|
68
|
+
self.set_section_value(5, valor)
|
69
|
+
end
|
70
|
+
|
71
|
+
def set_zeros_2 valor = "0"
|
72
|
+
self.set_section_value(6, valor)
|
73
|
+
end
|
74
|
+
|
75
|
+
def set_nosso_numero valor
|
76
|
+
self.set_section_value(7, valor)
|
77
|
+
end
|
78
|
+
|
79
|
+
def set_zeros_3 valor = "0"
|
80
|
+
self.set_section_value(8, valor)
|
81
|
+
end
|
82
|
+
|
83
|
+
def set_numero_documento valor = ""
|
84
|
+
self.set_section_value(9, valor)
|
85
|
+
end
|
86
|
+
|
87
|
+
def set_zeros_4 valor = "0"
|
88
|
+
self.set_section_value(10, valor)
|
89
|
+
end
|
90
|
+
|
91
|
+
def set_data_emissao_titulo valor = ""
|
92
|
+
begin
|
93
|
+
valor = Date.strptime(valor, "%d%m%Y") if valor.is_a?(String)
|
94
|
+
real_data = valor.strftime("%d%m%y")
|
95
|
+
|
96
|
+
if real_data.length == 6
|
97
|
+
self.set_section_value(11, real_data)
|
98
|
+
else
|
99
|
+
raise "tamanho de data incorreto"
|
100
|
+
end
|
101
|
+
|
102
|
+
rescue
|
103
|
+
raise "#{get_id}: Data de Geração Inválida
|
104
|
+
Valor: #{valor}"
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def set_zeros_5 valor = "0"
|
109
|
+
self.set_section_value(12, valor)
|
110
|
+
end
|
111
|
+
|
112
|
+
def set_vencimento_titulo valor
|
113
|
+
begin
|
114
|
+
valor = Date.strptime(valor, "%d%m%Y") if valor.is_a?(String)
|
115
|
+
real_data = valor.strftime("%d%m%y")
|
116
|
+
|
117
|
+
if real_data.length == 6
|
118
|
+
self.set_section_value(13, real_data)
|
119
|
+
else
|
120
|
+
raise "tamanho de data incorreto"
|
121
|
+
end
|
122
|
+
|
123
|
+
rescue
|
124
|
+
raise "#{get_id}: Data de Geração Inválida
|
125
|
+
Valor: #{valor}"
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
def set_nome_sacado valor = ""
|
130
|
+
self.set_section_value(14, valor)
|
131
|
+
end
|
132
|
+
|
133
|
+
def set_endereco valor = ""
|
134
|
+
self.set_section_value(15, valor)
|
135
|
+
end
|
136
|
+
|
137
|
+
def set_numero valor = ""
|
138
|
+
self.set_section_value(16, valor)
|
139
|
+
end
|
140
|
+
|
141
|
+
def set_complemento valor = ""
|
142
|
+
self.set_section_value(17, valor)
|
143
|
+
end
|
144
|
+
|
145
|
+
def set_bairro valor = ""
|
146
|
+
self.set_section_value(18, valor)
|
147
|
+
end
|
148
|
+
|
149
|
+
def set_cidade valor = ""
|
150
|
+
self.set_section_value(19, valor)
|
151
|
+
end
|
152
|
+
|
153
|
+
def set_estado valor = ""
|
154
|
+
self.set_section_value(20, valor)
|
155
|
+
end
|
156
|
+
|
157
|
+
def set_cep valor = ""
|
158
|
+
self.set_section_value(21, valor)
|
159
|
+
end
|
160
|
+
|
161
|
+
def set_valor_titulo valor = ""
|
162
|
+
self.set_section_value(22, valor)
|
163
|
+
end
|
164
|
+
|
165
|
+
def set_codigo_barras valor = ""
|
166
|
+
self.set_section_value(23, valor)
|
167
|
+
end
|
168
|
+
|
169
|
+
def set_zeros_6 valor = "0"
|
170
|
+
self.set_section_value(24, valor)
|
171
|
+
end
|
172
|
+
|
173
|
+
def set_linha_digitavel valor = ""
|
174
|
+
self.set_section_value(25, valor)
|
175
|
+
end
|
176
|
+
|
177
|
+
def set_branco valor = " "
|
178
|
+
self.set_section_value(26, valor)
|
179
|
+
end
|
180
|
+
|
181
|
+
def set_sequencial valor = ""
|
182
|
+
self.set_section_value(27, valor)
|
183
|
+
end
|
184
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
module VAldeias
|
2
|
+
require_relative 'header_commons'
|
3
|
+
|
4
|
+
module Remessa
|
5
|
+
class Header < FormatSection
|
6
|
+
include VAldeiasHeaderCommons
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@section = Section.new({
|
10
|
+
0 => Position.new(1, 1, false, "0", true), # Código do Registro
|
11
|
+
1 => Position.new(2, 1, false, "1"), # Código Arquivo (1-Remessa, 2-Retorno)
|
12
|
+
2 => Position.new(3, 7, false, "REMESSA"), # Identificação literal do arquivo (REMESSA/RETORNO)
|
13
|
+
3 => Position.new(4, 2, false, "01"), # Código do serviço
|
14
|
+
4 => Position.new(5, 15, false, "COBRANCA"), # Literal do serviço (COBRANÇA)
|
15
|
+
5 => Position.new(6, 20, true), # Código da Empresa
|
16
|
+
6 => Position.new(7, 30, false), # Nome da Empresa
|
17
|
+
7 => Position.new(8, 3, true), # Número do Banco (BRADESCO: 237)
|
18
|
+
8 => Position.new(9, 15, false), # Nome do Banco
|
19
|
+
9 => Position.new(10, 6, false), # Data de gravacao do arquivo (DDMMAA)
|
20
|
+
10 => Position.new(11, 8, false), # Reservado pelo Sistema - branco
|
21
|
+
11 => Position.new(12, 9, false), # Identificacao do sistema
|
22
|
+
12 => Position.new(13, 276, false), # Reservado pelo Sistema - branco
|
23
|
+
13 => Position.new(14, 6, false, "000001") # Numero sequencial no arquivo
|
24
|
+
})
|
25
|
+
end
|
26
|
+
|
27
|
+
def set_values params
|
28
|
+
set_codigo_empresa params[:codigo]
|
29
|
+
set_nome_empresa params[:nome_empresa]
|
30
|
+
set_numero_banco params[:numero_banco]
|
31
|
+
set_nome_banco params[:nome_banco]
|
32
|
+
set_data_gravacao Date.today
|
33
|
+
set_reservado_1
|
34
|
+
set_identificacao_sistema params[:identificacao_empresa]
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
module Retorno
|
40
|
+
class Header < FormatSection
|
41
|
+
include VAldeiasHeaderCommons
|
42
|
+
|
43
|
+
def initialize
|
44
|
+
@section = Section.new({
|
45
|
+
0 => Position.new(1, 1, false, "0", true), # Código do Registro
|
46
|
+
1 => Position.new(2, 1, false, "2"), # Código Arquivo (1-Remessa, 2-Retorno)
|
47
|
+
2 => Position.new(3, 7, false, "RETORNO"), # Identificação literal do arquivo (REMESSA/RETORNO)
|
48
|
+
3 => Position.new(4, 2, false, "01"), # Código do serviço
|
49
|
+
4 => Position.new(5, 15, false, "COBRANCA"), # Literal do serviço (COBRANÇA)
|
50
|
+
5 => Position.new(6, 20, true), # Código da Empresa
|
51
|
+
6 => Position.new(7, 30, false), # Nome da Empresa
|
52
|
+
7 => Position.new(8, 3, true), # Número do Banco (BRADESCO: 237)
|
53
|
+
8 => Position.new(9, 15, false), # Nome do Banco
|
54
|
+
9 => Position.new(10, 6, false), # Data de gravacao do arquivo (DDMMAA)
|
55
|
+
10 => Position.new(11, 8, false), # Densidade da gravacao do arquivo
|
56
|
+
11 => Position.new(12, 5, false), # Numero do aviso bancario
|
57
|
+
12 => Position.new(13, 266, false), # Reservado pelo Sistema - branco
|
58
|
+
13 => Position.new(14, 6, false), # Data do crédito (DDMMAA)
|
59
|
+
14 => Position.new(15, 9, false), # Reservado pelo Sistema - branco
|
60
|
+
15 => Position.new(16, 6, false) # Numero sequencial no arquivo
|
61
|
+
})
|
62
|
+
end
|
63
|
+
|
64
|
+
def process_section file
|
65
|
+
self.set_codigo_arquivo file[1..1]
|
66
|
+
self.set_literal_arquivo file[2..8]
|
67
|
+
self.set_codigo_servico file[9..10]
|
68
|
+
self.set_literal_servico file[11..25]
|
69
|
+
self.set_codigo_empresa file[26..45]
|
70
|
+
self.set_nome_empresa file[46..75]
|
71
|
+
self.set_numero_banco file[76..78]
|
72
|
+
self.set_nome_banco file[79..93]
|
73
|
+
self.set_data_gravacao file[94..99]
|
74
|
+
self.set_densidade_arquivo file[100..107]
|
75
|
+
self.set_numero_aviso file[108..112]
|
76
|
+
self.set_brancos_1 file[113..378]
|
77
|
+
self.set_data_credito file[379..384]
|
78
|
+
self.set_brancos_2 file[385..393]
|
79
|
+
self.set_sequencial_retorno file[394..399]
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,170 @@
|
|
1
|
+
module VAldeiasHeaderCommons
|
2
|
+
|
3
|
+
#-------------------------------------------------------------------
|
4
|
+
#-------------------------------------------------------------------
|
5
|
+
# Validações
|
6
|
+
def is_valid?
|
7
|
+
self.get_codigo_arquivo > 0 and
|
8
|
+
self.get_data_gravacao.length > 0 and
|
9
|
+
self.get_nome_empresa.length > 0 and
|
10
|
+
self.get_identificacao_sistema.length > 0 and
|
11
|
+
self.get_nome_banco.length > 0
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
#-------------------------------------------------------------------
|
16
|
+
#-------------------------------------------------------------------
|
17
|
+
# Getters
|
18
|
+
def get_codigo_arquivo
|
19
|
+
self.get_section_value(1).to_i
|
20
|
+
end
|
21
|
+
|
22
|
+
def get_identificacao_arquivo
|
23
|
+
self.get_section_value(2)
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_codigo_servico
|
27
|
+
self.get_section_value(3)
|
28
|
+
end
|
29
|
+
|
30
|
+
def get_literal_servico
|
31
|
+
self.get_section_value(4)
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_codigo_empresa
|
35
|
+
self.get_section_value(5)
|
36
|
+
end
|
37
|
+
|
38
|
+
def get_nome_empresa
|
39
|
+
self.get_section_value(6)
|
40
|
+
end
|
41
|
+
|
42
|
+
def get_numero_banco
|
43
|
+
self.get_section_value(7)
|
44
|
+
end
|
45
|
+
|
46
|
+
def get_nome_banco
|
47
|
+
self.get_section_value(8)
|
48
|
+
end
|
49
|
+
|
50
|
+
def get_data_gravacao
|
51
|
+
self.get_section_value(9)
|
52
|
+
end
|
53
|
+
|
54
|
+
def get_identificacao_sistema
|
55
|
+
self.get_section_value(11)
|
56
|
+
end
|
57
|
+
|
58
|
+
def get_sequencial_remessa
|
59
|
+
self.get_section_value(12)
|
60
|
+
end
|
61
|
+
|
62
|
+
def get_sequencial
|
63
|
+
self.get_section_value(14)
|
64
|
+
end
|
65
|
+
|
66
|
+
#-------------------------------------------------------------------
|
67
|
+
#-------------------------------------------------------------------
|
68
|
+
# Setters
|
69
|
+
def set_codigo_arquivo valor = ""
|
70
|
+
self.set_section_value(1, valor)
|
71
|
+
end
|
72
|
+
|
73
|
+
def set_identificacao_arquivo valor = ""
|
74
|
+
self.set_section_value(2, valor)
|
75
|
+
end
|
76
|
+
|
77
|
+
def set_codigo_servico valor = ""
|
78
|
+
self.set_section_value(3, valor)
|
79
|
+
end
|
80
|
+
|
81
|
+
def set_literal_servico valor = ""
|
82
|
+
self.set_section_value(4, valor)
|
83
|
+
end
|
84
|
+
|
85
|
+
def set_codigo_empresa valor = ""
|
86
|
+
self.set_section_value(5, valor)
|
87
|
+
end
|
88
|
+
|
89
|
+
def set_nome_empresa valor = ""
|
90
|
+
self.set_section_value(6, valor)
|
91
|
+
end
|
92
|
+
|
93
|
+
def set_numero_banco valor = ""
|
94
|
+
self.set_section_value(7, valor)
|
95
|
+
end
|
96
|
+
|
97
|
+
def set_nome_banco valor = ""
|
98
|
+
self.set_section_value(8, valor)
|
99
|
+
end
|
100
|
+
|
101
|
+
def set_data_gravacao valor = ""
|
102
|
+
begin
|
103
|
+
valor = Date.strptime(valor, "%d%m%Y") if valor.is_a?(String)
|
104
|
+
real_data = valor.strftime("%d%m%y")
|
105
|
+
|
106
|
+
if real_data.length == 6
|
107
|
+
self.set_section_value(9, real_data)
|
108
|
+
else
|
109
|
+
raise "tamanho de data incorreto"
|
110
|
+
end
|
111
|
+
|
112
|
+
rescue
|
113
|
+
raise "#{get_id}: Data de Geração Inválida
|
114
|
+
Valor: #{valor}"
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
def set_reservado_1 valor = " "
|
119
|
+
self.set_section_value(10, valor)
|
120
|
+
end
|
121
|
+
|
122
|
+
def set_densidade_arquivo valor = " "
|
123
|
+
self.set_section_value(10, valor)
|
124
|
+
end
|
125
|
+
|
126
|
+
def set_identificacao_sistema valor = ""
|
127
|
+
self.set_section_value(11, valor)
|
128
|
+
end
|
129
|
+
|
130
|
+
def set_numero_aviso valor = ""
|
131
|
+
self.set_section_value(11, valor)
|
132
|
+
end
|
133
|
+
|
134
|
+
def set_brancos_1 valor = " "
|
135
|
+
self.set_section_value(12, valor)
|
136
|
+
end
|
137
|
+
|
138
|
+
def set_reservado_2 valor = " "
|
139
|
+
self.set_section_value(12, valor)
|
140
|
+
end
|
141
|
+
|
142
|
+
def set_data_credito 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(13, 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_sequencial valor = ""
|
160
|
+
self.set_section_value(13, valor)
|
161
|
+
end
|
162
|
+
|
163
|
+
def set_brancos_2 valor = " "
|
164
|
+
self.set_section_value(14, valor)
|
165
|
+
end
|
166
|
+
|
167
|
+
def set_sequencial_retorno valor = ""
|
168
|
+
self.set_section_value(15, valor)
|
169
|
+
end
|
170
|
+
end
|