teodoro 0.29.0 → 0.33.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: 03abb0e08823b8d3f255f03856b45f03cbd42dd65eb6a4ab7f9d08576e11191e
4
- data.tar.gz: 3579584c0aaf694c774d1c0a1e215c61fcd47035cdb447c9fa044e99e076c40d
3
+ metadata.gz: e38efe89c5dce86ffd1c23586c6f46cbbcbbf6dd43ed68a978bdb1aea2a71977
4
+ data.tar.gz: ac758cde798afd2aeab3355b745c141817f3cd2aa887c600e1a3c3bddf513972
5
5
  SHA512:
6
- metadata.gz: e24e2f2af3e3671f35fc5731d65fa516d699e739c000f25600472d2f19059da88b01bb22474ed1e9612903ed5e6e5821cb0224c6214c26595d97be8a9b80ce92
7
- data.tar.gz: c79f540391e6be2ffe88d1e2428927a50b50547933ccd53b307d0ab5e5d4bf71ba9b4ab3d41f8b4feab13ca1d5224c999a61554479b81404321306bade8b7b10
6
+ metadata.gz: c109a836f693e148b9c349e2439816930edecf950f5ac7f9b839366bc5cea035844a05709ddc5d24510f48bf0f8f1f7710133da9b4c2b8e981ee6e57370f9524
7
+ data.tar.gz: cf5a7f671af06f913a7a75a9d37b531c29bab0aa21c7ed9a0467c10bb5a01e73734b4d6c7c66c09c3c75dc9e03bf9f07829a9cfb19b2f6f0acba1ff525b3da45
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.29.0'.freeze
15
+ VERSION = '0.33.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
@@ -70,7 +70,7 @@ module Teodoro
70
70
  end
71
71
 
72
72
  def contratos_de_trabalho_sem_vinculo
73
- @contratos_de_trabalho_sem_vinculo ||= ContratosDeTrabalhoSemVinculo.new
73
+ @contratos_de_trabalho_sem_vinculo ||= ContratosDeTrabalhoSemVinculo.new(trabalhadores)
74
74
  end
75
75
 
76
76
  def cargos_gerados
@@ -54,6 +54,7 @@ module Teodoro
54
54
  @afastamento = afastamento
55
55
 
56
56
  @tipo_de_regime_previdenciario = admissao.tipo_de_regime_previdenciario
57
+ @natureza_da_atividade = admissao.natureza_da_atividade
57
58
  @duracao = admissao.duracao
58
59
  end
59
60
 
@@ -65,21 +66,26 @@ module Teodoro
65
66
 
66
67
  def_delegators :admissao,
67
68
  :trabalhador,
69
+ :primeiro_emprego_do_trabalhador,
68
70
  :matricula_do_trabalhador,
69
71
  :tipo_de_regime_trabalhista,
70
72
  :data_de_admissao,
73
+ :tipo_de_admissao,
74
+ :indicativo_de_admissao,
75
+ :opcao_pelo_fgts,
76
+ :data_de_opcao_pelo_fgts,
71
77
  :categoria_do_trabalhador,
72
- :primeiro_emprego_do_trabalhador,
73
78
  :recibo
74
79
 
75
80
  attr_accessor :afastamento
76
81
 
77
- attr_reader :tipo_de_regime_previdenciario, :duracao
82
+ attr_reader :tipo_de_regime_previdenciario, :natureza_da_atividade, :duracao
78
83
 
79
84
  attr_writer :data_de_desligamento
80
85
 
81
86
  def registrar_alteracao_contratual(alteracao_contratual)
82
87
  @tipo_de_regime_previdenciario = alteracao_contratual.tipo_de_regime_previdenciario
88
+ @natureza_da_atividade = alteracao_contratual.natureza_da_atividade
83
89
  @duracao = alteracao_contratual.duracao
84
90
  end
85
91
 
@@ -1,14 +1,25 @@
1
1
  module Teodoro
2
2
  class Empresa
3
3
  class ContratosDeTrabalhoSemVinculo
4
+ private
5
+
6
+ def initialize(trabalhadores)
7
+ @trabalhadores = trabalhadores
8
+ end
9
+
10
+ attr_reader :trabalhadores
11
+
12
+ public
13
+
4
14
  def registrar_inicio_de_contrato(inicio_de_contrato:, afastamento:)
5
15
  contratos << Contrato.new(inicio_de_contrato: inicio_de_contrato, afastamento: afastamento)
16
+ trabalhadores << inicio_de_contrato.trabalhador
6
17
  end
7
18
 
8
19
  def [](cpf_do_trabalhador:, categoria_do_trabalhador:, data:)
9
20
  contratos
10
21
  .select {
11
- _1.cpf_do_trabalhador == cpf_do_trabalhador && _1.categoria_do_trabalhador == categoria_do_trabalhador &&
22
+ _1.trabalhador.cpf == cpf_do_trabalhador && _1.categoria_do_trabalhador == categoria_do_trabalhador &&
12
23
  _1.ativo?(data)
13
24
  }
14
25
  .max_by(&:data_de_inicio)
@@ -16,7 +27,7 @@ module Teodoro
16
27
 
17
28
  def *(cpf_do_trabalhador:, data:)
18
29
  contratos
19
- .select { _1.cpf_do_trabalhador == cpf_do_trabalhador && _1.ativo?(data) }
30
+ .select { _1.trabalhador.cpf == cpf_do_trabalhador && _1.ativo?(data) }
20
31
  .sort_by(&:data_de_inicio)
21
32
  end
22
33
 
@@ -44,7 +55,11 @@ module Teodoro
44
55
 
45
56
  extend Forwardable
46
57
 
47
- def_delegators :inicio_de_contrato, :cpf_do_trabalhador, :categoria_do_trabalhador, :data_de_inicio, :recibo
58
+ def_delegators :inicio_de_contrato,
59
+ :trabalhador,
60
+ :categoria_do_trabalhador,
61
+ :data_de_inicio,
62
+ :recibo
48
63
 
49
64
  attr_accessor :afastamento
50
65
 
@@ -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
  [
@@ -21,12 +21,17 @@ module Teodoro
21
21
  def admissao # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
22
22
  @admissao ||= Obj.new(
23
23
  trabalhador: trabalhador,
24
+ primeiro_emprego_do_trabalhador: evento['trabalhador/indPriEmpr'],
24
25
  matricula_do_trabalhador: evento['vinculo/matricula'],
25
26
  tipo_de_regime_trabalhista: evento['vinculo/tpRegTrab'],
26
27
  tipo_de_regime_previdenciario: evento['vinculo/tpRegPrev'],
27
28
  data_de_admissao: evento['vinculo/infoRegimeTrab/infoCeletista/dtAdm'],
29
+ tipo_de_admissao: evento['vinculo/infoRegimeTrab/infoCeletista/tpAdmissao'],
30
+ indicativo_de_admissao: evento['vinculo/infoRegimeTrab/infoCeletista/indAdmissao'],
31
+ natureza_da_atividade: evento['vinculo/infoRegimeTrab/infoCeletista/natAtividade'],
32
+ opcao_pelo_fgts: leiaute.opcao_pelo_fgts,
33
+ data_de_opcao_pelo_fgts: leiaute.data_de_opcao_pelo_fgts,
28
34
  categoria_do_trabalhador: evento['vinculo/infoContrato/codCateg'],
29
- primeiro_emprego_do_trabalhador: evento['trabalhador/indPriEmpr'],
30
35
  duracao: Obj.new(tipo_de_contrato: evento['vinculo/infoContrato/duracao/tpContr']),
31
36
  recibo: numero_do_recibo
32
37
  )
@@ -42,13 +47,15 @@ module Teodoro
42
47
  estado_civil: evento['trabalhador/estCiv'],
43
48
  grau_de_instrucao: evento['trabalhador/grauInstr'],
44
49
  nome_social: evento['trabalhador/nmSoc'],
45
- data_de_nascimento: evento['trabalhador/nascimento/dtNascto'],
46
- pais_de_nascimento: evento['trabalhador/nascimento/paisNascto'],
47
50
  pais_de_nacionalidade: evento['trabalhador/nascimento/paisNac'],
48
- codigo_do_municipio_de_nascimento: evento['trabalhador/nascimento/codMunic'],
49
- uf_de_nascimento: evento['trabalhador/nascimento/uf'],
50
- nome_da_mae: evento['trabalhador/nascimento/nmMae'],
51
- 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
+ ),
52
59
  reside_no_exterior?: evento['trabalhador/endereco/exterior'],
53
60
  endereco: Obj.new(
54
61
  tipo_de_logradouro: evento['trabalhador/endereco/brasil/tpLograd'],
@@ -61,8 +68,9 @@ module Teodoro
61
68
  uf: evento['trabalhador/endereco/brasil/uf']
62
69
  ),
63
70
  estrangeiro?: evento['trabalhador/trabEstrangeiro'],
64
- casado_com_brasileiro: evento['trabalhador/trabEstrangeiro/casadoBr'],
65
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'],
66
74
  filhos_brasileiros: evento['trabalhador/trabEstrangeiro/filhosBr'],
67
75
  ctps: Obj.new(
68
76
  numero: evento['trabalhador/documentos/CTPS/nrCtps'],
@@ -174,16 +182,16 @@ module Teodoro
174
182
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
175
183
  ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego', evento['trabalhador/indPriEmpr']],
176
184
  ['EventoAdmissao_InfoTrabalhador_NomeSocial', trabalhador.nome_social],
177
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', trabalhador.codigo_do_municipio_de_nascimento],
178
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[trabalhador.codigo_do_municipio_de_nascimento]],
179
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', trabalhador.data_de_nascimento, :data],
180
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', trabalhador.nome_da_mae],
181
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', trabalhador.nome_do_pai],
182
- ['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],
183
191
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
184
192
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', trabalhador.pais_de_nacionalidade],
185
193
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
186
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.uf_de_nascimento],
194
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.nascimento.uf],
187
195
  ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
188
196
  ['EventoAdmissao_EnderecoResidencialBR_Bairro', trabalhador.endereco.bairro],
189
197
  ['EventoAdmissao_EnderecoResidencialBR_Cep', trabalhador.endereco.cep],
@@ -202,7 +210,7 @@ module Teodoro
202
210
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', trabalhador.casado_com_brasileiro],
203
211
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', trabalhador.data_de_chegada_ao_brasil, :data],
204
212
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', trabalhador.filhos_brasileiros],
205
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
213
+ leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
206
214
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', trabalhador.cnh.categoria],
207
215
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
208
216
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', trabalhador.cnh.data_da_expedicao, :data],
@@ -269,29 +277,29 @@ module Teodoro
269
277
  ['EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_ValorSalarioFixo', evento['vinculo/infoContrato/remuneracao/vrSalFx'], :decimal],
270
278
  ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_CnpjSindicatoCategoriaProfissional', evento['vinculo/infoRegimeTrab/infoCeletista/cnpjSindCategProf']],
271
279
  ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataAdmissao', evento['vinculo/infoRegimeTrab/infoCeletista/dtAdm'], :data],
272
- ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao', evento['vinculo/infoRegimeTrab/infoCeletista/indAdmissao']],
273
- ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade', evento['vinculo/infoRegimeTrab/infoCeletista/natAtividade']],
274
- ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao', evento['vinculo/infoRegimeTrab/infoCeletista/tpAdmissao']],
280
+ ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao', admissao.indicativo_de_admissao],
281
+ ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade', admissao.natureza_da_atividade],
282
+ ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao', admissao.tipo_de_admissao],
275
283
  ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada', evento['vinculo/infoRegimeTrab/infoCeletista/tpRegJor']],
276
284
  ['EventoAdmissao_InfoVinculo_Matricula', evento['vinculo/matricula']],
277
285
  ['EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario', admissao.tipo_de_regime_previdenciario],
278
286
  ['EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista', admissao.tipo_de_regime_trabalhista],
279
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'],
280
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'],
281
- 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'],
282
290
  ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_DataTermino', evento['vinculo/infoContrato/duracao/dtTerm'], :data],
283
291
  ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_ClausulaAssecuratoria', evento['vinculo/infoContrato/duracao/clauAssec']],
284
292
  ['EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao', evento['vinculo/infoContrato/localTrabalho/localTrabGeral/tpInsc']],
285
293
  ['EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao', evento['vinculo/infoContrato/localTrabalho/localTrabGeral/nrInsc']],
286
294
  ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_QuantidadedHorasSemanal', evento['vinculo/infoContrato/horContratual/qtdHrsSem'], :decimal],
287
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'],
288
- 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'],
289
297
  ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial', evento['vinculo/infoContrato/horContratual/tmpParc']],
290
298
  *([['HorarioNoturno', evento['vinculo/infoContrato/horContratual/horNoturno']]] if leiaute_simplificado?),
291
299
  ['EventoAdmissao_InfoVinculo_DataInicioAfastamento', evento['vinculo/afastamento/dtIniAfast'], :data],
292
300
  ['EventoAdmissao_InfoVinculo_CodigoMotivoAfastamento', evento['vinculo/afastamento/codMotAfast']],
293
301
  ['EventoAdmissao_InfoVinculo_SucessaoVinculo_DataTransferencia', evento['vinculo/sucessaoVinc/dtTransf'], :data],
294
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
302
+ leiaute['EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
295
303
  ['EventoAdmissao_InfoVinculo_SucessaoVinculo_MatriculaAnterior', evento['vinculo/sucessaoVinc/matricAnt']]
296
304
  # rubocop:enable Layout/LineLength
297
305
  ]
@@ -303,8 +311,8 @@ module Teodoro
303
311
  @indicativo_de_cadastramento_inicial ||= evento['vinculo/cadIni']
304
312
  end
305
313
 
306
- def de_acordo_com_a_versao_do_leiaute
307
- @de_acordo_com_a_versao_do_leiaute ||=
314
+ def leiaute
315
+ @leiaute ||=
308
316
  if leiaute_simplificado?
309
317
  LeiauteSimplificado.new(empresa: empresa, evento: evento)
310
318
  else
@@ -339,12 +347,28 @@ module Teodoro
339
347
  @evento = evento
340
348
  end
341
349
 
350
+ public
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
+
356
+ def opcao_pelo_fgts
357
+ @opcao_pelo_fgts ||= evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/opcFGTS']
358
+ end
359
+
360
+ def data_de_opcao_pelo_fgts
361
+ @data_de_opcao_pelo_fgts ||= evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/dtOpcFGTS']
362
+ end
363
+
364
+ private
365
+
342
366
  def dados_do_arquivo_data # rubocop:disable Metrics/MethodLength
343
367
  [
344
368
  # rubocop:disable Layout/LineLength
345
369
  [
346
370
  'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
347
- evento['trabalhador/trabEstrangeiro/classTrabEstrang']
371
+ condicao_de_ingresso_no_brasil_do_trabalhador
348
372
  ],
349
373
  [
350
374
  'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada',
@@ -356,11 +380,11 @@ module Teodoro
356
380
  ],
357
381
  [
358
382
  'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS',
359
- evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/opcFGTS']
383
+ opcao_pelo_fgts
360
384
  ],
361
385
  [
362
386
  'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS',
363
- evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/dtOpcFGTS'],
387
+ data_de_opcao_pelo_fgts,
364
388
  :data
365
389
  ],
366
390
  [
@@ -388,20 +412,31 @@ module Teodoro
388
412
 
389
413
  attr_reader :empresa
390
414
 
391
- def dados_do_arquivo_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
415
+ public
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
+
424
+ def opcao_pelo_fgts
425
+ @opcao_pelo_fgts ||= evento['vinculo/infoRegimeTrab/infoCeletista/FGTS'] ? 1 : 2
426
+ end
427
+
428
+ def data_de_opcao_pelo_fgts
429
+ @data_de_opcao_pelo_fgts ||= evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/dtOpcFGTS']
430
+ end
431
+
432
+ private
433
+
434
+ def dados_do_arquivo_data # rubocop:disable Metrics/MethodLength
392
435
  [
393
436
  # rubocop:disable Layout/LineLength
394
437
  [
395
438
  'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
396
- {
397
- '1' => 4,
398
- '2' => 5,
399
- '3' => 9,
400
- '4' => 10,
401
- '5' => 11,
402
- '6' => 12,
403
- '7' => evento['trabalhador/trabImig/tmpResid']
404
- }[evento['trabalhador/trabImig/condIng']]
439
+ condicao_de_ingresso_no_brasil_do_trabalhador
405
440
  ],
406
441
  [
407
442
  'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada',
@@ -413,11 +448,11 @@ module Teodoro
413
448
  ],
414
449
  [
415
450
  'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS',
416
- evento['vinculo/infoRegimeTrab/infoCeletista/FGTS'] ? 1 : 2
451
+ opcao_pelo_fgts
417
452
  ],
418
453
  [
419
454
  'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS',
420
- evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/dtOpcFGTS'],
455
+ data_de_opcao_pelo_fgts,
421
456
  :data
422
457
  ],
423
458
  [
@@ -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],
@@ -31,6 +31,7 @@ module Teodoro
31
31
  @alteracao_contratual ||= Obj.new(
32
32
  matricula_do_trabalhador: evento['ideVinculo/matricula'],
33
33
  tipo_de_regime_previdenciario: evento['altContratual/vinculo/tpRegPrev'],
34
+ natureza_da_atividade: natureza_da_atividade,
34
35
  duracao: duracao
35
36
  )
36
37
  end
@@ -77,6 +78,10 @@ module Teodoro
77
78
 
78
79
  private
79
80
 
81
+ def natureza_da_atividade
82
+ evento['altContratual/infoRegimeTrab/infoCeletista/natAtividade']
83
+ end
84
+
80
85
  def duracao
81
86
  Obj.new(tipo_de_contrato: evento['altContratual/infoContrato/duracao/tpContr'])
82
87
  end
@@ -112,7 +117,7 @@ module Teodoro
112
117
  ['VinculoAlteracao_TipoRegimePrevidenciario', alteracao_contratual.tipo_de_regime_previdenciario],
113
118
  ['dataAdmissao', data_de_admissao, :data],
114
119
  ['InformacoesCeletista_TipoRegimeJornada', evento['altContratual/infoRegimeTrab/infoCeletista/tpRegJor']],
115
- ['InformacoesCeletista_NaturezaAtividade', evento['altContratual/infoRegimeTrab/infoCeletista/natAtividade']],
120
+ ['InformacoesCeletista_NaturezaAtividade', alteracao_contratual.natureza_da_atividade],
116
121
  ['FiltroCargo'],
117
122
  ['FiltroFuncao'],
118
123
  ['HorarioTela_Dia'],
@@ -155,6 +160,10 @@ module Teodoro
155
160
 
156
161
  private
157
162
 
163
+ def natureza_da_atividade
164
+ evento['altContratual/vinculo/infoRegimeTrab/infoCeletista/natAtividade']
165
+ end
166
+
158
167
  def duracao
159
168
  Obj.new(tipo_de_contrato: evento['altContratual/vinculo/infoContrato/duracao/tpContr'])
160
169
  end
@@ -190,7 +199,7 @@ module Teodoro
190
199
  ['VinculoAlteracao_TipoRegimePrevidenciario', alteracao_contratual.tipo_de_regime_previdenciario],
191
200
  ['dataAdmissao', data_de_admissao, :data],
192
201
  ['InformacoesCeletista_TipoRegimeJornada', evento['altContratual/vinculo/infoRegimeTrab/infoCeletista/tpRegJor']],
193
- ['InformacoesCeletista_NaturezaAtividade', evento['altContratual/vinculo/infoRegimeTrab/infoCeletista/natAtividade']],
202
+ ['InformacoesCeletista_NaturezaAtividade', alteracao_contratual.natureza_da_atividade],
194
203
  ['FiltroCargo'],
195
204
  ['FiltroFuncao'],
196
205
  ['HorarioTela_Dia'],
@@ -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],
@@ -180,11 +180,11 @@ module Teodoro
180
180
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_CnpjSindicatoCategoriaProfissional'],
181
181
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataAdmissao', data_de_admissao, :data],
182
182
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataBase'],
183
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao'],
184
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'],
185
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'],
186
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade'],
187
- ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao'],
183
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao', contrato_de_emprego.indicativo_de_admissao],
184
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS', contrato_de_emprego.data_de_opcao_pelo_fgts, :data],
185
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS', contrato_de_emprego.opcao_pelo_fgts],
186
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade', contrato_de_emprego.natureza_da_atividade],
187
+ ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao', contrato_de_emprego.tipo_de_admissao],
188
188
  ['InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada'],
189
189
  ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_DescricaoComplementar'],
190
190
  ['InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao'],
@@ -13,12 +13,7 @@ module Teodoro
13
13
 
14
14
  def registrar_inicio_de_contrato
15
15
  contratos_de_trabalho_sem_vinculo.registrar_inicio_de_contrato(
16
- inicio_de_contrato: Obj.new(
17
- cpf_do_trabalhador: cpf_do_trabalhador,
18
- categoria_do_trabalhador: categoria_do_trabalhador,
19
- data_de_inicio: data_de_inicio,
20
- recibo: numero_do_recibo
21
- ),
16
+ inicio_de_contrato: inicio_de_contrato,
22
17
  afastamento: afastamento
23
18
  )
24
19
  end
@@ -27,16 +22,99 @@ module Teodoro
27
22
  empresa.contratos_de_trabalho_sem_vinculo
28
23
  end
29
24
 
30
- def cpf_do_trabalhador
31
- @cpf_do_trabalhador ||= evento['trabalhador/cpfTrab']
32
- end
33
-
34
- def categoria_do_trabalhador
35
- @categoria_do_trabalhador ||= evento['infoTSVInicio/codCateg']
25
+ def inicio_de_contrato
26
+ @inicio_de_contrato ||= Obj.new(
27
+ trabalhador: trabalhador,
28
+ categoria_do_trabalhador: evento['infoTSVInicio/codCateg'],
29
+ data_de_inicio: evento['infoTSVInicio/dtInicio'],
30
+ recibo: numero_do_recibo
31
+ )
36
32
  end
37
33
 
38
- def data_de_inicio
39
- @data_de_inicio ||= evento['infoTSVInicio/dtInicio']
34
+ def trabalhador # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
35
+ @trabalhador ||= Obj.new(
36
+ cpf: evento['trabalhador/cpfTrab'],
37
+ nis: evento['trabalhador/nisTrab'],
38
+ nome: evento['trabalhador/nmTrab'],
39
+ sexo: evento['trabalhador/sexo'],
40
+ raca_cor: evento['trabalhador/racaCor'],
41
+ estado_civil: evento['trabalhador/estCiv'],
42
+ grau_de_instrucao: evento['trabalhador/grauInstr'],
43
+ nome_social: evento['trabalhador/nmSoc'],
44
+ pais_de_nacionalidade: evento['trabalhador/nascimento/paisNac'],
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
+ ),
53
+ reside_no_exterior?: evento['trabalhador/endereco/exterior'],
54
+ estrangeiro?: evento['trabalhador/trabEstrangeiro'],
55
+ data_de_chegada_ao_brasil: evento['trabalhador/trabEstrangeiro/dtChegada'],
56
+ condicao_de_ingresso_no_brasil: leiaute.condicao_de_ingresso_no_brasil_do_trabalhador,
57
+ casado_com_brasileiro: evento['trabalhador/trabEstrangeiro/casadoBr'],
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
+ )
117
+ )
40
118
  end
41
119
 
42
120
  def afastamento
@@ -49,18 +127,22 @@ module Teodoro
49
127
  def dados_dos_arquivos_data # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
50
128
  [
51
129
  Obj.new(
52
- nome: "TRA[#{cpf_do_trabalhador}][TSV_#{categoria_do_trabalhador}_#{data_de_inicio.delete('-')}]-ADM",
130
+ nome: [
131
+ "TRA[#{trabalhador.cpf}]",
132
+ "[TSV_#{inicio_de_contrato.categoria_do_trabalhador}_#{inicio_de_contrato.data_de_inicio.delete('-')}]",
133
+ '-ADM'
134
+ ].join,
53
135
  itens_do_conteudo: [
54
136
  # rubocop:disable Layout/LineLength
55
- ['ESX_CPF', cpf_do_trabalhador],
56
- ['ESX_CATEGORIA', categoria_do_trabalhador],
137
+ ['ESX_CPF', trabalhador.cpf],
138
+ ['ESX_CATEGORIA', inicio_de_contrato.categoria_do_trabalhador],
57
139
  %w[ESX_SEMVINCULO 1],
58
- ['ESX_DATAADMISSAO', data_de_inicio, :data],
140
+ ['ESX_DATAADMISSAO', inicio_de_contrato.data_de_inicio, :data],
59
141
  ['IdEventoXml', id_do_evento],
60
142
  ['NrReciboEventoOriginal'],
61
143
  ['EventoAdmissao_NrRecibo'],
62
144
  ['EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial', evento['infoTSVInicio/cadIni']],
63
- ['EventoAdmissao_InformacoesInicio_DataInicio', data_de_inicio, :data],
145
+ ['EventoAdmissao_InformacoesInicio_DataInicio', inicio_de_contrato.data_de_inicio, :data],
64
146
  ['SomenteLeitura'],
65
147
  ['UrlRetorno'],
66
148
  ['IdEvento'],
@@ -71,61 +153,61 @@ module Teodoro
71
153
  ['autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade'],
72
154
  ['DescricaoProcEmi', processo_de_emissao_do_evento],
73
155
  ['VerProc', versao_do_processo_de_emissao_do_evento],
74
- ['EventoAdmissao_InfoTrabalhador_Cpf', cpf_do_trabalhador],
75
- ['EventoAdmissao_InfoTrabalhador_Nome', evento['trabalhador/nmTrab']],
76
- ['EventoAdmissao_InfoTrabalhador_Nis', evento['trabalhador/nisTrab']],
77
- ['EventoAdmissao_InfoTrabalhador_Sexo', evento['trabalhador/sexo']],
156
+ ['EventoAdmissao_InfoTrabalhador_Cpf', trabalhador.cpf],
157
+ ['EventoAdmissao_InfoTrabalhador_Nome', trabalhador.nome],
158
+ ['EventoAdmissao_InfoTrabalhador_Nis', trabalhador.nis],
159
+ ['EventoAdmissao_InfoTrabalhador_Sexo', trabalhador.sexo],
78
160
  ['EventoAdmissao_InfoTrabalhador_Sexo_TEXT'],
79
- ['EventoAdmissao_InfoTrabalhador_RacaCor', evento['trabalhador/racaCor']],
161
+ ['EventoAdmissao_InfoTrabalhador_RacaCor', trabalhador.raca_cor],
80
162
  ['EventoAdmissao_InfoTrabalhador_RacaCor_TEXT'],
81
- ['EventoAdmissao_InfoTrabalhador_EstadoCivil', evento['trabalhador/estCiv']],
163
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil', trabalhador.estado_civil],
82
164
  ['EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT'],
83
- ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', evento['trabalhador/grauInstr']],
165
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', trabalhador.grau_de_instrucao],
84
166
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
85
- ['EventoAdmissao_InfoTrabalhador_NomeSocial', evento['trabalhador/nmSoc']],
86
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', codigo_do_municipio_de_nascimento_do_trabalhador],
87
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT', Municipios[codigo_do_municipio_de_nascimento_do_trabalhador]],
88
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', evento['trabalhador/nascimento/dtNascto'], :data],
89
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', evento['trabalhador/nascimento/nmMae']],
90
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', evento['trabalhador/nascimento/nmPai']],
91
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', evento['trabalhador/nascimento/paisNascto']],
167
+ ['EventoAdmissao_InfoTrabalhador_NomeSocial', trabalhador.nome_social],
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],
92
174
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
93
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', evento['trabalhador/nascimento/paisNac']],
175
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', trabalhador.pais_de_nacionalidade],
94
176
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
95
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', evento['trabalhador/nascimento/uf']],
177
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.nascimento.uf],
96
178
  ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
97
179
  ['SemNumeroLogradouroEnderecoBR'],
98
180
  ['ResideExterior', evento['trabalhador/endereco/exterior'], :bool],
99
181
  ['SemNumeroLogradouroEnderecoEX'],
100
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', evento['trabalhador/trabEstrangeiro/casadoBr']],
101
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
182
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', (trabalhador.casado_com_brasileiro if trabalhador.estrangeiro?)],
183
+ leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
102
184
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT'],
103
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', evento['trabalhador/trabEstrangeiro/dtChegada'], :data],
104
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', evento['trabalhador/trabEstrangeiro/filhosBr']],
105
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', evento['trabalhador/documentos/CNH/categoriaCnh']],
185
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', (trabalhador.data_de_chegada_ao_brasil if trabalhador.estrangeiro?), :data],
186
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', (trabalhador.filhos_brasileiros if trabalhador.estrangeiro?)],
187
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', trabalhador.cnh.categoria],
106
188
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
107
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', evento['trabalhador/documentos/CNH/dtExped'], :data],
108
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', evento['trabalhador/documentos/CNH/dtPriHab'], :data],
109
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', evento['trabalhador/documentos/CNH/dtValid'], :data],
110
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', evento['trabalhador/documentos/CNH/nrRegCnh']],
111
- ['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],
112
194
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
113
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', evento['trabalhador/documentos/CTPS/nrCtps']],
114
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', evento['trabalhador/documentos/CTPS/serieCtps']],
115
- ['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],
116
198
  ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
117
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', evento['trabalhador/documentos/OC/dtExped'], :data],
118
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', evento['trabalhador/documentos/OC/nrOc']],
119
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', evento['trabalhador/documentos/OC/orgaoEmissor']],
120
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', evento['trabalhador/documentos/RG/dtExped'], :data],
121
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', evento['trabalhador/documentos/RG/nrRg']],
122
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', evento['trabalhador/documentos/RG/orgaoEmissor']],
123
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', evento['trabalhador/infoDeficiencia/defAuditiva']],
124
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', evento['trabalhador/infoDeficiencia/defFisica']],
125
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', evento['trabalhador/infoDeficiencia/defIntelectual']],
126
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', evento['trabalhador/infoDeficiencia/defMental']],
127
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', evento['trabalhador/infoDeficiencia/defVisual']],
128
- ['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],
129
211
  *evento.*('trabalhador/dependente').map.with_index(1) do |dependente, seq|
130
212
  [
131
213
  ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
@@ -163,21 +245,21 @@ module Teodoro
163
245
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NivelEstagio', evento['infoTSVInicio/infoComplementares/infoEstagiario/nivEstagio']],
164
246
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NrApoliceSeguro', evento['infoTSVInicio/infoComplementares/infoEstagiario/nrApol']],
165
247
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_ValorBolsa', evento['infoTSVInicio/infoComplementares/infoEstagiario/vlrBolsa'], :decimal],
166
- ['EventoAdmissao_InformacoesInicio_CodigoCategoria', categoria_do_trabalhador],
248
+ ['EventoAdmissao_InformacoesInicio_CodigoCategoria', inicio_de_contrato.categoria_do_trabalhador],
167
249
  ['DescricaoProcEmi', processo_de_emissao_do_evento],
168
250
  ['IdEventoXml', id_do_evento],
169
251
  ['NrReciboEventoOriginal', numero_do_recibo],
170
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Bairro', evento['trabalhador/endereco/brasil/bairro']],
171
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Cep', evento['trabalhador/endereco/brasil/cep']],
172
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_CodigoMunicipio', evento['trabalhador/endereco/brasil/codMunic']],
173
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Complemento', evento['trabalhador/endereco/brasil/complemento']],
174
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_DescricaoLogradouro', evento['trabalhador/endereco/brasil/dscLograd']],
175
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_NumeroLogradouro', evento['trabalhador/endereco/brasil/nrLograd']],
176
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_TipoLogradouro', evento['trabalhador/endereco/brasil/tpLograd']],
177
- ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Uf', evento['trabalhador/endereco/brasil/uf']],
178
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCargo'],
179
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS'],
180
- 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'],
181
263
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_UnidadeSalarioFixo', evento['infoTSVInicio/infoComplementares/remuneracao/undSalFixo']],
182
264
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_ValorSalarioFixo', evento['infoTSVInicio/infoComplementares/remuneracao/vrSalFx'], :decimal],
183
265
  ['EventoAdmissao_InformacoesInicio_NaturezaAtividade', evento['infoTSVInicio/natAtividade']]
@@ -187,12 +269,8 @@ module Teodoro
187
269
  ]
188
270
  end
189
271
 
190
- def codigo_do_municipio_de_nascimento_do_trabalhador
191
- @codigo_do_municipio_de_nascimento_do_trabalhador ||= evento['trabalhador/nascimento/codMunic']
192
- end
193
-
194
- def de_acordo_com_a_versao_do_leiaute
195
- @de_acordo_com_a_versao_do_leiaute ||=
272
+ def leiaute
273
+ @leiaute ||=
196
274
  if leiaute_simplificado?
197
275
  LeiauteSimplificado.new(empresa: empresa, evento: evento)
198
276
  else
@@ -227,11 +305,19 @@ module Teodoro
227
305
  @evento = evento
228
306
  end
229
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
+
230
316
  def chaves_valores # rubocop:disable Metrics/MethodLength
231
317
  [
232
318
  [
233
319
  'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
234
- evento['trabalhador/trabEstrangeiro/classTrabEstrang']
320
+ condicao_de_ingresso_no_brasil_do_trabalhador
235
321
  ],
236
322
  [
237
323
  'EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS',
@@ -262,19 +348,22 @@ module Teodoro
262
348
 
263
349
  attr_reader :empresa
264
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
+
265
362
  def chaves_valores # rubocop:disable Metrics/MethodLength
266
363
  [
267
364
  [
268
365
  'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
269
- {
270
- '1' => 4,
271
- '2' => 5,
272
- '3' => 9,
273
- '4' => 10,
274
- '5' => 11,
275
- '6' => 12,
276
- '7' => evento['trabalhador/trabImig/tmpResid']
277
- }[evento['trabalhador/trabImig/condIng']]
366
+ condicao_de_ingresso_no_brasil_do_trabalhador
278
367
  ],
279
368
  [
280
369
  'EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS',
@@ -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'],
@@ -180,8 +180,8 @@ module Teodoro
180
180
  @data_da_alteracao ||= evento['infoTSVAlteracao/dtAlteracao']
181
181
  end
182
182
 
183
- def de_acordo_com_a_versao_do_leiaute # rubocop:disable Metrics/MethodLength
184
- @de_acordo_com_a_versao_do_leiaute ||=
183
+ def leiaute # rubocop:disable Metrics/MethodLength
184
+ @leiaute ||=
185
185
  (
186
186
  if leiaute_simplificado?
187
187
  [
@@ -16,7 +16,7 @@ module Teodoro
16
16
  end
17
17
 
18
18
  def contrato_de_trabalho
19
- contratos_de_trabalho_sem_vinculo[
19
+ @contrato_de_trabalho ||= contratos_de_trabalho_sem_vinculo[
20
20
  cpf_do_trabalhador: cpf_do_trabalhador,
21
21
  categoria_do_trabalhador: categoria_do_trabalhador,
22
22
  data: data_do_termino
@@ -39,7 +39,7 @@ module Teodoro
39
39
  @categoria_do_trabalhador ||= evento['ideTrabSemVinculo/codCateg']
40
40
  end
41
41
 
42
- def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength
42
+ def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
43
43
  [
44
44
  Obj.new(
45
45
  nome: "TRA[#{cpf_do_trabalhador}][TSV_#{categoria_do_trabalhador}_#{data_de_inicio.delete('-')}]-GER",
@@ -56,7 +56,7 @@ module Teodoro
56
56
  ['EventoAdmissao_NrRecibo'],
57
57
  ['EventoAdmissao_DataAlteracaoCadastral'],
58
58
  ['EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial'],
59
- ['EventoAdmissao_InformacoesInicio_DataInicio'],
59
+ ['EventoAdmissao_InformacoesInicio_DataInicio', data_de_inicio, :data],
60
60
  ['EventoAdmissao_DataAlteracaoContratual'],
61
61
  ['SomenteLeitura'],
62
62
  ['UrlRetorno'],
@@ -71,60 +71,60 @@ module Teodoro
71
71
  ['DescricaoProcEmi', processo_de_emissao_do_evento],
72
72
  ['VerProc', versao_do_processo_de_emissao_do_evento],
73
73
  ['EventoAdmissao_InfoTrabalhador_Cpf', cpf_do_trabalhador],
74
- ['EventoAdmissao_InfoTrabalhador_Nome'],
75
- ['EventoAdmissao_InfoTrabalhador_Nis'],
76
- ['EventoAdmissao_InfoTrabalhador_Sexo'],
74
+ ['EventoAdmissao_InfoTrabalhador_Nome', trabalhador.nome],
75
+ ['EventoAdmissao_InfoTrabalhador_Nis', trabalhador.nis],
76
+ ['EventoAdmissao_InfoTrabalhador_Sexo', trabalhador.sexo],
77
77
  ['EventoAdmissao_InfoTrabalhador_Sexo_TEXT'],
78
- ['EventoAdmissao_InfoTrabalhador_RacaCor'],
78
+ ['EventoAdmissao_InfoTrabalhador_RacaCor', trabalhador.raca_cor],
79
79
  ['EventoAdmissao_InfoTrabalhador_RacaCor_TEXT'],
80
- ['EventoAdmissao_InfoTrabalhador_EstadoCivil'],
80
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil', trabalhador.estado_civil],
81
81
  ['EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT'],
82
- ['EventoAdmissao_InfoTrabalhador_GrauInstrucao'],
82
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', trabalhador.grau_de_instrucao],
83
83
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
84
- ['EventoAdmissao_InfoTrabalhador_NomeSocial'],
85
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio'],
86
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT'],
87
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento'],
88
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae'],
89
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai'],
90
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento'],
84
+ ['EventoAdmissao_InfoTrabalhador_NomeSocial', trabalhador.nome_social],
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
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade'],
92
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', trabalhador.pais_de_nacionalidade],
93
93
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
94
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf'],
94
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.nascimento.uf],
95
95
  ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
96
96
  ['SemNumeroLogradouroEnderecoBR'],
97
- ['ResideExterior'],
97
+ ['ResideExterior', trabalhador.reside_no_exterior?, :bool],
98
98
  ['SemNumeroLogradouroEnderecoEX'],
99
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro'],
100
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
99
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', (trabalhador.casado_com_brasileiro if trabalhador.estrangeiro?)],
100
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao', (trabalhador.condicao_de_ingresso_no_brasil if trabalhador.estrangeiro?)],
101
101
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT'],
102
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada'],
103
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros'],
104
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh'],
102
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', (trabalhador.data_de_chegada_ao_brasil if trabalhador.estrangeiro?), :data],
103
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', (trabalhador.filhos_brasileiros if trabalhador.estrangeiro?)],
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'],
@@ -159,6 +159,10 @@ module Teodoro
159
159
  def data_de_inicio
160
160
  contrato_de_trabalho.data_de_inicio
161
161
  end
162
+
163
+ def trabalhador
164
+ @trabalhador ||= empresa.trabalhadores[cpf_do_trabalhador]
165
+ end
162
166
  end
163
167
  end
164
168
  end
@@ -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.29.0
4
+ version: 0.33.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-10 00:00:00.000000000 Z
11
+ date: 2021-05-11 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