teodoro 0.50.0 → 0.51.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.
@@ -5,7 +5,7 @@ module Teodoro
5
5
 
6
6
  private
7
7
 
8
- def criar_arquivos_data
8
+ def salvar_arquivos_data
9
9
  super
10
10
 
11
11
  registrar_admissao
@@ -131,8 +131,7 @@ module Teodoro
131
131
  evento['vinculo/afastamento']&.then do |afastamento|
132
132
  Obj.new(
133
133
  data_de_inicio: afastamento['dtIniAfast'],
134
- codigo_do_motivo: afastamento['codMotAfast'],
135
- numero_do_recibo: numero_do_recibo
134
+ codigo_do_motivo: afastamento['codMotAfast']
136
135
  )
137
136
  end
138
137
  end
@@ -140,6 +139,7 @@ module Teodoro
140
139
  def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
141
140
  [
142
141
  Obj.new(
142
+ operacao: :inclusao,
143
143
  nome: [
144
144
  'TRA',
145
145
  "[#{trabalhador.cpf}]",
@@ -167,7 +167,7 @@ module Teodoro
167
167
  ['EventoAdmissao_InfoTrabalhador_RacaCor', trabalhador.raca_cor],
168
168
  ['EventoAdmissao_InfoTrabalhador_EstadoCivil', trabalhador.estado_civil],
169
169
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', trabalhador.grau_de_instrucao],
170
- ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego', evento['trabalhador/indPriEmpr']],
170
+ ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego', admissao.primeiro_emprego_do_trabalhador],
171
171
  ['EventoAdmissao_InfoTrabalhador_NomeSocial', trabalhador.nome_social],
172
172
  ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.nascimento.codigo_do_municipio],
173
173
  ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.nascimento.codigo_do_municipio]],
@@ -191,7 +191,7 @@ module Teodoro
191
191
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', trabalhador.casado_com_brasileiro],
192
192
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', trabalhador.data_de_chegada_ao_brasil, :data],
193
193
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', trabalhador.filhos_brasileiros],
194
- leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
194
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao', leiaute.condicao_de_ingresso_no_brasil_do_trabalhador],
195
195
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', trabalhador.cnh.categoria],
196
196
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', trabalhador.cnh.data_da_expedicao, :data],
197
197
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', trabalhador.cnh.data_da_primeira_habilitacao, :data],
@@ -260,23 +260,23 @@ module Teodoro
260
260
  ['EventoAdmissao_InfoVinculo_Matricula', evento['vinculo/matricula']],
261
261
  ['EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario', admissao.tipo_de_regime_previdenciario],
262
262
  ['EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista', admissao.tipo_de_regime_trabalhista],
263
- leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'],
264
- leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'],
265
- leiaute['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo'],
266
- leiaute['EventoAdmissao_InfoVinculo_InfoContrato_CodigoFuncao'],
263
+ ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS', leiaute.opcao_pelo_fgts],
264
+ ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS', leiaute.data_de_opcao_pelo_fgts, :data],
265
+ ['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo', leiaute.codigo_do_cargo],
266
+ ['EventoAdmissao_InfoVinculo_InfoContrato_CodigoFuncao', leiaute.codigo_da_funcao],
267
267
  ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_DataTermino', evento['vinculo/infoContrato/duracao/dtTerm'], :data],
268
268
  ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_ClausulaAssecuratoria', evento['vinculo/infoContrato/duracao/clauAssec']],
269
269
  ['EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao', evento['vinculo/infoContrato/localTrabalho/localTrabGeral/tpInsc']],
270
270
  ['EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao', evento['vinculo/infoContrato/localTrabalho/localTrabGeral/nrInsc']],
271
271
  ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_QuantidadeHorasSemanal', evento['vinculo/infoContrato/horContratual/qtdHrsSem'], :decimal],
272
- leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'],
273
- leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoJornada'],
272
+ ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada', leiaute.horario.tipo_de_jornada],
273
+ ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoJornada', leiaute.horario.descricao_da_jornada],
274
274
  ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial', evento['vinculo/infoContrato/horContratual/tmpParc']],
275
275
  *([['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_HorarioNoturno', evento['vinculo/infoContrato/horContratual/horNoturno']]] if leiaute_simplificado?),
276
276
  ['EventoAdmissao_InfoVinculo_DataInicioAfastamento', evento['vinculo/afastamento/dtIniAfast'], :data],
277
277
  ['EventoAdmissao_InfoVinculo_CodigoMotivoAfastamento', evento['vinculo/afastamento/codMotAfast']],
278
278
  ['EventoAdmissao_InfoVinculo_SucessaoVinculo_DataTransferencia', evento['vinculo/sucessaoVinc/dtTransf'], :data],
279
- leiaute['EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
279
+ ['EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior', leiaute.cnpj_do_empregador_anterior],
280
280
  ['EventoAdmissao_InfoVinculo_SucessaoVinculo_MatriculaAnterior', evento['vinculo/sucessaoVinc/matricAnt']],
281
281
  *(
282
282
  if leiaute_simplificado?
@@ -289,6 +289,99 @@ module Teodoro
289
289
  )
290
290
  # rubocop:enable Layout/LineLength
291
291
  ]
292
+ ),
293
+ Obj.new(
294
+ operacao: :inclusao,
295
+ nome: [
296
+ 'TRA',
297
+ "[#{trabalhador.cpf}]",
298
+ "[EPG_#{admissao.matricula_do_trabalhador}_#{admissao.data_de_admissao.delete('-')}]",
299
+ '-GER'
300
+ ].join,
301
+ itens_do_conteudo: [
302
+ # rubocop:disable Layout/LineLength
303
+ ['ESX_CPF', trabalhador.cpf],
304
+ ['ESX_MATRICULA', admissao.matricula_do_trabalhador],
305
+ %w[ESX_SEMVINCULO 0],
306
+ ['ESX_DATAADMISSAO', admissao.data_de_admissao, :data],
307
+ ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
308
+ ['DescricaoProcEmi', processo_de_emissao_do_evento],
309
+ ['VerProc', versao_do_processo_de_emissao_do_evento],
310
+ ['EventoAdmissao_InfoTrabalhador_Nome', trabalhador.nome],
311
+ ['EventoAdmissao_InfoTrabalhador_Nis', trabalhador.nis],
312
+ ['EventoAdmissao_InfoTrabalhador_Sexo', trabalhador.sexo],
313
+ ['EventoAdmissao_InfoTrabalhador_RacaCor', trabalhador.raca_cor],
314
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil', trabalhador.estado_civil],
315
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', trabalhador.grau_de_instrucao],
316
+ ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego', admissao.primeiro_emprego_do_trabalhador],
317
+ ['EventoAdmissao_InfoTrabalhador_NomeSocial', trabalhador.nome_social],
318
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.nascimento.codigo_do_municipio],
319
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.nascimento.codigo_do_municipio]],
320
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', trabalhador.nascimento.data, :data],
321
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', trabalhador.nascimento.nome_da_mae],
322
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', trabalhador.nascimento.nome_do_pai],
323
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', trabalhador.nascimento.pais],
324
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', trabalhador.pais_de_nacionalidade],
325
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.nascimento.uf],
326
+ ['EventoAdmissao_EnderecoResidencialBR_Bairro', trabalhador.endereco.bairro],
327
+ ['EventoAdmissao_EnderecoResidencialBR_Cep', trabalhador.endereco.cep],
328
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio', trabalhador.endereco.codigo_do_municipio],
329
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT', Municipios[trabalhador.endereco.codigo_do_municipio]],
330
+ ['EventoAdmissao_EnderecoResidencialBR_Complemento', trabalhador.endereco.complemento],
331
+ ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro', trabalhador.endereco.logradouro],
332
+ ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro', trabalhador.endereco.numero],
333
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro', trabalhador.endereco.tipo_de_logradouro],
334
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT', trabalhador.endereco.tipo_de_logradouro.then { "#{_1} - #{TiposDeLogradouro[_1]}" }],
335
+ ['EventoAdmissao_EnderecoResidencialBR_Uf', trabalhador.endereco.uf],
336
+ ['ResideExterior', trabalhador.reside_no_exterior?, :bool],
337
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', trabalhador.casado_com_brasileiro],
338
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', trabalhador.data_de_chegada_ao_brasil, :data],
339
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', trabalhador.filhos_brasileiros],
340
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', trabalhador.cnh.categoria],
341
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', trabalhador.cnh.data_da_expedicao, :data],
342
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', trabalhador.cnh.data_da_primeira_habilitacao, :data],
343
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', trabalhador.cnh.data_de_validade, :data],
344
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', trabalhador.cnh.numero_do_registro],
345
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', trabalhador.cnh.uf_do_emissor],
346
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', trabalhador.ctps.numero],
347
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', trabalhador.ctps.serie],
348
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', trabalhador.ctps.uf],
349
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', trabalhador.oc.data_da_expedicao, :data],
350
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', trabalhador.oc.numero],
351
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', trabalhador.oc.orgao_emissor],
352
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', trabalhador.rg.data_da_expedicao, :data],
353
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', trabalhador.rg.numero],
354
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', trabalhador.rg.orgao_emissor],
355
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_DataExpedicao', trabalhador.ric.data_da_expedicao, :data],
356
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_NumeroRic', trabalhador.ric.numero],
357
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_OrgaoEmissor', trabalhador.ric.orgao_emissor],
358
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao', trabalhador.rne.data_da_expedicao, :data],
359
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne', trabalhador.rne.numero],
360
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor', trabalhador.rne.orgao_emissor],
361
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', trabalhador.deficiencia.auditiva],
362
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', trabalhador.deficiencia.fisica],
363
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', trabalhador.deficiencia.intelectual],
364
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', trabalhador.deficiencia.mental],
365
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', trabalhador.deficiencia.visual],
366
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota', trabalhador.deficiencia.preenche_cota_de_pessoas_com_deficiencia],
367
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', trabalhador.deficiencia.reabilitado_ou_readaptado],
368
+ ['EventoAdmissao_Contato_TelefonePrincipal', trabalhador.contato.fone_principal],
369
+ ['EventoAdmissao_Contato_EmailPrincipal', trabalhador.contato.email_principal],
370
+ ['EventoAdmissao_Contato_TelefoneAlternativo', trabalhador.contato.fone_alternativo],
371
+ ['EventoAdmissao_Contato_EmailAlternativo', trabalhador.contato.email_alternativo],
372
+ ['InfoVinculo_Matricula', admissao.matricula_do_trabalhador],
373
+ ['InfoVinculo_TipoRegimeTrabalhista', admissao.tipo_de_regime_trabalhista],
374
+ ['InfoVinculo_TipoRegimePrevidenciario', admissao.tipo_de_regime_previdenciario],
375
+ ['InfoVinculo_InfoContrato_CodigoCategoria', admissao.categoria_do_trabalhador],
376
+ ['InfoVinculo_InfoContrato_Duracao_TipoContrato', admissao.duracao.tipo_de_contrato],
377
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataAdmissao', admissao.data_de_admissao, :data],
378
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao', admissao.indicativo_de_admissao],
379
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS', leiaute.data_de_opcao_pelo_fgts, :data],
380
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS', leiaute.opcao_pelo_fgts],
381
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade', admissao.natureza_da_atividade],
382
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao', admissao.tipo_de_admissao]
383
+ # rubocop:enable Layout/LineLength
384
+ ]
292
385
  )
293
386
  ]
294
387
  end
@@ -306,39 +399,22 @@ module Teodoro
306
399
  end
307
400
  end
308
401
 
309
- module Leiaute
310
- private
311
-
312
- attr_reader :evento
313
-
314
- public
315
-
316
- def [](chave)
317
- dados_do_arquivo_data_por_chave[chave]
318
- end
319
-
320
- private
321
-
322
- def dados_do_arquivo_data_por_chave
323
- @dados_do_arquivo_data_por_chave ||= dados_do_arquivo_data.to_h { |item| [item.first, item] }
324
- end
325
- end
326
-
327
402
  class Leiaute2
328
- include Leiaute
329
-
330
- private
331
-
332
403
  def initialize(evento)
333
404
  @evento = evento
334
405
  end
335
406
 
336
- public
337
-
338
407
  def condicao_de_ingresso_no_brasil_do_trabalhador
339
408
  @condicao_de_ingresso_no_brasil_do_trabalhador ||= evento['trabalhador/trabEstrangeiro/classTrabEstrang']
340
409
  end
341
410
 
411
+ def horario
412
+ @horario ||= Obj.new(
413
+ tipo_de_jornada: evento['vinculo/infoContrato/horContratual/tpJornada'],
414
+ descricao_da_jornada: evento['vinculo/infoContrato/horContratual/dscTpJorn']
415
+ )
416
+ end
417
+
342
418
  def opcao_pelo_fgts
343
419
  @opcao_pelo_fgts ||= evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/opcFGTS']
344
420
  end
@@ -347,63 +423,29 @@ module Teodoro
347
423
  @data_de_opcao_pelo_fgts ||= evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/dtOpcFGTS']
348
424
  end
349
425
 
350
- private
426
+ def codigo_do_cargo
427
+ @codigo_do_cargo ||= evento['vinculo/infoContrato/codCargo']
428
+ end
351
429
 
352
- def dados_do_arquivo_data # rubocop:disable Metrics/MethodLength
353
- [
354
- # rubocop:disable Layout/LineLength
355
- [
356
- 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
357
- condicao_de_ingresso_no_brasil_do_trabalhador
358
- ],
359
- [
360
- 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada',
361
- evento['vinculo/infoContrato/horContratual/tpJornada']
362
- ],
363
- [
364
- 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoJornada',
365
- evento['vinculo/infoContrato/horContratual/dscTpJorn']
366
- ],
367
- [
368
- 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS',
369
- opcao_pelo_fgts
370
- ],
371
- [
372
- 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS',
373
- data_de_opcao_pelo_fgts,
374
- :data
375
- ],
376
- [
377
- 'EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior',
378
- evento['vinculo/sucessaoVinc/cnpjEmpregAnt']
379
- ],
380
- [
381
- 'EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo',
382
- evento['vinculo/infoContrato/codCargo']
383
- ],
384
- [
385
- 'EventoAdmissao_InfoVinculo_InfoContrato_CodigoFuncao',
386
- evento['vinculo/infoContrato/codFuncao']
387
- ]
388
- # rubocop:enable Layout/LineLength
389
- ]
430
+ def codigo_da_funcao
431
+ @codigo_da_funcao ||= evento['vinculo/infoContrato/codFuncao']
390
432
  end
391
- end
392
433
 
393
- class LeiauteSimplificado
394
- include Leiaute
434
+ def cnpj_do_empregador_anterior
435
+ @cnpj_do_empregador_anterior ||= evento['vinculo/sucessaoVinc/cnpjEmpregAnt']
436
+ end
395
437
 
396
438
  private
397
439
 
440
+ attr_reader :evento
441
+ end
442
+
443
+ class LeiauteSimplificado
398
444
  def initialize(empresa:, evento:)
399
445
  @empresa = empresa
400
446
  @evento = evento
401
447
  end
402
448
 
403
- attr_reader :empresa
404
-
405
- public
406
-
407
449
  def condicao_de_ingresso_no_brasil_do_trabalhador
408
450
  @condicao_de_ingresso_no_brasil_do_trabalhador ||=
409
451
  evento['trabalhador/trabImig']&.then do |imigrante|
@@ -413,10 +455,38 @@ module Teodoro
413
455
  end
414
456
  end
415
457
 
458
+ def horario
459
+ @horario ||= Obj.new(
460
+ tipo_de_jornada: evento['vinculo/infoContrato/horContratual/tpJornada']
461
+ .then { %w[2 3].include?(_1) ? _1 : 9 },
462
+ descricao_da_jornada: evento['vinculo/infoContrato/horContratual/dscJorn']
463
+ )
464
+ end
465
+
416
466
  def opcao_pelo_fgts
417
467
  @opcao_pelo_fgts ||= optante_pelo_fgts? ? 1 : 2
418
468
  end
419
469
 
470
+ def data_de_opcao_pelo_fgts
471
+ @data_de_opcao_pelo_fgts ||= evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/dtOpcFGTS']
472
+ end
473
+
474
+ def codigo_do_cargo
475
+ cargo&.codigo
476
+ end
477
+
478
+ def codigo_da_funcao
479
+ funcao&.codigo
480
+ end
481
+
482
+ def cnpj_do_empregador_anterior
483
+ @cnpj_do_empregador_anterior ||= evento['vinculo/sucessaoVinc/nrInsc']
484
+ end
485
+
486
+ private
487
+
488
+ attr_reader :empresa, :evento
489
+
420
490
  def optante_pelo_fgts?
421
491
  data_de_admissao >= (empregado_domestico? ? '2015-10-01' : '1988-10-05') ||
422
492
  evento['vinculo/infoRegimeTrab/infoCeletista/FGTS']
@@ -434,56 +504,6 @@ module Teodoro
434
504
  evento['vinculo/infoContrato/codCateg']
435
505
  end
436
506
 
437
- def data_de_opcao_pelo_fgts
438
- @data_de_opcao_pelo_fgts ||= evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/dtOpcFGTS']
439
- end
440
-
441
- private
442
-
443
- def dados_do_arquivo_data # rubocop:disable Metrics/MethodLength
444
- [
445
- # rubocop:disable Layout/LineLength
446
- [
447
- 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
448
- condicao_de_ingresso_no_brasil_do_trabalhador
449
- ],
450
- [
451
- 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada',
452
- evento['vinculo/infoContrato/horContratual/tpJornada'].then { %w[2 3].include?(_1) ? _1 : 9 }
453
- ],
454
- [
455
- 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoJornada',
456
- evento['vinculo/infoContrato/horContratual/dscJorn']
457
- ],
458
- [
459
- 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS',
460
- opcao_pelo_fgts
461
- ],
462
- [
463
- 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS',
464
- data_de_opcao_pelo_fgts,
465
- :data
466
- ],
467
- [
468
- 'EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior',
469
- evento['vinculo/sucessaoVinc/nrInsc']
470
- ],
471
- [
472
- 'EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo',
473
- codigo_do_cargo
474
- ],
475
- [
476
- 'EventoAdmissao_InfoVinculo_InfoContrato_CodigoFuncao',
477
- codigo_da_funcao
478
- ]
479
- # rubocop:enable Layout/LineLength
480
- ]
481
- end
482
-
483
- def codigo_do_cargo
484
- cargo&.codigo
485
- end
486
-
487
507
  def cargo
488
508
  empresa.cargos_gerados[
489
509
  nome: evento['vinculo/infoContrato/nmCargo'],
@@ -491,10 +511,6 @@ module Teodoro
491
511
  ]
492
512
  end
493
513
 
494
- def codigo_da_funcao
495
- funcao&.codigo
496
- end
497
-
498
514
  def funcao
499
515
  empresa.funcoes_geradas[
500
516
  nome: evento['vinculo/infoContrato/nmFuncao'],