teodoro 0.29.0 → 0.33.0

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