teodoro 0.44.2 → 0.45.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|