teodoro 0.50.0 → 0.51.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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'],