teodoro 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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