teodoro 0.44.0 → 0.46.0
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/teodoro/arquivo_data.rb +10 -7
- data/lib/teodoro/arquivo_de_evento.rb +4 -0
- data/lib/teodoro/arquivo_de_evento_nao_periodico.rb +6 -6
- data/lib/teodoro/arquivo_de_origem.rb +3 -3
- data/lib/teodoro/arquivo_xml.rb +13 -0
- data/lib/teodoro/empresa/arquivo_de_dados_gerais.rb +55 -0
- data/lib/teodoro/empresa/contratos_de_emprego.rb +1 -1
- data/lib/teodoro/empresa/contratos_de_trabalho_sem_vinculo.rb +9 -5
- data/lib/teodoro/empresa.rb +21 -5
- data/lib/teodoro/leiaute/arquivo_s1000.rb +1 -1
- data/lib/teodoro/leiaute/arquivo_s1010.rb +9 -7
- data/lib/teodoro/leiaute/arquivo_s1298.rb +17 -0
- data/lib/teodoro/leiaute/arquivo_s1299.rb +17 -0
- data/lib/teodoro/leiaute/arquivo_s2200.rb +20 -7
- data/lib/teodoro/leiaute/arquivo_s2205.rb +12 -10
- data/lib/teodoro/leiaute/arquivo_s2206.rb +6 -1
- data/lib/teodoro/leiaute/arquivo_s2210.rb +75 -0
- data/lib/teodoro/leiaute/arquivo_s2220.rb +51 -0
- data/lib/teodoro/leiaute/arquivo_s2230.rb +4 -3
- data/lib/teodoro/leiaute/arquivo_s2240.rb +75 -0
- data/lib/teodoro/leiaute/arquivo_s2299.rb +1 -1
- data/lib/teodoro/leiaute/arquivo_s2300.rb +11 -6
- data/lib/teodoro/leiaute/arquivo_s2306.rb +14 -3
- data/lib/teodoro/leiaute/arquivo_s2399.rb +14 -3
- data/lib/teodoro/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76c8918c7124a971c158c41b7c1d0de13c09b2f155fa2b7fc42be79a7807c805
|
4
|
+
data.tar.gz: 3e47d002a6482058c13c2e6a360edfa0f30aeacc3b0798a50de857ae15ec26ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47150df11fb3df6d7d2254a6cca993ff71bfaf12308fad4c98890ae8b9bd14682a4eb192b14538aee96dbc077718256fcec9edac9ba85a8708983e06c02504cb
|
7
|
+
data.tar.gz: 89b1f8e0712f195334b5fb4f074fc3b1bfc566098d59f524c26c7c0afb1c5f3ccc7168264eb43192bbc241fb83f8b37c77a2bf355b2332334549440ce79b21cb
|
data/lib/teodoro/arquivo_data.rb
CHANGED
@@ -21,8 +21,8 @@ module Teodoro
|
|
21
21
|
def criar
|
22
22
|
raise 'evento duplicado' if File.exist?(caminho)
|
23
23
|
|
24
|
-
File.open(caminho, 'w') do
|
25
|
-
|
24
|
+
File.open(caminho, 'w') do |file|
|
25
|
+
file.puts(conteudo_do_arquivo)
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -33,11 +33,14 @@ module Teodoro
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def conteudo_do_arquivo
|
36
|
-
|
37
|
-
.map {
|
38
|
-
.
|
39
|
-
.
|
40
|
-
|
36
|
+
itens_de_conteudo_ajustados
|
37
|
+
.map { |chave, valor, formato, opcoes| [chave, Valor.new(valor, formato: formato), opcoes] }
|
38
|
+
.reject { |_chave, valor, opcoes| valor.vazio? && !opcoes[:manter_se_vazio] }
|
39
|
+
.map { |chave, valor| "#{chave}=#{valor}" }
|
40
|
+
end
|
41
|
+
|
42
|
+
def itens_de_conteudo_ajustados
|
43
|
+
itens_do_conteudo.map { [_1[0], _1[1], _1.size == 1 ? :vazio : _1[2], _1[3] || {}] }
|
41
44
|
end
|
42
45
|
|
43
46
|
class Caminho
|
@@ -37,6 +37,10 @@ module Teodoro
|
|
37
37
|
@tipo_de_inscricao_do_empregador ||= evento['ideEmpregador/tpInsc']
|
38
38
|
end
|
39
39
|
|
40
|
+
def numero_de_inscricao_do_empregador
|
41
|
+
@numero_de_inscricao_do_empregador ||= evento['ideEmpregador/nrInsc']
|
42
|
+
end
|
43
|
+
|
40
44
|
def numero_do_recibo
|
41
45
|
@numero_do_recibo ||= recibo['recibo/nrRecibo']
|
42
46
|
end
|
@@ -30,9 +30,9 @@ module Teodoro
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def registrar_arquivos_data
|
33
|
-
arquivos_data.each do
|
33
|
+
arquivos_data.each do |arquivo_data|
|
34
34
|
empresa.arquivos_data.registrar(
|
35
|
-
nome:
|
35
|
+
nome: arquivo_data.nome,
|
36
36
|
recibo: numero_do_recibo
|
37
37
|
)
|
38
38
|
end
|
@@ -43,13 +43,13 @@ module Teodoro
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def arquivos_data
|
46
|
-
@arquivos_data ||= dados_dos_arquivos_data.map
|
46
|
+
@arquivos_data ||= dados_dos_arquivos_data.map do |dados_do_arquivo_data|
|
47
47
|
ArquivoData.new(
|
48
48
|
diretorio: empresa.destino_dos_arquivos_data,
|
49
|
-
nome:
|
50
|
-
itens_do_conteudo:
|
49
|
+
nome: dados_do_arquivo_data.nome,
|
50
|
+
itens_do_conteudo: dados_do_arquivo_data.itens_do_conteudo
|
51
51
|
)
|
52
|
-
|
52
|
+
end
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
@@ -28,9 +28,9 @@ module Teodoro
|
|
28
28
|
private
|
29
29
|
|
30
30
|
def extrair(entrada)
|
31
|
-
File
|
32
|
-
|
33
|
-
|
31
|
+
File
|
32
|
+
.join(destino_dos_arquivos_xml, entrada.name)
|
33
|
+
.then { entrada.extract(_1) unless File.exist?(_1) }
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
data/lib/teodoro/arquivo_xml.rb
CHANGED
@@ -11,11 +11,16 @@ require_relative 'leiaute/arquivo_s1030'
|
|
11
11
|
require_relative 'leiaute/arquivo_s1040'
|
12
12
|
require_relative 'leiaute/arquivo_s1050'
|
13
13
|
require_relative 'leiaute/arquivo_s1070'
|
14
|
+
require_relative 'leiaute/arquivo_s1298'
|
15
|
+
require_relative 'leiaute/arquivo_s1299'
|
14
16
|
require_relative 'leiaute/arquivo_s2190'
|
15
17
|
require_relative 'leiaute/arquivo_s2200'
|
16
18
|
require_relative 'leiaute/arquivo_s2205'
|
17
19
|
require_relative 'leiaute/arquivo_s2206'
|
20
|
+
require_relative 'leiaute/arquivo_s2210'
|
21
|
+
require_relative 'leiaute/arquivo_s2220'
|
18
22
|
require_relative 'leiaute/arquivo_s2230'
|
23
|
+
require_relative 'leiaute/arquivo_s2240'
|
19
24
|
require_relative 'leiaute/arquivo_s2250'
|
20
25
|
require_relative 'leiaute/arquivo_s2299'
|
21
26
|
require_relative 'leiaute/arquivo_s2300'
|
@@ -36,11 +41,16 @@ module Teodoro
|
|
36
41
|
S1040
|
37
42
|
S1050
|
38
43
|
S1070
|
44
|
+
S1298
|
45
|
+
S1299
|
39
46
|
S2190
|
40
47
|
S2200
|
41
48
|
S2205
|
42
49
|
S2206
|
50
|
+
S2210
|
51
|
+
S2220
|
43
52
|
S2230
|
53
|
+
S2240
|
44
54
|
S2250
|
45
55
|
S2299
|
46
56
|
S2300
|
@@ -54,7 +64,10 @@ module Teodoro
|
|
54
64
|
S2200
|
55
65
|
S2205
|
56
66
|
S2206
|
67
|
+
S2210
|
68
|
+
S2220
|
57
69
|
S2230
|
70
|
+
S2240
|
58
71
|
S2250
|
59
72
|
S2299
|
60
73
|
S2300
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Teodoro
|
2
|
+
class Empresa
|
3
|
+
class ArquivoDeDadosGerais
|
4
|
+
def initialize(empresa:, destino:)
|
5
|
+
@empresa = empresa
|
6
|
+
@destino = destino
|
7
|
+
end
|
8
|
+
|
9
|
+
attr_reader :empresa, :destino
|
10
|
+
|
11
|
+
def gerar # rubocop:disable Metrics/MethodLength
|
12
|
+
ArquivoData.new(
|
13
|
+
diretorio: destino,
|
14
|
+
nome: 'DADOS_GERAIS',
|
15
|
+
itens_do_conteudo: [
|
16
|
+
[
|
17
|
+
'ULTIMA_COMPETENCIA_FECHADA',
|
18
|
+
ultima_competencia_fechada,
|
19
|
+
:mes_ano,
|
20
|
+
{ manter_se_vazio: true }
|
21
|
+
],
|
22
|
+
[
|
23
|
+
'ULTIMA_COMPETENCIA_FECHADA_DECIMO_TERCEIRO',
|
24
|
+
ultima_competencia_fechada_decimo_terceiro,
|
25
|
+
nil,
|
26
|
+
{ manter_se_vazio: true }
|
27
|
+
]
|
28
|
+
]
|
29
|
+
).criar
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def ultima_competencia_fechada
|
35
|
+
meses_anos.max
|
36
|
+
end
|
37
|
+
|
38
|
+
def meses_anos
|
39
|
+
competencias_encerradas.grep(/^\d{4}-\d{2}$/)
|
40
|
+
end
|
41
|
+
|
42
|
+
def competencias_encerradas
|
43
|
+
empresa.competencias_encerradas
|
44
|
+
end
|
45
|
+
|
46
|
+
def ultima_competencia_fechada_decimo_terceiro
|
47
|
+
anos.max
|
48
|
+
end
|
49
|
+
|
50
|
+
def anos
|
51
|
+
competencias_encerradas.grep(/^\d{4}$/)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -16,12 +16,15 @@ module Teodoro
|
|
16
16
|
trabalhadores << inicio_de_contrato.trabalhador
|
17
17
|
end
|
18
18
|
|
19
|
-
def [](cpf_do_trabalhador:, categoria_do_trabalhador:, data:)
|
19
|
+
def [](cpf_do_trabalhador:, matricula_do_trabalhador:, categoria_do_trabalhador:, data:)
|
20
|
+
return contratos.find { _1.matricula_do_trabalhador == matricula_do_trabalhador } if matricula_do_trabalhador
|
21
|
+
|
20
22
|
contratos
|
21
|
-
.select
|
22
|
-
|
23
|
-
|
24
|
-
|
23
|
+
.select do |contrato|
|
24
|
+
contrato.trabalhador.cpf == cpf_do_trabalhador &&
|
25
|
+
contrato.categoria_do_trabalhador == categoria_do_trabalhador &&
|
26
|
+
contrato.ativo?(data)
|
27
|
+
end
|
25
28
|
.max_by(&:data_de_inicio)
|
26
29
|
end
|
27
30
|
|
@@ -57,6 +60,7 @@ module Teodoro
|
|
57
60
|
|
58
61
|
def_delegators :inicio_de_contrato,
|
59
62
|
:trabalhador,
|
63
|
+
:matricula_do_trabalhador,
|
60
64
|
:categoria_do_trabalhador,
|
61
65
|
:data_de_inicio,
|
62
66
|
:recibo
|
data/lib/teodoro/empresa.rb
CHANGED
@@ -3,6 +3,7 @@ require_relative 'arquivo_xml'
|
|
3
3
|
require_relative 'empresa/arquivos_data'
|
4
4
|
require_relative 'empresa/arquivo_data_emp'
|
5
5
|
require_relative 'empresa/arquivo_data_rub'
|
6
|
+
require_relative 'empresa/arquivo_de_dados_gerais'
|
6
7
|
require_relative 'empresa/cargos_gerados'
|
7
8
|
require_relative 'empresa/contratos_de_emprego'
|
8
9
|
require_relative 'empresa/contratos_de_trabalho_sem_vinculo'
|
@@ -49,6 +50,7 @@ module Teodoro
|
|
49
50
|
classificar_arquivos_xml
|
50
51
|
ordenar_arquivos_xml
|
51
52
|
processar_arquivos_xml
|
53
|
+
gerar_arquivo_de_dados_gerais
|
52
54
|
processar_cargos_gerados
|
53
55
|
processar_funcoes_geradas
|
54
56
|
setar_proximo_identificador_de_tabela_de_rubricas_nos_arquivos_data_emp
|
@@ -63,6 +65,10 @@ module Teodoro
|
|
63
65
|
@arquivos_data ||= ArquivosData.new(destino_dos_arquivos_data)
|
64
66
|
end
|
65
67
|
|
68
|
+
def competencias_encerradas
|
69
|
+
@competencias_encerradas ||= []
|
70
|
+
end
|
71
|
+
|
66
72
|
def trabalhadores
|
67
73
|
@trabalhadores ||= Trabalhadores.new
|
68
74
|
end
|
@@ -159,6 +165,14 @@ module Teodoro
|
|
159
165
|
arquivos_xml.shift.processar while arquivos_xml.any?
|
160
166
|
end
|
161
167
|
|
168
|
+
def gerar_arquivo_de_dados_gerais
|
169
|
+
arquivo_de_dados_gerais.gerar
|
170
|
+
end
|
171
|
+
|
172
|
+
def arquivo_de_dados_gerais
|
173
|
+
ArquivoDeDadosGerais.new(empresa: self, destino: destino_dos_arquivos_data)
|
174
|
+
end
|
175
|
+
|
162
176
|
def processar_cargos_gerados
|
163
177
|
cargos_gerados.each(&:processar)
|
164
178
|
end
|
@@ -173,10 +187,12 @@ module Teodoro
|
|
173
187
|
|
174
188
|
def arquivos_data_emp
|
175
189
|
Dir[File.join(destino_dos_arquivos_data, 'EMP*.data')]
|
176
|
-
.map
|
177
|
-
|
178
|
-
|
179
|
-
|
190
|
+
.map do |caminho|
|
191
|
+
ArquivoDataEMP.new(
|
192
|
+
caminho: caminho,
|
193
|
+
proximo_identificador_de_tabela_de_rubricas: proximo_identificador_de_tabela_de_rubricas
|
194
|
+
)
|
195
|
+
end
|
180
196
|
end
|
181
197
|
|
182
198
|
def proximo_identificador_de_tabela_de_rubricas
|
@@ -208,7 +224,7 @@ module Teodoro
|
|
208
224
|
end
|
209
225
|
|
210
226
|
def caminhos_dos_arquivos_emp_data
|
211
|
-
Dir[File.join(destino_dos_arquivos_data, 'EMP*.data')]
|
227
|
+
Dir[File.join(destino_dos_arquivos_data, 'EMP*.data')].sort
|
212
228
|
end
|
213
229
|
|
214
230
|
def novo_caminho_do_ultimo_arquivo_emp_data
|
@@ -52,13 +52,15 @@ module Teodoro
|
|
52
52
|
[
|
53
53
|
[
|
54
54
|
'DadosRubrica_CodigoIncidenciaIR',
|
55
|
-
evento['infoRubrica/*/dadosRubrica/codIncIRRF'].then
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
55
|
+
evento['infoRubrica/*/dadosRubrica/codIncIRRF'].then do |valor|
|
56
|
+
{
|
57
|
+
'0' => '00',
|
58
|
+
'1' => '01',
|
59
|
+
'9' => '09',
|
60
|
+
'700' => '79',
|
61
|
+
'701' => '79'
|
62
|
+
}[valor] || valor
|
63
|
+
end
|
62
64
|
]
|
63
65
|
]
|
64
66
|
else
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Teodoro
|
2
|
+
module Leiaute
|
3
|
+
class ArquivoS1298
|
4
|
+
include ArquivoDeEvento
|
5
|
+
|
6
|
+
def processar
|
7
|
+
empresa.competencias_encerradas.delete(periodo_de_apuracao)
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def periodo_de_apuracao
|
13
|
+
evento['ideEvento/perApur']
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Teodoro
|
2
|
+
module Leiaute
|
3
|
+
class ArquivoS1299
|
4
|
+
include ArquivoDeEvento
|
5
|
+
|
6
|
+
def processar
|
7
|
+
empresa.competencias_encerradas << periodo_de_apuracao
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def periodo_de_apuracao
|
13
|
+
evento['ideEvento/perApur']
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -128,10 +128,12 @@ module Teodoro
|
|
128
128
|
end
|
129
129
|
|
130
130
|
def afastamento
|
131
|
-
evento['vinculo/afastamento']&.then
|
132
|
-
|
133
|
-
|
134
|
-
|
131
|
+
evento['vinculo/afastamento']&.then do |afastamento|
|
132
|
+
Obj.new(
|
133
|
+
data_de_inicio: afastamento['dtIniAfast'],
|
134
|
+
codigo_do_motivo: afastamento['codMotAfast']
|
135
|
+
)
|
136
|
+
end
|
135
137
|
end
|
136
138
|
|
137
139
|
def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
@@ -274,7 +276,16 @@ module Teodoro
|
|
274
276
|
['EventoAdmissao_InfoVinculo_CodigoMotivoAfastamento', evento['vinculo/afastamento/codMotAfast']],
|
275
277
|
['EventoAdmissao_InfoVinculo_SucessaoVinculo_DataTransferencia', evento['vinculo/sucessaoVinc/dtTransf'], :data],
|
276
278
|
leiaute['EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
|
277
|
-
['EventoAdmissao_InfoVinculo_SucessaoVinculo_MatriculaAnterior', evento['vinculo/sucessaoVinc/matricAnt']]
|
279
|
+
['EventoAdmissao_InfoVinculo_SucessaoVinculo_MatriculaAnterior', evento['vinculo/sucessaoVinc/matricAnt']],
|
280
|
+
*(
|
281
|
+
if leiaute_simplificado?
|
282
|
+
evento.*('vinculo/infoContrato/treiCap').map.with_index(1) do |treinamento_capacitacao, seq|
|
283
|
+
[
|
284
|
+
["treiCap_#{seq}_codTreiCap", treinamento_capacitacao['codTreiCap']]
|
285
|
+
]
|
286
|
+
end.sum([])
|
287
|
+
end
|
288
|
+
)
|
278
289
|
# rubocop:enable Layout/LineLength
|
279
290
|
]
|
280
291
|
)
|
@@ -394,8 +405,10 @@ module Teodoro
|
|
394
405
|
|
395
406
|
def condicao_de_ingresso_no_brasil_do_trabalhador
|
396
407
|
@condicao_de_ingresso_no_brasil_do_trabalhador ||=
|
397
|
-
evento['trabalhador/trabImig']&.then do
|
398
|
-
Teodoro::LeiauteSimplificado::TrabalhadorImigrante
|
408
|
+
evento['trabalhador/trabImig']&.then do |imigrante|
|
409
|
+
Teodoro::LeiauteSimplificado::TrabalhadorImigrante
|
410
|
+
.new(imigrante)
|
411
|
+
.condicao_de_ingresso_no_brasil_no_leiaute2
|
399
412
|
end
|
400
413
|
end
|
401
414
|
|
@@ -24,14 +24,16 @@ module Teodoro
|
|
24
24
|
pais_de_nacionalidade: pais_de_nacionalidade_do_trabalhador,
|
25
25
|
nascimento: Obj.new(
|
26
26
|
if leiaute_simplificado?
|
27
|
-
empresa.trabalhadores[cpf_do_trabalhador].nascimento.then
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
27
|
+
empresa.trabalhadores[cpf_do_trabalhador].nascimento.then do |nascimento|
|
28
|
+
{
|
29
|
+
data: nascimento.data,
|
30
|
+
pais: nascimento.pais,
|
31
|
+
codigo_do_municipio: nascimento.codigo_do_municipio,
|
32
|
+
uf: nascimento.uf,
|
33
|
+
nome_da_mae: nascimento.nome_da_mae,
|
34
|
+
nome_do_pai: nascimento.nome_do_pai
|
35
|
+
}
|
36
|
+
end
|
35
37
|
else
|
36
38
|
{
|
37
39
|
data: evento['alteracao/dadosTrabalhador/nascimento/dtNascto'],
|
@@ -121,8 +123,8 @@ module Teodoro
|
|
121
123
|
def leiaute
|
122
124
|
@leiaute ||= Obj.new(
|
123
125
|
condicao_de_ingresso_no_brasil: if leiaute_simplificado?
|
124
|
-
evento['alteracao/dadosTrabalhador/trabImig']&.then do
|
125
|
-
LeiauteSimplificado::TrabalhadorImigrante.new(
|
126
|
+
evento['alteracao/dadosTrabalhador/trabImig']&.then do |imigrante|
|
127
|
+
LeiauteSimplificado::TrabalhadorImigrante.new(imigrante)
|
126
128
|
.condicao_de_ingresso_no_brasil_no_leiaute2
|
127
129
|
end
|
128
130
|
else
|
@@ -192,7 +192,12 @@ module Teodoro
|
|
192
192
|
['InformacoesContrato_HorarioContratual_DescricaoTipoJornada', evento['altContratual/vinculo/infoContrato/horContratual/dscJorn']],
|
193
193
|
['InformacoesContrato_CodigoCargo', codigo_do_cargo],
|
194
194
|
['InformacoesContrato_CodigoFuncao', codigo_da_funcao],
|
195
|
-
['InformacoesContrato_DataTermino', evento['altContratual/vinculo/infoContrato/duracao/dtTerm'], :data]
|
195
|
+
['InformacoesContrato_DataTermino', evento['altContratual/vinculo/infoContrato/duracao/dtTerm'], :data],
|
196
|
+
*evento.*('altContratual/vinculo/infoContrato/treiCap').map.with_index(1) do |treinamento_capacitacao, seq|
|
197
|
+
[
|
198
|
+
["treiCap_#{seq}_codTreiCap", treinamento_capacitacao['codTreiCap']]
|
199
|
+
]
|
200
|
+
end.sum([])
|
196
201
|
# rubocop:enable Layout/LineLength
|
197
202
|
]
|
198
203
|
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module Teodoro
|
2
|
+
module Leiaute
|
3
|
+
class ArquivoS2210
|
4
|
+
include ArquivoDeEventoNaoPeriodico
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
def dados_dos_arquivos_data
|
9
|
+
[
|
10
|
+
Obj.new(
|
11
|
+
nome: "CAT_#{numero_do_recibo}",
|
12
|
+
itens_do_conteudo: itens_do_conteudo
|
13
|
+
)
|
14
|
+
]
|
15
|
+
end
|
16
|
+
|
17
|
+
def itens_do_conteudo # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
18
|
+
[
|
19
|
+
['Id', id_do_evento],
|
20
|
+
['procEmi', processo_de_emissao_do_evento],
|
21
|
+
['verProc', versao_do_processo_de_emissao_do_evento],
|
22
|
+
['ideEmpregador/tpInsc', tipo_de_inscricao_do_empregador],
|
23
|
+
['ideEmpregador/nrInsc', numero_de_inscricao_do_empregador],
|
24
|
+
['cpfTrab', evento['ideVinculo/cpfTrab']],
|
25
|
+
['matricula', evento['ideVinculo/matricula']],
|
26
|
+
['codCateg', evento['ideVinculo/codCateg']],
|
27
|
+
['dtAcid', evento['cat/dtAcid']],
|
28
|
+
['tpAcid', evento['cat/tpAcid']],
|
29
|
+
['hrAcid', evento['cat/hrAcid']],
|
30
|
+
['hrsTrabAntesAcid', evento['cat/hrsTrabAntesAcid']],
|
31
|
+
['tpCat', evento['cat/tpCat']],
|
32
|
+
['indCatObito', evento['cat/indCatObito']],
|
33
|
+
['dtObito', evento['cat/dtObito']],
|
34
|
+
['indComunPolicia', evento['cat/indComunPolicia']],
|
35
|
+
['codSitGeradora', evento['cat/codSitGeradora']],
|
36
|
+
['iniciatCAT', evento['cat/iniciatCAT']],
|
37
|
+
['obsCAT', evento['cat/obsCAT']],
|
38
|
+
['tpLocal', evento['cat/localAcidente/tpLocal']],
|
39
|
+
['dscLocal', evento['cat/localAcidente/dscLocal']],
|
40
|
+
['tpLograd', evento['cat/localAcidente/tpLograd']],
|
41
|
+
['dscLograd', evento['cat/localAcidente/dscLograd']],
|
42
|
+
['nrLograd', evento['cat/localAcidente/nrLograd']],
|
43
|
+
['complemento', evento['cat/localAcidente/complemento']],
|
44
|
+
['bairro', evento['cat/localAcidente/bairro']],
|
45
|
+
['cep', evento['cat/localAcidente/cep']],
|
46
|
+
['codMunic', evento['cat/localAcidente/codMunic']],
|
47
|
+
['uf', evento['cat/localAcidente/uf']],
|
48
|
+
['pais', evento['cat/localAcidente/pais']],
|
49
|
+
['codPostal', evento['cat/localAcidente/codPostal']],
|
50
|
+
['ideLocalAcid/tpInsc', evento['cat/localAcidente/ideLocalAcid/tpInsc']],
|
51
|
+
['ideLocalAcid/nrInsc', evento['cat/localAcidente/ideLocalAcid/nrInsc']],
|
52
|
+
['codParteAting', evento['cat/parteAtingida/codParteAting']],
|
53
|
+
['lateralidade', evento['cat/parteAtingida/lateralidade']],
|
54
|
+
['codAgntCausador', evento['cat/agenteCausador/codAgntCausador']],
|
55
|
+
['dtAtendimento', evento['cat/atestado/dtAtendimento']],
|
56
|
+
['hrAtendimento', evento['cat/atestado/hrAtendimento']],
|
57
|
+
['indInternacao', evento['cat/atestado/indInternacao']],
|
58
|
+
['durTrat', evento['cat/atestado/durTrat']],
|
59
|
+
['indAfast', evento['cat/atestado/indAfast']],
|
60
|
+
['dscLesao', evento['cat/atestado/dscLesao']],
|
61
|
+
['dscCompLesao', evento['cat/atestado/dscCompLesao']],
|
62
|
+
['diagProvavel', evento['cat/atestado/diagProvavel']],
|
63
|
+
['codCID', evento['cat/atestado/codCID']],
|
64
|
+
['observacao', evento['cat/atestado/observacao']],
|
65
|
+
['nmEmit', evento['cat/atestado/emitente/nmEmit']],
|
66
|
+
['ideOC', evento['cat/atestado/emitente/ideOC']],
|
67
|
+
['nrOC', evento['cat/atestado/emitente/nrOC']],
|
68
|
+
['ufOC', evento['cat/atestado/emitente/ufOC']],
|
69
|
+
['nrRecCatOrig', evento['cat/catOrigem/nrRecCatOrig']],
|
70
|
+
['nrRecibo', numero_do_recibo]
|
71
|
+
]
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Teodoro
|
2
|
+
module Leiaute
|
3
|
+
class ArquivoS2220
|
4
|
+
include ArquivoDeEventoNaoPeriodico
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
def dados_dos_arquivos_data
|
9
|
+
[
|
10
|
+
Obj.new(
|
11
|
+
nome: "ASO_#{numero_do_recibo}",
|
12
|
+
itens_do_conteudo: itens_do_conteudo
|
13
|
+
)
|
14
|
+
]
|
15
|
+
end
|
16
|
+
|
17
|
+
def itens_do_conteudo # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
18
|
+
[
|
19
|
+
['Id', id_do_evento],
|
20
|
+
['procEmi', processo_de_emissao_do_evento],
|
21
|
+
['verProc', versao_do_processo_de_emissao_do_evento],
|
22
|
+
['ideEmpregador/tpInsc', tipo_de_inscricao_do_empregador],
|
23
|
+
['ideEmpregador/nrInsc', numero_de_inscricao_do_empregador],
|
24
|
+
['cpfTrab', evento['ideVinculo/cpfTrab']],
|
25
|
+
['matricula', evento['ideVinculo/matricula']],
|
26
|
+
['codCateg', evento['ideVinculo/codCateg']],
|
27
|
+
['tpExameOcup', evento['exMedOcup/tpExameOcup']],
|
28
|
+
['dtAso', evento['exMedOcup/aso/dtAso']],
|
29
|
+
['resAso', evento['exMedOcup/aso/resAso']],
|
30
|
+
*evento.*('exMedOcup/aso/exame').map.with_index(1) do |exame, seq|
|
31
|
+
[
|
32
|
+
["exame_#{seq}_dtExm", exame['dtExm']],
|
33
|
+
["exame_#{seq}_procRealizado", exame['procRealizado']],
|
34
|
+
["exame_#{seq}_obsProc", exame['obsProc']],
|
35
|
+
["exame_#{seq}_ordExame", exame['ordExame']],
|
36
|
+
["exame_#{seq}_indResult", exame['indResult']]
|
37
|
+
]
|
38
|
+
end.sum([]),
|
39
|
+
['medico/nmMed', evento['exMedOcup/aso/medico/nmMed']],
|
40
|
+
['medico/nrCRM', evento['exMedOcup/aso/medico/nrCRM']],
|
41
|
+
['medico/ufCRM', evento['exMedOcup/aso/medico/ufCRM']],
|
42
|
+
['respMonit/cpfResp', evento['exMedOcup/respMonit/cpfResp']],
|
43
|
+
['respMonit/nmResp', evento['exMedOcup/respMonit/nmResp']],
|
44
|
+
['respMonit/nrCRM', evento['exMedOcup/respMonit/nrCRM']],
|
45
|
+
['respMonit/ufCRM', evento['exMedOcup/respMonit/ufCRM']],
|
46
|
+
['nrRecibo', numero_do_recibo]
|
47
|
+
]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -43,10 +43,10 @@ module Teodoro
|
|
43
43
|
if inicio_do_afastamento?
|
44
44
|
inicio_do_afastamento['dtIniAfast']
|
45
45
|
else
|
46
|
-
contrato_de_trabalho.afastamento.then do
|
47
|
-
raise 'término de afastamento sem início de afastamento' unless
|
46
|
+
contrato_de_trabalho.afastamento.then do |afastamento|
|
47
|
+
raise 'término de afastamento sem início de afastamento' unless afastamento
|
48
48
|
|
49
|
-
|
49
|
+
afastamento.data_de_inicio
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
@@ -83,6 +83,7 @@ module Teodoro
|
|
83
83
|
def contrato_de_trabalho_sem_vinculo
|
84
84
|
@contrato_de_trabalho_sem_vinculo ||= contratos_de_trabalho_sem_vinculo[
|
85
85
|
cpf_do_trabalhador: cpf_do_trabalhador,
|
86
|
+
matricula_do_trabalhador: matricula_do_trabalhador,
|
86
87
|
categoria_do_trabalhador: categoria_do_trabalhador,
|
87
88
|
data: inicio_do_afastamento? ? data_de_inicio_do_afastamento : data_de_termino_do_afastamento
|
88
89
|
]
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module Teodoro
|
2
|
+
module Leiaute
|
3
|
+
class ArquivoS2240
|
4
|
+
include ArquivoDeEventoNaoPeriodico
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
def dados_dos_arquivos_data
|
9
|
+
[
|
10
|
+
Obj.new(
|
11
|
+
nome: "AMB_#{numero_do_recibo}",
|
12
|
+
itens_do_conteudo: itens_do_conteudo
|
13
|
+
)
|
14
|
+
]
|
15
|
+
end
|
16
|
+
|
17
|
+
def itens_do_conteudo # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
18
|
+
[
|
19
|
+
['Id', id_do_evento],
|
20
|
+
['procEmi', processo_de_emissao_do_evento],
|
21
|
+
['verProc', versao_do_processo_de_emissao_do_evento],
|
22
|
+
['ideEmpregador/tpInsc', tipo_de_inscricao_do_empregador],
|
23
|
+
['ideEmpregador/nrInsc', numero_de_inscricao_do_empregador],
|
24
|
+
['cpfTrab', evento['ideVinculo/cpfTrab']],
|
25
|
+
['matricula', evento['ideVinculo/matricula']],
|
26
|
+
['codCateg', evento['ideVinculo/codCateg']],
|
27
|
+
['dtIniCondicao', evento['infoExpRisco/dtIniCondicao']],
|
28
|
+
['localAmb', evento['infoExpRisco/infoAmb/localAmb']],
|
29
|
+
['dscSetor', evento['infoExpRisco/infoAmb/dscSetor']],
|
30
|
+
['infoAmb/tpInsc', evento['infoExpRisco/infoAmb/tpInsc']],
|
31
|
+
['infoAmb/nrInsc', evento['infoExpRisco/infoAmb/nrInsc']],
|
32
|
+
['dscAtivDes', evento['infoExpRisco/infoAtiv/dscAtivDes']],
|
33
|
+
*evento.*('infoExpRisco/agNoc').map.with_index(1) do |agente_nocivo, seq|
|
34
|
+
[
|
35
|
+
["agNoc_#{seq}_codAgNoc", agente_nocivo['codAgNoc']],
|
36
|
+
["agNoc_#{seq}_dscAgNoc", agente_nocivo['dscAgNoc']],
|
37
|
+
["agNoc_#{seq}_tpAval", agente_nocivo['tpAval']],
|
38
|
+
["agNoc_#{seq}_intConc", agente_nocivo['intConc']],
|
39
|
+
["agNoc_#{seq}_limTol", agente_nocivo['limTol']],
|
40
|
+
["agNoc_#{seq}_unMed", agente_nocivo['unMed']],
|
41
|
+
["agNoc_#{seq}_tecMedicao", agente_nocivo['tecMedicao']],
|
42
|
+
["agNoc_#{seq}_utilizEPC", agente_nocivo['epcEpi/utilizEPC']],
|
43
|
+
["agNoc_#{seq}_eficEpc", agente_nocivo['epcEpi/eficEpc']],
|
44
|
+
["agNoc_#{seq}_utilizEPI", agente_nocivo['epcEpi/utilizEPI']],
|
45
|
+
["agNoc_#{seq}_eficEpi", agente_nocivo['epcEpi/eficEpi']],
|
46
|
+
*agente_nocivo.*('epcEpi/epi').map.with_index(1) do |epi, epi_seq|
|
47
|
+
[
|
48
|
+
["agNoc_#{seq}_epi_#{epi_seq}_docAval", epi['docAval']],
|
49
|
+
["agNoc_#{seq}_epi_#{epi_seq}_dscEPI", epi['dscEPI']]
|
50
|
+
]
|
51
|
+
end.sum([]),
|
52
|
+
["agNoc_#{seq}_medProtecao", agente_nocivo['epcEpi/epiCompl/medProtecao']],
|
53
|
+
["agNoc_#{seq}_condFuncto", agente_nocivo['epcEpi/epiCompl/condFuncto']],
|
54
|
+
["agNoc_#{seq}_usoInint", agente_nocivo['epcEpi/epiCompl/usoInint']],
|
55
|
+
["agNoc_#{seq}_przValid", agente_nocivo['epcEpi/epiCompl/przValid']],
|
56
|
+
["agNoc_#{seq}_periodicTroca", agente_nocivo['epcEpi/epiCompl/periodicTroca']],
|
57
|
+
["agNoc_#{seq}_higienizacao", agente_nocivo['epcEpi/epiCompl/higienizacao']]
|
58
|
+
]
|
59
|
+
end.sum([]),
|
60
|
+
*evento.*('infoExpRisco/respReg').map.with_index(1) do |responsavel, seq|
|
61
|
+
[
|
62
|
+
["respReg_#{seq}_cpfResp", responsavel['cpfResp']],
|
63
|
+
["respReg_#{seq}_ideOC", responsavel['ideOC']],
|
64
|
+
["respReg_#{seq}_dscOC", responsavel['dscOC']],
|
65
|
+
["respReg_#{seq}_nrOC", responsavel['nrOC']],
|
66
|
+
["respReg_#{seq}_ufOC", responsavel['ufOC']]
|
67
|
+
]
|
68
|
+
end.sum([]),
|
69
|
+
['obsCompl', evento['infoExpRisco/obs/obsCompl']],
|
70
|
+
['nrRecibo', numero_do_recibo]
|
71
|
+
]
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -213,7 +213,7 @@ module Teodoro
|
|
213
213
|
2 => por_iniciativa_do_empregador? && duracao_do_aviso_previo < 30,
|
214
214
|
4 => %w[04 07 08 09].include?(motivo_do_desligamento),
|
215
215
|
6 => motivo_do_desligamento == '33'
|
216
|
-
}.find {
|
216
|
+
}.find { |_, condicao| condicao }&.first
|
217
217
|
end
|
218
218
|
|
219
219
|
def por_iniciativa_do_empregador?
|
@@ -25,6 +25,7 @@ module Teodoro
|
|
25
25
|
def inicio_de_contrato
|
26
26
|
@inicio_de_contrato ||= Obj.new(
|
27
27
|
trabalhador: trabalhador,
|
28
|
+
matricula_do_trabalhador: evento['infoTSVInicio/matricula'],
|
28
29
|
categoria_do_trabalhador: evento['infoTSVInicio/codCateg'],
|
29
30
|
data_de_inicio: evento['infoTSVInicio/dtInicio'],
|
30
31
|
matricula: evento['infoTSVInicio/matricula'],
|
@@ -119,10 +120,12 @@ module Teodoro
|
|
119
120
|
end
|
120
121
|
|
121
122
|
def afastamento
|
122
|
-
evento['infoTSVInicio/afastamento']&.then
|
123
|
-
|
124
|
-
|
125
|
-
|
123
|
+
evento['infoTSVInicio/afastamento']&.then do |afastamento|
|
124
|
+
Obj.new(
|
125
|
+
data_de_inicio: afastamento['dtIniAfast'],
|
126
|
+
codigo_do_motivo: afastamento['codMotAfast']
|
127
|
+
)
|
128
|
+
end
|
126
129
|
end
|
127
130
|
|
128
131
|
def dados_dos_arquivos_data # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
@@ -334,8 +337,10 @@ module Teodoro
|
|
334
337
|
|
335
338
|
def condicao_de_ingresso_no_brasil_do_trabalhador
|
336
339
|
@condicao_de_ingresso_no_brasil_do_trabalhador ||=
|
337
|
-
evento['trabalhador/trabImig']&.then do
|
338
|
-
Teodoro::LeiauteSimplificado::TrabalhadorImigrante
|
340
|
+
evento['trabalhador/trabImig']&.then do |imigrante|
|
341
|
+
Teodoro::LeiauteSimplificado::TrabalhadorImigrante
|
342
|
+
.new(imigrante)
|
343
|
+
.condicao_de_ingresso_no_brasil_no_leiaute2
|
339
344
|
end
|
340
345
|
end
|
341
346
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Teodoro
|
2
2
|
module Leiaute
|
3
|
-
class ArquivoS2306
|
3
|
+
class ArquivoS2306 # rubocop:disable Metrics/ClassLength
|
4
4
|
include ArquivoDeEventoNaoPeriodico
|
5
5
|
|
6
6
|
private
|
@@ -17,6 +17,7 @@ module Teodoro
|
|
17
17
|
itens_do_conteudo: [
|
18
18
|
# rubocop:disable Layout/LineLength
|
19
19
|
['ESX_CPF', cpf_do_trabalhador],
|
20
|
+
['matricula', matricula_do_trabalhador],
|
20
21
|
['ESX_CATEGORIA', categoria_do_trabalhador],
|
21
22
|
%w[ESX_SEMVINCULO 1],
|
22
23
|
['ESX_DATAADMISSAO', data_de_inicio, :data],
|
@@ -69,8 +70,17 @@ module Teodoro
|
|
69
70
|
@cpf_do_trabalhador ||= evento['ideTrabSemVinculo/cpfTrab']
|
70
71
|
end
|
71
72
|
|
73
|
+
def matricula_do_trabalhador
|
74
|
+
@matricula_do_trabalhador ||= evento['ideTrabSemVinculo/matricula']
|
75
|
+
end
|
76
|
+
|
72
77
|
def categoria_do_trabalhador
|
73
|
-
@categoria_do_trabalhador ||=
|
78
|
+
@categoria_do_trabalhador ||=
|
79
|
+
if matricula_do_trabalhador
|
80
|
+
contrato_de_trabalho.categoria_do_trabalhador
|
81
|
+
else
|
82
|
+
evento['ideTrabSemVinculo/codCateg']
|
83
|
+
end
|
74
84
|
end
|
75
85
|
|
76
86
|
def data_de_inicio
|
@@ -80,7 +90,8 @@ module Teodoro
|
|
80
90
|
def contrato_de_trabalho
|
81
91
|
contratos_de_trabalho_sem_vinculo[
|
82
92
|
cpf_do_trabalhador: cpf_do_trabalhador,
|
83
|
-
|
93
|
+
matricula_do_trabalhador: matricula_do_trabalhador,
|
94
|
+
categoria_do_trabalhador: (categoria_do_trabalhador unless matricula_do_trabalhador),
|
84
95
|
data: data_da_alteracao
|
85
96
|
]
|
86
97
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Teodoro
|
2
2
|
module Leiaute
|
3
|
-
class ArquivoS2399
|
3
|
+
class ArquivoS2399 # rubocop:disable Metrics/ClassLength
|
4
4
|
include ArquivoDeEventoNaoPeriodico
|
5
5
|
|
6
6
|
private
|
@@ -18,7 +18,8 @@ module Teodoro
|
|
18
18
|
def contrato_de_trabalho
|
19
19
|
@contrato_de_trabalho ||= contratos_de_trabalho_sem_vinculo[
|
20
20
|
cpf_do_trabalhador: cpf_do_trabalhador,
|
21
|
-
|
21
|
+
matricula_do_trabalhador: matricula_do_trabalhador,
|
22
|
+
categoria_do_trabalhador: (categoria_do_trabalhador unless matricula_do_trabalhador),
|
22
23
|
data: data_do_termino
|
23
24
|
]
|
24
25
|
end
|
@@ -31,12 +32,21 @@ module Teodoro
|
|
31
32
|
@data_do_termino ||= evento['infoTSVTermino/dtTerm']
|
32
33
|
end
|
33
34
|
|
35
|
+
def matricula_do_trabalhador
|
36
|
+
@matricula_do_trabalhador ||= evento['ideTrabSemVinculo/matricula']
|
37
|
+
end
|
38
|
+
|
34
39
|
def cpf_do_trabalhador
|
35
40
|
@cpf_do_trabalhador ||= evento['ideTrabSemVinculo/cpfTrab']
|
36
41
|
end
|
37
42
|
|
38
43
|
def categoria_do_trabalhador
|
39
|
-
@categoria_do_trabalhador ||=
|
44
|
+
@categoria_do_trabalhador ||=
|
45
|
+
if matricula_do_trabalhador
|
46
|
+
contrato_de_trabalho.categoria_do_trabalhador
|
47
|
+
else
|
48
|
+
evento['ideTrabSemVinculo/codCateg']
|
49
|
+
end
|
40
50
|
end
|
41
51
|
|
42
52
|
def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
@@ -46,6 +56,7 @@ module Teodoro
|
|
46
56
|
itens_do_conteudo: [
|
47
57
|
# rubocop:disable Layout/LineLength
|
48
58
|
['ESX_CPF', cpf_do_trabalhador],
|
59
|
+
['matricula', matricula_do_trabalhador],
|
49
60
|
['ESX_CATEGORIA', categoria_do_trabalhador],
|
50
61
|
%w[ESX_SEMVINCULO 1],
|
51
62
|
['ESX_DATAADMISSAO', data_de_inicio],
|
data/lib/teodoro/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teodoro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.46.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fortes Tecnologia
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -203,6 +203,7 @@ files:
|
|
203
203
|
- lib/teodoro/empresa.rb
|
204
204
|
- lib/teodoro/empresa/arquivo_data_emp.rb
|
205
205
|
- lib/teodoro/empresa/arquivo_data_rub.rb
|
206
|
+
- lib/teodoro/empresa/arquivo_de_dados_gerais.rb
|
206
207
|
- lib/teodoro/empresa/arquivos_data.rb
|
207
208
|
- lib/teodoro/empresa/cargos_gerados.rb
|
208
209
|
- lib/teodoro/empresa/contratos_de_emprego.rb
|
@@ -217,11 +218,16 @@ files:
|
|
217
218
|
- lib/teodoro/leiaute/arquivo_s1040.rb
|
218
219
|
- lib/teodoro/leiaute/arquivo_s1050.rb
|
219
220
|
- lib/teodoro/leiaute/arquivo_s1070.rb
|
221
|
+
- lib/teodoro/leiaute/arquivo_s1298.rb
|
222
|
+
- lib/teodoro/leiaute/arquivo_s1299.rb
|
220
223
|
- lib/teodoro/leiaute/arquivo_s2190.rb
|
221
224
|
- lib/teodoro/leiaute/arquivo_s2200.rb
|
222
225
|
- lib/teodoro/leiaute/arquivo_s2205.rb
|
223
226
|
- lib/teodoro/leiaute/arquivo_s2206.rb
|
227
|
+
- lib/teodoro/leiaute/arquivo_s2210.rb
|
228
|
+
- lib/teodoro/leiaute/arquivo_s2220.rb
|
224
229
|
- lib/teodoro/leiaute/arquivo_s2230.rb
|
230
|
+
- lib/teodoro/leiaute/arquivo_s2240.rb
|
225
231
|
- lib/teodoro/leiaute/arquivo_s2250.rb
|
226
232
|
- lib/teodoro/leiaute/arquivo_s2299.rb
|
227
233
|
- lib/teodoro/leiaute/arquivo_s2300.rb
|