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.
@@ -5,18 +5,107 @@ module Teodoro
5
5
 
6
6
  private
7
7
 
8
+ def criar_arquivos_data
9
+ super
10
+
11
+ empresa.trabalhadores << trabalhador
12
+ end
13
+
14
+ def trabalhador # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
15
+ @trabalhador ||= Obj.new(
16
+ cpf: evento['ideTrabalhador/cpfTrab'],
17
+ nis: evento['alteracao/dadosTrabalhador/nisTrab'],
18
+ nome: evento['alteracao/dadosTrabalhador/nmTrab'],
19
+ sexo: evento['alteracao/dadosTrabalhador/sexo'],
20
+ raca_cor: evento['alteracao/dadosTrabalhador/racaCor'],
21
+ estado_civil: evento['alteracao/dadosTrabalhador/estCiv'],
22
+ grau_de_instrucao: evento['alteracao/dadosTrabalhador/grauInstr'],
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'],
31
+ reside_no_exterior?: evento['alteracao/dadosTrabalhador/endereco/exterior'],
32
+ endereco: Obj.new(
33
+ tipo_de_logradouro: evento['alteracao/dadosTrabalhador/endereco/brasil/tpLograd'],
34
+ logradouro: evento['alteracao/dadosTrabalhador/endereco/brasil/dscLograd'],
35
+ numero: evento['alteracao/dadosTrabalhador/endereco/brasil/nrLograd'],
36
+ complemento: evento['alteracao/dadosTrabalhador/endereco/brasil/complemento'],
37
+ bairro: evento['alteracao/dadosTrabalhador/endereco/brasil/bairro'],
38
+ cep: evento['alteracao/dadosTrabalhador/endereco/brasil/cep'],
39
+ codigo_do_municipio: evento['alteracao/dadosTrabalhador/endereco/brasil/codMunic'],
40
+ uf: evento['alteracao/dadosTrabalhador/endereco/brasil/uf']
41
+ ),
42
+ estrangeiro?: evento['alteracao/dadosTrabalhador/trabEstrangeiro'],
43
+ casado_com_brasileiro: evento['alteracao/dadosTrabalhador/trabEstrangeiro/casadoBr'],
44
+ data_de_chegada_ao_brasil: evento['alteracao/dadosTrabalhador/trabEstrangeiro/dtChegada'],
45
+ filhos_brasileiros: evento['alteracao/dadosTrabalhador/trabEstrangeiro/filhosBr'],
46
+ ctps: Obj.new(
47
+ numero: evento['alteracao/dadosTrabalhador/documentos/CTPS/nrCtps'],
48
+ serie: evento['alteracao/dadosTrabalhador/documentos/CTPS/serieCtps'],
49
+ uf: evento['alteracao/dadosTrabalhador/documentos/CTPS/ufCtps']
50
+ ),
51
+ rg: Obj.new(
52
+ numero: evento['alteracao/dadosTrabalhador/documentos/RG/nrRg'],
53
+ orgao_emissor: evento['alteracao/dadosTrabalhador/documentos/RG/orgaoEmissor'],
54
+ data_da_expedicao: evento['alteracao/dadosTrabalhador/documentos/RG/dtExped']
55
+ ),
56
+ rne: Obj.new(
57
+ numero: evento['alteracao/dadosTrabalhador/documentos/RNE/nrRne'],
58
+ orgao_emissor: evento['alteracao/dadosTrabalhador/documentos/RNE/orgaoEmissor'],
59
+ data_da_expedicao: evento['alteracao/dadosTrabalhador/documentos/RNE/dtExped']
60
+ ),
61
+ ric: Obj.new(
62
+ numero: evento['alteracao/dadosTrabalhador/documentos/RIC/nrRic'],
63
+ orgao_emissor: evento['alteracao/dadosTrabalhador/documentos/RIC/orgaoEmissor'],
64
+ data_da_expedicao: evento['alteracao/dadosTrabalhador/documentos/RIC/dtExped']
65
+ ),
66
+ oc: Obj.new(
67
+ numero: evento['alteracao/dadosTrabalhador/documentos/OC/nrOc'],
68
+ orgao_emissor: evento['alteracao/dadosTrabalhador/documentos/OC/orgaoEmissor'],
69
+ data_da_expedicao: evento['alteracao/dadosTrabalhador/documentos/OC/dtExped']
70
+ ),
71
+ cnh: Obj.new(
72
+ numero_do_registro: evento['alteracao/dadosTrabalhador/documentos/CNH/nrRegCnh'],
73
+ data_da_primeira_habilitacao: evento['alteracao/dadosTrabalhador/documentos/CNH/dtPriHab'],
74
+ data_da_expedicao: evento['alteracao/dadosTrabalhador/documentos/CNH/dtExped'],
75
+ data_de_validade: evento['alteracao/dadosTrabalhador/documentos/CNH/dtValid'],
76
+ categoria: evento['alteracao/dadosTrabalhador/documentos/CNH/categoriaCnh'],
77
+ uf_do_emissor: evento['alteracao/dadosTrabalhador/documentos/CNH/ufCnh']
78
+ ),
79
+ deficiencia: Obj.new(
80
+ fisica: evento['alteracao/dadosTrabalhador/infoDeficiencia/defFisica'],
81
+ visual: evento['alteracao/dadosTrabalhador/infoDeficiencia/defVisual'],
82
+ auditiva: evento['alteracao/dadosTrabalhador/infoDeficiencia/defAuditiva'],
83
+ mental: evento['alteracao/dadosTrabalhador/infoDeficiencia/defMental'],
84
+ intelectual: evento['alteracao/dadosTrabalhador/infoDeficiencia/defIntelectual'],
85
+ reabilitado_ou_readaptado: evento['alteracao/dadosTrabalhador/infoDeficiencia/reabReadap'],
86
+ preenche_cota_de_pessoas_com_deficiencia: evento['alteracao/dadosTrabalhador/infoDeficiencia/infoCota']
87
+ ),
88
+ contato: Obj.new(
89
+ fone_principal: evento['alteracao/dadosTrabalhador/contato/fonePrinc'],
90
+ fone_alternativo: evento['alteracao/dadosTrabalhador/contato/foneAlternat'],
91
+ email_principal: evento['alteracao/dadosTrabalhador/contato/emailPrinc'],
92
+ email_alternativo: evento['alteracao/dadosTrabalhador/contato/emailAlternat']
93
+ )
94
+ )
95
+ end
96
+
8
97
  def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
9
98
  contratos_de_trabalho.map do |contrato_de_trabalho| # rubocop:disable Metrics/BlockLength
10
99
  Obj.new(
11
100
  nome: [
12
- "TRA[#{cpf_do_trabalhador}]",
101
+ "TRA[#{trabalhador.cpf}]",
13
102
  contrato_de_trabalho.nome_do_arquivo_data_identificacao_do_contrato,
14
103
  "-ACA[#{data_da_alteracao.delete('-')}]"
15
104
  ].join,
16
105
  itens_do_conteudo: [
17
106
  # rubocop:disable Layout/LineLength
18
- ['ESX_CPF', cpf_do_trabalhador],
19
- ['ESX_MATRICULA', contrato_de_trabalho.matricula_do_contrato],
107
+ ['ESX_CPF', trabalhador.cpf],
108
+ ['ESX_MATRICULA', contrato_de_trabalho.matricula_do_trabalhador],
20
109
  ['ESX_CATEGORIA', contrato_de_trabalho.categoria_do_trabalhador],
21
110
  %w[ESX_SEMVINCULO 0], # FIXME: Tales TC
22
111
  ['ESX_DATAADMISSAO', contrato_de_trabalho.data_de_inicio, :data],
@@ -32,74 +121,74 @@ module Teodoro
32
121
  ['DescricaoProcEmi', processo_de_emissao_do_evento],
33
122
  ['VerProc', versao_do_processo_de_emissao_do_evento],
34
123
  ['EventoAdmissao_TipoEventoEnviado'],
35
- ['EventoAdmissao_InfoTrabalhador_Cpf', cpf_do_trabalhador],
36
- ['EventoAdmissao_InfoTrabalhador_Nome', evento['alteracao/dadosTrabalhador/nmTrab']],
37
- ['EventoAdmissao_InfoTrabalhador_Nis', evento['alteracao/dadosTrabalhador/nisTrab']],
38
- ['EventoAdmissao_InfoTrabalhador_Sexo', evento['alteracao/dadosTrabalhador/sexo']],
124
+ ['EventoAdmissao_InfoTrabalhador_Cpf', trabalhador.cpf],
125
+ ['EventoAdmissao_InfoTrabalhador_Nome', trabalhador.nome],
126
+ ['EventoAdmissao_InfoTrabalhador_Nis', trabalhador.nis],
127
+ ['EventoAdmissao_InfoTrabalhador_Sexo', trabalhador.sexo],
39
128
  ['EventoAdmissao_InfoTrabalhador_Sexo_TEXT'],
40
- ['EventoAdmissao_InfoTrabalhador_RacaCor', evento['alteracao/dadosTrabalhador/racaCor']],
129
+ ['EventoAdmissao_InfoTrabalhador_RacaCor', trabalhador.raca_cor],
41
130
  ['EventoAdmissao_InfoTrabalhador_RacaCor_TEXT'],
42
- ['EventoAdmissao_InfoTrabalhador_EstadoCivil', evento['alteracao/dadosTrabalhador/estCiv']],
131
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil', trabalhador.estado_civil],
43
132
  ['EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT'],
44
- ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', evento['alteracao/dadosTrabalhador/grauInstr']],
133
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', trabalhador.grau_de_instrucao],
45
134
  ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
46
- ['EventoAdmissao_InfoTrabalhador_NomeSocial', evento['alteracao/dadosTrabalhador/nmSoc']],
47
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio', evento['alteracao/dadosTrabalhador/nascimento/codMunic']],
48
- ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT'],
49
- ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', evento['alteracao/dadosTrabalhador/nascimento/dtNascto'], :data],
50
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', evento['alteracao/dadosTrabalhador/nascimento/nmMae']],
51
- ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai', evento['alteracao/dadosTrabalhador/nascimento/nmPai']],
52
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', evento['alteracao/dadosTrabalhador/nascimento/paisNascto']],
135
+ ['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],
53
142
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
54
- ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', evento["alteracao/dadosTrabalhador/#{'nascimento' unless leiaute_simplificado?}/paisNac"]],
143
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade', trabalhador.pais_de_nacionalidade],
55
144
  ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
56
- ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', evento['alteracao/dadosTrabalhador/nascimento/uf']],
145
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf', trabalhador.uf_de_nascimento],
57
146
  ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
58
- ['EventoAdmissao_EnderecoResidencialBR_Bairro', evento['alteracao/dadosTrabalhador/endereco/brasil/bairro']],
59
- ['EventoAdmissao_EnderecoResidencialBR_Cep', evento['alteracao/dadosTrabalhador/endereco/brasil/cep']],
60
- ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio', evento['alteracao/dadosTrabalhador/endereco/brasil/codMunic']],
61
- ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT'],
62
- ['EventoAdmissao_EnderecoResidencialBR_Complemento', evento['alteracao/dadosTrabalhador/endereco/brasil/complemento']],
63
- ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro', evento['alteracao/dadosTrabalhador/endereco/brasil/dscLograd']],
64
- ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro', evento['alteracao/dadosTrabalhador/endereco/brasil/nrLograd']],
147
+ ['EventoAdmissao_EnderecoResidencialBR_Bairro', trabalhador.endereco.bairro],
148
+ ['EventoAdmissao_EnderecoResidencialBR_Cep', trabalhador.endereco.cep],
149
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio', trabalhador.endereco.codigo_do_municipio],
150
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT', Municipios[trabalhador.endereco.codigo_do_municipio]],
151
+ ['EventoAdmissao_EnderecoResidencialBR_Complemento', trabalhador.endereco.complemento],
152
+ ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro', trabalhador.endereco.logradouro],
153
+ ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro', trabalhador.endereco.numero],
65
154
  ['SemNumeroLogradouroEnderecoBR'],
66
- ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro', evento['alteracao/dadosTrabalhador/endereco/brasil/tpLograd']],
67
- ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT'],
68
- ['EventoAdmissao_EnderecoResidencialBR_Uf', evento['alteracao/dadosTrabalhador/endereco/brasil/uf']],
155
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro', trabalhador.endereco.tipo_de_logradouro],
156
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT', trabalhador.endereco.tipo_de_logradouro.then { "#{_1} - #{TiposDeLogradouro[_1]}" }],
157
+ ['EventoAdmissao_EnderecoResidencialBR_Uf', trabalhador.endereco.uf],
69
158
  ['EventoAdmissao_EnderecoResidencialBR_Uf_TEXT'],
70
- ['ResideExterior', evento['alteracao/dadosTrabalhador/endereco/exterior'], :bool],
159
+ ['ResideExterior', trabalhador.reside_no_exterior?, :bool],
71
160
  ['SemNumeroLogradouroEnderecoEX'],
72
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', evento['alteracao/dadosTrabalhador/trabEstrangeiro/casadoBr']],
73
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', evento['alteracao/dadosTrabalhador/trabEstrangeiro/dtChegada'], :data],
74
- ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', evento['alteracao/dadosTrabalhador/trabEstrangeiro/filhosBr']],
75
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', evento['alteracao/dadosTrabalhador/documentos/CNH/categoriaCnh']],
161
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', trabalhador.casado_com_brasileiro],
162
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', trabalhador.data_de_chegada_ao_brasil, :data],
163
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', trabalhador.filhos_brasileiros],
164
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', trabalhador.cnh.categoria],
76
165
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
77
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', evento['alteracao/dadosTrabalhador/documentos/CNH/dtExped'], :data],
78
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', evento['alteracao/dadosTrabalhador/documentos/CNH/dtPriHab'], :data],
79
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', evento['alteracao/dadosTrabalhador/documentos/CNH/dtValid'], :data],
80
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', evento['alteracao/dadosTrabalhador/documentos/CNH/nrRegCnh']],
81
- ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', evento['alteracao/dadosTrabalhador/documentos/CNH/ufCnh']],
166
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', trabalhador.cnh.data_da_expedicao, :data],
167
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', trabalhador.cnh.data_da_primeira_habilitacao, :data],
168
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', trabalhador.cnh.data_de_validade, :data],
169
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', trabalhador.cnh.numero_do_registro],
170
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', trabalhador.cnh.uf_do_emissor],
82
171
  ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
83
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', evento['alteracao/dadosTrabalhador/documentos/CTPS/nrCtps']],
84
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', evento['alteracao/dadosTrabalhador/documentos/CTPS/serieCtps']],
85
- ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', evento['alteracao/dadosTrabalhador/documentos/CTPS/ufCtps']],
172
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', trabalhador.ctps.numero],
173
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', trabalhador.ctps.serie],
174
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', trabalhador.ctps.uf],
86
175
  ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
87
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', evento['alteracao/dadosTrabalhador/documentos/RG/dtExped'], :data],
88
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', evento['alteracao/dadosTrabalhador/documentos/RG/nrRg']],
89
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', evento['alteracao/dadosTrabalhador/documentos/RG/orgaoEmissor']],
90
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao', evento['alteracao/dadosTrabalhador/documentos/RNE/dtExped'], :data],
91
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne', evento['alteracao/dadosTrabalhador/documentos/RNE/nrRne']],
92
- ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor', evento['alteracao/dadosTrabalhador/documentos/RNE/orgaoEmissor']],
93
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', evento['alteracao/dadosTrabalhador/infoDeficiencia/defAuditiva']],
94
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', evento['alteracao/dadosTrabalhador/infoDeficiencia/defFisica']],
95
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', evento['alteracao/dadosTrabalhador/infoDeficiencia/defIntelectual']],
96
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', evento['alteracao/dadosTrabalhador/infoDeficiencia/defMental']],
97
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', evento['alteracao/dadosTrabalhador/infoDeficiencia/defVisual']],
98
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota', evento['alteracao/dadosTrabalhador/infoDeficiencia/infoCota']],
99
- ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', evento['alteracao/dadosTrabalhador/infoDeficiencia/reabReadap']],
100
- ['EventoAdmissao_Contato_TelefonePrincipal', evento['alteracao/dadosTrabalhador/contato/fonePrinc']],
101
- ['EventoAdmissao_Contato_EmailPrincipal', evento['alteracao/dadosTrabalhador/contato/emailPrinc']],
102
- ['EventoAdmissao_Contato_TelefoneAlternativo', evento['alteracao/dadosTrabalhador/contato/foneAlternat']],
176
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', trabalhador.rg.data_da_expedicao, :data],
177
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', trabalhador.rg.numero],
178
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', trabalhador.rg.orgao_emissor],
179
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao', trabalhador.rne.data_da_expedicao, :data],
180
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne', trabalhador.rne.numero],
181
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor', trabalhador.rne.orgao_emissor],
182
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', trabalhador.deficiencia.auditiva],
183
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', trabalhador.deficiencia.fisica],
184
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', trabalhador.deficiencia.intelectual],
185
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', trabalhador.deficiencia.mental],
186
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', trabalhador.deficiencia.visual],
187
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota', trabalhador.deficiencia.preenche_cota_de_pessoas_com_deficiencia],
188
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', trabalhador.deficiencia.reabilitado_ou_readaptado],
189
+ ['EventoAdmissao_Contato_TelefonePrincipal', trabalhador.contato.fone_principal],
190
+ ['EventoAdmissao_Contato_EmailPrincipal', trabalhador.contato.email_principal],
191
+ ['EventoAdmissao_Contato_TelefoneAlternativo', trabalhador.contato.fone_alternativo],
103
192
  *evento.*('alteracao/dadosTrabalhador/dependente').map.with_index(1) do |dependente, seq|
104
193
  [
105
194
  ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
@@ -125,20 +214,16 @@ module Teodoro
125
214
 
126
215
  def contratos_de_emprego
127
216
  empresa.contratos_de_emprego
128
- .*(cpf_do_trabalhador: cpf_do_trabalhador, data: data_da_alteracao)
217
+ .*(cpf_do_trabalhador: trabalhador.cpf, data: data_da_alteracao)
129
218
  .map { [ContratoDeEmprego, _1] }
130
219
  end
131
220
 
132
221
  def contratos_de_trabalho_sem_vinculo
133
222
  empresa.contratos_de_trabalho_sem_vinculo
134
- .*(cpf_do_trabalhador: cpf_do_trabalhador, data: data_da_alteracao)
223
+ .*(cpf_do_trabalhador: trabalhador.cpf, data: data_da_alteracao)
135
224
  .map { [ContratoDeTrabalhoSemVinculo, _1] }
136
225
  end
137
226
 
138
- def cpf_do_trabalhador
139
- @cpf_do_trabalhador ||= evento['ideTrabalhador/cpfTrab']
140
- end
141
-
142
227
  def data_da_alteracao
143
228
  @data_da_alteracao ||= evento['alteracao/dtAlteracao']
144
229
  end
@@ -157,11 +242,11 @@ module Teodoro
157
242
  include ContratoDeTrabalho
158
243
 
159
244
  def nome_do_arquivo_data_identificacao_do_contrato
160
- "[EPG_#{matricula_do_contrato}_#{data_de_admissao.delete('-')}]"
245
+ "[EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]"
161
246
  end
162
247
 
163
- def matricula_do_contrato
164
- contrato.matricula
248
+ def matricula_do_trabalhador
249
+ contrato.matricula_do_trabalhador
165
250
  end
166
251
 
167
252
  def categoria_do_trabalhador
@@ -186,7 +271,7 @@ module Teodoro
186
271
  "[TSV_#{categoria_do_trabalhador}_#{data_de_inicio.delete('-')}]"
187
272
  end
188
273
 
189
- def matricula_do_contrato
274
+ def matricula_do_trabalhador
190
275
  nil
191
276
  end
192
277
 
@@ -3,23 +3,64 @@ module Teodoro
3
3
  class ArquivoS2206
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
6
- module DadosGerais
6
+ private
7
+
8
+ def criar_arquivos_data
9
+ super
10
+
11
+ empresa.contratos_de_emprego.registrar_alteracao_contratual(alteracao_contratual)
12
+ end
13
+
14
+ def alteracao_contratual
15
+ leiaute.alteracao_contratual
16
+ end
17
+
18
+ def leiaute
19
+ @leiaute ||=
20
+ (leiaute_simplificado? ? LeiauteSimplificado : Leiaute2).new(empresa: empresa, arquivo_xml: arquivo_xml)
21
+ end
22
+
23
+ def dados_dos_arquivos_data
24
+ leiaute.dados_dos_arquivos_data
25
+ end
26
+
27
+ module Leiaute
28
+ include ArquivoDeEvento
29
+
30
+ def alteracao_contratual
31
+ @alteracao_contratual ||= Obj.new(
32
+ matricula_do_trabalhador: evento['ideVinculo/matricula'],
33
+ tipo_de_regime_previdenciario: evento['altContratual/vinculo/tpRegPrev'],
34
+ duracao: duracao
35
+ )
36
+ end
37
+
38
+ def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength
39
+ [
40
+ Obj.new(
41
+ nome: [
42
+ 'TRA',
43
+ "[#{cpf_do_trabalhador}]",
44
+ "[EPG_#{alteracao_contratual.matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]",
45
+ "-ACO[#{data_da_alteracao.delete('-')}]"
46
+ ].join,
47
+ itens_do_conteudo: itens_do_conteudo
48
+ )
49
+ ]
50
+ end
51
+
7
52
  private
8
53
 
9
54
  def cpf_do_trabalhador
10
55
  @cpf_do_trabalhador ||= evento['ideVinculo/cpfTrab']
11
56
  end
12
57
 
13
- def matricula_do_trabalhador
14
- @matricula_do_trabalhador ||= evento['ideVinculo/matricula']
15
- end
16
-
17
58
  def data_de_admissao
18
59
  contrato_de_emprego.data_de_admissao
19
60
  end
20
61
 
21
62
  def contrato_de_emprego
22
- contratos_de_emprego[matricula_do_trabalhador]
63
+ @contrato_de_emprego ||= contratos_de_emprego[alteracao_contratual.matricula_do_trabalhador]
23
64
  end
24
65
 
25
66
  def contratos_de_emprego
@@ -31,52 +72,27 @@ module Teodoro
31
72
  end
32
73
  end
33
74
 
34
- include DadosGerais
35
-
36
- private
37
-
38
- def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength
39
- [
40
- Obj.new(
41
- nome: [
42
- 'TRA',
43
- "[#{cpf_do_trabalhador}]",
44
- "[EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]",
45
- "-ACO[#{data_da_alteracao.delete('-')}]"
46
- ].join,
47
- itens_do_conteudo: itens_do_conteudo
48
- )
49
- ]
50
- end
51
-
52
- def itens_do_conteudo
53
- leiaute.itens_do_conteudo
54
- end
55
-
56
- def leiaute
57
- (leiaute_simplificado? ? LeiauteSimplificado : Leiaute2).new(empresa: empresa, arquivo_xml: arquivo_xml)
58
- end
59
-
60
- module Leiaute
61
- include ArquivoDeEvento
62
- include DadosGerais
63
- end
64
-
65
75
  class Leiaute2
66
76
  include Leiaute
67
77
 
78
+ private
79
+
80
+ def duracao
81
+ Obj.new(tipo_de_contrato: evento['altContratual/infoContrato/duracao/tpContr'])
82
+ end
83
+
68
84
  def itens_do_conteudo # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
69
85
  [
70
86
  # rubocop:disable Layout/LineLength
71
87
  ['ESX_CPF', cpf_do_trabalhador],
72
- ['ESX_MATRICULA', matricula_do_trabalhador],
88
+ ['ESX_MATRICULA', alteracao_contratual.matricula_do_trabalhador],
73
89
  %w[ESX_SEMVINCULO 0],
74
90
  ['ESX_DATAADMISSAO', data_de_admissao, :data],
75
91
  ['ESX_DATAALTERACAO', data_da_alteracao, :data],
76
92
  ['cpfTrabalhador', cpf_do_trabalhador],
77
93
  %w[nomeTrabalhador nomeTrabalhador],
78
94
  ['IdentificacaoVinculo_Cpf', cpf_do_trabalhador],
79
- ['IdentificacaoVinculo_Matricula', matricula_do_trabalhador],
95
+ ['IdentificacaoVinculo_Matricula', alteracao_contratual.matricula_do_trabalhador],
80
96
  ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
81
97
  ['AlteracaoContratual_DataAlteracao', data_da_alteracao, :data],
82
98
  ['AlteracaoContratual_DataEfeito', evento['altContratual/dtEf'], :data],
@@ -93,7 +109,7 @@ module Teodoro
93
109
  ['IdContratoAlterado'],
94
110
  ['regTrab'],
95
111
  ['InformacoesContrato_CodigoCategoria', evento['altContratual/infoContrato/codCateg']],
96
- ['VinculoAlteracao_TipoRegimePrevidenciario', evento['altContratual/vinculo/tpRegPrev']],
112
+ ['VinculoAlteracao_TipoRegimePrevidenciario', alteracao_contratual.tipo_de_regime_previdenciario],
97
113
  ['dataAdmissao', data_de_admissao, :data],
98
114
  ['InformacoesCeletista_TipoRegimeJornada', evento['altContratual/infoRegimeTrab/infoCeletista/tpRegJor']],
99
115
  ['InformacoesCeletista_NaturezaAtividade', evento['altContratual/infoRegimeTrab/infoCeletista/natAtividade']],
@@ -107,7 +123,7 @@ module Teodoro
107
123
  ['NomeEstabelecimentoLocalTrabalho'],
108
124
  ['CodigoCBO'],
109
125
  ['InformacoesContrato_Remuneracao_UnidadeSalarioFixo', evento['altContratual/infoContrato/remuneracao/undSalFixo']],
110
- ['InformacoesContrato_TipoContrato', evento['altContratual/infoContrato/duracao/tpContr']],
126
+ ['InformacoesContrato_TipoContrato', alteracao_contratual.duracao.tipo_de_contrato],
111
127
  ['CodigoCNAE'],
112
128
  *evento.*('altContratual/infoContrato/horContratual/horario').map.with_index(1) do |horario, seq|
113
129
  [
@@ -137,18 +153,24 @@ module Teodoro
137
153
  class LeiauteSimplificado
138
154
  include Leiaute
139
155
 
156
+ private
157
+
158
+ def duracao
159
+ Obj.new(tipo_de_contrato: evento['altContratual/vinculo/infoContrato/duracao/tpContr'])
160
+ end
161
+
140
162
  def itens_do_conteudo # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
141
163
  [
142
164
  # rubocop:disable Layout/LineLength
143
165
  ['ESX_CPF', cpf_do_trabalhador],
144
- ['ESX_MATRICULA', matricula_do_trabalhador],
166
+ ['ESX_MATRICULA', alteracao_contratual.matricula_do_trabalhador],
145
167
  %w[ESX_SEMVINCULO 0],
146
168
  ['ESX_DATAADMISSAO', data_de_admissao, :data],
147
169
  ['ESX_DATAALTERACAO', data_da_alteracao, :data],
148
170
  ['cpfTrabalhador', cpf_do_trabalhador],
149
171
  %w[nomeTrabalhador nomeTrabalhador],
150
172
  ['IdentificacaoVinculo_Cpf', cpf_do_trabalhador],
151
- ['IdentificacaoVinculo_Matricula', matricula_do_trabalhador],
173
+ ['IdentificacaoVinculo_Matricula', alteracao_contratual.matricula_do_trabalhador],
152
174
  ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
153
175
  ['AlteracaoContratual_DataAlteracao', data_da_alteracao, :data],
154
176
  ['AlteracaoContratual_DataEfeito', evento['altContratual/dtEf'], :data],
@@ -165,7 +187,7 @@ module Teodoro
165
187
  ['IdContratoAlterado'],
166
188
  ['regTrab'],
167
189
  ['InformacoesContrato_CodigoCategoria', evento['altContratual/vinculo/infoContrato/codCateg']],
168
- ['VinculoAlteracao_TipoRegimePrevidenciario', evento['altContratual/vinculo/tpRegPrev']],
190
+ ['VinculoAlteracao_TipoRegimePrevidenciario', alteracao_contratual.tipo_de_regime_previdenciario],
169
191
  ['dataAdmissao', data_de_admissao, :data],
170
192
  ['InformacoesCeletista_TipoRegimeJornada', evento['altContratual/vinculo/infoRegimeTrab/infoCeletista/tpRegJor']],
171
193
  ['InformacoesCeletista_NaturezaAtividade', evento['altContratual/vinculo/infoRegimeTrab/infoCeletista/natAtividade']],
@@ -179,7 +201,7 @@ module Teodoro
179
201
  ['NomeEstabelecimentoLocalTrabalho'],
180
202
  ['CodigoCBO'],
181
203
  ['InformacoesContrato_Remuneracao_UnidadeSalarioFixo', evento['altContratual/vinculo/infoContrato/remuneracao/undSalFixo']],
182
- ['InformacoesContrato_TipoContrato', evento['altContratual/vinculo/infoContrato/duracao/tpContr']],
204
+ ['InformacoesContrato_TipoContrato', alteracao_contratual.duracao.tipo_de_contrato],
183
205
  ['CodigoCNAE'],
184
206
  ['InformacoesContrato_Remuneracao_ValorSalarioFixo', evento['altContratual/vinculo/infoContrato/remuneracao/vrSalFx'], :decimal],
185
207
  ['InformacoesContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao', evento['altContratual/vinculo/infoContrato/localTrabalho/localTrabGeral/tpInsc']],
@@ -187,6 +209,7 @@ module Teodoro
187
209
  ['InformacoesContrato_HorarioContratual_TipoJornada', evento['altContratual/vinculo/infoContrato/horContratual/tpJornada'].then { %w[2 3].include?(_1) ? _1 : 9 }],
188
210
  ['InformacoesContrato_HorarioContratual_JornadaTempoParcial', evento['altContratual/vinculo/infoContrato/horContratual/tmpParc']],
189
211
  ['InformacoesContrato_HorarioContratual_QuantidadedHorasSemanal', evento['altContratual/vinculo/infoContrato/horContratual/qtdHrsSem'], :decimal],
212
+ ['HorarioNoturno', evento['altContratual/vinculo/infoContrato/horContratual/horNoturno']],
190
213
  ['InformacoesContrato_HorarioContratual_DescricaoTipoJornada', evento['altContratual/vinculo/infoContrato/horContratual/dscJorn']],
191
214
  ['InformacoesContrato_CodigoCargo', codigo_do_cargo],
192
215
  ['InformacoesContrato_DataTermino', evento['altContratual/vinculo/infoContrato/duracao/dtTerm'], :data]