teodoro 0.24.0 → 0.29.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.
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.24.0'.freeze
15
+ VERSION = '0.29.0'.freeze
16
16
 
17
17
  CBOs = __FILE__
18
18
  .then { File.dirname(_1) }
@@ -23,15 +23,28 @@ module Teodoro
23
23
  .to_h
24
24
  .freeze
25
25
 
26
+ Municipios = __FILE__
27
+ .then { File.dirname(_1) }
28
+ .then { File.join(_1, 'municipios.json') }
29
+ .then { File.read(_1) }
30
+ .then { JSON.parse(_1) }
31
+ .map { [_1['codigo'], _1['nome']] }
32
+ .to_h
33
+ .freeze
34
+
35
+ TiposDeLogradouro = __FILE__
36
+ .then { File.dirname(_1) }
37
+ .then { File.join(_1, 'tipos_de_logradouro.json') }
38
+ .then { File.read(_1) }
39
+ .then { JSON.parse(_1) }
40
+ .map { [_1['codigo'], _1['descricao']] }
41
+ .to_h
42
+ .freeze
43
+
26
44
  def self.call(args)
27
45
  Execution.new(args).call
28
46
  end
29
47
 
30
- @production = true
31
- def self.production?
32
- @production
33
- end
34
-
35
48
  class Execution
36
49
  NOME_DO_PROGRAMA = 'teodoro'.freeze
37
50
 
@@ -49,6 +62,7 @@ module Teodoro
49
62
  validar_argumentos
50
63
  validar_existencia_do_diretorio_de_origem
51
64
  validar_existencia_do_diretorio_de_destino
65
+ validar_que_diretorio_de_origem_nao_contem_arquivo
52
66
  validar_que_diretorio_de_origem_nao_esta_vazio
53
67
  validar_que_diretorio_de_destino_esta_vazio
54
68
  validar_que_nao_ha_nova_versao_disponivel
@@ -59,7 +73,7 @@ module Teodoro
59
73
  private
60
74
 
61
75
  def validar_argumentos
62
- erro "#{NOME_DO_PROGRAMA} [diretório de origem] [diretório de destino]" unless args.size == 2
76
+ erro("#{NOME_DO_PROGRAMA} [diretório de origem] [diretório de destino]", saiba_mais: true) unless args.size == 2
63
77
  end
64
78
 
65
79
  def validar_que_nao_ha_nova_versao_disponivel
@@ -113,16 +127,26 @@ module Teodoro
113
127
  @destino ||= args[1].tr('\\', '/')
114
128
  end
115
129
 
130
+ def validar_que_diretorio_de_origem_nao_contem_arquivo
131
+ return unless diretorio_de_origem_contem_arquivo?
132
+
133
+ erro('Diretório de origem deve conter apenas diretórios de empresa.', saiba_mais: true)
134
+ end
135
+
136
+ def diretorio_de_origem_contem_arquivo?
137
+ Dir[File.join(origem, '*')].any? { File.file?(_1) }
138
+ end
139
+
116
140
  def validar_que_diretorio_de_origem_nao_esta_vazio
117
- erro 'Diretório de origem vazio.' if Dir.empty?(origem)
141
+ erro('Diretório de origem vazio.', saiba_mais: true) if Dir.empty?(origem)
118
142
  end
119
143
 
120
144
  def validar_que_diretorio_de_destino_esta_vazio
121
- erro 'Diretório de destino deve estar vazio.' unless Dir.empty?(destino)
145
+ erro('Diretório de destino deve estar vazio.', saiba_mais: true) unless Dir.empty?(destino)
122
146
  end
123
147
 
124
- def erro(erro)
125
- puts erro
148
+ def erro(erro, saiba_mais: false)
149
+ puts [erro, *('Saiba mais em sites.google.com/fortestecnologia.com.br/teodoro.' if saiba_mais)]
126
150
  exit
127
151
  end
128
152
 
@@ -49,6 +49,7 @@ module Teodoro
49
49
  ].freeze
50
50
 
51
51
  TIPOS_DE_EVENTO_RETIFICAVEIS = %w[
52
+ S2190
52
53
  S2200
53
54
  S2205
54
55
  S2206
@@ -126,11 +127,11 @@ module Teodoro
126
127
  end
127
128
 
128
129
  def validar_versao_do_leiaute
129
- raise unless [
130
- '02_04_01',
131
- '02_04_02',
132
- '02_05_00',
133
- *('_S_01_00_00' unless Teodoro.production?)
130
+ raise unless %w[
131
+ 02_04_01
132
+ 02_04_02
133
+ 02_05_00
134
+ _S_01_00_00
134
135
  ].include?(versao_do_leiaute)
135
136
  end
136
137
 
@@ -6,6 +6,7 @@ require_relative 'empresa/arquivo_data_rub'
6
6
  require_relative 'empresa/cargos_gerados'
7
7
  require_relative 'empresa/contratos_de_emprego'
8
8
  require_relative 'empresa/contratos_de_trabalho_sem_vinculo'
9
+ require_relative 'empresa/trabalhadores'
9
10
 
10
11
  module Teodoro
11
12
  class Empresa
@@ -60,8 +61,12 @@ module Teodoro
60
61
  @arquivos_data ||= ArquivosData.new(destino_dos_arquivos_data)
61
62
  end
62
63
 
64
+ def trabalhadores
65
+ @trabalhadores ||= Trabalhadores.new
66
+ end
67
+
63
68
  def contratos_de_emprego
64
- @contratos_de_emprego ||= ContratosDeEmprego.new
69
+ @contratos_de_emprego ||= ContratosDeEmprego.new(trabalhadores)
65
70
  end
66
71
 
67
72
  def contratos_de_trabalho_sem_vinculo
@@ -1,8 +1,25 @@
1
1
  module Teodoro
2
2
  class Empresa
3
3
  class ContratosDeEmprego
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_admissao(admissao:, afastamento:)
5
- contratos_por_matricula[admissao.matricula] = Contrato.new(admissao: admissao, afastamento: afastamento)
15
+ contratos_por_matricula[admissao.matricula_do_trabalhador] =
16
+ Contrato.new(admissao: admissao, afastamento: afastamento)
17
+ trabalhadores << admissao.trabalhador
18
+ end
19
+
20
+ def registrar_alteracao_contratual(alteracao_contratual)
21
+ contratos_por_matricula[alteracao_contratual.matricula_do_trabalhador]
22
+ .registrar_alteracao_contratual(alteracao_contratual)
6
23
  end
7
24
 
8
25
  def [](matricula)
@@ -11,7 +28,7 @@ module Teodoro
11
28
 
12
29
  def *(cpf_do_trabalhador:, data:)
13
30
  contratos
14
- .select { _1.cpf_do_trabalhador == cpf_do_trabalhador && _1.ativo?(data) }
31
+ .select { _1.trabalhador.cpf == cpf_do_trabalhador && _1.ativo?(data) }
15
32
  .sort_by(&:data_de_admissao)
16
33
  end
17
34
 
@@ -35,6 +52,9 @@ module Teodoro
35
52
  def initialize(admissao:, afastamento:)
36
53
  @admissao = admissao
37
54
  @afastamento = afastamento
55
+
56
+ @tipo_de_regime_previdenciario = admissao.tipo_de_regime_previdenciario
57
+ @duracao = admissao.duracao
38
58
  end
39
59
 
40
60
  attr_reader :admissao, :data_de_desligamento
@@ -43,13 +63,26 @@ module Teodoro
43
63
 
44
64
  extend Forwardable
45
65
 
46
- def_delegators :admissao, :matricula, :data_de_admissao, :categoria_do_trabalhador, :cpf_do_trabalhador,
66
+ def_delegators :admissao,
67
+ :trabalhador,
68
+ :matricula_do_trabalhador,
69
+ :tipo_de_regime_trabalhista,
70
+ :data_de_admissao,
71
+ :categoria_do_trabalhador,
72
+ :primeiro_emprego_do_trabalhador,
47
73
  :recibo
48
74
 
49
75
  attr_accessor :afastamento
50
76
 
77
+ attr_reader :tipo_de_regime_previdenciario, :duracao
78
+
51
79
  attr_writer :data_de_desligamento
52
80
 
81
+ def registrar_alteracao_contratual(alteracao_contratual)
82
+ @tipo_de_regime_previdenciario = alteracao_contratual.tipo_de_regime_previdenciario
83
+ @duracao = alteracao_contratual.duracao
84
+ end
85
+
53
86
  def ativo?(data)
54
87
  data_de_admissao <= data && (!data_de_desligamento || data_de_desligamento >= data)
55
88
  end
@@ -0,0 +1,19 @@
1
+ module Teodoro
2
+ class Empresa
3
+ class Trabalhadores
4
+ def <<(trabalhador)
5
+ trabalhadores[trabalhador.cpf] = trabalhador
6
+ end
7
+
8
+ def [](cpf)
9
+ trabalhadores[cpf]
10
+ end
11
+
12
+ private
13
+
14
+ def trabalhadores
15
+ @trabalhadores ||= {}
16
+ end
17
+ end
18
+ end
19
+ end
@@ -13,35 +13,110 @@ module Teodoro
13
13
 
14
14
  def registrar_admissao
15
15
  contratos_de_emprego.registrar_admissao(
16
- admissao: Obj.new(
17
- matricula: matricula_do_trabalhador,
18
- data_de_admissao: data_de_admissao,
19
- categoria_do_trabalhador: categoria_do_trabalhador,
20
- cpf_do_trabalhador: cpf_do_trabalhador,
21
- recibo: numero_do_recibo
22
- ),
16
+ admissao: admissao,
23
17
  afastamento: afastamento
24
18
  )
25
19
  end
26
20
 
27
- def contratos_de_emprego
28
- empresa.contratos_de_emprego
29
- end
30
-
31
- def matricula_do_trabalhador
32
- @matricula_do_trabalhador ||= evento['vinculo/matricula']
33
- end
34
-
35
- def data_de_admissao
36
- @data_de_admissao ||= evento['vinculo/infoRegimeTrab/infoCeletista/dtAdm']
21
+ def admissao # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
22
+ @admissao ||= Obj.new(
23
+ trabalhador: trabalhador,
24
+ matricula_do_trabalhador: evento['vinculo/matricula'],
25
+ tipo_de_regime_trabalhista: evento['vinculo/tpRegTrab'],
26
+ tipo_de_regime_previdenciario: evento['vinculo/tpRegPrev'],
27
+ data_de_admissao: evento['vinculo/infoRegimeTrab/infoCeletista/dtAdm'],
28
+ categoria_do_trabalhador: evento['vinculo/infoContrato/codCateg'],
29
+ primeiro_emprego_do_trabalhador: evento['trabalhador/indPriEmpr'],
30
+ duracao: Obj.new(tipo_de_contrato: evento['vinculo/infoContrato/duracao/tpContr']),
31
+ recibo: numero_do_recibo
32
+ )
37
33
  end
38
34
 
39
- def categoria_do_trabalhador
40
- @categoria_do_trabalhador ||= evento['vinculo/infoContrato/codCateg']
35
+ def trabalhador # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
36
+ @trabalhador ||= Obj.new(
37
+ cpf: evento['trabalhador/cpfTrab'],
38
+ nis: evento['trabalhador/nisTrab'],
39
+ nome: evento['trabalhador/nmTrab'],
40
+ sexo: evento['trabalhador/sexo'],
41
+ raca_cor: evento['trabalhador/racaCor'],
42
+ estado_civil: evento['trabalhador/estCiv'],
43
+ grau_de_instrucao: evento['trabalhador/grauInstr'],
44
+ nome_social: evento['trabalhador/nmSoc'],
45
+ data_de_nascimento: evento['trabalhador/nascimento/dtNascto'],
46
+ pais_de_nascimento: evento['trabalhador/nascimento/paisNascto'],
47
+ 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'],
52
+ reside_no_exterior?: evento['trabalhador/endereco/exterior'],
53
+ endereco: Obj.new(
54
+ tipo_de_logradouro: evento['trabalhador/endereco/brasil/tpLograd'],
55
+ logradouro: evento['trabalhador/endereco/brasil/dscLograd'],
56
+ numero: evento['trabalhador/endereco/brasil/nrLograd'],
57
+ complemento: evento['trabalhador/endereco/brasil/complemento'],
58
+ bairro: evento['trabalhador/endereco/brasil/bairro'],
59
+ cep: evento['trabalhador/endereco/brasil/cep'],
60
+ codigo_do_municipio: evento['trabalhador/endereco/brasil/codMunic'],
61
+ uf: evento['trabalhador/endereco/brasil/uf']
62
+ ),
63
+ estrangeiro?: evento['trabalhador/trabEstrangeiro'],
64
+ casado_com_brasileiro: evento['trabalhador/trabEstrangeiro/casadoBr'],
65
+ data_de_chegada_ao_brasil: evento['trabalhador/trabEstrangeiro/dtChegada'],
66
+ filhos_brasileiros: evento['trabalhador/trabEstrangeiro/filhosBr'],
67
+ ctps: Obj.new(
68
+ numero: evento['trabalhador/documentos/CTPS/nrCtps'],
69
+ serie: evento['trabalhador/documentos/CTPS/serieCtps'],
70
+ uf: evento['trabalhador/documentos/CTPS/ufCtps']
71
+ ),
72
+ rg: Obj.new(
73
+ numero: evento['trabalhador/documentos/RG/nrRg'],
74
+ orgao_emissor: evento['trabalhador/documentos/RG/orgaoEmissor'],
75
+ data_da_expedicao: evento['trabalhador/documentos/RG/dtExped']
76
+ ),
77
+ rne: Obj.new(
78
+ numero: evento['trabalhador/documentos/RNE/nrRne'],
79
+ orgao_emissor: evento['trabalhador/documentos/RNE/orgaoEmissor'],
80
+ data_da_expedicao: evento['trabalhador/documentos/RNE/dtExped']
81
+ ),
82
+ ric: Obj.new(
83
+ numero: evento['trabalhador/documentos/RIC/nrRic'],
84
+ orgao_emissor: evento['trabalhador/documentos/RIC/orgaoEmissor'],
85
+ data_da_expedicao: evento['trabalhador/documentos/RIC/dtExped']
86
+ ),
87
+ oc: Obj.new(
88
+ numero: evento['trabalhador/documentos/OC/nrOc'],
89
+ orgao_emissor: evento['trabalhador/documentos/OC/orgaoEmissor'],
90
+ data_da_expedicao: evento['trabalhador/documentos/OC/dtExped']
91
+ ),
92
+ cnh: Obj.new(
93
+ numero_do_registro: evento['trabalhador/documentos/CNH/nrRegCnh'],
94
+ data_da_primeira_habilitacao: evento['trabalhador/documentos/CNH/dtPriHab'],
95
+ data_da_expedicao: evento['trabalhador/documentos/CNH/dtExped'],
96
+ data_de_validade: evento['trabalhador/documentos/CNH/dtValid'],
97
+ categoria: evento['trabalhador/documentos/CNH/categoriaCnh'],
98
+ uf_do_emissor: evento['trabalhador/documentos/CNH/ufCnh']
99
+ ),
100
+ deficiencia: Obj.new(
101
+ fisica: evento['trabalhador/infoDeficiencia/defFisica'],
102
+ visual: evento['trabalhador/infoDeficiencia/defVisual'],
103
+ auditiva: evento['trabalhador/infoDeficiencia/defAuditiva'],
104
+ mental: evento['trabalhador/infoDeficiencia/defMental'],
105
+ intelectual: evento['trabalhador/infoDeficiencia/defIntelectual'],
106
+ reabilitado_ou_readaptado: evento['trabalhador/infoDeficiencia/reabReadap'],
107
+ preenche_cota_de_pessoas_com_deficiencia: evento['trabalhador/infoDeficiencia/infoCota']
108
+ ),
109
+ contato: Obj.new(
110
+ fone_principal: evento['trabalhador/contato/fonePrinc'],
111
+ fone_alternativo: evento['trabalhador/contato/foneAlternat'],
112
+ email_principal: evento['trabalhador/contato/emailPrinc'],
113
+ email_alternativo: evento['trabalhador/contato/emailAlternat']
114
+ )
115
+ )
41
116
  end
42
117
 
43
- def cpf_do_trabalhador
44
- @cpf_do_trabalhador ||= evento['trabalhador/cpfTrab']
118
+ def contratos_de_emprego
119
+ empresa.contratos_de_emprego
45
120
  end
46
121
 
47
122
  def afastamento
@@ -54,14 +129,19 @@ module Teodoro
54
129
  def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
55
130
  [
56
131
  Obj.new(
57
- nome: "TRA[#{cpf_do_trabalhador}][EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]-ADM",
132
+ nome: [
133
+ 'TRA',
134
+ "[#{trabalhador.cpf}]",
135
+ "[EPG_#{admissao.matricula_do_trabalhador}_#{admissao.data_de_admissao.delete('-')}]",
136
+ '-ADM'
137
+ ].join,
58
138
  itens_do_conteudo: [
59
139
  # rubocop:disable Layout/LineLength
60
- ['ESX_CPF', cpf_do_trabalhador],
61
- ['ESX_MATRICULA', matricula_do_trabalhador],
62
- ['ESX_CATEGORIA', categoria_do_trabalhador],
140
+ ['ESX_CPF', trabalhador.cpf],
141
+ ['ESX_MATRICULA', admissao.matricula_do_trabalhador],
142
+ ['ESX_CATEGORIA', admissao.categoria_do_trabalhador],
63
143
  %w[ESX_SEMVINCULO 0],
64
- ['ESX_DATAADMISSAO', data_de_admissao, :data],
144
+ ['ESX_DATAADMISSAO', admissao.data_de_admissao, :data],
65
145
  ['IdEventoXml', id_do_evento],
66
146
  ['NrReciboEventoOriginal'],
67
147
  ['EventoAdmissao_TipoEventoEnviado'],
@@ -81,83 +161,83 @@ module Teodoro
81
161
  ['DescricaoProcEmi', processo_de_emissao_do_evento],
82
162
  ['VerProc', versao_do_processo_de_emissao_do_evento],
83
163
  ['HorarioTela_Dia'],
84
- ['EventoAdmissao_InfoTrabalhador_Cpf', cpf_do_trabalhador],
85
- ['EventoAdmissao_InfoTrabalhador_Nome', evento['trabalhador/nmTrab']],
86
- ['EventoAdmissao_InfoTrabalhador_Nis', evento['trabalhador/nisTrab']],
87
- ['EventoAdmissao_InfoTrabalhador_Sexo', evento['trabalhador/sexo']],
164
+ ['EventoAdmissao_InfoTrabalhador_Cpf', trabalhador.cpf],
165
+ ['EventoAdmissao_InfoTrabalhador_Nome', trabalhador.nome],
166
+ ['EventoAdmissao_InfoTrabalhador_Nis', trabalhador.nis],
167
+ ['EventoAdmissao_InfoTrabalhador_Sexo', trabalhador.sexo],
88
168
  ['EventoAdmissao_InfoTrabalhador_Sexo_TEXT'],
89
- ['EventoAdmissao_InfoTrabalhador_RacaCor', evento['trabalhador/racaCor']],
169
+ ['EventoAdmissao_InfoTrabalhador_RacaCor', trabalhador.raca_cor],
90
170
  ['EventoAdmissao_InfoTrabalhador_RacaCor_TEXT'],
91
- ['EventoAdmissao_InfoTrabalhador_EstadoCivil', evento['trabalhador/estCiv']],
171
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil', trabalhador.estado_civil],
92
172
  ['EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT'],
93
- ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', evento['trabalhador/grauInstr']],
173
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', trabalhador.grau_de_instrucao],
94
174
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
95
175
  ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego', evento['trabalhador/indPriEmpr']],
96
- ['EventoAdmissao_InfoTrabalhador_NomeSocial', evento['trabalhador/nmSoc']],
97
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', evento['trabalhador/nascimento/codMunic']],
98
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT'],
99
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', evento['trabalhador/nascimento/dtNascto'], :data],
100
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', evento['trabalhador/nascimento/nmMae']],
101
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', evento['trabalhador/nascimento/nmPai']],
102
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', evento['trabalhador/nascimento/paisNascto']],
176
+ ['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],
103
183
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
104
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', evento['trabalhador/nascimento/paisNac']],
184
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', trabalhador.pais_de_nacionalidade],
105
185
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
106
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', evento['trabalhador/nascimento/uf']],
186
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.uf_de_nascimento],
107
187
  ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
108
- ['EventoAdmissao_EnderecoResidencialBR_Bairro', evento['trabalhador/endereco/brasil/bairro']],
109
- ['EventoAdmissao_EnderecoResidencialBR_Cep', evento['trabalhador/endereco/brasil/cep']],
110
- ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio', evento['trabalhador/endereco/brasil/codMunic']],
111
- ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT'],
112
- ['EventoAdmissao_EnderecoResidencialBR_Complemento', evento['trabalhador/endereco/brasil/complemento']],
113
- ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro', evento['trabalhador/endereco/brasil/dscLograd']],
114
- ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro', evento['trabalhador/endereco/brasil/nrLograd']],
188
+ ['EventoAdmissao_EnderecoResidencialBR_Bairro', trabalhador.endereco.bairro],
189
+ ['EventoAdmissao_EnderecoResidencialBR_Cep', trabalhador.endereco.cep],
190
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio', trabalhador.endereco.codigo_do_municipio],
191
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT', Municipios[trabalhador.endereco.codigo_do_municipio]],
192
+ ['EventoAdmissao_EnderecoResidencialBR_Complemento', trabalhador.endereco.complemento],
193
+ ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro', trabalhador.endereco.logradouro],
194
+ ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro', trabalhador.endereco.numero],
115
195
  ['SemNumeroLogradouroEnderecoBR'],
116
- ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro', evento['trabalhador/endereco/brasil/tpLograd']],
117
- ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT'],
118
- ['EventoAdmissao_EnderecoResidencialBR_Uf', evento['trabalhador/endereco/brasil/uf']],
196
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro', trabalhador.endereco.tipo_de_logradouro],
197
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT', trabalhador.endereco.tipo_de_logradouro.then { "#{_1} - #{TiposDeLogradouro[_1]}" }],
198
+ ['EventoAdmissao_EnderecoResidencialBR_Uf', trabalhador.endereco.uf],
119
199
  ['EventoAdmissao_EnderecoResidencialBR_Uf_TEXT'],
120
- ['ResideExterior', evento['trabalhador/endereco/exterior'], :bool],
200
+ ['ResideExterior', trabalhador.reside_no_exterior?, :bool],
121
201
  ['SemNumeroLogradouroEnderecoEX'],
122
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', evento['trabalhador/trabEstrangeiro/casadoBr']],
123
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', evento['trabalhador/trabEstrangeiro/dtChegada'], :data],
124
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', evento['trabalhador/trabEstrangeiro/filhosBr']],
202
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', trabalhador.casado_com_brasileiro],
203
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', trabalhador.data_de_chegada_ao_brasil, :data],
204
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', trabalhador.filhos_brasileiros],
125
205
  de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao'],
126
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', evento['trabalhador/documentos/CNH/categoriaCnh']],
206
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', trabalhador.cnh.categoria],
127
207
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
128
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', evento['trabalhador/documentos/CNH/dtExped'], :data],
129
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', evento['trabalhador/documentos/CNH/dtPriHab'], :data],
130
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', evento['trabalhador/documentos/CNH/dtValid'], :data],
131
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', evento['trabalhador/documentos/CNH/nrRegCnh']],
132
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', evento['trabalhador/documentos/CNH/ufCnh']],
208
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', trabalhador.cnh.data_da_expedicao, :data],
209
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', trabalhador.cnh.data_da_primeira_habilitacao, :data],
210
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', trabalhador.cnh.data_de_validade, :data],
211
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', trabalhador.cnh.numero_do_registro],
212
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', trabalhador.cnh.uf_do_emissor],
133
213
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
134
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', evento['trabalhador/documentos/CTPS/nrCtps']],
135
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', evento['trabalhador/documentos/CTPS/serieCtps']],
136
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', evento['trabalhador/documentos/CTPS/ufCtps']],
214
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', trabalhador.ctps.numero],
215
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', trabalhador.ctps.serie],
216
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', trabalhador.ctps.uf],
137
217
  ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
138
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', evento['trabalhador/documentos/OC/dtExped']],
139
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', evento['trabalhador/documentos/OC/nrOc']],
140
- ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', evento['trabalhador/documentos/OC/orgaoEmissor']],
141
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', evento['trabalhador/documentos/RG/dtExped'], :data],
142
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', evento['trabalhador/documentos/RG/nrRg']],
143
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', evento['trabalhador/documentos/RG/orgaoEmissor']],
144
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_DataExpedicao', evento['trabalhador/documentos/RIC/dtExped'], :data],
145
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_NumeroRic', evento['trabalhador/documentos/RIC/nrRic']],
146
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_OrgaoEmissor', evento['trabalhador/documentos/RIC/orgaoEmissor']],
147
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao', evento['trabalhador/documentos/RNE/dtExped'], :data],
148
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne', evento['trabalhador/documentos/RNE/nrRne']],
149
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor', evento['trabalhador/documentos/RNE/orgaoEmissor']],
150
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', evento['trabalhador/infoDeficiencia/defAuditiva']],
151
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', evento['trabalhador/infoDeficiencia/defFisica']],
152
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', evento['trabalhador/infoDeficiencia/defIntelectual']],
153
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', evento['trabalhador/infoDeficiencia/defMental']],
154
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', evento['trabalhador/infoDeficiencia/defVisual']],
155
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota', evento['trabalhador/infoDeficiencia/infoCota']],
156
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', evento['trabalhador/infoDeficiencia/reabReadap']],
157
- ['EventoAdmissao_Contato_TelefonePrincipal', evento['trabalhador/contato/fonePrinc']],
158
- ['EventoAdmissao_Contato_EmailPrincipal', evento['trabalhador/contato/emailPrinc']],
159
- ['EventoAdmissao_Contato_TelefoneAlternativo', evento['trabalhador/contato/foneAlternat']],
160
- ['EventoAdmissao_Contato_EmailAlternativo', evento['trabalhador/contato/emailAlternat']],
218
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', trabalhador.oc.data_da_expedicao, :data],
219
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', trabalhador.oc.numero],
220
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', trabalhador.oc.orgao_emissor],
221
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', trabalhador.rg.data_da_expedicao, :data],
222
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', trabalhador.rg.numero],
223
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', trabalhador.rg.orgao_emissor],
224
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_DataExpedicao', trabalhador.ric.data_da_expedicao, :data],
225
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_NumeroRic', trabalhador.ric.numero],
226
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_OrgaoEmissor', trabalhador.ric.orgao_emissor],
227
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao', trabalhador.rne.data_da_expedicao, :data],
228
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne', trabalhador.rne.numero],
229
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor', trabalhador.rne.orgao_emissor],
230
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', trabalhador.deficiencia.auditiva],
231
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', trabalhador.deficiencia.fisica],
232
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', trabalhador.deficiencia.intelectual],
233
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', trabalhador.deficiencia.mental],
234
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', trabalhador.deficiencia.visual],
235
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota', trabalhador.deficiencia.preenche_cota_de_pessoas_com_deficiencia],
236
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', trabalhador.deficiencia.reabilitado_ou_readaptado],
237
+ ['EventoAdmissao_Contato_TelefonePrincipal', trabalhador.contato.fone_principal],
238
+ ['EventoAdmissao_Contato_EmailPrincipal', trabalhador.contato.email_principal],
239
+ ['EventoAdmissao_Contato_TelefoneAlternativo', trabalhador.contato.fone_alternativo],
240
+ ['EventoAdmissao_Contato_EmailAlternativo', trabalhador.contato.email_alternativo],
161
241
  *evento.*('trabalhador/dependente').map.with_index(1) do |dependente, seq|
162
242
  [
163
243
  ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
@@ -183,8 +263,8 @@ module Teodoro
183
263
  ["InfoVinculo_InfoContrato_FiliacaoSindical_#{seq}_CnpjSindicatoTrabalhador", filiacao['cnpjSindTrab']]
184
264
  ]
185
265
  end.sum([]),
186
- ['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCategoria', categoria_do_trabalhador],
187
- ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_TipoContrato', evento['vinculo/infoContrato/duracao/tpContr']],
266
+ ['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCategoria', admissao.categoria_do_trabalhador],
267
+ ['EventoAdmissao_InfoVinculo_InfoContrato_Duracao_TipoContrato', admissao.duracao.tipo_de_contrato],
188
268
  ['EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_UnidadeSalarioFixo', evento['vinculo/infoContrato/remuneracao/undSalFixo']],
189
269
  ['EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_ValorSalarioFixo', evento['vinculo/infoContrato/remuneracao/vrSalFx'], :decimal],
190
270
  ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_CnpjSindicatoCategoriaProfissional', evento['vinculo/infoRegimeTrab/infoCeletista/cnpjSindCategProf']],
@@ -194,8 +274,8 @@ module Teodoro
194
274
  ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao', evento['vinculo/infoRegimeTrab/infoCeletista/tpAdmissao']],
195
275
  ['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada', evento['vinculo/infoRegimeTrab/infoCeletista/tpRegJor']],
196
276
  ['EventoAdmissao_InfoVinculo_Matricula', evento['vinculo/matricula']],
197
- ['EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario', evento['vinculo/tpRegPrev']],
198
- ['EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista', evento['vinculo/tpRegTrab']],
277
+ ['EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario', admissao.tipo_de_regime_previdenciario],
278
+ ['EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista', admissao.tipo_de_regime_trabalhista],
199
279
  de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS'],
200
280
  de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS'],
201
281
  de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo'],
@@ -207,6 +287,7 @@ module Teodoro
207
287
  de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada'],
208
288
  de_acordo_com_a_versao_do_leiaute['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada'],
209
289
  ['EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial', evento['vinculo/infoContrato/horContratual/tmpParc']],
290
+ *([['HorarioNoturno', evento['vinculo/infoContrato/horContratual/horNoturno']]] if leiaute_simplificado?),
210
291
  ['EventoAdmissao_InfoVinculo_DataInicioAfastamento', evento['vinculo/afastamento/dtIniAfast'], :data],
211
292
  ['EventoAdmissao_InfoVinculo_CodigoMotivoAfastamento', evento['vinculo/afastamento/codMotAfast']],
212
293
  ['EventoAdmissao_InfoVinculo_SucessaoVinculo_DataTransferencia', evento['vinculo/sucessaoVinc/dtTransf'], :data],