teodoro 0.44.2 → 0.45.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 +4 -4
- 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 +9 -0
- data/lib/teodoro/empresa/contratos_de_emprego.rb +1 -1
- data/lib/teodoro/empresa/contratos_de_trabalho_sem_vinculo.rb +5 -4
- data/lib/teodoro/empresa.rb +7 -5
- data/lib/teodoro/leiaute/arquivo_s1000.rb +1 -1
- data/lib/teodoro/leiaute/arquivo_s1010.rb +9 -7
- data/lib/teodoro/leiaute/arquivo_s2200.rb +10 -6
- data/lib/teodoro/leiaute/arquivo_s2205.rb +12 -10
- 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 +3 -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 +10 -6
- data/lib/teodoro/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb1c00eaa00dea82fcbaf037fcd319e3a0c2ef3dde4f524c0d674b327198eef1
|
4
|
+
data.tar.gz: 43e9a044e50b77eb72f60a3602755086b86791d19339dd89cedb163ab7ea4d90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ded51453baf0dfacd2fcd794bea81b2213c02fa78da8b6c7ab5bacbd3e4336196b4a2cdbfed2cc01133fa0776eaf7fa2f9d06a51ce6f7f9a91137bed08d11c6e
|
7
|
+
data.tar.gz: 6a20a63d7ead24231bd53a770822f9cb4ad7c817b9b631bd7242decade16aa4b66267be76f4b1e26dfcc2b343900d64bd85174358c98020049753818919d6877
|
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
|
|
@@ -36,8 +36,8 @@ module Teodoro
|
|
36
36
|
itens_do_conteudo
|
37
37
|
.map { [_1[0], _1[1], _1.size == 1 ? :vazio : _1[2]] }
|
38
38
|
.map { |chave, valor, formato| [chave, Valor.new(valor, formato: formato)] }
|
39
|
-
.reject {
|
40
|
-
.map { "#{
|
39
|
+
.reject { |_chave, valor| valor.vazio? }
|
40
|
+
.map { |chave, valor| "#{chave}=#{valor}" }
|
41
41
|
end
|
42
42
|
|
43
43
|
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
@@ -15,7 +15,10 @@ require_relative 'leiaute/arquivo_s2190'
|
|
15
15
|
require_relative 'leiaute/arquivo_s2200'
|
16
16
|
require_relative 'leiaute/arquivo_s2205'
|
17
17
|
require_relative 'leiaute/arquivo_s2206'
|
18
|
+
require_relative 'leiaute/arquivo_s2210'
|
19
|
+
require_relative 'leiaute/arquivo_s2220'
|
18
20
|
require_relative 'leiaute/arquivo_s2230'
|
21
|
+
require_relative 'leiaute/arquivo_s2240'
|
19
22
|
require_relative 'leiaute/arquivo_s2250'
|
20
23
|
require_relative 'leiaute/arquivo_s2299'
|
21
24
|
require_relative 'leiaute/arquivo_s2300'
|
@@ -40,7 +43,10 @@ module Teodoro
|
|
40
43
|
S2200
|
41
44
|
S2205
|
42
45
|
S2206
|
46
|
+
S2210
|
47
|
+
S2220
|
43
48
|
S2230
|
49
|
+
S2240
|
44
50
|
S2250
|
45
51
|
S2299
|
46
52
|
S2300
|
@@ -54,7 +60,10 @@ module Teodoro
|
|
54
60
|
S2200
|
55
61
|
S2205
|
56
62
|
S2206
|
63
|
+
S2210
|
64
|
+
S2220
|
57
65
|
S2230
|
66
|
+
S2240
|
58
67
|
S2250
|
59
68
|
S2299
|
60
69
|
S2300
|
@@ -18,10 +18,11 @@ module Teodoro
|
|
18
18
|
|
19
19
|
def [](cpf_do_trabalhador:, categoria_do_trabalhador:, data:)
|
20
20
|
contratos
|
21
|
-
.select
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
.select do |contrato|
|
22
|
+
contrato.trabalhador.cpf == cpf_do_trabalhador &&
|
23
|
+
contrato.categoria_do_trabalhador == categoria_do_trabalhador &&
|
24
|
+
contrato.ativo?(data)
|
25
|
+
end
|
25
26
|
.max_by(&:data_de_inicio)
|
26
27
|
end
|
27
28
|
|
data/lib/teodoro/empresa.rb
CHANGED
@@ -173,10 +173,12 @@ module Teodoro
|
|
173
173
|
|
174
174
|
def arquivos_data_emp
|
175
175
|
Dir[File.join(destino_dos_arquivos_data, 'EMP*.data')]
|
176
|
-
.map
|
177
|
-
|
178
|
-
|
179
|
-
|
176
|
+
.map do |caminho|
|
177
|
+
ArquivoDataEMP.new(
|
178
|
+
caminho: caminho,
|
179
|
+
proximo_identificador_de_tabela_de_rubricas: proximo_identificador_de_tabela_de_rubricas
|
180
|
+
)
|
181
|
+
end
|
180
182
|
end
|
181
183
|
|
182
184
|
def proximo_identificador_de_tabela_de_rubricas
|
@@ -208,7 +210,7 @@ module Teodoro
|
|
208
210
|
end
|
209
211
|
|
210
212
|
def caminhos_dos_arquivos_emp_data
|
211
|
-
Dir[File.join(destino_dos_arquivos_data, 'EMP*.data')]
|
213
|
+
Dir[File.join(destino_dos_arquivos_data, 'EMP*.data')].sort
|
212
214
|
end
|
213
215
|
|
214
216
|
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
|
@@ -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
|
@@ -394,8 +396,10 @@ module Teodoro
|
|
394
396
|
|
395
397
|
def condicao_de_ingresso_no_brasil_do_trabalhador
|
396
398
|
@condicao_de_ingresso_no_brasil_do_trabalhador ||=
|
397
|
-
evento['trabalhador/trabImig']&.then do
|
398
|
-
Teodoro::LeiauteSimplificado::TrabalhadorImigrante
|
399
|
+
evento['trabalhador/trabImig']&.then do |imigrante|
|
400
|
+
Teodoro::LeiauteSimplificado::TrabalhadorImigrante
|
401
|
+
.new(imigrante)
|
402
|
+
.condicao_de_ingresso_no_brasil_no_leiaute2
|
399
403
|
end
|
400
404
|
end
|
401
405
|
|
@@ -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
|
@@ -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
|
@@ -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?
|
@@ -119,10 +119,12 @@ module Teodoro
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def afastamento
|
122
|
-
evento['infoTSVInicio/afastamento']&.then
|
123
|
-
|
124
|
-
|
125
|
-
|
122
|
+
evento['infoTSVInicio/afastamento']&.then do |afastamento|
|
123
|
+
Obj.new(
|
124
|
+
data_de_inicio: afastamento['dtIniAfast'],
|
125
|
+
codigo_do_motivo: afastamento['codMotAfast']
|
126
|
+
)
|
127
|
+
end
|
126
128
|
end
|
127
129
|
|
128
130
|
def dados_dos_arquivos_data # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
@@ -334,8 +336,10 @@ module Teodoro
|
|
334
336
|
|
335
337
|
def condicao_de_ingresso_no_brasil_do_trabalhador
|
336
338
|
@condicao_de_ingresso_no_brasil_do_trabalhador ||=
|
337
|
-
evento['trabalhador/trabImig']&.then do
|
338
|
-
Teodoro::LeiauteSimplificado::TrabalhadorImigrante
|
339
|
+
evento['trabalhador/trabImig']&.then do |imigrante|
|
340
|
+
Teodoro::LeiauteSimplificado::TrabalhadorImigrante
|
341
|
+
.new(imigrante)
|
342
|
+
.condicao_de_ingresso_no_brasil_no_leiaute2
|
339
343
|
end
|
340
344
|
end
|
341
345
|
|
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.45.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: 2021-
|
11
|
+
date: 2021-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -221,7 +221,10 @@ files:
|
|
221
221
|
- lib/teodoro/leiaute/arquivo_s2200.rb
|
222
222
|
- lib/teodoro/leiaute/arquivo_s2205.rb
|
223
223
|
- lib/teodoro/leiaute/arquivo_s2206.rb
|
224
|
+
- lib/teodoro/leiaute/arquivo_s2210.rb
|
225
|
+
- lib/teodoro/leiaute/arquivo_s2220.rb
|
224
226
|
- lib/teodoro/leiaute/arquivo_s2230.rb
|
227
|
+
- lib/teodoro/leiaute/arquivo_s2240.rb
|
225
228
|
- lib/teodoro/leiaute/arquivo_s2250.rb
|
226
229
|
- lib/teodoro/leiaute/arquivo_s2299.rb
|
227
230
|
- lib/teodoro/leiaute/arquivo_s2300.rb
|