teodoro 0.31.1 → 0.32.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: 9be2eaa07792c43d497e086f536a2b9c21fd8b8b5404cc700b762ad9f69c81c2
4
- data.tar.gz: 6bd6d807b4dafbaa69a6394bcee06bbf5dba8ecf91d01bc32aa46dfd778791c3
3
+ metadata.gz: af2634267636872bdf7b90c11efabccb8a0349e044af6ae8e819ef3b7d9283cb
4
+ data.tar.gz: fb86f02e7aaa5cba5a68f684e74bdeb185a10f076645d5bfd7d25a760a4020cd
5
5
  SHA512:
6
- metadata.gz: fad740740c33094b56d6075ef066bfa12bb9146eb3faadb55d38a442998e3ba249eea770534abc2b0e8a5b6baa58a220e4c4fece483719dd1d8aee9eb6469ec6
7
- data.tar.gz: f7bc479938128f950b0d9e95afd4fc37d80f10371f8f4be6b53165c0f051887374dec2d206ca6415387b426949d3c693fbc829b8d24fee7801d5a06eafe28f39
6
+ metadata.gz: 0123ebb895e40eb8d3b67c81cc7d1cbb370fd099b727e8a0f6636db1a4ec4a712e9f223a4720651847ec184094e5a174489d48dadac1f35a6f04feb175493942
7
+ data.tar.gz: 5ecd588330dac32441ffdbfcd6159b022d7b3b9902352f967ad55d78bbbfd56390909c6ebc810eb77a36e15d336e2f93e0f0848ca422a73f33995f04ae2ec3de
data/lib/teodoro.rb CHANGED
@@ -12,7 +12,7 @@ require_relative 'teodoro/empresa'
12
12
  require_relative 'teodoro/obj'
13
13
 
14
14
  module Teodoro
15
- VERSION = '0.31.1'.freeze
15
+ VERSION = '0.32.0'.freeze
16
16
 
17
17
  CBOs = __FILE__
18
18
  .then { File.dirname(_1) }
@@ -22,6 +22,7 @@ require_relative 'leiaute/arquivo_s2300'
22
22
  require_relative 'leiaute/arquivo_s2306'
23
23
  require_relative 'leiaute/arquivo_s2399'
24
24
  require_relative 'leiaute/arquivo_s3000'
25
+ require_relative 'leiaute_simplificado'
25
26
  require_relative 'xml'
26
27
 
27
28
  module Teodoro
@@ -41,7 +41,7 @@ module Teodoro
41
41
  ['DadosRubrica_Natureza', evento['infoRubrica/*/dadosRubrica/natRubr']],
42
42
  ['DadosRubrica_TipoRubrica', evento['infoRubrica/*/dadosRubrica/tpRubr']],
43
43
  ['DadosRubrica_CodigoIncidenciaPrevidencia', evento['infoRubrica/*/dadosRubrica/codIncCP']],
44
- de_acordo_com_a_versao_do_leiaute['DadosRubrica_CodigoIncidenciaIR'],
44
+ leiaute['DadosRubrica_CodigoIncidenciaIR'],
45
45
  ['DadosRubrica_CodigoIncidenciaFGTS', evento['infoRubrica/*/dadosRubrica/codIncFGTS']],
46
46
  ['DadosRubrica_CodigoIncidenciaSindical', evento['infoRubrica/*/dadosRubrica/codIncSIND']],
47
47
  ['IdEventoXml', id_do_evento],
@@ -55,8 +55,8 @@ module Teodoro
55
55
  ]
56
56
  end
57
57
 
58
- def de_acordo_com_a_versao_do_leiaute # rubocop:disable Metrics/MethodLength
59
- @de_acordo_com_a_versao_do_leiaute ||=
58
+ def leiaute # rubocop:disable Metrics/MethodLength
59
+ @leiaute ||=
60
60
  (
61
61
  if leiaute_simplificado?
62
62
  [
@@ -29,8 +29,8 @@ module Teodoro
29
29
  tipo_de_admissao: evento['vinculo/infoRegimeTrab/infoCeletista/tpAdmissao'],
30
30
  indicativo_de_admissao: evento['vinculo/infoRegimeTrab/infoCeletista/indAdmissao'],
31
31
  natureza_da_atividade: evento['vinculo/infoRegimeTrab/infoCeletista/natAtividade'],
32
- opcao_pelo_fgts: de_acordo_com_a_versao_do_leiaute.opcao_pelo_fgts,
33
- data_de_opcao_pelo_fgts: de_acordo_com_a_versao_do_leiaute.data_de_opcao_pelo_fgts,
32
+ opcao_pelo_fgts: leiaute.opcao_pelo_fgts,
33
+ data_de_opcao_pelo_fgts: leiaute.data_de_opcao_pelo_fgts,
34
34
  categoria_do_trabalhador: evento['vinculo/infoContrato/codCateg'],
35
35
  duracao: Obj.new(tipo_de_contrato: evento['vinculo/infoContrato/duracao/tpContr']),
36
36
  recibo: numero_do_recibo
@@ -66,8 +66,9 @@ module Teodoro
66
66
  uf: evento['trabalhador/endereco/brasil/uf']
67
67
  ),
68
68
  estrangeiro?: evento['trabalhador/trabEstrangeiro'],
69
- casado_com_brasileiro: evento['trabalhador/trabEstrangeiro/casadoBr'],
70
69
  data_de_chegada_ao_brasil: evento['trabalhador/trabEstrangeiro/dtChegada'],
70
+ condicao_de_ingresso_no_brasil: leiaute.condicao_de_ingresso_no_brasil_do_trabalhador,
71
+ casado_com_brasileiro: evento['trabalhador/trabEstrangeiro/casadoBr'],
71
72
  filhos_brasileiros: evento['trabalhador/trabEstrangeiro/filhosBr'],
72
73
  ctps: Obj.new(
73
74
  numero: evento['trabalhador/documentos/CTPS/nrCtps'],
@@ -207,7 +208,7 @@ module Teodoro
207
208
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', trabalhador.casado_com_brasileiro],
208
209
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', trabalhador.data_de_chegada_ao_brasil, :data],
209
210
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', trabalhador.filhos_brasileiros],
210
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
211
+ leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
211
212
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', trabalhador.cnh.categoria],
212
213
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
213
214
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', trabalhador.cnh.data_da_expedicao, :data],
@@ -281,22 +282,22 @@ module Teodoro
281
282
  ['EventoAdmissao_InfoVinculo_Matricula', evento['vinculo/matricula']],
282
283
  ['EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario', admissao.tipo_de_regime_previdenciario],
283
284
  ['EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista', admissao.tipo_de_regime_trabalhista],
284
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'],
285
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'],
286
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo'],
285
+ leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'],
286
+ leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'],
287
+ leiaute['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo'],
287
288
  ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_DataTermino', evento['vinculo/infoContrato/duracao/dtTerm'], :data],
288
289
  ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_ClausulaAssecuratoria', evento['vinculo/infoContrato/duracao/clauAssec']],
289
290
  ['EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao', evento['vinculo/infoContrato/localTrabalho/localTrabGeral/tpInsc']],
290
291
  ['EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao', evento['vinculo/infoContrato/localTrabalho/localTrabGeral/nrInsc']],
291
292
  ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_QuantidadedHorasSemanal', evento['vinculo/infoContrato/horContratual/qtdHrsSem'], :decimal],
292
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'],
293
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada'],
293
+ leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'],
294
+ leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada'],
294
295
  ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial', evento['vinculo/infoContrato/horContratual/tmpParc']],
295
296
  *([['HorarioNoturno', evento['vinculo/infoContrato/horContratual/horNoturno']]] if leiaute_simplificado?),
296
297
  ['EventoAdmissao_InfoVinculo_DataInicioAfastamento', evento['vinculo/afastamento/dtIniAfast'], :data],
297
298
  ['EventoAdmissao_InfoVinculo_CodigoMotivoAfastamento', evento['vinculo/afastamento/codMotAfast']],
298
299
  ['EventoAdmissao_InfoVinculo_SucessaoVinculo_DataTransferencia', evento['vinculo/sucessaoVinc/dtTransf'], :data],
299
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
300
+ leiaute['EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior'],
300
301
  ['EventoAdmissao_InfoVinculo_SucessaoVinculo_MatriculaAnterior', evento['vinculo/sucessaoVinc/matricAnt']]
301
302
  # rubocop:enable Layout/LineLength
302
303
  ]
@@ -308,8 +309,8 @@ module Teodoro
308
309
  @indicativo_de_cadastramento_inicial ||= evento['vinculo/cadIni']
309
310
  end
310
311
 
311
- def de_acordo_com_a_versao_do_leiaute
312
- @de_acordo_com_a_versao_do_leiaute ||=
312
+ def leiaute
313
+ @leiaute ||=
313
314
  if leiaute_simplificado?
314
315
  LeiauteSimplificado.new(empresa: empresa, evento: evento)
315
316
  else
@@ -346,6 +347,10 @@ module Teodoro
346
347
 
347
348
  public
348
349
 
350
+ def condicao_de_ingresso_no_brasil_do_trabalhador
351
+ @condicao_de_ingresso_no_brasil_do_trabalhador ||= evento['trabalhador/trabEstrangeiro/classTrabEstrang']
352
+ end
353
+
349
354
  def opcao_pelo_fgts
350
355
  @opcao_pelo_fgts ||= evento['vinculo/infoRegimeTrab/infoCeletista/FGTS/opcFGTS']
351
356
  end
@@ -361,7 +366,7 @@ module Teodoro
361
366
  # rubocop:disable Layout/LineLength
362
367
  [
363
368
  'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
364
- evento['trabalhador/trabEstrangeiro/classTrabEstrang']
369
+ condicao_de_ingresso_no_brasil_do_trabalhador
365
370
  ],
366
371
  [
367
372
  'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada',
@@ -407,6 +412,13 @@ module Teodoro
407
412
 
408
413
  public
409
414
 
415
+ def condicao_de_ingresso_no_brasil_do_trabalhador
416
+ @condicao_de_ingresso_no_brasil_do_trabalhador ||=
417
+ evento['trabalhador/trabImig']&.then do
418
+ Teodoro::LeiauteSimplificado::TrabalhadorImigrante.new(_1).condicao_de_ingresso_no_brasil_no_leiaute2
419
+ end
420
+ end
421
+
410
422
  def opcao_pelo_fgts
411
423
  @opcao_pelo_fgts ||= evento['vinculo/infoRegimeTrab/infoCeletista/FGTS'] ? 1 : 2
412
424
  end
@@ -422,15 +434,7 @@ module Teodoro
422
434
  # rubocop:disable Layout/LineLength
423
435
  [
424
436
  'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
425
- {
426
- '1' => 4,
427
- '2' => 5,
428
- '3' => 9,
429
- '4' => 10,
430
- '5' => 11,
431
- '6' => 12,
432
- '7' => evento['trabalhador/trabImig/tmpResid']
433
- }[evento['trabalhador/trabImig/condIng']]
437
+ condicao_de_ingresso_no_brasil_do_trabalhador
434
438
  ],
435
439
  [
436
440
  'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada',
@@ -41,6 +41,7 @@ module Teodoro
41
41
  ),
42
42
  estrangeiro?: evento['alteracao/dadosTrabalhador/trabEstrangeiro'],
43
43
  casado_com_brasileiro: evento['alteracao/dadosTrabalhador/trabEstrangeiro/casadoBr'],
44
+ condicao_de_ingresso_no_brasil: leiaute.condicao_de_ingresso_no_brasil,
44
45
  data_de_chegada_ao_brasil: evento['alteracao/dadosTrabalhador/trabEstrangeiro/dtChegada'],
45
46
  filhos_brasileiros: evento['alteracao/dadosTrabalhador/trabEstrangeiro/filhosBr'],
46
47
  ctps: Obj.new(
@@ -94,6 +95,19 @@ module Teodoro
94
95
  )
95
96
  end
96
97
 
98
+ def leiaute
99
+ @leiaute ||= Obj.new(
100
+ condicao_de_ingresso_no_brasil: if leiaute_simplificado?
101
+ evento['alteracao/dadosTrabalhador/trabImig']&.then do
102
+ LeiauteSimplificado::TrabalhadorImigrante.new(_1)
103
+ .condicao_de_ingresso_no_brasil_no_leiaute2
104
+ end
105
+ else
106
+ evento['alteracao/dadosTrabalhador/trabEstrangeiro/classTrabEstrang']
107
+ end
108
+ )
109
+ end
110
+
97
111
  def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
98
112
  contratos_de_trabalho.map do |contrato_de_trabalho| # rubocop:disable Metrics/BlockLength
99
113
  Obj.new(
@@ -51,16 +51,44 @@ module Teodoro
51
51
  reside_no_exterior?: evento['trabalhador/endereco/exterior'],
52
52
  estrangeiro?: evento['trabalhador/trabEstrangeiro'],
53
53
  data_de_chegada_ao_brasil: evento['trabalhador/trabEstrangeiro/dtChegada'],
54
+ condicao_de_ingresso_no_brasil: leiaute.condicao_de_ingresso_no_brasil_do_trabalhador,
54
55
  casado_com_brasileiro: evento['trabalhador/trabEstrangeiro/casadoBr'],
55
56
  filhos_brasileiros: evento['trabalhador/trabEstrangeiro/filhosBr'],
56
57
  endereco: OpenStruct.new({}),
57
- ctps: OpenStruct.new({}),
58
- rg: OpenStruct.new({}),
58
+ ctps: Obj.new(
59
+ numero: evento['trabalhador/documentos/CTPS/nrCtps'],
60
+ serie: evento['trabalhador/documentos/CTPS/serieCtps'],
61
+ uf: evento['trabalhador/documentos/CTPS/ufCtps']
62
+ ),
63
+ rg: Obj.new(
64
+ numero: evento['trabalhador/documentos/RG/nrRg'],
65
+ orgao_emissor: evento['trabalhador/documentos/RG/orgaoEmissor'],
66
+ data_da_expedicao: evento['trabalhador/documentos/RG/dtExped']
67
+ ),
59
68
  rne: OpenStruct.new({}),
60
69
  ric: OpenStruct.new({}),
61
- oc: OpenStruct.new({}),
62
- cnh: OpenStruct.new({}),
63
- deficiencia: OpenStruct.new({}),
70
+ oc: Obj.new(
71
+ numero: evento['trabalhador/documentos/OC/nrOc'],
72
+ orgao_emissor: evento['trabalhador/documentos/OC/orgaoEmissor'],
73
+ data_da_expedicao: evento['trabalhador/documentos/OC/dtExped']
74
+ ),
75
+ cnh: Obj.new(
76
+ numero_do_registro: evento['trabalhador/documentos/CNH/nrRegCnh'],
77
+ data_da_primeira_habilitacao: evento['trabalhador/documentos/CNH/dtPriHab'],
78
+ data_da_expedicao: evento['trabalhador/documentos/CNH/dtExped'],
79
+ data_de_validade: evento['trabalhador/documentos/CNH/dtValid'],
80
+ categoria: evento['trabalhador/documentos/CNH/categoriaCnh'],
81
+ uf_do_emissor: evento['trabalhador/documentos/CNH/ufCnh']
82
+ ),
83
+ deficiencia: Obj.new(
84
+ fisica: evento['trabalhador/infoDeficiencia/defFisica'],
85
+ visual: evento['trabalhador/infoDeficiencia/defVisual'],
86
+ auditiva: evento['trabalhador/infoDeficiencia/defAuditiva'],
87
+ mental: evento['trabalhador/infoDeficiencia/defMental'],
88
+ intelectual: evento['trabalhador/infoDeficiencia/defIntelectual'],
89
+ reabilitado_ou_readaptado: evento['trabalhador/infoDeficiencia/reabReadap'],
90
+ preenche_cota_de_pessoas_com_deficiencia: nil
91
+ ),
64
92
  contato: OpenStruct.new({})
65
93
  )
66
94
  end
@@ -128,34 +156,34 @@ module Teodoro
128
156
  ['ResideExterior', evento['trabalhador/endereco/exterior'], :bool],
129
157
  ['SemNumeroLogradouroEnderecoEX'],
130
158
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', (trabalhador.casado_com_brasileiro if trabalhador.estrangeiro?)],
131
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
159
+ leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
132
160
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT'],
133
161
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', (trabalhador.data_de_chegada_ao_brasil if trabalhador.estrangeiro?), :data],
134
162
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', (trabalhador.filhos_brasileiros if trabalhador.estrangeiro?)],
135
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', evento['trabalhador/documentos/CNH/categoriaCnh']],
163
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', trabalhador.cnh.categoria],
136
164
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
137
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', evento['trabalhador/documentos/CNH/dtExped'], :data],
138
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', evento['trabalhador/documentos/CNH/dtPriHab'], :data],
139
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', evento['trabalhador/documentos/CNH/dtValid'], :data],
140
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', evento['trabalhador/documentos/CNH/nrRegCnh']],
141
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', evento['trabalhador/documentos/CNH/ufCnh']],
165
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', trabalhador.cnh.data_da_expedicao, :data],
166
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', trabalhador.cnh.data_da_primeira_habilitacao, :data],
167
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', trabalhador.cnh.data_de_validade, :data],
168
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', trabalhador.cnh.numero_do_registro],
169
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', trabalhador.cnh.uf_do_emissor],
142
170
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
143
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', evento['trabalhador/documentos/CTPS/nrCtps']],
144
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', evento['trabalhador/documentos/CTPS/serieCtps']],
145
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', evento['trabalhador/documentos/CTPS/ufCtps']],
171
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', trabalhador.ctps.numero],
172
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', trabalhador.ctps.serie],
173
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', trabalhador.ctps.uf],
146
174
  ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
147
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', evento['trabalhador/documentos/OC/dtExped'], :data],
148
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', evento['trabalhador/documentos/OC/nrOc']],
149
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', evento['trabalhador/documentos/OC/orgaoEmissor']],
150
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', evento['trabalhador/documentos/RG/dtExped'], :data],
151
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', evento['trabalhador/documentos/RG/nrRg']],
152
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', evento['trabalhador/documentos/RG/orgaoEmissor']],
153
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', evento['trabalhador/infoDeficiencia/defAuditiva']],
154
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', evento['trabalhador/infoDeficiencia/defFisica']],
155
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', evento['trabalhador/infoDeficiencia/defIntelectual']],
156
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', evento['trabalhador/infoDeficiencia/defMental']],
157
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', evento['trabalhador/infoDeficiencia/defVisual']],
158
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', evento['trabalhador/infoDeficiencia/reabReadap']],
175
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', trabalhador.oc.data_da_expedicao, :data],
176
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', trabalhador.oc.numero],
177
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', trabalhador.oc.orgao_emissor],
178
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', trabalhador.rg.data_da_expedicao, :data],
179
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', trabalhador.rg.numero],
180
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', trabalhador.rg.orgao_emissor],
181
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', trabalhador.deficiencia.auditiva],
182
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', trabalhador.deficiencia.fisica],
183
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', trabalhador.deficiencia.intelectual],
184
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', trabalhador.deficiencia.mental],
185
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', trabalhador.deficiencia.visual],
186
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', trabalhador.deficiencia.reabilitado_ou_readaptado],
159
187
  *evento.*('trabalhador/dependente').map.with_index(1) do |dependente, seq|
160
188
  [
161
189
  ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
@@ -205,9 +233,9 @@ module Teodoro
205
233
  ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_NumeroLogradouro', evento['trabalhador/endereco/brasil/nrLograd']],
206
234
  ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_TipoLogradouro', evento['trabalhador/endereco/brasil/tpLograd']],
207
235
  ['EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Uf', evento['trabalhador/endereco/brasil/uf']],
208
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCargo'],
209
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS'],
210
- de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_DataOpcaoFGTS'],
236
+ leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCargo'],
237
+ leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS'],
238
+ leiaute['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_DataOpcaoFGTS'],
211
239
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_UnidadeSalarioFixo', evento['infoTSVInicio/infoComplementares/remuneracao/undSalFixo']],
212
240
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_ValorSalarioFixo', evento['infoTSVInicio/infoComplementares/remuneracao/vrSalFx'], :decimal],
213
241
  ['EventoAdmissao_InformacoesInicio_NaturezaAtividade', evento['infoTSVInicio/natAtividade']]
@@ -217,8 +245,8 @@ module Teodoro
217
245
  ]
218
246
  end
219
247
 
220
- def de_acordo_com_a_versao_do_leiaute
221
- @de_acordo_com_a_versao_do_leiaute ||=
248
+ def leiaute
249
+ @leiaute ||=
222
250
  if leiaute_simplificado?
223
251
  LeiauteSimplificado.new(empresa: empresa, evento: evento)
224
252
  else
@@ -253,11 +281,19 @@ module Teodoro
253
281
  @evento = evento
254
282
  end
255
283
 
284
+ public
285
+
286
+ def condicao_de_ingresso_no_brasil_do_trabalhador
287
+ @condicao_de_ingresso_no_brasil_do_trabalhador ||= evento['trabalhador/trabEstrangeiro/classTrabEstrang']
288
+ end
289
+
290
+ private
291
+
256
292
  def chaves_valores # rubocop:disable Metrics/MethodLength
257
293
  [
258
294
  [
259
295
  'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
260
- evento['trabalhador/trabEstrangeiro/classTrabEstrang']
296
+ condicao_de_ingresso_no_brasil_do_trabalhador
261
297
  ],
262
298
  [
263
299
  'EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS',
@@ -288,19 +324,22 @@ module Teodoro
288
324
 
289
325
  attr_reader :empresa
290
326
 
327
+ public
328
+
329
+ def condicao_de_ingresso_no_brasil_do_trabalhador
330
+ @condicao_de_ingresso_no_brasil_do_trabalhador ||=
331
+ evento['trabalhador/trabImig']&.then do
332
+ Teodoro::LeiauteSimplificado::TrabalhadorImigrante.new(_1).condicao_de_ingresso_no_brasil_no_leiaute2
333
+ end
334
+ end
335
+
336
+ private
337
+
291
338
  def chaves_valores # rubocop:disable Metrics/MethodLength
292
339
  [
293
340
  [
294
341
  'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao',
295
- {
296
- '1' => 4,
297
- '2' => 5,
298
- '3' => 9,
299
- '4' => 10,
300
- '5' => 11,
301
- '6' => 12,
302
- '7' => evento['trabalhador/trabImig/tmpResid']
303
- }[evento['trabalhador/trabImig/condIng']]
342
+ condicao_de_ingresso_no_brasil_do_trabalhador
304
343
  ],
305
344
  [
306
345
  '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
  [
@@ -97,34 +97,34 @@ module Teodoro
97
97
  ['ResideExterior', trabalhador.reside_no_exterior?, :bool],
98
98
  ['SemNumeroLogradouroEnderecoEX'],
99
99
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', (trabalhador.casado_com_brasileiro if trabalhador.estrangeiro?)],
100
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
100
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao', (trabalhador.condicao_de_ingresso_no_brasil if trabalhador.estrangeiro?)],
101
101
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT'],
102
102
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', (trabalhador.data_de_chegada_ao_brasil if trabalhador.estrangeiro?), :data],
103
103
  ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', (trabalhador.filhos_brasileiros if trabalhador.estrangeiro?)],
104
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh'],
104
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', trabalhador.cnh.categoria],
105
105
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
106
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao'],
107
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao'],
108
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade'],
109
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh'],
110
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh'],
106
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', trabalhador.cnh.data_da_expedicao, :data],
107
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', trabalhador.cnh.data_da_primeira_habilitacao, :data],
108
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', trabalhador.cnh.data_de_validade, :data],
109
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', trabalhador.cnh.numero_do_registro],
110
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', trabalhador.cnh.uf_do_emissor],
111
111
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
112
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps'],
113
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps'],
114
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps'],
112
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', trabalhador.ctps.numero],
113
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', trabalhador.ctps.serie],
114
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', trabalhador.ctps.uf],
115
115
  ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
116
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao'],
117
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc'],
118
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor'],
119
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao'],
120
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg'],
121
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor'],
122
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva'],
123
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica'],
124
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual'],
125
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental'],
126
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual'],
127
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado'],
116
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', trabalhador.oc.data_da_expedicao, :data],
117
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', trabalhador.oc.numero],
118
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', trabalhador.oc.orgao_emissor],
119
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', trabalhador.rg.data_da_expedicao, :data],
120
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', trabalhador.rg.numero],
121
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', trabalhador.rg.orgao_emissor],
122
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', trabalhador.deficiencia.auditiva],
123
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', trabalhador.deficiencia.fisica],
124
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', trabalhador.deficiencia.intelectual],
125
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', trabalhador.deficiencia.mental],
126
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', trabalhador.deficiencia.visual],
127
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', trabalhador.deficiencia.reabilitado_ou_readaptado],
128
128
  ['CodigoCBO'],
129
129
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_AreaAtuacao'],
130
130
  ['EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_DtPrevistaTermino'],
@@ -0,0 +1,27 @@
1
+ module Teodoro
2
+ module LeiauteSimplificado
3
+ class TrabalhadorImigrante
4
+ private
5
+
6
+ def initialize(xml)
7
+ @xml = xml
8
+ end
9
+
10
+ attr_reader :xml
11
+
12
+ public
13
+
14
+ def condicao_de_ingresso_no_brasil_no_leiaute2
15
+ {
16
+ '1' => 4,
17
+ '2' => 5,
18
+ '3' => 9,
19
+ '4' => 10,
20
+ '5' => 11,
21
+ '6' => 12,
22
+ '7' => xml['tmpResid']
23
+ }[xml['condIng']]
24
+ end
25
+ end
26
+ end
27
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teodoro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.1
4
+ version: 0.32.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clavius Tales
@@ -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