teodoro 0.9.0 → 0.10.0

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