teodoro 0.6.1 → 0.10.1

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 (34) hide show
  1. checksums.yaml +4 -4
  2. data/lib/teodoro.rb +3 -2
  3. data/lib/teodoro/arquivo_data.rb +87 -0
  4. data/lib/teodoro/arquivo_de_evento.rb +14 -2
  5. data/lib/teodoro/arquivo_de_evento_de_tabela.rb +32 -14
  6. data/lib/teodoro/arquivo_de_evento_nao_periodico.rb +42 -12
  7. data/lib/teodoro/arquivo_de_origem.rb +7 -7
  8. data/lib/teodoro/arquivo_xml.rb +48 -24
  9. data/lib/teodoro/console.rb +3 -1
  10. data/lib/teodoro/empresa.rb +181 -161
  11. data/lib/teodoro/leiaute/arquivo_s1000.rb +20 -24
  12. data/lib/teodoro/leiaute/arquivo_s1005.rb +12 -18
  13. data/lib/teodoro/leiaute/arquivo_s1010.rb +9 -13
  14. data/lib/teodoro/leiaute/arquivo_s1020.rb +6 -10
  15. data/lib/teodoro/leiaute/arquivo_s1030.rb +4 -8
  16. data/lib/teodoro/leiaute/arquivo_s1040.rb +3 -7
  17. data/lib/teodoro/leiaute/arquivo_s1050.rb +6 -12
  18. data/lib/teodoro/leiaute/arquivo_s1070.rb +9 -13
  19. data/lib/teodoro/leiaute/arquivo_s2190.rb +16 -17
  20. data/lib/teodoro/leiaute/arquivo_s2200.rb +161 -185
  21. data/lib/teodoro/leiaute/arquivo_s2205.rb +132 -167
  22. data/lib/teodoro/leiaute/arquivo_s2206.rb +72 -75
  23. data/lib/teodoro/leiaute/arquivo_s2230.rb +87 -91
  24. data/lib/teodoro/leiaute/arquivo_s2250.rb +36 -40
  25. data/lib/teodoro/leiaute/arquivo_s2299.rb +171 -169
  26. data/lib/teodoro/leiaute/arquivo_s2300.rb +135 -159
  27. data/lib/teodoro/leiaute/arquivo_s2306.rb +148 -151
  28. data/lib/teodoro/leiaute/arquivo_s2399.rb +123 -127
  29. data/lib/teodoro/leiaute/arquivo_s3000.rb +4 -8
  30. data/lib/teodoro/xml.rb +2 -2
  31. metadata +3 -5
  32. data/lib/teodoro/arquivo_de_evento_criador_de_arquivo_data.rb +0 -52
  33. data/lib/teodoro/arquivo_de_evento_processador_de_arquivo_data.rb +0 -30
  34. data/lib/teodoro/arquivo_de_evento_retificavel.rb +0 -23
@@ -3,14 +3,14 @@ module Teodoro
3
3
  class ArquivoS2230 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
6
- def processar
6
+ private
7
+
8
+ def criar_arquivos_data
7
9
  super
8
10
 
9
11
  registrar_inicio_do_afastamento if somente_inicio_do_afastamento?
10
12
  end
11
13
 
12
- private
13
-
14
14
  def somente_inicio_do_afastamento?
15
15
  inicio_do_afastamento? && !termino_do_afastamento?
16
16
  end
@@ -20,7 +20,7 @@ module Teodoro
20
20
  end
21
21
 
22
22
  def inicio_do_afastamento
23
- @inicio_do_afastamento ||= evento['evtAfastTemp/infoAfastamento/iniAfastamento']
23
+ @inicio_do_afastamento ||= evento['infoAfastamento/iniAfastamento']
24
24
  end
25
25
 
26
26
  def termino_do_afastamento?
@@ -28,7 +28,7 @@ module Teodoro
28
28
  end
29
29
 
30
30
  def termino_do_afastamento
31
- @termino_do_afastamento ||= evento['evtAfastTemp/infoAfastamento/fimAfastamento']
31
+ @termino_do_afastamento ||= evento['infoAfastamento/fimAfastamento']
32
32
  end
33
33
 
34
34
  def registrar_inicio_do_afastamento
@@ -50,7 +50,7 @@ module Teodoro
50
50
  def codigo_do_motivo_de_afastamento
51
51
  @codigo_do_motivo_de_afastamento ||=
52
52
  if inicio_do_afastamento?
53
- evento['evtAfastTemp/infoAfastamento/iniAfastamento/codMotAfast']
53
+ evento['infoAfastamento/iniAfastamento/codMotAfast']
54
54
  else
55
55
  contrato_de_trabalho.afastamento.codigo_do_motivo
56
56
  end
@@ -65,7 +65,7 @@ module Teodoro
65
65
  end
66
66
 
67
67
  def matricula_do_trabalhador
68
- @matricula_do_trabalhador ||= evento['evtAfastTemp/ideVinculo/matricula']
68
+ @matricula_do_trabalhador ||= evento['ideVinculo/matricula']
69
69
  end
70
70
 
71
71
  def contrato_de_emprego
@@ -88,25 +88,90 @@ module Teodoro
88
88
  empresa.contratos_de_trabalho_sem_vinculo
89
89
  end
90
90
 
91
- def noh_principal_do_evento
92
- 'evtAfastTemp'
91
+ def cpf_do_trabalhador
92
+ @cpf_do_trabalhador ||= evento['ideVinculo/cpfTrab']
93
93
  end
94
94
 
95
- def nome_do_arquivo_data
96
- @nome_do_arquivo_data ||= [
97
- "TRA[#{cpf_do_trabalhador}]",
98
- "[#{empregado? ? nome_do_arquivo_data_identif_do_empregado : nome_do_arquivo_data_identif_do_tsv}]-",
99
- termino_do_afastamento? ? 'TAF' : 'IAF',
100
- '[',
101
- inicio_do_afastamento? ? data_de_inicio_do_afastamento.delete('-') : 'SemIni',
102
- '_',
103
- termino_do_afastamento? ? data_de_termino_do_afastamento.delete('-') : 'SemFim',
104
- ']'
105
- ].join
95
+ def categoria_do_trabalhador
96
+ @categoria_do_trabalhador ||= evento['ideVinculo/codCateg']
106
97
  end
107
98
 
108
- def cpf_do_trabalhador
109
- @cpf_do_trabalhador ||= evento['evtAfastTemp/ideVinculo/cpfTrab']
99
+ def data_de_termino_do_afastamento
100
+ @data_de_termino_do_afastamento ||= termino_do_afastamento['dtTermAfast']
101
+ end
102
+
103
+ def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
104
+ [
105
+ Obj.new(
106
+ nome: [
107
+ "TRA[#{cpf_do_trabalhador}]",
108
+ "[#{empregado? ? nome_do_arquivo_data_identif_do_empregado : nome_do_arquivo_data_identif_do_tsv}]-",
109
+ termino_do_afastamento? ? 'TAF' : 'IAF',
110
+ '[',
111
+ inicio_do_afastamento? ? data_de_inicio_do_afastamento.delete('-') : 'SemIni',
112
+ '_',
113
+ termino_do_afastamento? ? data_de_termino_do_afastamento.delete('-') : 'SemFim',
114
+ ']'
115
+ ].join,
116
+ itens_do_conteudo: [
117
+ # rubocop:disable Layout/LineLength
118
+ ['ESX_CPF', cpf_do_trabalhador],
119
+ ['ESX_MATRICULA', matricula_do_trabalhador],
120
+ ['ESX_DATAADMISSAO'],
121
+ %w[ESX_SEMVINCULO 0],
122
+ ['ESX_INICIO', [data_de_inicio_do_afastamento, :data_aaaammdd]],
123
+ (['ESX_TERMINO', [data_de_termino_do_afastamento, :data_aaaammdd]] if termino_do_afastamento?),
124
+ ['IniAfastamento_DataInicioAfastamento', ([data_de_inicio_do_afastamento, :data] if inicio_do_afastamento?)],
125
+ (['FimAfastamento_DataTerminoAfastamento', [data_de_termino_do_afastamento, :data]] if termino_do_afastamento?),
126
+ ['IniAfastamento_CodMotivoAfastamento', codigo_do_motivo_de_afastamento],
127
+ ['IniAfastamento_CodMotivoAfastamento_TEXT'],
128
+ ['IniAfastamento_InfoMesmoMotivo', evento['infoAfastamento/iniAfastamento/infoMesmoMtv']],
129
+ ['IniAfastamento_TipoAcidenteTransito', evento['infoAfastamento/iniAfastamento/tpAcidTransito']],
130
+ ['IniAfastamento_TipoAcidenteTransito_TEXT'],
131
+ ['IniAfastamento_Observacao', evento['infoAfastamento/iniAfastamento/observacao']],
132
+ ['IdEventoXml', id_do_evento],
133
+ ['NrReciboEventoOriginal', numero_do_recibo],
134
+ ['IndicadorRetificacao', evento['ideEvento/indRetif']],
135
+ ['DataTerminoAfastamentoInformada', [termino_do_afastamento?, :bool]],
136
+ ['ContratoSemVinculo'],
137
+ ['CodMotivoAfastamentoRetif'],
138
+ ['TipoEventoCadastro'],
139
+ ['IdEventoAfastamento'],
140
+ (['DataFim'] if termino_do_afastamento?),
141
+ ['DataInicio'],
142
+ ['CodigoMotivo', codigo_do_motivo_de_afastamento],
143
+ ['Motivo'],
144
+ ['ExibirBotoes'],
145
+ ['CheckPreencherAcidenteTransito'],
146
+ ['DesejaIncluirInfoAtestado'],
147
+ ['DescricaoProcEmi', processo_de_emissao_do_evento],
148
+ ['VerProc', recibo['processamento/versaoAppProcessamento']],
149
+ ['IdContrato'],
150
+ ['PreencherCID'],
151
+ ['PreencherAcidenteTransito'],
152
+ ['PreencherEmpregadoCedido'],
153
+ ['PreencherMandatoSindical'],
154
+ ['SomenteLeitura'],
155
+ ['UrlRetorno'],
156
+ ['RequestVerificationToken'],
157
+ (['PreencherDataFimAfastamento'] if termino_do_afastamento?),
158
+ ['checkbox_preencher_grupo0'],
159
+ *evento.*('infoAfastamento/iniAfastamento/infoAtestado').map.with_index(1) do |atestado, seq|
160
+ [
161
+ ["IniAfastamento_ListaInfoAtestado_#{seq}_CodigoCID", atestado['codCID']],
162
+ ["IniAfastamento_ListaInfoAtestado_#{seq}_DescricaoCID"],
163
+ ["IniAfastamento_ListaInfoAtestado_#{seq}_QuantidadeDiasAfastados", atestado['qtdDiasAfast']],
164
+ ["IniAfastamento_ListaInfoAtestado_#{seq}_Emitente_NomeEmitente", atestado['emitente/nmEmit']],
165
+ ["IniAfastamento_ListaInfoAtestado_#{seq}_Emitente_IdOrgaoClasse", atestado['emitente/ideOC']],
166
+ ["IniAfastamento_ListaInfoAtestado_#{seq}_Emitente_NumeroOrgaoClasse", atestado['emitente/nrOc']],
167
+ ["IniAfastamento_ListaInfoAtestado_#{seq}_Emitente_UFOrgaoClasse", atestado['emitente/ufOC']],
168
+ ["IniAfastamento_ListaInfoAtestado_#{seq}_Emitente_DescricaoOrgaoClasse"]
169
+ ]
170
+ end.sum([])
171
+ # rubocop:enable Layout/LineLength
172
+ ].compact
173
+ )
174
+ ]
110
175
  end
111
176
 
112
177
  def nome_do_arquivo_data_identif_do_empregado
@@ -121,78 +186,9 @@ module Teodoro
121
186
  "TSV_#{categoria_do_trabalhador}_#{data_de_inicio_do_contrato_de_trabalho.delete('-')}"
122
187
  end
123
188
 
124
- def categoria_do_trabalhador
125
- @categoria_do_trabalhador ||= evento['evtAfastTemp/ideVinculo/codCateg']
126
- end
127
-
128
189
  def data_de_inicio_do_contrato_de_trabalho
129
190
  contrato_de_trabalho_sem_vinculo.data_de_inicio
130
191
  end
131
-
132
- def data_de_termino_do_afastamento
133
- @data_de_termino_do_afastamento ||= termino_do_afastamento['dtTermAfast']
134
- end
135
-
136
- # FIXME: Tales refactoring
137
- def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
138
- [
139
- # rubocop:disable Layout/LineLength
140
- ['ESX_CPF', cpf_do_trabalhador],
141
- ['ESX_MATRICULA', matricula_do_trabalhador],
142
- ['ESX_DATAADMISSAO'],
143
- %w[ESX_SEMVINCULO 0],
144
- ['ESX_INICIO', [data_de_inicio_do_afastamento, :data_aaaammdd]],
145
- (['ESX_TERMINO', [data_de_termino_do_afastamento, :data_aaaammdd]] if termino_do_afastamento?),
146
- ['IniAfastamento_DataInicioAfastamento', ([data_de_inicio_do_afastamento, :data] if inicio_do_afastamento?)],
147
- (['FimAfastamento_DataTerminoAfastamento', [data_de_termino_do_afastamento, :data]] if termino_do_afastamento?),
148
- ['IniAfastamento_CodMotivoAfastamento', codigo_do_motivo_de_afastamento],
149
- ['IniAfastamento_CodMotivoAfastamento_TEXT'],
150
- ['IniAfastamento_InfoMesmoMotivo', evento['evtAfastTemp/infoAfastamento/iniAfastamento/infoMesmoMtv']],
151
- ['IniAfastamento_TipoAcidenteTransito', evento['evtAfastTemp/infoAfastamento/iniAfastamento/tpAcidTransito']],
152
- ['IniAfastamento_TipoAcidenteTransito_TEXT'],
153
- ['IniAfastamento_Observacao', evento['evtAfastTemp/infoAfastamento/iniAfastamento/observacao']],
154
- ['IdEventoXml', id_do_evento],
155
- ['NrReciboEventoOriginal', numero_do_recibo],
156
- ['IndicadorRetificacao', evento['evtAfastTemp/ideEvento/indRetif']],
157
- ['DataTerminoAfastamentoInformada', [termino_do_afastamento?, :bool]],
158
- ['ContratoSemVinculo'],
159
- ['CodMotivoAfastamentoRetif'],
160
- ['TipoEventoCadastro'],
161
- ['IdEventoAfastamento'],
162
- (['DataFim'] if termino_do_afastamento?),
163
- ['DataInicio'],
164
- ['CodigoMotivo', codigo_do_motivo_de_afastamento],
165
- ['Motivo'],
166
- ['ExibirBotoes'],
167
- ['CheckPreencherAcidenteTransito'],
168
- ['DesejaIncluirInfoAtestado'],
169
- ['DescricaoProcEmi', processo_de_emissao_do_evento],
170
- ['VerProc', recibo['retornoEvento/processamento/versaoAppProcessamento']],
171
- ['IdContrato'],
172
- ['PreencherCID'],
173
- ['PreencherAcidenteTransito'],
174
- ['PreencherEmpregadoCedido'],
175
- ['PreencherMandatoSindical'],
176
- ['SomenteLeitura'],
177
- ['UrlRetorno'],
178
- ['RequestVerificationToken'],
179
- (['PreencherDataFimAfastamento'] if termino_do_afastamento?),
180
- ['checkbox_preencher_grupo0'],
181
- *evento.*('evtAfastTemp/infoAfastamento/iniAfastamento/infoAtestado').map.with_index(1) do |atestado, seq|
182
- [
183
- ["IniAfastamento_ListaInfoAtestado_#{seq}_CodigoCID", atestado['codCID']],
184
- ["IniAfastamento_ListaInfoAtestado_#{seq}_DescricaoCID"],
185
- ["IniAfastamento_ListaInfoAtestado_#{seq}_QuantidadeDiasAfastados", atestado['qtdDiasAfast']],
186
- ["IniAfastamento_ListaInfoAtestado_#{seq}_Emitente_NomeEmitente", atestado['emitente/nmEmit']],
187
- ["IniAfastamento_ListaInfoAtestado_#{seq}_Emitente_IdOrgaoClasse", atestado['emitente/ideOC']],
188
- ["IniAfastamento_ListaInfoAtestado_#{seq}_Emitente_NumeroOrgaoClasse", atestado['emitente/nrOc']],
189
- ["IniAfastamento_ListaInfoAtestado_#{seq}_Emitente_UFOrgaoClasse", atestado['emitente/ufOC']],
190
- ["IniAfastamento_ListaInfoAtestado_#{seq}_Emitente_DescricaoOrgaoClasse"]
191
- ]
192
- end.sum([])
193
- # rubocop:enable Layout/LineLength
194
- ].compact
195
- end
196
192
  end
197
193
  end
198
194
  end
@@ -5,21 +5,48 @@ module Teodoro
5
5
 
6
6
  private
7
7
 
8
- def noh_principal_do_evento
9
- 'evtAvPrevio'
10
- end
11
-
12
- def nome_do_arquivo_data
13
- @nome_do_arquivo_data ||=
14
- "TRA[#{cpf_do_trabalhador}][EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]-AVI"
8
+ def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
9
+ [
10
+ Obj.new(
11
+ nome: "TRA[#{cpf_do_trabalhador}][EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]-AVI",
12
+ itens_do_conteudo: [
13
+ # rubocop:disable Layout/LineLength
14
+ ['ESX_CPF', cpf_do_trabalhador],
15
+ ['ESX_MATRICULA', matricula_do_trabalhador],
16
+ %w[ESX_SEMVINCULO 0],
17
+ ['ESX_DATAADMISSAO', [data_de_admissao, :data]],
18
+ ['OperacaoAvisoPrevio'],
19
+ ['MostrarCancelamento'],
20
+ ['MostrarAvisoPrevio'],
21
+ ['IdContrato'],
22
+ ['IdCancelamentoAvisoPrevio'],
23
+ ['BloquearCodigo'],
24
+ ['BloquearAntigoPeriodoValidade'],
25
+ ['IdeVinculo_Cpf'],
26
+ ['NomeTrabalhador'],
27
+ ['IdeVinculo_Matricula', matricula_do_trabalhador],
28
+ ['InfoAvisoPrevio_DetalhamentoAvisoPrevio_TipoAvisoPrevio', evento['infoAvPrevio/detAvPrevio/tpAvPrevio']],
29
+ ['InfoAvisoPrevio_DetalhamentoAvisoPrevio_TipoAvisoPrevio_TEXT'],
30
+ ['InfoAvisoPrevio_DetalhamentoAvisoPrevio_DataAvisoPrevio', [evento['infoAvPrevio/detAvPrevio/dtAvPrv'], :data]],
31
+ ['InfoAvisoPrevio_DetalhamentoAvisoPrevio_DataPrevistaDesligamento', [evento['infoAvPrevio/detAvPrevio/dtPrevDeslig'], :data]],
32
+ ['InfoAvisoPrevio_DetalhamentoAvisoPrevio_Observacao', evento['infoAvPrevio/detAvPrevio/observacao']],
33
+ ['IdEventoXml', id_do_evento],
34
+ ['NrReciboEventoOriginal', numero_do_recibo],
35
+ ['RequestVerificationToken'],
36
+ ['DescricaoProcEmi', processo_de_emissao_do_evento],
37
+ ['VerProc', recibo['processamento/versaoAppProcessamento']]
38
+ # rubocop:enable Layout/LineLength
39
+ ]
40
+ )
41
+ ]
15
42
  end
16
43
 
17
44
  def cpf_do_trabalhador
18
- @cpf_do_trabalhador ||= evento['evtAvPrevio/ideVinculo/cpfTrab']
45
+ @cpf_do_trabalhador ||= evento['ideVinculo/cpfTrab']
19
46
  end
20
47
 
21
48
  def matricula_do_trabalhador
22
- @matricula_do_trabalhador ||= evento['evtAvPrevio/ideVinculo/matricula']
49
+ @matricula_do_trabalhador ||= evento['ideVinculo/matricula']
23
50
  end
24
51
 
25
52
  def data_de_admissao
@@ -33,37 +60,6 @@ module Teodoro
33
60
  def contratos_de_emprego
34
61
  empresa.contratos_de_emprego
35
62
  end
36
-
37
- def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/MethodLength
38
- [
39
- # rubocop:disable Layout/LineLength
40
- ['ESX_CPF', cpf_do_trabalhador],
41
- ['ESX_MATRICULA', matricula_do_trabalhador],
42
- %w[ESX_SEMVINCULO 0],
43
- ['ESX_DATAADMISSAO', [data_de_admissao, :data]],
44
- ['OperacaoAvisoPrevio'],
45
- ['MostrarCancelamento'],
46
- ['MostrarAvisoPrevio'],
47
- ['IdContrato'],
48
- ['IdCancelamentoAvisoPrevio'],
49
- ['BloquearCodigo'],
50
- ['BloquearAntigoPeriodoValidade'],
51
- ['IdeVinculo_Cpf'],
52
- ['NomeTrabalhador'],
53
- ['IdeVinculo_Matricula', matricula_do_trabalhador],
54
- ['InfoAvisoPrevio_DetalhamentoAvisoPrevio_TipoAvisoPrevio', evento['evtAvPrevio/infoAvPrevio/detAvPrevio/tpAvPrevio']],
55
- ['InfoAvisoPrevio_DetalhamentoAvisoPrevio_TipoAvisoPrevio_TEXT'],
56
- ['InfoAvisoPrevio_DetalhamentoAvisoPrevio_DataAvisoPrevio', [evento['evtAvPrevio/infoAvPrevio/detAvPrevio/dtAvPrv'], :data]],
57
- ['InfoAvisoPrevio_DetalhamentoAvisoPrevio_DataPrevistaDesligamento', [evento['evtAvPrevio/infoAvPrevio/detAvPrevio/dtPrevDeslig'], :data]],
58
- ['InfoAvisoPrevio_DetalhamentoAvisoPrevio_Observacao', evento['evtAvPrevio/infoAvPrevio/detAvPrevio/observacao']],
59
- ['IdEventoXml', id_do_evento],
60
- ['NrReciboEventoOriginal', numero_do_recibo],
61
- ['RequestVerificationToken'],
62
- ['DescricaoProcEmi', processo_de_emissao_do_evento],
63
- ['VerProc', recibo['retornoEvento/processamento/versaoAppProcessamento']]
64
- # rubocop:enable Layout/LineLength
65
- ]
66
- end
67
63
  end
68
64
  end
69
65
  end
@@ -3,14 +3,15 @@ module Teodoro
3
3
  class ArquivoS2299 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
6
- def processar
6
+ private
7
+
8
+ def criar_arquivos_data
7
9
  super
8
10
 
9
11
  registrar_desligamento
12
+ avisar_que_tem_mais_de_um_demonstrativo if mais_de_um_demontrativo?
10
13
  end
11
14
 
12
- private
13
-
14
15
  def registrar_desligamento
15
16
  contrato_de_emprego.data_de_desligamento = data_de_desligamento
16
17
  end
@@ -24,188 +25,189 @@ module Teodoro
24
25
  end
25
26
 
26
27
  def data_de_desligamento
27
- @data_de_desligamento ||= evento['evtDeslig/infoDeslig/dtDeslig']
28
+ @data_de_desligamento ||= evento['infoDeslig/dtDeslig']
28
29
  end
29
30
 
30
- def noh_principal_do_evento
31
- 'evtDeslig'
31
+ def avisar_que_tem_mais_de_um_demonstrativo
32
+ puts "\n #{Rainbow('mais de um demonstrativo (considerado apenas o primeiro)').yellow}"
32
33
  end
33
34
 
34
- def nome_do_arquivo_data
35
- @nome_do_arquivo_data ||=
36
- "TRA[#{cpf_do_trabalhador}][EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]-GER"
35
+ def mais_de_um_demontrativo?
36
+ identificadores_de_demonstrativo.size > 1
37
37
  end
38
38
 
39
- def cpf_do_trabalhador
40
- @cpf_do_trabalhador ||= evento['evtDeslig/ideVinculo/cpfTrab']
39
+ def matricula_do_trabalhador
40
+ @matricula_do_trabalhador ||= evento['ideVinculo/matricula']
41
41
  end
42
42
 
43
- def matricula_do_trabalhador
44
- @matricula_do_trabalhador ||= evento['evtDeslig/ideVinculo/matricula']
43
+ def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength
44
+ [
45
+ Obj.new(
46
+ nome: "TRA[#{cpf_do_trabalhador}][EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]-GER",
47
+ itens_do_conteudo: [
48
+ # rubocop:disable Layout/LineLength
49
+ ['ESX_CPF', cpf_do_trabalhador],
50
+ ['ESX_MATRICULA', matricula_do_trabalhador],
51
+ %w[ESX_SEMVINCULO 0],
52
+ ['ESX_DATAADMISSAO'],
53
+ ['ESX_DATADESLIGAMENTO', [data_de_desligamento, :data]],
54
+ ['ESX_INFOWEB_RESCISAO_IDEDMDEV', identificador_do_demonstrativo],
55
+ ['ESX_INFOWEB_RESCISAO_RECIBO', numero_do_recibo],
56
+ ['ESX_INFOWEB_RESCISAO_MOTIVO', evento['infoDeslig/mtvDeslig']],
57
+ ['ESX_INFOWEB_RESCISAO_MOTIVO_TEXT'],
58
+ ['IdEventoXml'],
59
+ ['NrReciboEventoOriginal'],
60
+ ['EventoAdmissao_TipoEventoEnviado'],
61
+ ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
62
+ ['RequestVerificationToken'],
63
+ ['SomenteLeitura'],
64
+ ['VisualizarDadosCadastrais'],
65
+ ['UrlRetorno'],
66
+ ['visualizar'],
67
+ ['EhVisualizacao'],
68
+ ['idContrato'],
69
+ ['IdEvento'],
70
+ ['FiltroCargo'],
71
+ ['FiltroFuncao'],
72
+ ['FiltroHorario'],
73
+ ['HorarioTela_CodigoHorarioContratual'],
74
+ ['DescricaoProcEmi', processo_de_emissao_do_evento],
75
+ ['VerProc', versao_do_aplicativo_de_processamento_do_evento],
76
+ ['cpfTrabalhador'],
77
+ ['nomeTrabalhador'],
78
+ ['TipoRegistroAdmissao'],
79
+ ['HorarioTela_Dia'],
80
+ ['NomeEstabelecimentoLocalTrabalho'],
81
+ ['EventoAdmissao_InfoTrabalhador_Cpf'],
82
+ ['EventoAdmissao_InfoTrabalhador_Nome'],
83
+ ['EventoAdmissao_InfoTrabalhador_Nis'],
84
+ ['EventoAdmissao_InfoTrabalhador_Sexo'],
85
+ ['EventoAdmissao_InfoTrabalhador_Sexo_TEXT'],
86
+ ['EventoAdmissao_InfoTrabalhador_RacaCor'],
87
+ ['EventoAdmissao_InfoTrabalhador_RacaCor_TEXT'],
88
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil'],
89
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT'],
90
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao'],
91
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
92
+ ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego'],
93
+ ['EventoAdmissao_InfoTrabalhador_NomeSocial'],
94
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio'],
95
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT'],
96
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento'],
97
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae'],
98
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai'],
99
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento'],
100
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
101
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade'],
102
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
103
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf'],
104
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
105
+ ['EventoAdmissao_EnderecoResidencialBR_Bairro'],
106
+ ['EventoAdmissao_EnderecoResidencialBR_Cep'],
107
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio'],
108
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT'],
109
+ ['EventoAdmissao_EnderecoResidencialBR_Complemento'],
110
+ ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro'],
111
+ ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro'],
112
+ ['SemNumeroLogradouroEnderecoBR'],
113
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro'],
114
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT'],
115
+ ['EventoAdmissao_EnderecoResidencialBR_Uf'],
116
+ ['EventoAdmissao_EnderecoResidencialBR_Uf_TEXT'],
117
+ ['ResideExterior'],
118
+ ['SemNumeroLogradouroEnderecoEX'],
119
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro'],
120
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada'],
121
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros'],
122
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh'],
123
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
124
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao'],
125
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao'],
126
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade'],
127
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh'],
128
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh'],
129
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
130
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps'],
131
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps'],
132
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps'],
133
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
134
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao'],
135
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc'],
136
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor'],
137
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao'],
138
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg'],
139
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor'],
140
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_DataExpedicao'],
141
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_NumeroRic'],
142
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_OrgaoEmissor'],
143
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao'],
144
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne'],
145
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor'],
146
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva'],
147
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica'],
148
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual'],
149
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental'],
150
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual'],
151
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota'],
152
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado'],
153
+ ['EventoAdmissao_Contato_TelefonePrincipal'],
154
+ ['EventoAdmissao_Contato_EmailPrincipal'],
155
+ ['EventoAdmissao_Contato_TelefoneAlternativo'],
156
+ ['EventoAdmissao_Contato_EmailAlternativo'],
157
+ ['CodigoCBO'],
158
+ ['CodigoCNAE'],
159
+ ['InfoVinculo_Matricula'],
160
+ ['InfoVinculo_TipoRegimeTrabalhista'],
161
+ ['InfoVinculo_TipoRegimePrevidenciario'],
162
+ ['InfoVinculo_InfoContrato_CodigoCategoria', categoria_do_trabalhador],
163
+ ['InfoVinculo_InfoContrato_CodigoCargo'],
164
+ ['InfoVinculo_InfoContrato_CodigoFuncao'],
165
+ ['InfoVinculo_InfoContrato_Duracao_TipoContrato'],
166
+ ['InfoVinculo_InfoContrato_Duracao_DataTermino'],
167
+ ['InfoVinculo_DataInicioAfastamento'],
168
+ ['InfoVinculo_CodigoMotivoAfastamento'],
169
+ ['InfoVinculo_InfoContrato_Remuneracao_UnidadeSalarioFixo'],
170
+ ['InfoVinculo_InfoContrato_Remuneracao_ValorSalarioFixo'],
171
+ ['InfoVinculo_InfoContrato_Remuneracao_DescricaoSalarioVariavel'],
172
+ ['InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada'],
173
+ ['InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial'],
174
+ ['InfoVinculo_InfoContrato_HorarioContratual_QuantidadedHorasSemanal'],
175
+ ['InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'],
176
+ ['InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
177
+ ['InfoVinculo_SucessaoVinculo_MatriculaAnterior'],
178
+ ['InfoVinculo_SucessaoVinculo_Observacao'],
179
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_CnpjSindicatoCategoriaProfissional'],
180
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataAdmissao', [data_de_admissao, :data]],
181
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataBase'],
182
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao'],
183
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'],
184
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'],
185
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade'],
186
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao'],
187
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada'],
188
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_DescricaoComplementar'],
189
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao'],
190
+ ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao']
191
+ # rubocop:enable Layout/LineLength
192
+ ]
193
+ )
194
+ ]
195
+ end
196
+
197
+ def cpf_do_trabalhador
198
+ @cpf_do_trabalhador ||= evento['ideVinculo/cpfTrab']
45
199
  end
46
200
 
47
201
  def data_de_admissao
48
202
  contrato_de_emprego.data_de_admissao
49
203
  end
50
204
 
51
- def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/MethodLength
52
- [
53
- # rubocop:disable Layout/LineLength
54
- ['ESX_CPF', cpf_do_trabalhador],
55
- ['ESX_MATRICULA', matricula_do_trabalhador],
56
- %w[ESX_SEMVINCULO 0],
57
- ['ESX_DATAADMISSAO'],
58
- ['ESX_DATADESLIGAMENTO', [data_de_desligamento, :data]],
59
- ['ESX_INFOWEB_RESCISAO_IDEDMDEV', identificador_do_demonstrativo],
60
- ['ESX_INFOWEB_RESCISAO_RECIBO', numero_do_recibo],
61
- ['ESX_INFOWEB_RESCISAO_MOTIVO', evento['evtDeslig/infoDeslig/mtvDeslig']],
62
- ['ESX_INFOWEB_RESCISAO_MOTIVO_TEXT'],
63
- ['IdEventoXml'],
64
- ['NrReciboEventoOriginal'],
65
- ['EventoAdmissao_TipoEventoEnviado'],
66
- ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
67
- ['RequestVerificationToken'],
68
- ['SomenteLeitura'],
69
- ['VisualizarDadosCadastrais'],
70
- ['UrlRetorno'],
71
- ['visualizar'],
72
- ['EhVisualizacao'],
73
- ['idContrato'],
74
- ['IdEvento'],
75
- ['FiltroCargo'],
76
- ['FiltroFuncao'],
77
- ['FiltroHorario'],
78
- ['HorarioTela_CodigoHorarioContratual'],
79
- ['DescricaoProcEmi', processo_de_emissao_do_evento],
80
- ['VerProc', versao_do_aplicativo_de_processamento_do_evento],
81
- ['cpfTrabalhador'],
82
- ['nomeTrabalhador'],
83
- ['TipoRegistroAdmissao'],
84
- ['HorarioTela_Dia'],
85
- ['NomeEstabelecimentoLocalTrabalho'],
86
- ['EventoAdmissao_InfoTrabalhador_Cpf'],
87
- ['EventoAdmissao_InfoTrabalhador_Nome'],
88
- ['EventoAdmissao_InfoTrabalhador_Nis'],
89
- ['EventoAdmissao_InfoTrabalhador_Sexo'],
90
- ['EventoAdmissao_InfoTrabalhador_Sexo_TEXT'],
91
- ['EventoAdmissao_InfoTrabalhador_RacaCor'],
92
- ['EventoAdmissao_InfoTrabalhador_RacaCor_TEXT'],
93
- ['EventoAdmissao_InfoTrabalhador_EstadoCivil'],
94
- ['EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT'],
95
- ['EventoAdmissao_InfoTrabalhador_GrauInstrucao'],
96
- ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
97
- ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego'],
98
- ['EventoAdmissao_InfoTrabalhador_NomeSocial'],
99
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio'],
100
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT'],
101
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento'],
102
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae'],
103
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai'],
104
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento'],
105
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
106
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade'],
107
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
108
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf'],
109
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
110
- ['EventoAdmissao_EnderecoResidencialBR_Bairro'],
111
- ['EventoAdmissao_EnderecoResidencialBR_Cep'],
112
- ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio'],
113
- ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT'],
114
- ['EventoAdmissao_EnderecoResidencialBR_Complemento'],
115
- ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro'],
116
- ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro'],
117
- ['SemNumeroLogradouroEnderecoBR'],
118
- ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro'],
119
- ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT'],
120
- ['EventoAdmissao_EnderecoResidencialBR_Uf'],
121
- ['EventoAdmissao_EnderecoResidencialBR_Uf_TEXT'],
122
- ['ResideExterior'],
123
- ['SemNumeroLogradouroEnderecoEX'],
124
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro'],
125
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada'],
126
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros'],
127
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh'],
128
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
129
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao'],
130
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao'],
131
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade'],
132
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh'],
133
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh'],
134
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
135
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps'],
136
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps'],
137
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps'],
138
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
139
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao'],
140
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc'],
141
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor'],
142
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao'],
143
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg'],
144
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor'],
145
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_DataExpedicao'],
146
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_NumeroRic'],
147
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_OrgaoEmissor'],
148
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao'],
149
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne'],
150
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor'],
151
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva'],
152
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica'],
153
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual'],
154
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental'],
155
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual'],
156
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota'],
157
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado'],
158
- ['EventoAdmissao_Contato_TelefonePrincipal'],
159
- ['EventoAdmissao_Contato_EmailPrincipal'],
160
- ['EventoAdmissao_Contato_TelefoneAlternativo'],
161
- ['EventoAdmissao_Contato_EmailAlternativo'],
162
- ['CodigoCBO'],
163
- ['CodigoCNAE'],
164
- ['InfoVinculo_Matricula'],
165
- ['InfoVinculo_TipoRegimeTrabalhista'],
166
- ['InfoVinculo_TipoRegimePrevidenciario'],
167
- ['InfoVinculo_InfoContrato_CodigoCategoria', categoria_do_trabalhador],
168
- ['InfoVinculo_InfoContrato_CodigoCargo'],
169
- ['InfoVinculo_InfoContrato_CodigoFuncao'],
170
- ['InfoVinculo_InfoContrato_Duracao_TipoContrato'],
171
- ['InfoVinculo_InfoContrato_Duracao_DataTermino'],
172
- ['InfoVinculo_DataInicioAfastamento'],
173
- ['InfoVinculo_CodigoMotivoAfastamento'],
174
- ['InfoVinculo_InfoContrato_Remuneracao_UnidadeSalarioFixo'],
175
- ['InfoVinculo_InfoContrato_Remuneracao_ValorSalarioFixo'],
176
- ['InfoVinculo_InfoContrato_Remuneracao_DescricaoSalarioVariavel'],
177
- ['InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada'],
178
- ['InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial'],
179
- ['InfoVinculo_InfoContrato_HorarioContratual_QuantidadedHorasSemanal'],
180
- ['InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'],
181
- ['InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
182
- ['InfoVinculo_SucessaoVinculo_MatriculaAnterior'],
183
- ['InfoVinculo_SucessaoVinculo_Observacao'],
184
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_CnpjSindicatoCategoriaProfissional'],
185
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataAdmissao', [data_de_admissao, :data]],
186
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataBase'],
187
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao'],
188
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'],
189
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'],
190
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade'],
191
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao'],
192
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada'],
193
- ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_DescricaoComplementar'],
194
- ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao'],
195
- ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao']
196
- # rubocop:enable Layout/LineLength
197
- ]
205
+ def identificador_do_demonstrativo
206
+ @identificador_do_demonstrativo ||= identificadores_de_demonstrativo.first
198
207
  end
199
208
 
200
- def identificador_do_demonstrativo
201
- evento['evtDeslig/infoDeslig/verbasResc']&.then do |verbas|
202
- verbas.*('dmDev').then do |demonstrativos|
203
- puts "\n #{Rainbow('mais de um demonstrativo (considerado apenas o primeiro)').yellow}" if
204
- demonstrativos.size > 1 # yellow
205
-
206
- demonstrativos[0]['ideDmDev']
207
- end
208
- end
209
+ def identificadores_de_demonstrativo
210
+ @identificadores_de_demonstrativo ||= evento.*('infoDeslig/verbasResc/dmDev').map { _1['ideDmDev'] }
209
211
  end
210
212
 
211
213
  def categoria_do_trabalhador