teodoro 0.0.7 → 0.0.12

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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/bin/teodoro +1 -1
  3. data/lib/teodoro.rb +68 -1
  4. data/lib/teodoro/arquivo_de_evento.rb +15 -27
  5. data/lib/teodoro/arquivo_de_evento_de_tabela.rb +1 -11
  6. data/lib/teodoro/arquivo_de_evento_exceto_de_exclusao.rb +25 -0
  7. data/lib/teodoro/arquivo_de_evento_nao_periodico.rb +10 -15
  8. data/lib/teodoro/arquivo_de_origem.rb +1 -1
  9. data/lib/teodoro/arquivo_xml.rb +71 -55
  10. data/lib/teodoro/console.rb +2 -6
  11. data/lib/teodoro/empresa.rb +48 -15
  12. data/lib/teodoro/leiaute.rb +24 -0
  13. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s1000.rb +1 -1
  14. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s1005.rb +1 -1
  15. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s1010.rb +7 -3
  16. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s1020.rb +1 -1
  17. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s1030.rb +1 -1
  18. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s1040.rb +1 -1
  19. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s1050.rb +1 -1
  20. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s1070.rb +1 -1
  21. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s2190.rb +1 -1
  22. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s2200.rb +46 -9
  23. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s2205.rb +2 -2
  24. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s2206.rb +1 -1
  25. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s2230.rb +1 -1
  26. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s2250.rb +2 -2
  27. data/lib/teodoro/leiaute/arquivo_s2299.rb +310 -0
  28. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s2300.rb +20 -2
  29. data/lib/teodoro/{leiaute_2_4_1 → leiaute}/arquivo_s2306.rb +1 -1
  30. data/lib/teodoro/leiaute/arquivo_s2399.rb +303 -0
  31. data/lib/teodoro/leiaute/arquivo_s3000.rb +41 -0
  32. data/lib/teodoro/obj.rb +5 -0
  33. metadata +24 -20
  34. data/lib/teodoro/execucao.rb +0 -73
  35. data/lib/teodoro/leiaute_2_4_1.rb +0 -21
@@ -20,14 +20,15 @@ module Teodoro
20
20
  criar_diretorio_dos_arquivos_xml
21
21
  descompactar_arquivos_de_origem
22
22
  criar_diretorio_dos_arquivos_data
23
+ ordenar_arquivos_xml
23
24
  processar_arquivos_xml
25
+ limpar_linha_de_feedback
24
26
  end
25
27
 
26
28
  private
27
29
 
28
30
  def dar_feedback_para_o_usuario
29
- puts ''
30
- Console.print nome_do_diretorio, color: :green
31
+ puts "\e[32m#{nome_do_diretorio}\e[0m" # green
31
32
  end
32
33
 
33
34
  def nome_do_diretorio
@@ -63,23 +64,55 @@ module Teodoro
63
64
  @destino_dos_arquivos_data ||= File.join(destino, 'data')
64
65
  end
65
66
 
67
+ def ordenar_arquivos_xml
68
+ Console.print 'ordenando os arquivos XML...'
69
+ arquivos_xml.sort_by! { [_1.momento_de_processamento_pelo_e_social, _1.nome] }
70
+ end
71
+
66
72
  def processar_arquivos_xml
67
- arquivos_xml.each(&:processar)
73
+ # otimizacao do gerenciamento de memoria
74
+ arquivos_xml.shift.processar while arquivos_xml.any?
68
75
  end
69
76
 
70
77
  def arquivos_xml
71
- Dir[File.join(destino_dos_arquivos_xml, '*.xml')]
72
- .map do |caminho|
73
- ArquivoXML.new(
74
- caminho: caminho,
75
- destino_dos_arquivos_data: destino_dos_arquivos_data,
76
- de_recibo_para_nome_do_arquivo_data: de_recibo_para_nome_do_arquivo_data
77
- )
78
- end
79
- end
80
-
81
- def de_recibo_para_nome_do_arquivo_data
82
- @de_recibo_para_nome_do_arquivo_data ||= {}
78
+ @arquivos_xml ||= Dir[File.join(destino_dos_arquivos_xml, '*.xml')]
79
+ .map { |caminho| ArquivoXML.new(empresa: empresa, caminho: caminho) }
80
+ .select(&:processavel?)
81
+ end
82
+
83
+ def empresa
84
+ @empresa ||= Obj.new(
85
+ destino_dos_arquivos_data: destino_dos_arquivos_data,
86
+ de_recibo_para_nome_do_arquivo_data: {},
87
+ admissoes_por_matricula: {},
88
+ contratos_de_trabalhador_sem_vinculo: ContratosDeTrabalhadorSemVinculo.new
89
+ )
90
+ end
91
+
92
+ def limpar_linha_de_feedback
93
+ Console.print
94
+ end
95
+
96
+ class ContratosDeTrabalhadorSemVinculo
97
+ def <<(contrato)
98
+ contratos << contrato
99
+ end
100
+
101
+ def [](cpf_do_trabalhador:, categoria_do_trabalhador:, data:)
102
+ contratos
103
+ .select {
104
+ [_1.cpf_do_trabalhador, _1.categoria_do_trabalhador] == [cpf_do_trabalhador, categoria_do_trabalhador]
105
+ }
106
+ .sort_by(&:data_de_inicio)
107
+ .reverse
108
+ .find { _1.data_de_inicio <= data }
109
+ end
110
+
111
+ private
112
+
113
+ def contratos
114
+ @contratos ||= []
115
+ end
83
116
  end
84
117
  end
85
118
  end
@@ -0,0 +1,24 @@
1
+ require_relative 'leiaute/arquivo_s1000'
2
+ require_relative 'leiaute/arquivo_s1005'
3
+ require_relative 'leiaute/arquivo_s1010'
4
+ require_relative 'leiaute/arquivo_s1020'
5
+ require_relative 'leiaute/arquivo_s1030'
6
+ require_relative 'leiaute/arquivo_s1040'
7
+ require_relative 'leiaute/arquivo_s1050'
8
+ require_relative 'leiaute/arquivo_s1070'
9
+ require_relative 'leiaute/arquivo_s2190'
10
+ require_relative 'leiaute/arquivo_s2200'
11
+ require_relative 'leiaute/arquivo_s2205'
12
+ require_relative 'leiaute/arquivo_s2206'
13
+ require_relative 'leiaute/arquivo_s2230'
14
+ require_relative 'leiaute/arquivo_s2250'
15
+ require_relative 'leiaute/arquivo_s2299'
16
+ require_relative 'leiaute/arquivo_s2300'
17
+ require_relative 'leiaute/arquivo_s2306'
18
+ require_relative 'leiaute/arquivo_s2399'
19
+ require_relative 'leiaute/arquivo_s3000'
20
+
21
+ module Teodoro
22
+ module Leiaute
23
+ end
24
+ end
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  # rubocop:disable Metrics/ClassLength
4
4
  class ArquivoS1000
5
5
  include ArquivoDeEventoDeTabela
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS1005
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS1010
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -18,7 +18,11 @@ module Teodoro
18
18
  end
19
19
 
20
20
  def identificacao_do_arquivo_data
21
- ['RUB', codigo]
21
+ ['RUB', "#{identificador_da_tabela_de_rubricas}#{codigo}"]
22
+ end
23
+
24
+ def identificador_da_tabela_de_rubricas
25
+ @identificador_da_tabela_de_rubricas ||= evento['evtTabRubrica/infoRubrica/*/ideRubrica/ideTabRubr']
22
26
  end
23
27
 
24
28
  def codigo
@@ -36,7 +40,7 @@ module Teodoro
36
40
  ['InicioValidade', inicio_da_validade],
37
41
  ['FimValidade', fim_da_validade],
38
42
  ['chkIdTabelaRubrica'],
39
- ['IdTabelaRubrica', evento['evtTabRubrica/infoRubrica/*/ideRubrica/ideTabRubr']],
43
+ ['IdTabelaRubrica', identificador_da_tabela_de_rubricas],
40
44
  ['IdTabelaRubricaText'],
41
45
  ['DadosRubrica_Descricao', evento['evtTabRubrica/infoRubrica/*/dadosRubrica/dscRubr']],
42
46
  ['DadosRubrica_Natureza', evento['evtTabRubrica/infoRubrica/*/dadosRubrica/natRubr']],
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS1020
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS1030
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS1040
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS1050
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS1070
4
4
  include ArquivoDeEventoDeTabela
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS2190
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -1,10 +1,35 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS2200 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
6
+ def processar
7
+ super
8
+
9
+ registrar_admissao
10
+ end
11
+
6
12
  private
7
13
 
14
+ def registrar_admissao
15
+ admissoes_por_matricula[matricula_do_trabalhador] = Obj.new(
16
+ data: data_de_admissao,
17
+ categoria_do_trabalhador: categoria_do_trabalhador
18
+ )
19
+ end
20
+
21
+ def admissoes_por_matricula
22
+ empresa.admissoes_por_matricula
23
+ end
24
+
25
+ def data_de_admissao
26
+ @data_de_admissao ||= evento['evtAdmissao/vinculo/infoRegimeTrab/infoCeletista/dtAdm']
27
+ end
28
+
29
+ def categoria_do_trabalhador
30
+ @categoria_do_trabalhador ||= evento['evtAdmissao/vinculo/infoContrato/codCateg']
31
+ end
32
+
8
33
  def noh_principal_do_evento
9
34
  'evtAdmissao'
10
35
  end
@@ -22,10 +47,6 @@ module Teodoro
22
47
  @matricula_do_trabalhador ||= evento['evtAdmissao/vinculo/matricula']
23
48
  end
24
49
 
25
- def data_de_admissao
26
- @data_de_admissao ||= evento['evtAdmissao/vinculo/infoRegimeTrab/infoCeletista/dtAdm']
27
- end
28
-
29
50
  # rubocop:disable Metrics/MethodLength, Layout/LineLength, Metrics/AbcSize
30
51
  def itens_do_conteudo_do_arquivo_data
31
52
  [
@@ -39,7 +60,7 @@ module Teodoro
39
60
  ['NrReciboEventoOriginal'],
40
61
  ['EventoAdmissao_TipoEventoEnviado'],
41
62
  ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
42
- ['EventoAdmissao_NrRecibo', numero_do_recibo_a_retificar], # FIXME: Tales
63
+ ['EventoAdmissao_NrRecibo', numero_do_recibo],
43
64
  ['EventoAdmissao_DataAlteracaoCadastral'],
44
65
  ['EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial', evento['evtAdmissao/vinculo/cadIni']],
45
66
  ['EventoAdmissao_InformacoesInicio_DataInicio'],
@@ -137,7 +158,7 @@ module Teodoro
137
158
  ['EventoAdmissao_EnderecoResidencialEX_PaisResidencia_TEXT'],
138
159
  ['SemNumeroLogradouroEnderecoEX'],
139
160
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', evento['evtAdmissao/trabalhador/trabEstrangeiro/casadoBr']],
140
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao', evento['evtAdmissao/trabalhador/trabEstrangeiro/classTrabEstrang']],
161
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao', condicao_de_ingresso_do_trabalhador_estrangeiro],
141
162
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT'],
142
163
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', evento['evtAdmissao/trabalhador/trabEstrangeiro/dtChegada']],
143
164
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', evento['evtAdmissao/trabalhador/trabEstrangeiro/filhosBr']],
@@ -292,9 +313,25 @@ module Teodoro
292
313
  end
293
314
  # rubocop:enable Metrics/MethodLength, Layout/LineLength, Metrics/AbcSize
294
315
 
295
- def categoria_do_trabalhador
296
- @categoria_do_trabalhador ||= evento['evtAdmissao/vinculo/infoContrato/codCateg']
316
+ def condicao_de_ingresso_do_trabalhador_estrangeiro
317
+ if leiaute_simplificado?
318
+ MAPEAMENTO_DA_CONDICAO_DE_INGRESSO_DO_TRABALHADOR_IMIGRANTE
319
+ .then do |mapeamento|
320
+ mapeamento[evento['evtAdmissao/trabalhador/trabImig/condIng']] ||
321
+ evento['evtAdmissao/trabalhador/trabImig/tmpResid']
322
+ end
323
+ else
324
+ evento['evtAdmissao/trabalhador/trabEstrangeiro/classTrabEstrang']
325
+ end
297
326
  end
327
+
328
+ MAPEAMENTO_DA_CONDICAO_DE_INGRESSO_DO_TRABALHADOR_IMIGRANTE = {
329
+ '1' => 4,
330
+ '2' => 5,
331
+ '4' => 10,
332
+ '5' => 11,
333
+ '6' => 12
334
+ }.freeze
298
335
  end
299
336
  end
300
337
  end
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS2205 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -40,7 +40,7 @@ module Teodoro
40
40
  ['VisualizarDadosCadastrais'],
41
41
  ['UrlRetorno'],
42
42
  ['visualizar'],
43
- ['DescricaoProcEmi', evento['evtAltCadastral/ideEvento/procEmi']],
43
+ ['DescricaoProcEmi', processo_de_emissao_do_evento],
44
44
  ['VerProc', recibo['retornoEvento/processamento/versaoAppProcessamento']],
45
45
  ['IdEdicaoDependente'],
46
46
  ['commandArgument'],
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS2206 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS2230 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2_4_1
2
+ module Leiaute
3
3
  class ArquivoS2250
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -52,7 +52,7 @@ module Teodoro
52
52
  ['IdEventoXml'],
53
53
  ['NrReciboEventoOriginal'],
54
54
  ['RequestVerificationToken'],
55
- ['DescricaoProcEmi', evento['evtAvPrevio/ideEvento/procEmi']],
55
+ ['DescricaoProcEmi', processo_de_emissao_do_evento],
56
56
  ['VerProc', recibo['retornoEvento/processamento/versaoAppProcessamento']]
57
57
  ]
58
58
  end
@@ -0,0 +1,310 @@
1
+ module Teodoro
2
+ module Leiaute
3
+ class ArquivoS2299 # rubocop:disable Metrics/ClassLength
4
+ include ArquivoDeEventoNaoPeriodico
5
+
6
+ private
7
+
8
+ def noh_principal_do_evento
9
+ 'evtDeslig'
10
+ end
11
+
12
+ def nome_do_arquivo_data
13
+ # FIXME: Tales dataDeAdmissao
14
+ "TRA[#{cpf_do_trabalhador}][EPG_#{matricula_do_trabalhador}_dataDeAdmissao]-GER"
15
+ end
16
+
17
+ def cpf_do_trabalhador
18
+ @cpf_do_trabalhador ||= evento['evtDeslig/ideVinculo/cpfTrab']
19
+ end
20
+
21
+ def matricula_do_trabalhador
22
+ @matricula_do_trabalhador ||= evento['evtDeslig/ideVinculo/matricula']
23
+ end
24
+
25
+ # rubocop:disable Metrics/MethodLength, Layout/LineLength
26
+ def itens_do_conteudo_do_arquivo_data
27
+ [
28
+ ['ESX_CPF', cpf_do_trabalhador],
29
+ ['ESX_MATRICULA', matricula_do_trabalhador],
30
+ ['ESX_CATEGORIA'],
31
+ %w[ESX_SEMVINCULO 0],
32
+ ['ESX_DATAADMISSAO'],
33
+ ['ESX_DATADESLIGAMENTO', evento['evtDeslig/infoDeslig/dtDeslig']],
34
+ ['ESX_INFOWEB_RESCISAO_IDEDMDEV', identificador_do_demonstrativo],
35
+ ['ESX_INFOWEB_RESCISAO_RECIBO', numero_do_recibo],
36
+ ['ESX_INFOWEB_RESCISAO_MOTIVO', evento['evtDeslig/infoDeslig/mtvDeslig']],
37
+ ['ESX_INFOWEB_RESCISAO_MOTIVO_TEXT'],
38
+ ['IdEventoXml'],
39
+ ['NrReciboEventoOriginal'],
40
+ ['EventoAdmissao_TipoEventoEnviado'],
41
+ ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
42
+ ['EventoAdmissao_NrRecibo'],
43
+ ['EventoAdmissao_DataAlteracaoCadastral'],
44
+ ['EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial'],
45
+ ['EventoAdmissao_InformacoesInicio_DataInicio'],
46
+ ['EventoAdmissao_DataAlteracaoContratual'],
47
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoDirigenteSindical_CategoriaOrigem'],
48
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoDirigenteSindical_CnpjOrigem'],
49
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoDirigenteSindical_DataAdmissaoOrigem'],
50
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoDirigenteSindical_MatriculaOrigem'],
51
+ ['ehEmpregadorGrande'],
52
+ ['filtro'],
53
+ ['idContratoSelecionado'],
54
+ ['idTrabalhador'],
55
+ ['tsv'],
56
+ ['EhListagemContratosSemVinculo'],
57
+ ['RequestVerificationToken'],
58
+ ['SomenteLeitura'],
59
+ ['VisualizarDadosCadastrais'],
60
+ ['UrlRetorno'],
61
+ ['visualizar'],
62
+ ['EhVisualizacao'],
63
+ ['idContrato'],
64
+ ['IdEvento'],
65
+ ['FiltroCargo'],
66
+ ['FiltroFuncao'],
67
+ ['IdContratoReferenciado'],
68
+ ['EhAlteracaoCadastral'],
69
+ ['autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento'],
70
+ ['autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade'],
71
+ ['autocomplete_EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialEX_PaisResidencia'],
72
+ ['EhAlteracaoContratual'],
73
+ ['autocomplete_EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoDirigenteSindical_CategoriaOrigem'],
74
+ ['autocomplete_EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoTrabalhadorCedido_CategoriaOrigem'],
75
+ ['autocomplete_EventoAdmissao_InformacoesInicio_InfoAfastamento_CodigoMotivoAfastamento'],
76
+ ['CnpjPodeEnviarEvento'],
77
+ ['InformacoesTrabalhador_Cpf'],
78
+ ['InformacoesTrabalhador_Nome'],
79
+ ['FiltroHorario'],
80
+ ['HorarioTela_CodigoHorarioContratual'],
81
+ ['valorFoiSelecionado'],
82
+ ['idEdicaoHorario'],
83
+ ['DescricaoProcEmi', processo_de_emissao_do_evento],
84
+ ['VerProc', versao_do_aplicativo_de_processamento_do_evento],
85
+ ['IdEdicaoDependente'],
86
+ ['commandArgument'],
87
+ ['cpfTrabalhador'],
88
+ ['nomeTrabalhador'],
89
+ ['TipoRegistroAdmissao'],
90
+ ['HorarioTela_Dia'],
91
+ ['NomeEstabelecimentoLocalTrabalho'],
92
+ ['EventoAdmissao_InfoTrabalhador_Cpf'],
93
+ ['EventoAdmissao_InfoTrabalhador_Nome'],
94
+ ['EventoAdmissao_InfoTrabalhador_Nis'],
95
+ ['EventoAdmissao_InfoTrabalhador_Sexo'],
96
+ ['EventoAdmissao_InfoTrabalhador_Sexo_TEXT'],
97
+ ['EventoAdmissao_InfoTrabalhador_RacaCor'],
98
+ ['EventoAdmissao_InfoTrabalhador_RacaCor_TEXT'],
99
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil'],
100
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT'],
101
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao'],
102
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
103
+ ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego'],
104
+ ['EventoAdmissao_InfoTrabalhador_NomeSocial'],
105
+ ['EventoAdmissao_Aposentadoria_TrabalhadorAposentado'],
106
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio'],
107
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT'],
108
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento'],
109
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae'],
110
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai'],
111
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento'],
112
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
113
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade'],
114
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
115
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf'],
116
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
117
+ ['EventoAdmissao_EnderecoResidencialBR_Bairro'],
118
+ ['EventoAdmissao_EnderecoResidencialBR_Cep'],
119
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio'],
120
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT'],
121
+ ['EventoAdmissao_EnderecoResidencialBR_Complemento'],
122
+ ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro'],
123
+ ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro'],
124
+ ['SemNumeroLogradouroEnderecoBR'],
125
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro'],
126
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT'],
127
+ ['EventoAdmissao_EnderecoResidencialBR_Uf'],
128
+ ['EventoAdmissao_EnderecoResidencialBR_Uf_TEXT'],
129
+ ['EventoAdmissao_EnderecoResidencialEX_Bairro'],
130
+ ['EventoAdmissao_EnderecoResidencialEX_CodigoPostal'],
131
+ ['EventoAdmissao_EnderecoResidencialEX_Complemento'],
132
+ ['EventoAdmissao_EnderecoResidencialEX_DescricaoLogradouro'],
133
+ ['EventoAdmissao_EnderecoResidencialEX_NomeCidade'],
134
+ ['EventoAdmissao_EnderecoResidencialEX_NumeroLogradouro'],
135
+ ['ResideExterior'],
136
+ ['EventoAdmissao_EnderecoResidencialEX_PaisResidencia'],
137
+ ['EventoAdmissao_EnderecoResidencialEX_PaisResidencia_TEXT'],
138
+ ['SemNumeroLogradouroEnderecoEX'],
139
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro'],
140
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
141
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT'],
142
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada'],
143
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros'],
144
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh'],
145
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
146
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao'],
147
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao'],
148
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade'],
149
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh'],
150
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh'],
151
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
152
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps'],
153
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps'],
154
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps'],
155
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
156
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao'],
157
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataValidade'],
158
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc'],
159
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor'],
160
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao'],
161
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg'],
162
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor'],
163
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_DataExpedicao'],
164
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_NumeroRic'],
165
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_OrgaoEmissor'],
166
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao'],
167
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne'],
168
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor'],
169
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva'],
170
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica'],
171
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual'],
172
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental'],
173
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual'],
174
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota'],
175
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_Observacao'],
176
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado'],
177
+ ['EventoAdmissao_Contato_TelefonePrincipal'],
178
+ ['EventoAdmissao_Contato_EmailPrincipal'],
179
+ ['EventoAdmissao_Contato_TelefoneAlternativo'],
180
+ ['EventoAdmissao_Contato_EmailAlternativo'],
181
+ ['EventoAdmissao_Dependente_#_CPFDependente'],
182
+ ['EventoAdmissao_Dependente_#_DataNascimento'],
183
+ ['EventoAdmissao_Dependente_#_DataNascimentoFormatada'],
184
+ ['EventoAdmissao_Dependente_#_DependenteIRRF'],
185
+ ['EventoAdmissao_Dependente_#_DependenteSF'],
186
+ ['EventoAdmissao_Dependente_#_IncapacidadeDependente'],
187
+ ['EventoAdmissao_Dependente_#_NomeDependente'],
188
+ ['EventoAdmissao_Dependente_#_TipoDependente'],
189
+ ['CodigoCBO'],
190
+ ['CodigoCNAE'],
191
+ ['InfoVinculo_InfoContrato_AlvaraJudicial_NumeroProcessoJudicial'],
192
+ ['InfoVinculo_Matricula'],
193
+ ['InfoVinculo_TipoRegimeTrabalhista'],
194
+ ['InfoVinculo_TipoRegimePrevidenciario'],
195
+ ['InfoVinculo_InfoContrato_CodigoCategoria', categoria_do_trabalhador],
196
+ ['InfoVinculo_InfoContrato_CodigoCargo'],
197
+ ['InfoVinculo_InfoContrato_CodigoFuncao'],
198
+ ['InfoVinculo_InfoContrato_CodigoCarreira'],
199
+ ['InfoVinculo_InfoContrato_DataIngressoCarreira'],
200
+ ['InfoVinculo_InfoContrato_Duracao_TipoContrato'],
201
+ ['InfoVinculo_InfoContrato_Duracao_DataTermino'],
202
+ ['InfoVinculo_DataInicioAfastamento'],
203
+ ['InfoVinculo_CodigoMotivoAfastamento'],
204
+ ['InfoVinculo_InfoContrato_Remuneracao_UnidadeSalarioFixo'],
205
+ ['InfoVinculo_InfoContrato_Remuneracao_ValorSalarioFixo'],
206
+ ['InfoVinculo_InfoContrato_Remuneracao_DescricaoSalarioVariavel'],
207
+ ['InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada'],
208
+ ['InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial'],
209
+ ['InfoVinculo_InfoContrato_HorarioContratual_QuantidadedHorasSemanal'],
210
+ ['InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'],
211
+ ['InfoVinculo_SucessaoVinculo_DataInicioVinculo'],
212
+ ['InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
213
+ ['InfoVinculo_SucessaoVinculo_MatriculaAnterior'],
214
+ ['InfoVinculo_SucessaoVinculo_Observacao'],
215
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_CnpjSindicatoCategoriaProfissional'],
216
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataAdmissao', data_de_admissao],
217
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataBase'],
218
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao'],
219
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoAprend_NumeroInscricao'],
220
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoAprend_TipoInscricao'],
221
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'],
222
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'],
223
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade'],
224
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao'],
225
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada'],
226
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_DescricaoComplementar'],
227
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao'],
228
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao'],
229
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoDomestico_Uf'],
230
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoDomestico_TipoLogradouro'],
231
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoDomestico_TipoLogradouro_TEXT'],
232
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoDomestico_NumeroLogradouro'],
233
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoDomestico_DescricaoLogradouro'],
234
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoDomestico_Complemento'],
235
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoDomestico_CodigoMunicipio'],
236
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoDomestico_Cep'],
237
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoDomestico_Bairro'],
238
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TrabalhoTemporario_EmpresaContratante_NumeroInscricao'],
239
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TrabalhoTemporario_EmpresaContratante_TipoInscricao'],
240
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TrabalhoTemporario_EmpresaContratante_EstabelecimentoVinculadoTemporario_NumeroInscricao'],
241
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TrabalhoTemporario_EmpresaContratante_EstabelecimentoVinculadoTemporario_TipoInscricao'],
242
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TrabalhoTemporario_HipoteseLegal'],
243
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TrabalhoTemporario_JustificaHipoteseLegal'],
244
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TrabalhoTemporario_TipoInclusaoContrato'],
245
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoTrabalhadorCedido_CategoriaOrigem'],
246
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoTrabalhadorCedido_CnpjEmpresaCedente'],
247
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoTrabalhadorCedido_DataAdmissaoEmpresaCedente'],
248
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoTrabalhadorCedido_InfoOnus'],
249
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoTrabalhadorCedido_MatriculaEmpresaCedente'],
250
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoTrabalhadorCedido_TipoRegimePrevidenciario'],
251
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoTrabalhadorCedido_TipoRegimeTrabalhista'],
252
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_AreaAtuacao'],
253
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_DtPrevistaTermino'],
254
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Bairro'],
255
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Cep'],
256
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Cnpj'],
257
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_CodigoMunicipio'],
258
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_DescricaoLogradouro'],
259
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_NumeroLogradouro'],
260
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_RazaoSocial'],
261
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Uf'],
262
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Bairro'],
263
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Cep'],
264
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Cnpj'],
265
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_CodigoMunicipio'],
266
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_DescricaoLogradouro'],
267
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_NumeroLogradouro'],
268
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_RazaoSocial'],
269
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Uf'],
270
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoSupervisorEstagio_Cpf'],
271
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoSupervisorEstagio_Nome'],
272
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NaturezaEstagio'],
273
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NivelEstagio'],
274
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NrApoliceSeguro'],
275
+ ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_ValorBolsa'],
276
+ ['Horarios_#_CodigoHorarioContratual'],
277
+ ['Horarios_#_Dia'],
278
+ ['InfoVinculo_InfoContrato_FiliacaoSindical_#_CnpjSindicatoTrabalhador']
279
+ ]
280
+ end
281
+ # rubocop:enable Metrics/MethodLength, Layout/LineLength
282
+
283
+ def identificador_do_demonstrativo
284
+ evento['evtDeslig/infoDeslig/verbasResc']&.then do |verbas|
285
+ verbas.*('dmDev').then do |demonstrativos|
286
+ raise if demonstrativos.size > 1
287
+
288
+ demonstrativos[0]['ideDmDev']
289
+ end
290
+ end
291
+ end
292
+
293
+ def categoria_do_trabalhador
294
+ admissao.categoria_do_trabalhador
295
+ end
296
+
297
+ def admissao
298
+ @admissao ||= admissoes_por_matricula[matricula_do_trabalhador]
299
+ end
300
+
301
+ def admissoes_por_matricula
302
+ empresa.admissoes_por_matricula
303
+ end
304
+
305
+ def data_de_admissao
306
+ admissao.data
307
+ end
308
+ end
309
+ end
310
+ end