teodoro 0.0.9 → 0.0.14

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