teodoro 0.31.0 → 0.34.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec28939e9522334ae00eb19c0156388e29edd1c4a856ff607b02b7d953f5b46a
4
- data.tar.gz: b009fba6a926c16a29fe08cbc71512fdc65dd44d79390abe5d72c7f7082f0508
3
+ metadata.gz: 362bd430629bbdfd7dcac333707b1e63d9cdf8c70e94d158736ec15f632747a5
4
+ data.tar.gz: 8c9e1e6786b99817a96071d1eb18afa06ca218f791b946a88c2c24876efa3786
5
5
  SHA512:
6
- metadata.gz: d27dbfa88d752a9e9d89158d35d80de1a110bea2c15775b2c611f2812dc6e38a7c5532a1a207bd3c0010940367b085e9b87c15ab7803aafe3ebe0ea814f73dab
7
- data.tar.gz: c5c2037380abb649596412796814652e14286a7ceeb48f1c8cd5d26cb12620972b0b31a7e042a60e9deef9fd9a5c87a2c72a209ad8f1fa428ea27939caa11626
6
+ metadata.gz: 16f6481ca7a99b5620ce232c5f01585184768a8128c8997474a3dc445547fab9a3017a4b69b304bc3300bfbaf51d2c2c4a08d68e2ffae6ec66b5cf5836bd32c2
7
+ data.tar.gz: c9b526568684505334a02652de60ca1d8ae777a4fd72335a226a8802ea3d2a8a381eff706c067e47e2e83ba49f0cbf1b992ab578ddacd707482a51602d1ec479
data/lib/teodoro.rb CHANGED
@@ -12,7 +12,7 @@ require_relative 'teodoro/empresa'
12
12
  require_relative 'teodoro/obj'
13
13
 
14
14
  module Teodoro
15
- VERSION = '0.31.0'.freeze
15
+ VERSION = '0.34.0'.freeze
16
16
 
17
17
  CBOs = __FILE__
18
18
  .then { File.dirname(_1) }
@@ -22,6 +22,7 @@ require_relative 'leiaute/arquivo_s2300'
22
22
  require_relative 'leiaute/arquivo_s2306'
23
23
  require_relative 'leiaute/arquivo_s2399'
24
24
  require_relative 'leiaute/arquivo_s3000'
25
+ require_relative 'leiaute_simplificado'
25
26
  require_relative 'xml'
26
27
 
27
28
  module Teodoro
@@ -41,7 +41,7 @@ module Teodoro
41
41
  ['DadosRubrica_Natureza', evento['infoRubrica/*/dadosRubrica/natRubr']],
42
42
  ['DadosRubrica_TipoRubrica', evento['infoRubrica/*/dadosRubrica/tpRubr']],
43
43
  ['DadosRubrica_CodigoIncidenciaPrevidencia', evento['infoRubrica/*/dadosRubrica/codIncCP']],
44
- de_acordo_com_a_versao_do_leiaute['DadosRubrica_CodigoIncidenciaIR'],
44
+ leiaute['DadosRubrica_CodigoIncidenciaIR'],
45
45
  ['DadosRubrica_CodigoIncidenciaFGTS', evento['infoRubrica/*/dadosRubrica/codIncFGTS']],
46
46
  ['DadosRubrica_CodigoIncidenciaSindical', evento['infoRubrica/*/dadosRubrica/codIncSIND']],
47
47
  ['IdEventoXml', id_do_evento],
@@ -55,8 +55,8 @@ module Teodoro
55
55
  ]
56
56
  end
57
57
 
58
- def de_acordo_com_a_versao_do_leiaute # rubocop:disable Metrics/MethodLength
59
- @de_acordo_com_a_versao_do_leiaute ||=
58
+ def leiaute # rubocop:disable Metrics/MethodLength
59
+ @leiaute ||=
60
60
  (
61
61
  if leiaute_simplificado?
62
62
  [
@@ -11,8 +11,8 @@ module Teodoro
11
11
  nome: "PRE[#{cpf_do_trabalhador}]",
12
12
  itens_do_conteudo: [
13
13
  ['NrRecibo', recibo['recibo/nrRecibo']],
14
- ['CPF', evento['infoRegPrelim/cpfTrab']],
15
- ['Nome'],
14
+ ['CPF', cpf_do_trabalhador],
15
+ ['Nome', cpf_do_trabalhador.then { "#{_1[0..2]}.#{_1[3..5]}.#{_1[6..8]}-#{_1[9..10]}" }],
16
16
  ['DataNascimento', evento['infoRegPrelim/dtNascto'], :data],
17
17
  ['DataAdmissao', evento['infoRegPrelim/dtAdm'], :data],
18
18
  ['IdEvento', id_do_evento]
@@ -22,7 +22,7 @@ module Teodoro
22
22
  end
23
23
 
24
24
  def cpf_do_trabalhador
25
- evento['infoRegPrelim/cpfTrab']
25
+ @cpf_do_trabalhador ||= evento['infoRegPrelim/cpfTrab']
26
26
  end
27
27
  end
28
28
  end
@@ -29,8 +29,8 @@ module Teodoro
29
29
  tipo_de_admissao: evento['vinculo/infoRegimeTrab/infoCeletista/tpAdmissao'],
30
30
  indicativo_de_admissao: evento['vinculo/infoRegimeTrab/infoCeletista/indAdmissao'],
31
31
  natureza_da_atividade: evento['vinculo/infoRegimeTrab/infoCeletista/natAtividade'],
32
- opcao_pelo_fgts: de_acordo_com_a_versao_do_leiaute.opcao_pelo_fgts,
33
- data_de_opcao_pelo_fgts: de_acordo_com_a_versao_do_leiaute.data_de_opcao_pelo_fgts,
32
+ opcao_pelo_fgts: leiaute.opcao_pelo_fgts,
33
+ data_de_opcao_pelo_fgts: leiaute.data_de_opcao_pelo_fgts,
34
34
  categoria_do_trabalhador: evento['vinculo/infoContrato/codCateg'],
35
35
  duracao: Obj.new(tipo_de_contrato: evento['vinculo/infoContrato/duracao/tpContr']),
36
36
  recibo: numero_do_recibo
@@ -47,13 +47,15 @@ module Teodoro
47
47
  estado_civil: evento['trabalhador/estCiv'],
48
48
  grau_de_instrucao: evento['trabalhador/grauInstr'],
49
49
  nome_social: evento['trabalhador/nmSoc'],
50
- data_de_nascimento: evento['trabalhador/nascimento/dtNascto'],
51
- pais_de_nascimento: evento['trabalhador/nascimento/paisNascto'],
52
50
  pais_de_nacionalidade: evento['trabalhador/nascimento/paisNac'],
53
- codigo_do_municipio_de_nascimento: evento['trabalhador/nascimento/codMunic'],
54
- uf_de_nascimento: evento['trabalhador/nascimento/uf'],
55
- nome_da_mae: evento['trabalhador/nascimento/nmMae'],
56
- nome_do_pai: evento['trabalhador/nascimento/nmPai'],
51
+ nascimento: Obj.new(
52
+ data: evento['trabalhador/nascimento/dtNascto'],
53
+ pais: evento['trabalhador/nascimento/paisNascto'],
54
+ codigo_do_municipio: evento['trabalhador/nascimento/codMunic'],
55
+ uf: evento['trabalhador/nascimento/uf'],
56
+ nome_da_mae: evento['trabalhador/nascimento/nmMae'],
57
+ nome_do_pai: evento['trabalhador/nascimento/nmPai']
58
+ ),
57
59
  reside_no_exterior?: evento['trabalhador/endereco/exterior'],
58
60
  endereco: Obj.new(
59
61
  tipo_de_logradouro: evento['trabalhador/endereco/brasil/tpLograd'],
@@ -66,8 +68,9 @@ module Teodoro
66
68
  uf: evento['trabalhador/endereco/brasil/uf']
67
69
  ),
68
70
  estrangeiro?: evento['trabalhador/trabEstrangeiro'],
69
- casado_com_brasileiro: evento['trabalhador/trabEstrangeiro/casadoBr'],
70
71
  data_de_chegada_ao_brasil: evento['trabalhador/trabEstrangeiro/dtChegada'],
72
+ condicao_de_ingresso_no_brasil: leiaute.condicao_de_ingresso_no_brasil_do_trabalhador,
73
+ casado_com_brasileiro: evento['trabalhador/trabEstrangeiro/casadoBr'],
71
74
  filhos_brasileiros: evento['trabalhador/trabEstrangeiro/filhosBr'],
72
75
  ctps: Obj.new(
73
76
  numero: evento['trabalhador/documentos/CTPS/nrCtps'],
@@ -179,16 +182,16 @@ module Teodoro
179
182
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
180
183
  ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego', evento['trabalhador/indPriEmpr']],
181
184
  ['EventoAdmissao_InfoTrabalhador_NomeSocial', trabalhador.nome_social],
182
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.codigo_do_municipio_de_nascimento],
183
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.codigo_do_municipio_de_nascimento]],
184
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', trabalhador.data_de_nascimento, :data],
185
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', trabalhador.nome_da_mae],
186
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', trabalhador.nome_do_pai],
187
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', trabalhador.pais_de_nascimento],
185
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.nascimento.codigo_do_municipio],
186
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.nascimento.codigo_do_municipio]],
187
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', trabalhador.nascimento.data, :data],
188
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', trabalhador.nascimento.nome_da_mae],
189
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', trabalhador.nascimento.nome_do_pai],
190
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', trabalhador.nascimento.pais],
188
191
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
189
192
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', trabalhador.pais_de_nacionalidade],
190
193
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
191
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.uf_de_nascimento],
194
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.nascimento.uf],
192
195
  ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
193
196
  ['EventoAdmissao_EnderecoResidencialBR_Bairro', trabalhador.endereco.bairro],
194
197
  ['EventoAdmissao_EnderecoResidencialBR_Cep', trabalhador.endereco.cep],
@@ -207,7 +210,7 @@ module Teodoro
207
210
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', trabalhador.casado_com_brasileiro],
208
211
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', trabalhador.data_de_chegada_ao_brasil, :data],
209
212
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', trabalhador.filhos_brasileiros],
210
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
213
+ leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
211
214
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', trabalhador.cnh.categoria],
212
215
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
213
216
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', trabalhador.cnh.data_da_expedicao, :data],
@@ -281,22 +284,22 @@ module Teodoro
281
284
  ['EventoAdmissao_InfoVinculo_Matricula', evento['vinculo/matricula']],
282
285
  ['EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario', admissao.tipo_de_regime_previdenciario],
283
286
  ['EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista', admissao.tipo_de_regime_trabalhista],
284
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'],
285
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'],
286
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo'],
287
+ leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'],
288
+ leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'],
289
+ leiaute['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo'],
287
290
  ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_DataTermino', evento['vinculo/infoContrato/duracao/dtTerm'], :data],
288
291
  ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_ClausulaAssecuratoria', evento['vinculo/infoContrato/duracao/clauAssec']],
289
292
  ['EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao', evento['vinculo/infoContrato/localTrabalho/localTrabGeral/tpInsc']],
290
293
  ['EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao', evento['vinculo/infoContrato/localTrabalho/localTrabGeral/nrInsc']],
291
294
  ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_QuantidadedHorasSemanal', evento['vinculo/infoContrato/horContratual/qtdHrsSem'], :decimal],
292
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'],
293
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada'],
295
+ leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'],
296
+ leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada'],
294
297
  ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial', evento['vinculo/infoContrato/horContratual/tmpParc']],
295
298
  *([['HorarioNoturno', evento['vinculo/infoContrato/horContratual/horNoturno']]] if leiaute_simplificado?),
296
299
  ['EventoAdmissao_InfoVinculo_DataInicioAfastamento', evento['vinculo/afastamento/dtIniAfast'], :data],
297
300
  ['EventoAdmissao_InfoVinculo_CodigoMotivoAfastamento', evento['vinculo/afastamento/codMotAfast']],
298
301
  ['EventoAdmissao_InfoVinculo_SucessaoVinculo_DataTransferencia', evento['vinculo/sucessaoVinc/dtTransf'], :data],
299
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
302
+ leiaute['EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
300
303
  ['EventoAdmissao_InfoVinculo_SucessaoVinculo_MatriculaAnterior', evento['vinculo/sucessaoVinc/matricAnt']]
301
304
  # rubocop:enable Layout/LineLength
302
305
  ]
@@ -308,8 +311,8 @@ module Teodoro
308
311
  @indicativo_de_cadastramento_inicial ||= evento['vinculo/cadIni']
309
312
  end
310
313
 
311
- def de_acordo_com_a_versao_do_leiaute
312
- @de_acordo_com_a_versao_do_leiaute ||=
314
+ def leiaute
315
+ @leiaute ||=
313
316
  if leiaute_simplificado?
314
317
  LeiauteSimplificado.new(empresa: empresa, evento: evento)
315
318
  else
@@ -346,6 +349,10 @@ module Teodoro
346
349
 
347
350
  public
348
351
 
352
+ def condicao_de_ingresso_no_brasil_do_trabalhador
353
+ @condicao_de_ingresso_no_brasil_do_trabalhador ||= evento['trabalhador/trabEstrangeiro/classTrabEstrang']
354
+ end
355
+
349
356
  def opcao_pelo_fgts
350
357
  @opcao_pelo_fgts ||= evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/opcFGTS']
351
358
  end
@@ -361,7 +368,7 @@ module Teodoro
361
368
  # rubocop:disable Layout/LineLength
362
369
  [
363
370
  'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
364
- evento['trabalhador/trabEstrangeiro/classTrabEstrang']
371
+ condicao_de_ingresso_no_brasil_do_trabalhador
365
372
  ],
366
373
  [
367
374
  'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada',
@@ -407,6 +414,13 @@ module Teodoro
407
414
 
408
415
  public
409
416
 
417
+ def condicao_de_ingresso_no_brasil_do_trabalhador
418
+ @condicao_de_ingresso_no_brasil_do_trabalhador ||=
419
+ evento['trabalhador/trabImig']&.then do
420
+ Teodoro::LeiauteSimplificado::TrabalhadorImigrante.new(_1).condicao_de_ingresso_no_brasil_no_leiaute2
421
+ end
422
+ end
423
+
410
424
  def opcao_pelo_fgts
411
425
  @opcao_pelo_fgts ||= evento['vinculo/infoRegimeTrab/infoCeletista/FGTS'] ? 1 : 2
412
426
  end
@@ -422,15 +436,7 @@ module Teodoro
422
436
  # rubocop:disable Layout/LineLength
423
437
  [
424
438
  'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
425
- {
426
- '1' => 4,
427
- '2' => 5,
428
- '3' => 9,
429
- '4' => 10,
430
- '5' => 11,
431
- '6' => 12,
432
- '7' => evento['trabalhador/trabImig/tmpResid']
433
- }[evento['trabalhador/trabImig/condIng']]
439
+ condicao_de_ingresso_no_brasil_do_trabalhador
434
440
  ],
435
441
  [
436
442
  'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada',
@@ -13,7 +13,7 @@ module Teodoro
13
13
 
14
14
  def trabalhador # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
15
15
  @trabalhador ||= Obj.new(
16
- cpf: evento['ideTrabalhador/cpfTrab'],
16
+ cpf: cpf_do_trabalhador,
17
17
  nis: evento['alteracao/dadosTrabalhador/nisTrab'],
18
18
  nome: evento['alteracao/dadosTrabalhador/nmTrab'],
19
19
  sexo: evento['alteracao/dadosTrabalhador/sexo'],
@@ -21,13 +21,28 @@ module Teodoro
21
21
  estado_civil: evento['alteracao/dadosTrabalhador/estCiv'],
22
22
  grau_de_instrucao: evento['alteracao/dadosTrabalhador/grauInstr'],
23
23
  nome_social: evento['alteracao/dadosTrabalhador/nmSoc'],
24
- data_de_nascimento: evento['alteracao/dadosTrabalhador/nascimento/dtNascto'],
25
- pais_de_nascimento: evento['alteracao/dadosTrabalhador/nascimento/paisNascto'],
26
- pais_de_nacionalidade: evento["alteracao/dadosTrabalhador/#{'nascimento' unless leiaute_simplificado?}/paisNac"], # rubocop:disable Layout/LineLength
27
- codigo_do_municipio_de_nascimento: evento['alteracao/dadosTrabalhador/nascimento/codMunic'],
28
- uf_de_nascimento: evento['alteracao/dadosTrabalhador/nascimento/uf'],
29
- nome_da_mae: evento['alteracao/dadosTrabalhador/nascimento/nmMae'],
30
- nome_do_pai: evento['alteracao/dadosTrabalhador/nascimento/nmPai'],
24
+ pais_de_nacionalidade: pais_de_nacionalidade_do_trabalhador,
25
+ nascimento: Obj.new(
26
+ if leiaute_simplificado?
27
+ empresa.trabalhadores[cpf_do_trabalhador].nascimento.then { {
28
+ data: _1.data,
29
+ pais: _1.pais,
30
+ codigo_do_municipio: _1.codigo_do_municipio,
31
+ uf: _1.uf,
32
+ nome_da_mae: _1.nome_da_mae,
33
+ nome_do_pai: _1.nome_do_pai
34
+ } }
35
+ else
36
+ {
37
+ data: evento['alteracao/dadosTrabalhador/nascimento/dtNascto'],
38
+ pais: evento['alteracao/dadosTrabalhador/nascimento/paisNascto'],
39
+ codigo_do_municipio: evento['alteracao/dadosTrabalhador/nascimento/codMunic'],
40
+ uf: evento['alteracao/dadosTrabalhador/nascimento/uf'],
41
+ nome_da_mae: evento['alteracao/dadosTrabalhador/nascimento/nmMae'],
42
+ nome_do_pai: evento['alteracao/dadosTrabalhador/nascimento/nmPai']
43
+ }
44
+ end
45
+ ),
31
46
  reside_no_exterior?: evento['alteracao/dadosTrabalhador/endereco/exterior'],
32
47
  endereco: Obj.new(
33
48
  tipo_de_logradouro: evento['alteracao/dadosTrabalhador/endereco/brasil/tpLograd'],
@@ -41,6 +56,7 @@ module Teodoro
41
56
  ),
42
57
  estrangeiro?: evento['alteracao/dadosTrabalhador/trabEstrangeiro'],
43
58
  casado_com_brasileiro: evento['alteracao/dadosTrabalhador/trabEstrangeiro/casadoBr'],
59
+ condicao_de_ingresso_no_brasil: leiaute.condicao_de_ingresso_no_brasil,
44
60
  data_de_chegada_ao_brasil: evento['alteracao/dadosTrabalhador/trabEstrangeiro/dtChegada'],
45
61
  filhos_brasileiros: evento['alteracao/dadosTrabalhador/trabEstrangeiro/filhosBr'],
46
62
  ctps: Obj.new(
@@ -94,6 +110,27 @@ module Teodoro
94
110
  )
95
111
  end
96
112
 
113
+ def cpf_do_trabalhador
114
+ @cpf_do_trabalhador ||= evento['ideTrabalhador/cpfTrab']
115
+ end
116
+
117
+ def pais_de_nacionalidade_do_trabalhador
118
+ evento["alteracao/dadosTrabalhador/#{'nascimento' unless leiaute_simplificado?}/paisNac"]
119
+ end
120
+
121
+ def leiaute
122
+ @leiaute ||= Obj.new(
123
+ condicao_de_ingresso_no_brasil: if leiaute_simplificado?
124
+ evento['alteracao/dadosTrabalhador/trabImig']&.then do
125
+ LeiauteSimplificado::TrabalhadorImigrante.new(_1)
126
+ .condicao_de_ingresso_no_brasil_no_leiaute2
127
+ end
128
+ else
129
+ evento['alteracao/dadosTrabalhador/trabEstrangeiro/classTrabEstrang']
130
+ end
131
+ )
132
+ end
133
+
97
134
  def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
98
135
  contratos_de_trabalho.map do |contrato_de_trabalho| # rubocop:disable Metrics/BlockLength
99
136
  Obj.new(
@@ -107,7 +144,7 @@ module Teodoro
107
144
  ['ESX_CPF', trabalhador.cpf],
108
145
  ['ESX_MATRICULA', contrato_de_trabalho.matricula_do_trabalhador],
109
146
  ['ESX_CATEGORIA', contrato_de_trabalho.categoria_do_trabalhador],
110
- %w[ESX_SEMVINCULO 0], # FIXME: Tales TC
147
+ %w[ESX_SEMVINCULO 0],
111
148
  ['ESX_DATAADMISSAO', contrato_de_trabalho.data_de_inicio, :data],
112
149
  ['ESX_DATAALTERACAO', data_da_alteracao, :data],
113
150
  ['DataAlteracao', data_da_alteracao, :data],
@@ -133,16 +170,16 @@ module Teodoro
133
170
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', trabalhador.grau_de_instrucao],
134
171
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
135
172
  ['EventoAdmissao_InfoTrabalhador_NomeSocial', trabalhador.nome_social],
136
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.codigo_do_municipio_de_nascimento],
137
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.codigo_do_municipio_de_nascimento]],
138
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', trabalhador.data_de_nascimento, :data],
139
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', trabalhador.nome_da_mae],
140
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', trabalhador.nome_do_pai],
141
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', trabalhador.pais_de_nascimento],
173
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.nascimento.codigo_do_municipio],
174
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.nascimento.codigo_do_municipio]],
175
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', trabalhador.nascimento.data, :data],
176
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', trabalhador.nascimento.nome_da_mae],
177
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', trabalhador.nascimento.nome_do_pai],
178
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', trabalhador.nascimento.pais],
142
179
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
143
180
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', trabalhador.pais_de_nacionalidade],
144
181
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
145
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.uf_de_nascimento],
182
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.nascimento.uf],
146
183
  ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
147
184
  ['EventoAdmissao_EnderecoResidencialBR_Bairro', trabalhador.endereco.bairro],
148
185
  ['EventoAdmissao_EnderecoResidencialBR_Cep', trabalhador.endereco.cep],
@@ -92,16 +92,16 @@ module Teodoro
92
92
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
93
93
  ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego', contrato_de_emprego.primeiro_emprego_do_trabalhador],
94
94
  ['EventoAdmissao_InfoTrabalhador_NomeSocial', trabalhador.nome_social],
95
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.codigo_do_municipio_de_nascimento],
96
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.codigo_do_municipio_de_nascimento]],
97
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', trabalhador.data_de_nascimento, :data],
98
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', trabalhador.nome_da_mae],
99
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', trabalhador.nome_do_pai],
100
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', trabalhador.pais_de_nascimento],
95
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.nascimento.codigo_do_municipio],
96
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.nascimento.codigo_do_municipio]],
97
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', trabalhador.nascimento.data, :data],
98
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', trabalhador.nascimento.nome_da_mae],
99
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', trabalhador.nascimento.nome_do_pai],
100
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', trabalhador.nascimento.pais],
101
101
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
102
102
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', trabalhador.pais_de_nacionalidade],
103
103
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
104
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.uf_de_nascimento],
104
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.nascimento.uf],
105
105
  ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
106
106
  ['EventoAdmissao_EnderecoResidencialBR_Bairro', trabalhador.endereco.bairro],
107
107
  ['EventoAdmissao_EnderecoResidencialBR_Cep', trabalhador.endereco.cep],
@@ -41,18 +41,79 @@ module Teodoro
41
41
  estado_civil: evento['trabalhador/estCiv'],
42
42
  grau_de_instrucao: evento['trabalhador/grauInstr'],
43
43
  nome_social: evento['trabalhador/nmSoc'],
44
- data_de_nascimento: evento['trabalhador/nascimento/dtNascto'],
45
- codigo_do_municipio_de_nascimento: evento['trabalhador/nascimento/codMunic'],
46
- uf_de_nascimento: evento['trabalhador/nascimento/uf'],
47
- pais_de_nascimento: evento['trabalhador/nascimento/paisNascto'],
48
44
  pais_de_nacionalidade: evento['trabalhador/nascimento/paisNac'],
49
- nome_da_mae: evento['trabalhador/nascimento/nmMae'],
50
- nome_do_pai: evento['trabalhador/nascimento/nmPai'],
45
+ nascimento: Obj.new(
46
+ data: evento['trabalhador/nascimento/dtNascto'],
47
+ codigo_do_municipio: evento['trabalhador/nascimento/codMunic'],
48
+ uf: evento['trabalhador/nascimento/uf'],
49
+ pais: evento['trabalhador/nascimento/paisNascto'],
50
+ nome_da_mae: evento['trabalhador/nascimento/nmMae'],
51
+ nome_do_pai: evento['trabalhador/nascimento/nmPai']
52
+ ),
51
53
  reside_no_exterior?: evento['trabalhador/endereco/exterior'],
52
54
  estrangeiro?: evento['trabalhador/trabEstrangeiro'],
53
55
  data_de_chegada_ao_brasil: evento['trabalhador/trabEstrangeiro/dtChegada'],
56
+ condicao_de_ingresso_no_brasil: leiaute.condicao_de_ingresso_no_brasil_do_trabalhador,
54
57
  casado_com_brasileiro: evento['trabalhador/trabEstrangeiro/casadoBr'],
55
- filhos_brasileiros: evento['trabalhador/trabEstrangeiro/filhosBr']
58
+ filhos_brasileiros: evento['trabalhador/trabEstrangeiro/filhosBr'],
59
+ endereco: Obj.new(
60
+ tipo_de_logradouro: evento['trabalhador/endereco/brasil/tpLograd'],
61
+ logradouro: evento['trabalhador/endereco/brasil/dscLograd'],
62
+ numero: evento['trabalhador/endereco/brasil/nrLograd'],
63
+ complemento: evento['trabalhador/endereco/brasil/complemento'],
64
+ bairro: evento['trabalhador/endereco/brasil/bairro'],
65
+ cep: evento['trabalhador/endereco/brasil/cep'],
66
+ codigo_do_municipio: evento['trabalhador/endereco/brasil/codMunic'],
67
+ uf: evento['trabalhador/endereco/brasil/uf']
68
+ ),
69
+ ctps: Obj.new(
70
+ numero: evento['trabalhador/documentos/CTPS/nrCtps'],
71
+ serie: evento['trabalhador/documentos/CTPS/serieCtps'],
72
+ uf: evento['trabalhador/documentos/CTPS/ufCtps']
73
+ ),
74
+ rg: Obj.new(
75
+ numero: evento['trabalhador/documentos/RG/nrRg'],
76
+ orgao_emissor: evento['trabalhador/documentos/RG/orgaoEmissor'],
77
+ data_da_expedicao: evento['trabalhador/documentos/RG/dtExped']
78
+ ),
79
+ rne: Obj.new(
80
+ numero: evento['trabalhador/documentos/RNE/nrRne'],
81
+ orgao_emissor: evento['trabalhador/documentos/RNE/orgaoEmissor'],
82
+ data_da_expedicao: evento['trabalhador/documentos/RNE/dtExped']
83
+ ),
84
+ ric: Obj.new(
85
+ numero: evento['trabalhador/documentos/RIC/nrRic'],
86
+ orgao_emissor: evento['trabalhador/documentos/RIC/orgaoEmissor'],
87
+ data_da_expedicao: evento['trabalhador/documentos/RIC/dtExped']
88
+ ),
89
+ oc: Obj.new(
90
+ numero: evento['trabalhador/documentos/OC/nrOc'],
91
+ orgao_emissor: evento['trabalhador/documentos/OC/orgaoEmissor'],
92
+ data_da_expedicao: evento['trabalhador/documentos/OC/dtExped']
93
+ ),
94
+ cnh: Obj.new(
95
+ numero_do_registro: evento['trabalhador/documentos/CNH/nrRegCnh'],
96
+ data_da_primeira_habilitacao: evento['trabalhador/documentos/CNH/dtPriHab'],
97
+ data_da_expedicao: evento['trabalhador/documentos/CNH/dtExped'],
98
+ data_de_validade: evento['trabalhador/documentos/CNH/dtValid'],
99
+ categoria: evento['trabalhador/documentos/CNH/categoriaCnh'],
100
+ uf_do_emissor: evento['trabalhador/documentos/CNH/ufCnh']
101
+ ),
102
+ deficiencia: Obj.new(
103
+ fisica: evento['trabalhador/infoDeficiencia/defFisica'],
104
+ visual: evento['trabalhador/infoDeficiencia/defVisual'],
105
+ auditiva: evento['trabalhador/infoDeficiencia/defAuditiva'],
106
+ mental: evento['trabalhador/infoDeficiencia/defMental'],
107
+ intelectual: evento['trabalhador/infoDeficiencia/defIntelectual'],
108
+ reabilitado_ou_readaptado: evento['trabalhador/infoDeficiencia/reabReadap'],
109
+ preenche_cota_de_pessoas_com_deficiencia: nil
110
+ ),
111
+ contato: Obj.new(
112
+ fone_principal: evento['trabalhador/contato/fonePrinc'],
113
+ fone_alternativo: evento['trabalhador/contato/foneAlternat'],
114
+ email_principal: evento['trabalhador/contato/emailPrinc'],
115
+ email_alternativo: evento['trabalhador/contato/emailAlternat']
116
+ )
56
117
  )
57
118
  end
58
119
 
@@ -104,49 +165,49 @@ module Teodoro
104
165
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', trabalhador.grau_de_instrucao],
105
166
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
106
167
  ['EventoAdmissao_InfoTrabalhador_NomeSocial', trabalhador.nome_social],
107
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.codigo_do_municipio_de_nascimento],
108
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.codigo_do_municipio_de_nascimento]],
109
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', trabalhador.data_de_nascimento, :data],
110
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', trabalhador.nome_da_mae],
111
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', trabalhador.nome_do_pai],
112
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', trabalhador.pais_de_nascimento],
168
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.nascimento.codigo_do_municipio],
169
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.nascimento.codigo_do_municipio]],
170
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', trabalhador.nascimento.data, :data],
171
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', trabalhador.nascimento.nome_da_mae],
172
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', trabalhador.nascimento.nome_do_pai],
173
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', trabalhador.nascimento.pais],
113
174
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
114
175
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', trabalhador.pais_de_nacionalidade],
115
176
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
116
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.uf_de_nascimento],
177
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.nascimento.uf],
117
178
  ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
118
179
  ['SemNumeroLogradouroEnderecoBR'],
119
180
  ['ResideExterior', evento['trabalhador/endereco/exterior'], :bool],
120
181
  ['SemNumeroLogradouroEnderecoEX'],
121
182
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', (trabalhador.casado_com_brasileiro if trabalhador.estrangeiro?)],
122
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
183
+ leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
123
184
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT'],
124
185
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', (trabalhador.data_de_chegada_ao_brasil if trabalhador.estrangeiro?), :data],
125
186
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', (trabalhador.filhos_brasileiros if trabalhador.estrangeiro?)],
126
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', evento['trabalhador/documentos/CNH/categoriaCnh']],
187
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', trabalhador.cnh.categoria],
127
188
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
128
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', evento['trabalhador/documentos/CNH/dtExped'], :data],
129
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', evento['trabalhador/documentos/CNH/dtPriHab'], :data],
130
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', evento['trabalhador/documentos/CNH/dtValid'], :data],
131
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', evento['trabalhador/documentos/CNH/nrRegCnh']],
132
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', evento['trabalhador/documentos/CNH/ufCnh']],
189
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', trabalhador.cnh.data_da_expedicao, :data],
190
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', trabalhador.cnh.data_da_primeira_habilitacao, :data],
191
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', trabalhador.cnh.data_de_validade, :data],
192
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', trabalhador.cnh.numero_do_registro],
193
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', trabalhador.cnh.uf_do_emissor],
133
194
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
134
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', evento['trabalhador/documentos/CTPS/nrCtps']],
135
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', evento['trabalhador/documentos/CTPS/serieCtps']],
136
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', evento['trabalhador/documentos/CTPS/ufCtps']],
195
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', trabalhador.ctps.numero],
196
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', trabalhador.ctps.serie],
197
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', trabalhador.ctps.uf],
137
198
  ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
138
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', evento['trabalhador/documentos/OC/dtExped'], :data],
139
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', evento['trabalhador/documentos/OC/nrOc']],
140
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', evento['trabalhador/documentos/OC/orgaoEmissor']],
141
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', evento['trabalhador/documentos/RG/dtExped'], :data],
142
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', evento['trabalhador/documentos/RG/nrRg']],
143
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', evento['trabalhador/documentos/RG/orgaoEmissor']],
144
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', evento['trabalhador/infoDeficiencia/defAuditiva']],
145
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', evento['trabalhador/infoDeficiencia/defFisica']],
146
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', evento['trabalhador/infoDeficiencia/defIntelectual']],
147
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', evento['trabalhador/infoDeficiencia/defMental']],
148
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', evento['trabalhador/infoDeficiencia/defVisual']],
149
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', evento['trabalhador/infoDeficiencia/reabReadap']],
199
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', trabalhador.oc.data_da_expedicao, :data],
200
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', trabalhador.oc.numero],
201
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', trabalhador.oc.orgao_emissor],
202
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', trabalhador.rg.data_da_expedicao, :data],
203
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', trabalhador.rg.numero],
204
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', trabalhador.rg.orgao_emissor],
205
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', trabalhador.deficiencia.auditiva],
206
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', trabalhador.deficiencia.fisica],
207
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', trabalhador.deficiencia.intelectual],
208
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', trabalhador.deficiencia.mental],
209
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', trabalhador.deficiencia.visual],
210
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', trabalhador.deficiencia.reabilitado_ou_readaptado],
150
211
  *evento.*('trabalhador/dependente').map.with_index(1) do |dependente, seq|
151
212
  [
152
213
  ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
@@ -188,17 +249,17 @@ module Teodoro
188
249
  ['DescricaoProcEmi', processo_de_emissao_do_evento],
189
250
  ['IdEventoXml', id_do_evento],
190
251
  ['NrReciboEventoOriginal', numero_do_recibo],
191
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Bairro', evento['trabalhador/endereco/brasil/bairro']],
192
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Cep', evento['trabalhador/endereco/brasil/cep']],
193
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_CodigoMunicipio', evento['trabalhador/endereco/brasil/codMunic']],
194
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Complemento', evento['trabalhador/endereco/brasil/complemento']],
195
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_DescricaoLogradouro', evento['trabalhador/endereco/brasil/dscLograd']],
196
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_NumeroLogradouro', evento['trabalhador/endereco/brasil/nrLograd']],
197
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_TipoLogradouro', evento['trabalhador/endereco/brasil/tpLograd']],
198
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Uf', evento['trabalhador/endereco/brasil/uf']],
199
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCargo'],
200
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS'],
201
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_DataOpcaoFGTS'],
252
+ ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Bairro', trabalhador.endereco.bairro],
253
+ ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Cep', trabalhador.endereco.cep],
254
+ ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_CodigoMunicipio', trabalhador.endereco.codigo_do_municipio],
255
+ ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Complemento', trabalhador.endereco.complemento],
256
+ ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_DescricaoLogradouro', trabalhador.endereco.logradouro],
257
+ ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_NumeroLogradouro', trabalhador.endereco.numero],
258
+ ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_TipoLogradouro', trabalhador.endereco.tipo_de_logradouro],
259
+ ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Uf', trabalhador.endereco.uf],
260
+ leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCargo'],
261
+ leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS'],
262
+ leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_DataOpcaoFGTS'],
202
263
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_UnidadeSalarioFixo', evento['infoTSVInicio/infoComplementares/remuneracao/undSalFixo']],
203
264
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_ValorSalarioFixo', evento['infoTSVInicio/infoComplementares/remuneracao/vrSalFx'], :decimal],
204
265
  ['EventoAdmissao_InformacoesInicio_NaturezaAtividade', evento['infoTSVInicio/natAtividade']]
@@ -208,8 +269,8 @@ module Teodoro
208
269
  ]
209
270
  end
210
271
 
211
- def de_acordo_com_a_versao_do_leiaute
212
- @de_acordo_com_a_versao_do_leiaute ||=
272
+ def leiaute
273
+ @leiaute ||=
213
274
  if leiaute_simplificado?
214
275
  LeiauteSimplificado.new(empresa: empresa, evento: evento)
215
276
  else
@@ -244,11 +305,19 @@ module Teodoro
244
305
  @evento = evento
245
306
  end
246
307
 
308
+ public
309
+
310
+ def condicao_de_ingresso_no_brasil_do_trabalhador
311
+ @condicao_de_ingresso_no_brasil_do_trabalhador ||= evento['trabalhador/trabEstrangeiro/classTrabEstrang']
312
+ end
313
+
314
+ private
315
+
247
316
  def chaves_valores # rubocop:disable Metrics/MethodLength
248
317
  [
249
318
  [
250
319
  'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
251
- evento['trabalhador/trabEstrangeiro/classTrabEstrang']
320
+ condicao_de_ingresso_no_brasil_do_trabalhador
252
321
  ],
253
322
  [
254
323
  'EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS',
@@ -279,19 +348,22 @@ module Teodoro
279
348
 
280
349
  attr_reader :empresa
281
350
 
351
+ public
352
+
353
+ def condicao_de_ingresso_no_brasil_do_trabalhador
354
+ @condicao_de_ingresso_no_brasil_do_trabalhador ||=
355
+ evento['trabalhador/trabImig']&.then do
356
+ Teodoro::LeiauteSimplificado::TrabalhadorImigrante.new(_1).condicao_de_ingresso_no_brasil_no_leiaute2
357
+ end
358
+ end
359
+
360
+ private
361
+
282
362
  def chaves_valores # rubocop:disable Metrics/MethodLength
283
363
  [
284
364
  [
285
365
  'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
286
- {
287
- '1' => 4,
288
- '2' => 5,
289
- '3' => 9,
290
- '4' => 10,
291
- '5' => 11,
292
- '6' => 12,
293
- '7' => evento['trabalhador/trabImig/tmpResid']
294
- }[evento['trabalhador/trabImig/condIng']]
366
+ condicao_de_ingresso_no_brasil_do_trabalhador
295
367
  ],
296
368
  [
297
369
  'EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS',
@@ -25,7 +25,7 @@ module Teodoro
25
25
  ['cpfTrabalhador'],
26
26
  ['nomeTrabalhador'],
27
27
  ['TipoInscricaoEmpregador', recibo['ideEmpregador/tpInsc']],
28
- ['AlteracaoContratual_DataAlteracao'],
28
+ ['AlteracaoContratual_DataAlteracao', data_da_alteracao, :data],
29
29
  ['AlteracaoContratual_DataEfeito'],
30
30
  ['AlteracaoContratual_DescricaoAlteracao'],
31
31
  ['IdentificacaoVinculo_Nis', evento['ideTrabSemVinculo/nisTrab']],
@@ -66,7 +66,7 @@ module Teodoro
66
66
  ['InfoVinculo_TipoRegimeTrabalhista'],
67
67
  ['InfoVinculo_TipoRegimePrevidenciario'],
68
68
  ['InfoVinculo_InfoContrato_CodigoCategoria', categoria_do_trabalhador],
69
- de_acordo_com_a_versao_do_leiaute['InfoVinculo_InfoContrato_CodigoCargo'],
69
+ leiaute['InfoVinculo_InfoContrato_CodigoCargo'],
70
70
  ['InfoVinculo_InfoContrato_CodigoFuncao', evento['infoTSVAlteracao/infoComplementares/cargoFuncao/codFuncao']],
71
71
  ['InfoVinculo_InfoContrato_CodigoCarreira'],
72
72
  ['InfoVinculo_InfoContrato_DataIngressoCarreira'],
@@ -115,6 +115,7 @@ module Teodoro
115
115
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TrabalhoTemporario_HipoteseLegal'],
116
116
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TrabalhoTemporario_JustificaHipoteseLegal'],
117
117
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TrabalhoTemporario_TipoInclusaoContrato'],
118
+ ['EventoAdmissao_DataAlteracaoContratual', data_da_alteracao, :data],
118
119
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoTrabalhadorCedido_CategoriaOrigem'],
119
120
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoTrabalhadorCedido_CnpjEmpresaCedente'],
120
121
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoTrabalhadorCedido_DataAdmissaoEmpresaCedente'],
@@ -180,8 +181,8 @@ module Teodoro
180
181
  @data_da_alteracao ||= evento['infoTSVAlteracao/dtAlteracao']
181
182
  end
182
183
 
183
- def de_acordo_com_a_versao_do_leiaute # rubocop:disable Metrics/MethodLength
184
- @de_acordo_com_a_versao_do_leiaute ||=
184
+ def leiaute # rubocop:disable Metrics/MethodLength
185
+ @leiaute ||=
185
186
  (
186
187
  if leiaute_simplificado?
187
188
  [
@@ -82,49 +82,49 @@ module Teodoro
82
82
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', trabalhador.grau_de_instrucao],
83
83
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
84
84
  ['EventoAdmissao_InfoTrabalhador_NomeSocial', trabalhador.nome_social],
85
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.codigo_do_municipio_de_nascimento],
86
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.codigo_do_municipio_de_nascimento]],
87
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', trabalhador.data_de_nascimento, :data],
88
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', trabalhador.nome_da_mae],
89
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', trabalhador.nome_do_pai],
90
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', trabalhador.pais_de_nascimento],
85
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.nascimento.codigo_do_municipio],
86
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.nascimento.codigo_do_municipio]],
87
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', trabalhador.nascimento.data, :data],
88
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', trabalhador.nascimento.nome_da_mae],
89
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', trabalhador.nascimento.nome_do_pai],
90
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', trabalhador.nascimento.pais],
91
91
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
92
92
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', trabalhador.pais_de_nacionalidade],
93
93
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
94
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.uf_de_nascimento],
94
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.nascimento.uf],
95
95
  ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
96
96
  ['SemNumeroLogradouroEnderecoBR'],
97
97
  ['ResideExterior', trabalhador.reside_no_exterior?, :bool],
98
98
  ['SemNumeroLogradouroEnderecoEX'],
99
99
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', (trabalhador.casado_com_brasileiro if trabalhador.estrangeiro?)],
100
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
100
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao', (trabalhador.condicao_de_ingresso_no_brasil if trabalhador.estrangeiro?)],
101
101
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT'],
102
102
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', (trabalhador.data_de_chegada_ao_brasil if trabalhador.estrangeiro?), :data],
103
103
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', (trabalhador.filhos_brasileiros if trabalhador.estrangeiro?)],
104
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh'],
104
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', trabalhador.cnh.categoria],
105
105
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
106
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao'],
107
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao'],
108
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade'],
109
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh'],
110
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh'],
106
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', trabalhador.cnh.data_da_expedicao, :data],
107
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', trabalhador.cnh.data_da_primeira_habilitacao, :data],
108
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', trabalhador.cnh.data_de_validade, :data],
109
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', trabalhador.cnh.numero_do_registro],
110
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', trabalhador.cnh.uf_do_emissor],
111
111
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
112
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps'],
113
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps'],
114
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps'],
112
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', trabalhador.ctps.numero],
113
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', trabalhador.ctps.serie],
114
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', trabalhador.ctps.uf],
115
115
  ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
116
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao'],
117
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc'],
118
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor'],
119
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao'],
120
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg'],
121
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor'],
122
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva'],
123
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica'],
124
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual'],
125
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental'],
126
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual'],
127
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado'],
116
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', trabalhador.oc.data_da_expedicao, :data],
117
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', trabalhador.oc.numero],
118
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', trabalhador.oc.orgao_emissor],
119
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', trabalhador.rg.data_da_expedicao, :data],
120
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', trabalhador.rg.numero],
121
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', trabalhador.rg.orgao_emissor],
122
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', trabalhador.deficiencia.auditiva],
123
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', trabalhador.deficiencia.fisica],
124
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', trabalhador.deficiencia.intelectual],
125
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', trabalhador.deficiencia.mental],
126
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', trabalhador.deficiencia.visual],
127
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', trabalhador.deficiencia.reabilitado_ou_readaptado],
128
128
  ['CodigoCBO'],
129
129
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_AreaAtuacao'],
130
130
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_DtPrevistaTermino'],
@@ -0,0 +1,27 @@
1
+ module Teodoro
2
+ module LeiauteSimplificado
3
+ class TrabalhadorImigrante
4
+ private
5
+
6
+ def initialize(xml)
7
+ @xml = xml
8
+ end
9
+
10
+ attr_reader :xml
11
+
12
+ public
13
+
14
+ def condicao_de_ingresso_no_brasil_no_leiaute2
15
+ {
16
+ '1' => 4,
17
+ '2' => 5,
18
+ '3' => 9,
19
+ '4' => 10,
20
+ '5' => 11,
21
+ '6' => 12,
22
+ '7' => xml['tmpResid']
23
+ }[xml['condIng']]
24
+ end
25
+ end
26
+ end
27
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teodoro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.0
4
+ version: 0.34.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clavius Tales
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-11 00:00:00.000000000 Z
11
+ date: 2021-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -226,6 +226,7 @@ files:
226
226
  - lib/teodoro/leiaute/arquivo_s2306.rb
227
227
  - lib/teodoro/leiaute/arquivo_s2399.rb
228
228
  - lib/teodoro/leiaute/arquivo_s3000.rb
229
+ - lib/teodoro/leiaute_simplificado.rb
229
230
  - lib/teodoro/obj.rb
230
231
  - lib/teodoro/xml.rb
231
232
  - lib/tipos_de_logradouro.json