teodoro 0.26.0 → 0.31.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,65 @@ 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
+ natureza_da_atividade: natureza_da_atividade,
35
+ duracao: duracao
36
+ )
37
+ end
38
+
39
+ def dados_dos_arquivos_data # rubocop:disable Metrics/MethodLength
40
+ [
41
+ Obj.new(
42
+ nome: [
43
+ 'TRA',
44
+ "[#{cpf_do_trabalhador}]",
45
+ "[EPG_#{alteracao_contratual.matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]",
46
+ "-ACO[#{data_da_alteracao.delete('-')}]"
47
+ ].join,
48
+ itens_do_conteudo: itens_do_conteudo
49
+ )
50
+ ]
51
+ end
52
+
7
53
  private
8
54
 
9
55
  def cpf_do_trabalhador
10
56
  @cpf_do_trabalhador ||= evento['ideVinculo/cpfTrab']
11
57
  end
12
58
 
13
- def matricula_do_trabalhador
14
- @matricula_do_trabalhador ||= evento['ideVinculo/matricula']
15
- end
16
-
17
59
  def data_de_admissao
18
60
  contrato_de_emprego.data_de_admissao
19
61
  end
20
62
 
21
63
  def contrato_de_emprego
22
- contratos_de_emprego[matricula_do_trabalhador]
64
+ @contrato_de_emprego ||= contratos_de_emprego[alteracao_contratual.matricula_do_trabalhador]
23
65
  end
24
66
 
25
67
  def contratos_de_emprego
@@ -31,52 +73,31 @@ module Teodoro
31
73
  end
32
74
  end
33
75
 
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
76
+ class Leiaute2
77
+ include Leiaute
55
78
 
56
- def leiaute
57
- (leiaute_simplificado? ? LeiauteSimplificado : Leiaute2).new(empresa: empresa, arquivo_xml: arquivo_xml)
58
- end
79
+ private
59
80
 
60
- module Leiaute
61
- include ArquivoDeEvento
62
- include DadosGerais
63
- end
81
+ def natureza_da_atividade
82
+ evento['altContratual/infoRegimeTrab/infoCeletista/natAtividade']
83
+ end
64
84
 
65
- class Leiaute2
66
- include Leiaute
85
+ def duracao
86
+ Obj.new(tipo_de_contrato: evento['altContratual/infoContrato/duracao/tpContr'])
87
+ end
67
88
 
68
89
  def itens_do_conteudo # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
69
90
  [
70
91
  # rubocop:disable Layout/LineLength
71
92
  ['ESX_CPF', cpf_do_trabalhador],
72
- ['ESX_MATRICULA', matricula_do_trabalhador],
93
+ ['ESX_MATRICULA', alteracao_contratual.matricula_do_trabalhador],
73
94
  %w[ESX_SEMVINCULO 0],
74
95
  ['ESX_DATAADMISSAO', data_de_admissao, :data],
75
96
  ['ESX_DATAALTERACAO', data_da_alteracao, :data],
76
97
  ['cpfTrabalhador', cpf_do_trabalhador],
77
98
  %w[nomeTrabalhador nomeTrabalhador],
78
99
  ['IdentificacaoVinculo_Cpf', cpf_do_trabalhador],
79
- ['IdentificacaoVinculo_Matricula', matricula_do_trabalhador],
100
+ ['IdentificacaoVinculo_Matricula', alteracao_contratual.matricula_do_trabalhador],
80
101
  ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
81
102
  ['AlteracaoContratual_DataAlteracao', data_da_alteracao, :data],
82
103
  ['AlteracaoContratual_DataEfeito', evento['altContratual/dtEf'], :data],
@@ -93,10 +114,10 @@ module Teodoro
93
114
  ['IdContratoAlterado'],
94
115
  ['regTrab'],
95
116
  ['InformacoesContrato_CodigoCategoria', evento['altContratual/infoContrato/codCateg']],
96
- ['VinculoAlteracao_TipoRegimePrevidenciario', evento['altContratual/vinculo/tpRegPrev']],
117
+ ['VinculoAlteracao_TipoRegimePrevidenciario', alteracao_contratual.tipo_de_regime_previdenciario],
97
118
  ['dataAdmissao', data_de_admissao, :data],
98
119
  ['InformacoesCeletista_TipoRegimeJornada', evento['altContratual/infoRegimeTrab/infoCeletista/tpRegJor']],
99
- ['InformacoesCeletista_NaturezaAtividade', evento['altContratual/infoRegimeTrab/infoCeletista/natAtividade']],
120
+ ['InformacoesCeletista_NaturezaAtividade', alteracao_contratual.natureza_da_atividade],
100
121
  ['FiltroCargo'],
101
122
  ['FiltroFuncao'],
102
123
  ['HorarioTela_Dia'],
@@ -107,7 +128,7 @@ module Teodoro
107
128
  ['NomeEstabelecimentoLocalTrabalho'],
108
129
  ['CodigoCBO'],
109
130
  ['InformacoesContrato_Remuneracao_UnidadeSalarioFixo', evento['altContratual/infoContrato/remuneracao/undSalFixo']],
110
- ['InformacoesContrato_TipoContrato', evento['altContratual/infoContrato/duracao/tpContr']],
131
+ ['InformacoesContrato_TipoContrato', alteracao_contratual.duracao.tipo_de_contrato],
111
132
  ['CodigoCNAE'],
112
133
  *evento.*('altContratual/infoContrato/horContratual/horario').map.with_index(1) do |horario, seq|
113
134
  [
@@ -137,18 +158,28 @@ module Teodoro
137
158
  class LeiauteSimplificado
138
159
  include Leiaute
139
160
 
161
+ private
162
+
163
+ def natureza_da_atividade
164
+ evento['altContratual/vinculo/infoRegimeTrab/infoCeletista/natAtividade']
165
+ end
166
+
167
+ def duracao
168
+ Obj.new(tipo_de_contrato: evento['altContratual/vinculo/infoContrato/duracao/tpContr'])
169
+ end
170
+
140
171
  def itens_do_conteudo # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
141
172
  [
142
173
  # rubocop:disable Layout/LineLength
143
174
  ['ESX_CPF', cpf_do_trabalhador],
144
- ['ESX_MATRICULA', matricula_do_trabalhador],
175
+ ['ESX_MATRICULA', alteracao_contratual.matricula_do_trabalhador],
145
176
  %w[ESX_SEMVINCULO 0],
146
177
  ['ESX_DATAADMISSAO', data_de_admissao, :data],
147
178
  ['ESX_DATAALTERACAO', data_da_alteracao, :data],
148
179
  ['cpfTrabalhador', cpf_do_trabalhador],
149
180
  %w[nomeTrabalhador nomeTrabalhador],
150
181
  ['IdentificacaoVinculo_Cpf', cpf_do_trabalhador],
151
- ['IdentificacaoVinculo_Matricula', matricula_do_trabalhador],
182
+ ['IdentificacaoVinculo_Matricula', alteracao_contratual.matricula_do_trabalhador],
152
183
  ['TipoInscricaoEmpregador', tipo_de_inscricao_do_empregador],
153
184
  ['AlteracaoContratual_DataAlteracao', data_da_alteracao, :data],
154
185
  ['AlteracaoContratual_DataEfeito', evento['altContratual/dtEf'], :data],
@@ -165,10 +196,10 @@ module Teodoro
165
196
  ['IdContratoAlterado'],
166
197
  ['regTrab'],
167
198
  ['InformacoesContrato_CodigoCategoria', evento['altContratual/vinculo/infoContrato/codCateg']],
168
- ['VinculoAlteracao_TipoRegimePrevidenciario', evento['altContratual/vinculo/tpRegPrev']],
199
+ ['VinculoAlteracao_TipoRegimePrevidenciario', alteracao_contratual.tipo_de_regime_previdenciario],
169
200
  ['dataAdmissao', data_de_admissao, :data],
170
201
  ['InformacoesCeletista_TipoRegimeJornada', evento['altContratual/vinculo/infoRegimeTrab/infoCeletista/tpRegJor']],
171
- ['InformacoesCeletista_NaturezaAtividade', evento['altContratual/vinculo/infoRegimeTrab/infoCeletista/natAtividade']],
202
+ ['InformacoesCeletista_NaturezaAtividade', alteracao_contratual.natureza_da_atividade],
172
203
  ['FiltroCargo'],
173
204
  ['FiltroFuncao'],
174
205
  ['HorarioTela_Dia'],
@@ -179,7 +210,7 @@ module Teodoro
179
210
  ['NomeEstabelecimentoLocalTrabalho'],
180
211
  ['CodigoCBO'],
181
212
  ['InformacoesContrato_Remuneracao_UnidadeSalarioFixo', evento['altContratual/vinculo/infoContrato/remuneracao/undSalFixo']],
182
- ['InformacoesContrato_TipoContrato', evento['altContratual/vinculo/infoContrato/duracao/tpContr']],
213
+ ['InformacoesContrato_TipoContrato', alteracao_contratual.duracao.tipo_de_contrato],
183
214
  ['CodigoCNAE'],
184
215
  ['InformacoesContrato_Remuneracao_ValorSalarioFixo', evento['altContratual/vinculo/infoContrato/remuneracao/vrSalFx'], :decimal],
185
216
  ['InformacoesContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao', evento['altContratual/vinculo/infoContrato/localTrabalho/localTrabGeral/tpInsc']],