teodoro 0.0.11 → 0.2.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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/lib/teodoro.rb +10 -5
  3. data/lib/teodoro/arquivo_de_evento.rb +15 -15
  4. data/lib/teodoro/{arquivo_de_evento_exceto_de_exclusao.rb → arquivo_de_evento_criador_de_arquivo_data.rb} +2 -6
  5. data/lib/teodoro/arquivo_de_evento_de_tabela.rb +2 -2
  6. data/lib/teodoro/arquivo_de_evento_nao_periodico.rb +9 -33
  7. data/lib/teodoro/arquivo_de_evento_processador_de_arquivo_data.rb +30 -0
  8. data/lib/teodoro/arquivo_de_evento_retificavel.rb +23 -0
  9. data/lib/teodoro/arquivo_xml.rb +34 -22
  10. data/lib/teodoro/empresa.rb +77 -9
  11. data/lib/teodoro/leiaute.rb +24 -0
  12. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1000.rb +7 -9
  13. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1005.rb +4 -4
  14. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1010.rb +2 -4
  15. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1020.rb +4 -4
  16. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1030.rb +4 -4
  17. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1040.rb +2 -4
  18. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1050.rb +4 -4
  19. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s1070.rb +2 -4
  20. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2190.rb +2 -2
  21. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2200.rb +121 -22
  22. data/lib/teodoro/leiaute/arquivo_s2205.rb +264 -0
  23. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2206.rb +18 -7
  24. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2230.rb +56 -12
  25. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2250.rb +24 -8
  26. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2299.rb +23 -20
  27. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2300.rb +17 -9
  28. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2306.rb +27 -7
  29. data/lib/teodoro/{leiaute_2 → leiaute}/arquivo_s2399.rb +11 -8
  30. data/lib/teodoro/leiaute/arquivo_s3000.rb +33 -0
  31. metadata +25 -23
  32. data/lib/teodoro/leiaute_2.rb +0 -24
  33. data/lib/teodoro/leiaute_2/arquivo_s2205.rb +0 -157
  34. data/lib/teodoro/leiaute_2/arquivo_s3000.rb +0 -41
@@ -0,0 +1,264 @@
1
+ module Teodoro
2
+ module Leiaute
3
+ class ArquivoS2205
4
+ include ArquivoDeEventoProcessadorDeArquivoData
5
+ include ArquivoDeEventoRetificavel
6
+
7
+ def processar
8
+ deletar_arquivos_data_originais if retificacao?
9
+ processar_contratos_de_trabalho
10
+ end
11
+
12
+ private
13
+
14
+ def noh_principal_do_evento
15
+ 'evtAltCadastral'
16
+ end
17
+
18
+ def processar_contratos_de_trabalho
19
+ contratos_de_trabalho.each(&:processar)
20
+ end
21
+
22
+ def contratos_de_trabalho
23
+ (contratos_de_emprego + contratos_de_trabalho_sem_vinculo)
24
+ .map { |classe, contrato| classe.new(empresa: empresa, arquivo_xml: arquivo_xml, contrato: contrato) }
25
+ end
26
+
27
+ def contratos_de_emprego
28
+ empresa.contratos_de_emprego
29
+ .*(cpf_do_trabalhador: cpf_do_trabalhador, data: data_da_alteracao)
30
+ .map { [ContratoDeEmprego, _1] }
31
+ end
32
+
33
+ def contratos_de_trabalho_sem_vinculo
34
+ empresa.contratos_de_trabalho_sem_vinculo
35
+ .*(cpf_do_trabalhador: cpf_do_trabalhador, data: data_da_alteracao)
36
+ .map { [ContratoDeTrabalhoSemVinculo, _1] }
37
+ end
38
+
39
+ def cpf_do_trabalhador
40
+ @cpf_do_trabalhador ||= evento['evtAltCadastral/ideTrabalhador/cpfTrab']
41
+ end
42
+
43
+ def data_da_alteracao
44
+ @data_da_alteracao ||= evento['evtAltCadastral/alteracao/dtAlteracao']
45
+ end
46
+
47
+ module ContratoDeTrabalho # rubocop:disable Metrics/ModuleLength
48
+ include ArquivoDeEventoNaoPeriodico
49
+
50
+ private
51
+
52
+ def initialize(contrato:, **args)
53
+ super(**args)
54
+
55
+ @contrato = contrato
56
+ end
57
+
58
+ attr_reader :contrato
59
+
60
+ def noh_principal_do_evento
61
+ 'evtAltCadastral'
62
+ end
63
+
64
+ def nome_do_arquivo_data
65
+ @nome_do_arquivo_data ||= [
66
+ "TRA[#{cpf_do_trabalhador}]",
67
+ nome_do_arquivo_data_identificacao_do_contrato,
68
+ "-ACA[#{data_da_alteracao.delete('-')}]"
69
+ ].join
70
+ end
71
+
72
+ def cpf_do_trabalhador
73
+ @cpf_do_trabalhador ||= evento['evtAltCadastral/ideTrabalhador/cpfTrab']
74
+ end
75
+
76
+ def data_da_alteracao
77
+ @data_da_alteracao ||= evento['evtAltCadastral/alteracao/dtAlteracao']
78
+ end
79
+
80
+ def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
81
+ [
82
+ # rubocop:disable Layout/LineLength
83
+ ['ESX_CPF', cpf_do_trabalhador],
84
+ ['ESX_MATRICULA', matricula_do_contrato],
85
+ ['ESX_CATEGORIA', categoria_do_trabalhador],
86
+ %w[ESX_SEMVINCULO 0], # FIXME: Tales TC
87
+ ['ESX_DATAADMISSAO', data_de_inicio_do_contrato_de_trabalho],
88
+ ['ESX_DATAALTERACAO', data_da_alteracao],
89
+ ['DataAlteracao', data_da_alteracao],
90
+ ['IdEventoXml'],
91
+ ['NrReciboEventoOriginal'],
92
+ ['RequestVerificationToken'],
93
+ ['SomenteLeitura'],
94
+ ['VisualizarDadosCadastrais'],
95
+ ['UrlRetorno'],
96
+ ['visualizar'],
97
+ ['DescricaoProcEmi', processo_de_emissao_do_evento],
98
+ ['VerProc', recibo['retornoEvento/processamento/versaoAppProcessamento']],
99
+ ['IdEdicaoDependente'],
100
+ ['commandArgument'],
101
+ ['EventoAdmissao_TipoEventoEnviado'],
102
+ ['HiddenCurrentUrl'],
103
+ ['ehCodigoAcesso'],
104
+ ['ExibirTrocarPerfil'],
105
+ ['EventoAdmissao_InfoTrabalhador_Cpf', cpf_do_trabalhador],
106
+ ['EventoAdmissao_InfoTrabalhador_Nome', evento['evtAltCadastral/alteracao/dadosTrabalhador/nmTrab']],
107
+ ['EventoAdmissao_InfoTrabalhador_Nis', evento['evtAltCadastral/alteracao/dadosTrabalhador/nisTrab']],
108
+ ['EventoAdmissao_InfoTrabalhador_Sexo', evento['evtAltCadastral/alteracao/dadosTrabalhador/sexo']],
109
+ ['EventoAdmissao_InfoTrabalhador_Sexo_TEXT'],
110
+ ['EventoAdmissao_InfoTrabalhador_RacaCor', evento['evtAltCadastral/alteracao/dadosTrabalhador/racaCor']],
111
+ ['EventoAdmissao_InfoTrabalhador_RacaCor_TEXT'],
112
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil', evento['evtAltCadastral/alteracao/dadosTrabalhador/estCiv']],
113
+ ['EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT'],
114
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao', evento['evtAltCadastral/alteracao/dadosTrabalhador/grauInstr']],
115
+ ['EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT'],
116
+ ['EventoAdmissao_InfoTrabalhador_PrimeiroEmprego'],
117
+ ['EventoAdmissao_InfoTrabalhador_NomeSocial', evento['evtAltCadastral/alteracao/dadosTrabalhador/nmSoc']],
118
+ ['EventoAdmissao_Aposentadoria_TrabalhadorAposentado', evento['evtAltCadastral/alteracao/dadosTrabalhador/aposentadoria/trabAposent']],
119
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio'],
120
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT'],
121
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento'],
122
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae'],
123
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_NomePai'],
124
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento'],
125
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT'],
126
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade'],
127
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT'],
128
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf'],
129
+ ['EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT'],
130
+ ['EventoAdmissao_EnderecoResidencialBR_Bairro', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/bairro']],
131
+ ['EventoAdmissao_EnderecoResidencialBR_Cep', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/cep']],
132
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/codMunic']],
133
+ ['EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT'],
134
+ ['EventoAdmissao_EnderecoResidencialBR_Complemento', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/complemento']],
135
+ ['EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/dscLograd']],
136
+ ['EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/nrLograd']],
137
+ ['SemNumeroLogradouroEnderecoBR'],
138
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/tpLograd']],
139
+ ['EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT'],
140
+ ['EventoAdmissao_EnderecoResidencialBR_Uf', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/brasil/uf']],
141
+ ['EventoAdmissao_EnderecoResidencialBR_Uf_TEXT'],
142
+ ['EventoAdmissao_EnderecoResidencialEX_Bairro', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/exterior/bairro']],
143
+ ['EventoAdmissao_EnderecoResidencialEX_CodigoPostal', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/exterior/codPostal']],
144
+ ['EventoAdmissao_EnderecoResidencialEX_Complemento', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/exterior/complemento']],
145
+ ['EventoAdmissao_EnderecoResidencialEX_DescricaoLogradouro', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/exterior/dscLograd']],
146
+ ['EventoAdmissao_EnderecoResidencialEX_NomeCidade', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/exterior/nmCid']],
147
+ ['EventoAdmissao_EnderecoResidencialEX_NumeroLogradouro', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/exterior/nrLograd']],
148
+ ['ResideExterior'],
149
+ ['EventoAdmissao_EnderecoResidencialEX_PaisResidencia', evento['evtAltCadastral/alteracao/dadosTrabalhador/endereco/exterior/paisResid']],
150
+ ['EventoAdmissao_EnderecoResidencialEX_PaisResidencia_TEXT'],
151
+ ['SemNumeroLogradouroEnderecoEX'],
152
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', evento['evtAltCadastral/alteracao/dadosTrabalhador/trabEstrangeiro/casadoBr']],
153
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao', evento['evtAltCadastral/alteracao/dadosTrabalhador/trabEstrangeiro/classTrabEstrang']],
154
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT'],
155
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada', evento['evtAltCadastral/alteracao/dadosTrabalhador/trabEstrangeiro/dtChegada']],
156
+ ['EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', evento['evtAltCadastral/alteracao/dadosTrabalhador/trabEstrangeiro/filhosBr']],
157
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CNH/categoriaCnh']],
158
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT'],
159
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CNH/dtExped']],
160
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CNH/dtPriHab']],
161
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CNH/dtValid']],
162
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CNH/nrRegCnh']],
163
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CNH/ufCnh']],
164
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT'],
165
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CTPS/nrCtps']],
166
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CTPS/serieCtps']],
167
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/CTPS/ufCtps']],
168
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT'],
169
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/OC/dtExped']],
170
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataValidade', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/OC/dtValid']],
171
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/OC/nrOc']],
172
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/OC/orgaoEmissor']],
173
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RG/dtExped']],
174
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RG/nrRg']],
175
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RG/orgaoEmissor']],
176
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_DataExpedicao', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RIC/dtExped']],
177
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_NumeroRic', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RIC/nrRic']],
178
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Ric_OrgaoEmissor', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RIC/orgaoEmissor']],
179
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RNE/dtExped']],
180
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RNE/nrRne']],
181
+ ['EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor', evento['evtAltCadastral/alteracao/dadosTrabalhador/documentos/RNE/orgaoEmissor']],
182
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/defAuditiva']],
183
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/defFisica']],
184
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/defIntelectual']],
185
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/defMental']],
186
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/defVisual']],
187
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/infoCota']],
188
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_Observacao', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/observacao']],
189
+ ['EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado', evento['evtAltCadastral/alteracao/dadosTrabalhador/infoDeficiencia/reabReadap']],
190
+ ['EventoAdmissao_Contato_TelefonePrincipal', evento['evtAltCadastral/alteracao/dadosTrabalhador/contato/fonePrinc']],
191
+ ['EventoAdmissao_Contato_EmailPrincipal', evento['evtAltCadastral/alteracao/dadosTrabalhador/contato/emailPrinc']],
192
+ ['EventoAdmissao_Contato_TelefoneAlternativo', evento['evtAltCadastral/alteracao/dadosTrabalhador/contato/foneAlternat']],
193
+ ['EventoAdmissao_Contato_EmailAlternativo', evento['evtAltCadastral/alteracao/dadosTrabalhador/contato/emailAlternat']],
194
+ *evento.*('evtAltCadastral/alteracao/dadosTrabalhador/dependente').map.with_index(1) do |dependente, seq|
195
+ [
196
+ ["EventoAdmissao_Dependente_#{seq}_CPFDependente", dependente['cpfDep']],
197
+ ["EventoAdmissao_Dependente_#{seq}_DataNascimento", dependente['dtNascto']],
198
+ ["EventoAdmissao_Dependente_#{seq}_DataNascimentoFormatada"],
199
+ ["EventoAdmissao_Dependente_#{seq}_DependenteIRRF", dependente['depIRRF']],
200
+ ["EventoAdmissao_Dependente_#{seq}_DependenteSF", dependente['depSF']],
201
+ ["EventoAdmissao_Dependente_#{seq}_IncapacidadeDependente", dependente['incTrab']],
202
+ ["EventoAdmissao_Dependente_#{seq}_NomeDependente", dependente['nmDep']],
203
+ ["EventoAdmissao_Dependente_#{seq}_TipoDependente", dependente['tpDep']]
204
+ ]
205
+ end.sum([])
206
+ # rubocop:enable Layout/LineLength
207
+ ]
208
+ end
209
+ end
210
+
211
+ class ContratoDeEmprego
212
+ include ContratoDeTrabalho
213
+
214
+ private
215
+
216
+ def nome_do_arquivo_data_identificacao_do_contrato
217
+ "[EPG_#{matricula_do_contrato}_#{data_de_admissao.delete('-')}]"
218
+ end
219
+
220
+ def matricula_do_contrato
221
+ contrato.matricula
222
+ end
223
+
224
+ def data_de_admissao
225
+ contrato.data_de_admissao
226
+ end
227
+
228
+ def categoria_do_trabalhador
229
+ contrato.categoria_do_trabalhador
230
+ end
231
+
232
+ def data_de_inicio_do_contrato_de_trabalho
233
+ data_de_admissao
234
+ end
235
+ end
236
+
237
+ class ContratoDeTrabalhoSemVinculo
238
+ include ContratoDeTrabalho
239
+
240
+ private
241
+
242
+ def nome_do_arquivo_data_identificacao_do_contrato
243
+ "[TSV_#{categoria_do_trabalhador}_#{data_de_inicio_do_contrato_de_trabalho_sem_vinculo.delete('-')}]"
244
+ end
245
+
246
+ def categoria_do_trabalhador
247
+ contrato.categoria_do_trabalhador
248
+ end
249
+
250
+ def data_de_inicio_do_contrato_de_trabalho_sem_vinculo
251
+ contrato.data_de_inicio
252
+ end
253
+
254
+ def matricula_do_contrato
255
+ nil
256
+ end
257
+
258
+ def data_de_inicio_do_contrato_de_trabalho
259
+ data_de_inicio_do_contrato_de_trabalho_sem_vinculo
260
+ end
261
+ end
262
+ end
263
+ end
264
+ end
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2206 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -10,11 +10,10 @@ module Teodoro
10
10
  end
11
11
 
12
12
  def nome_do_arquivo_data
13
- # FIXME: Tales dataDeAdmissao
14
13
  @nome_do_arquivo_data ||= [
15
14
  'TRA',
16
15
  "[#{cpf_do_trabalhador}]",
17
- "[EPG_#{matricula_do_trabalhador}_dataDeAdmissao]",
16
+ "[EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]",
18
17
  "-ACO[#{data_da_alteracao.delete('-')}]"
19
18
  ].join
20
19
  end
@@ -27,18 +26,30 @@ module Teodoro
27
26
  @matricula_do_trabalhador ||= evento['evtAltContratual/ideVinculo/matricula']
28
27
  end
29
28
 
29
+ def data_de_admissao
30
+ contrato_de_emprego.data_de_admissao
31
+ end
32
+
33
+ def contrato_de_emprego
34
+ contratos_de_emprego[matricula_do_trabalhador]
35
+ end
36
+
37
+ def contratos_de_emprego
38
+ empresa.contratos_de_emprego
39
+ end
40
+
30
41
  def data_da_alteracao
31
42
  evento['evtAltContratual/altContratual/dtAlteracao']
32
43
  end
33
44
 
34
- # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Layout/LineLength
35
- def itens_do_conteudo_do_arquivo_data
45
+ def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
36
46
  [
47
+ # rubocop:disable Layout/LineLength
37
48
  ['ESX_CPF', cpf_do_trabalhador],
38
49
  ['ESX_MATRICULA', matricula_do_trabalhador],
39
50
  ['ESX_CATEGORIA', categoria_do_trabalhador],
40
51
  %w[ESX_SEMVINCULO 0],
41
- ['ESX_DATAADMISSAO'], # FIXME: Tales
52
+ ['ESX_DATAADMISSAO', data_de_admissao],
42
53
  ['ESX_DATAALTERACAO', data_da_alteracao],
43
54
  ['cpfTrabalhador', cpf_do_trabalhador],
44
55
  ['nomeTrabalhador'],
@@ -175,9 +186,9 @@ module Teodoro
175
186
  ["InfoVinculo_InfoContrato_FiliacaoSindical_#{seq}_CnpjSindicatoTrabalhador", filiacao['cnpjSindTrab']]
176
187
  ]
177
188
  end.sum([])
189
+ # rubocop:enable Layout/LineLength
178
190
  ]
179
191
  end
180
- # rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Layout/LineLength
181
192
 
182
193
  def categoria_do_trabalhador
183
194
  @categoria_do_trabalhador ||= evento['evtAltContratual/altContratual/infoContrato/codCateg']
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2230 # rubocop:disable Metrics/ClassLength
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -10,9 +10,9 @@ module Teodoro
10
10
  end
11
11
 
12
12
  def nome_do_arquivo_data
13
- # FIXME: Tales dataDeAdmissao
14
13
  @nome_do_arquivo_data ||= [
15
- "TRA[#{cpf_do_trabalhador}][EPG_#{matricula_do_trabalhador}_dataDeAdmissao]-",
14
+ "TRA[#{cpf_do_trabalhador}]",
15
+ "[#{empregado? ? nome_do_arquivo_data_identif_do_empregado : nome_do_arquivo_data_identif_do_tsv}]-",
16
16
  fim_do_afastamento? ? 'TAF' : 'IAF',
17
17
  '[',
18
18
  inicio_do_afastamento? ? data_de_inicio_do_afastamento.delete('-') : 'SemIni',
@@ -26,16 +26,52 @@ module Teodoro
26
26
  evento['evtAfastTemp/ideVinculo/cpfTrab']
27
27
  end
28
28
 
29
+ def empregado?
30
+ matricula_do_trabalhador
31
+ end
32
+
29
33
  def matricula_do_trabalhador
30
- evento['evtAfastTemp/ideVinculo/matricula']
34
+ @matricula_do_trabalhador ||= evento['evtAfastTemp/ideVinculo/matricula']
31
35
  end
32
36
 
33
- def fim_do_afastamento?
34
- fim_do_afastamento
37
+ def nome_do_arquivo_data_identif_do_empregado
38
+ "EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}"
35
39
  end
36
40
 
37
- def fim_do_afastamento
38
- @fim_do_afastamento ||= evento['evtAfastTemp/infoAfastamento/fimAfastamento']
41
+ def data_de_admissao
42
+ contrato_de_emprego.data_de_admissao
43
+ end
44
+
45
+ def contrato_de_emprego
46
+ contratos_de_emprego[matricula_do_trabalhador]
47
+ end
48
+
49
+ def contratos_de_emprego
50
+ empresa.contratos_de_emprego
51
+ end
52
+
53
+ def nome_do_arquivo_data_identif_do_tsv
54
+ "TSV_#{categoria_do_trabalhador}_#{data_de_inicio_do_contrato_de_trabalho.delete('-')}"
55
+ end
56
+
57
+ def categoria_do_trabalhador
58
+ @categoria_do_trabalhador ||= evento['evtAfastTemp/ideVinculo/codCateg']
59
+ end
60
+
61
+ def data_de_inicio_do_contrato_de_trabalho
62
+ contrato_de_trabalho_sem_vinculo.data_de_inicio
63
+ end
64
+
65
+ def contrato_de_trabalho_sem_vinculo
66
+ contratos_de_trabalho_sem_vinculo[
67
+ cpf_do_trabalhador: cpf_do_trabalhador,
68
+ categoria_do_trabalhador: categoria_do_trabalhador,
69
+ data: inicio_do_afastamento? ? data_de_inicio_do_afastamento : data_de_termino_do_afastamento
70
+ ]
71
+ end
72
+
73
+ def contratos_de_trabalho_sem_vinculo
74
+ empresa.contratos_de_trabalho_sem_vinculo
39
75
  end
40
76
 
41
77
  def inicio_do_afastamento?
@@ -54,12 +90,20 @@ module Teodoro
54
90
  fim_do_afastamento['dtTermAfast']
55
91
  end
56
92
 
57
- # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Layout/LineLength
58
- def itens_do_conteudo_do_arquivo_data
93
+ def fim_do_afastamento
94
+ @fim_do_afastamento ||= evento['evtAfastTemp/infoAfastamento/fimAfastamento']
95
+ end
96
+
97
+ def fim_do_afastamento?
98
+ fim_do_afastamento
99
+ end
100
+
101
+ def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
59
102
  [
103
+ # rubocop:disable Layout/LineLength
60
104
  ['ESX_CPF', evento['evtAfastTemp/ideVinculo/cpfTrab']],
61
105
  ['ESX_MATRICULA', evento['evtAfastTemp/ideVinculo/matricula']],
62
- ['ESX_CATEGORIA', evento['evtAfastTemp/ideVinculo/codCateg']],
106
+ ['ESX_CATEGORIA', categoria_do_trabalhador],
63
107
  ['ESX_DATAADMISSAO'],
64
108
  %w[ESX_SEMVINCULO 0],
65
109
  ['ESX_INICIO', evento['evtAfastTemp/infoAfastamento/iniAfastamento/dtIniAfast']],
@@ -139,9 +183,9 @@ module Teodoro
139
183
  ["IniAfastamento_ListaInfoAtestado_#{seq}_Emitente_DescricaoOrgaoClasse"]
140
184
  ]
141
185
  end.sum([])
186
+ # rubocop:enable Layout/LineLength
142
187
  ]
143
188
  end
144
- # rubocop:enable Metrics/MethodLength, Metrics/AbcSize, Layout/LineLength
145
189
  end
146
190
  end
147
191
  end
@@ -1,5 +1,5 @@
1
1
  module Teodoro
2
- module Leiaute_2
2
+ module Leiaute
3
3
  class ArquivoS2250
4
4
  include ArquivoDeEventoNaoPeriodico
5
5
 
@@ -10,8 +10,8 @@ module Teodoro
10
10
  end
11
11
 
12
12
  def nome_do_arquivo_data
13
- # FIXME: Tales dataDeAdmissao
14
- @nome_do_arquivo_data ||= "TRA[#{cpf_do_trabalhador}][EPG_#{matricula_do_trabalhador}_dataDeAdmissao]-AVI"
13
+ @nome_do_arquivo_data ||=
14
+ "TRA[#{cpf_do_trabalhador}][EPG_#{matricula_do_trabalhador}_#{data_de_admissao.delete('-')}]-AVI"
15
15
  end
16
16
 
17
17
  def cpf_do_trabalhador
@@ -22,14 +22,26 @@ module Teodoro
22
22
  @matricula_do_trabalhador ||= evento['evtAvPrevio/ideVinculo/matricula']
23
23
  end
24
24
 
25
- # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Layout/LineLength
26
- def itens_do_conteudo_do_arquivo_data
25
+ def data_de_admissao
26
+ contrato_de_emprego.data_de_admissao
27
+ end
28
+
29
+ def contrato_de_emprego
30
+ @contrato_de_emprego ||= contratos_de_emprego[matricula_do_trabalhador]
31
+ end
32
+
33
+ def contratos_de_emprego
34
+ empresa.contratos_de_emprego
35
+ end
36
+
37
+ def itens_do_conteudo_do_arquivo_data # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
27
38
  [
39
+ # rubocop:disable Layout/LineLength
28
40
  ['ESX_CPF', cpf_do_trabalhador],
29
41
  ['ESX_MATRICULA', matricula_do_trabalhador],
30
- ['ESX_CATEGORIA'], # FIXME: Tales
42
+ ['ESX_CATEGORIA', categoria_do_trabalhador],
31
43
  %w[ESX_SEMVINCULO 0],
32
- ['ESX_DATAADMISSAO'], # FIXME: Tales
44
+ ['ESX_DATAADMISSAO', data_de_admissao],
33
45
  ['OperacaoAvisoPrevio'],
34
46
  ['MostrarCancelamento'],
35
47
  ['MostrarAvisoPrevio'],
@@ -54,9 +66,13 @@ module Teodoro
54
66
  ['RequestVerificationToken'],
55
67
  ['DescricaoProcEmi', processo_de_emissao_do_evento],
56
68
  ['VerProc', recibo['retornoEvento/processamento/versaoAppProcessamento']]
69
+ # rubocop:enable Layout/LineLength
57
70
  ]
58
71
  end
59
- # rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Layout/LineLength
72
+
73
+ def categoria_do_trabalhador
74
+ contrato_de_emprego.categoria_do_trabalhador
75
+ end
60
76
  end
61
77
  end
62
78
  end