odorico 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +7 -0
  2. data/bin/odorico +3 -0
  3. data/lib/odorico/arquivo_atestado_de_saude_ocupacional.rb +60 -0
  4. data/lib/odorico/arquivo_aviso_previo.rb +69 -0
  5. data/lib/odorico/arquivo_cargo.rb +60 -0
  6. data/lib/odorico/arquivo_comunicacao_de_acidente_de_trabalho.rb +86 -0
  7. data/lib/odorico/arquivo_condicao_ambiental_de_trabalho.rb +83 -0
  8. data/lib/odorico/arquivo_data.rb +251 -0
  9. data/lib/odorico/arquivo_empregado.rb +401 -0
  10. data/lib/odorico/arquivo_empregado_afastamento_inicio.rb +109 -0
  11. data/lib/odorico/arquivo_empregado_afastamento_termino.rb +102 -0
  12. data/lib/odorico/arquivo_empregado_desligamento.rb +237 -0
  13. data/lib/odorico/arquivo_empregado_historico_cadastral.rb +194 -0
  14. data/lib/odorico/arquivo_empregado_historico_contratual.rb +157 -0
  15. data/lib/odorico/arquivo_empresa.rb +158 -0
  16. data/lib/odorico/arquivo_estabelecimento.rb +138 -0
  17. data/lib/odorico/arquivo_horario.rb +69 -0
  18. data/lib/odorico/arquivo_lotacao.rb +60 -0
  19. data/lib/odorico/arquivo_trabalhador_sem_vinculo.rb +305 -0
  20. data/lib/odorico/arquivo_trabalhador_sem_vinculo_historico_contratual.rb +86 -0
  21. data/lib/odorico/arquivo_trabalhador_sem_vinculo_termino.rb +204 -0
  22. data/lib/odorico/console.rb +11 -0
  23. data/lib/odorico/gerador_de_arquivos.rb +126 -0
  24. data/lib/odorico/gerador_de_arquivos_csv.rb +25 -0
  25. data/lib/odorico/jornada.rb +21 -0
  26. data/lib/odorico/processamento.rb +375 -0
  27. data/lib/odorico/sistema_operacional.rb +33 -0
  28. data/lib/odorico/types.rb +203 -0
  29. data/lib/odorico/version.rb +3 -0
  30. data/lib/odorico.rb +115 -0
  31. metadata +184 -0
@@ -0,0 +1,305 @@
1
+ class ArquivoTrabalhadorSemVinculo
2
+ ATRIBUTOS = {
3
+ cpf: { key: 'EventoAdmissao_InfoTrabalhador_Cpf', type: Types::String.optional },
4
+ nis: { key: 'EventoAdmissao_InfoTrabalhador_Nis', type: Types::String.optional },
5
+ nome: { key: 'EventoAdmissao_InfoTrabalhador_Nome', type: Types::String },
6
+ sexo: { key: 'EventoAdmissao_InfoTrabalhador_Sexo', type: Types::String },
7
+ codigo_categoria: { key: 'EventoAdmissao_InformacoesInicio_CodigoCategoria', type: Types::CategoriaTrabalhadorTsv },
8
+ nr_recibo_evento_original: { key: 'NrReciboEventoOriginal', type: Types::String },
9
+ data_inicio: { key: 'EventoAdmissao_InformacoesInicio_DataInicio', type: Types::Date },
10
+ raca_cor: { key: 'EventoAdmissao_InfoTrabalhador_RacaCor', type: Types::Integer },
11
+ deficiencia_auditiva: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva',
12
+ type: Types::SNBool.optional },
13
+ deficiencia_fisica: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica',
14
+ type: Types::SNBool.optional },
15
+ deficiencia_intelectual: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual',
16
+ type: Types::SNBool.optional },
17
+ deficiencia_mental: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental',
18
+ type: Types::SNBool.optional },
19
+ deficiencia_visual: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual',
20
+ type: Types::SNBool.optional },
21
+ deficiencia_reabilitado_ou_readaptado: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado',
22
+ type: Types::SNBool.optional },
23
+ grau_instrucao: { key: 'EventoAdmissao_InfoTrabalhador_GrauInstrucao', type: Types::String },
24
+ endereco_br_bairro: { key: 'EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Bairro',
25
+ type: Types::String.optional },
26
+ endereco_br_cep: { key: 'EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Cep',
27
+ type: Types::String.optional },
28
+ endereco_br_codigo_municipio: {
29
+ key: 'EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_CodigoMunicipio',
30
+ type: Types::String.optional
31
+ },
32
+ endereco_br_complemento: { key: 'EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Complemento',
33
+ type: Types::String.optional },
34
+ endereco_br_descricao_logradouro: {
35
+ key: 'EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_DescricaoLogradouro',
36
+ type: Types::String.optional
37
+ },
38
+ endereco_br_numero_logradouro: {
39
+ key: 'EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_NumeroLogradouro',
40
+ type: Types::String.optional
41
+ },
42
+ data_de_nascimento: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', type: Types::Date },
43
+ nascimento_pais_codigo: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', type: Types::String },
44
+ nacionalidade_pais_codigo: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade',
45
+ type: Types::String },
46
+ nome_mae: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', type: Types::String.optional },
47
+ cargo_codigo: { key: 'EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCargo',
48
+ type: Types::String.optional },
49
+ valor_salario_fixo: {
50
+ key: 'EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_ValorSalarioFixo',
51
+ type: Types::Decimal.optional
52
+ },
53
+ natureza_da_atividade: { key: 'EventoAdmissao_InformacoesInicio_NaturezaAtividade', type: Types::String.optional },
54
+
55
+ estagiario_natureza_estagio: {
56
+ key: 'EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NaturezaEstagio',
57
+ type: Types::String.optional
58
+ },
59
+ estagiario_nivel_estagio: {
60
+ key: 'EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NivelEstagio',
61
+ type: Types::String.optional
62
+ },
63
+ estagiario_dt_prevista_termino: {
64
+ key: 'EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_DtPrevistaTermino',
65
+ type: Types::String.optional
66
+ },
67
+ estagiario_info_inst_ensino_cnpj: {
68
+ key: 'EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Cnpj',
69
+ type: Types::String.optional
70
+ },
71
+ estagiario_valor_bolsa: {
72
+ key: 'EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_ValorBolsa',
73
+ type: Types::Decimal.optional
74
+ },
75
+ cbo: { key: 'CodigoCBO', type: Types::String.optional },
76
+ matricula: { key: 'EventoAdmissao_InformacoesInicio_Matricula', type: Types::String.optional },
77
+ estrangeiro_data_de_chegada_ao_brasil: { key: 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada',
78
+ type: Types::Date.optional },
79
+ estrangeiro_classificacao_do_ingresso_no_brasil: {
80
+ key: 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao', type: Types::Integer.optional
81
+ },
82
+ estrangeiro_casado_com_brasileiro: {
83
+ key: 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', type: Types::SNBool.optional
84
+ },
85
+ estrangeiro_tem_filhos_brasileiros: {
86
+ key: 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', type: Types::SNBool.optional
87
+ },
88
+ descricao_proc_emi: { key: 'DescricaoProcEmi', type: Types::String.optional },
89
+ dependentes: { key: 'EventoAdmissao_InfoTrabalhador_Dependente', attributes: {
90
+ dependente_de_IRRF: { key: 'DependenteIRRF', type: Types::SNBool }
91
+ } }
92
+ }.freeze
93
+
94
+ ATRIBUTOS_DESCARTADOS = {
95
+ Nascimento: %w[
96
+ EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio
97
+ EventoAdmissao_InfoTrabalhador_Nascimento_Uf
98
+ EventoAdmissao_InfoTrabalhador_Nascimento_NomePai
99
+ ],
100
+ 'Estado civil': %w[
101
+ EventoAdmissao_InfoTrabalhador_EstadoCivil
102
+ ],
103
+ 'Nome Social': %w[
104
+ EventoAdmissao_InfoTrabalhador_NomeSocial
105
+ ],
106
+ Identidade: %w[
107
+ EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao
108
+ EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg
109
+ EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor
110
+ ],
111
+ CNH: %w[
112
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh
113
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao
114
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao
115
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade
116
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh
117
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT
118
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh
119
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT
120
+ ],
121
+ 'Orgão de Classe': %w[
122
+ EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc
123
+ EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor
124
+ EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao
125
+ ],
126
+ RNE: %w[
127
+ EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne
128
+ EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor
129
+ EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao
130
+ ],
131
+ CTPS: %w[
132
+ EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps
133
+ EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps
134
+ EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps
135
+ ],
136
+ 'contato do trabalhador': %w[
137
+ EventoAdmissao_InfoTrabalhador_Contato_TelefonePrincipal
138
+ ],
139
+ 'supervisor de estágio': %w[
140
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoSupervisorEstagio_Cpf
141
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoSupervisorEstagio_Nome
142
+ ],
143
+ 'agente de integração': %w[
144
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Cnpj
145
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_RazaoSocial
146
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Cep
147
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_DescricaoLogradouro
148
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_NumeroLogradouro
149
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Bairro
150
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Uf
151
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_CodigoMunicipio
152
+ ],
153
+ 'instituição de ensino de estágio': %w[
154
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Uf
155
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_CodigoMunicipio
156
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Cep
157
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Bairro
158
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_DescricaoLogradouro
159
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_NumeroLogradouro
160
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_RazaoSocial
161
+ ],
162
+ estágio: %w[
163
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NrApoliceSeguro
164
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_AreaAtuacao
165
+ ],
166
+ função: %w[
167
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoFuncao
168
+ ],
169
+ remuneração: %w[
170
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_DescricaoSalarioVariavel
171
+ ]
172
+ }.freeze
173
+
174
+ ATRIBUTOS_NAO_SUPORTADOS = {}.freeze
175
+
176
+ ATRIBUTOS_IGNORADOS = %w[
177
+ IdEventoXml
178
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_TipoLogradouro
179
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Uf
180
+ EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial
181
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS
182
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_DataOpcaoFGTS
183
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_UnidadeSalarioFixo
184
+ ESX_CATEGORIA
185
+ ESX_CPF
186
+ ESX_DATAADMISSAO
187
+ ESX_SEMVINCULO
188
+ EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT
189
+ EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT
190
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_TipoLogradouro_TEXT
191
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_CodigoMunicipio_TEXT
192
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Uf_TEXT
193
+ EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT
194
+ EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT
195
+ EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT
196
+ EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT
197
+ EventoAdmissao_InfoTrabalhador_RacaCor_TEXT
198
+ EventoAdmissao_InfoTrabalhador_Sexo_TEXT
199
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_UnidadeSalarioFixo_TEXT
200
+ EventoAdmissao_InformacoesInicio_CodigoCategoria_TEXT
201
+ EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial_TEXT
202
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS_TEXT
203
+ EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT
204
+ FiltroCargo
205
+ IdContratoReferenciado
206
+ IdEvento
207
+ ResideExterior
208
+ SemNumeroLogradouroEnderecoBR
209
+ SemNumeroLogradouroEnderecoEX
210
+ SomenteLeitura
211
+ VerProc
212
+ autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade
213
+ autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento
214
+ autocomplete_EventoAdmissao_InformacoesInicio_CodigoCategoria
215
+ checkbox_preencher_grupo0
216
+ checkbox_preencher_grupo1
217
+ checkbox_preencher_grupo10
218
+ checkbox_preencher_grupo11
219
+ checkbox_preencher_grupo12
220
+ checkbox_preencher_grupo13
221
+ checkbox_preencher_grupo14
222
+ checkbox_preencher_grupo2
223
+ checkbox_preencher_grupo3
224
+ checkbox_preencher_grupo4
225
+ checkbox_preencher_grupo5
226
+ checkbox_preencher_grupo6
227
+ checkbox_preencher_grupo8
228
+ checkbox_preencher_grupo9
229
+ checkbox_preencher_grupo10
230
+ checkbox_preencher_grupo11
231
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_NomeFuncao
232
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCBOFuncao
233
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCBOFuncao_TEXT
234
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NaturezaEstagio_TEXT
235
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NivelEstagio_TEXT
236
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Uf_TEXT
237
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_CodigoMunicipio_TEXT
238
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Uf_TEXT
239
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_CodigoMunicipio_TEXT
240
+ EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT
241
+ EventoAdmissao_NrRecibo
242
+ CheckModoCompleto
243
+ EventoAdmissao_InfoTrabalhador_Contato_TelefoneAlternativo
244
+ EventoAdmissao_InfoTrabalhador_Contato_EmailPrincipal
245
+ EventoAdmissao_InfoTrabalhador_Contato_EmailAlternativo
246
+ EventoAdmissao_InformacoesInicio_NaturezaAtividade_TEXT
247
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_NomeCargo
248
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCBOCargo
249
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCBOCargo_TEXT
250
+ autocomplete_EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCBOCargo
251
+ autocomplete_EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCBOFuncao
252
+ FiltroFuncao
253
+ ].freeze
254
+
255
+ include ArquivoData
256
+
257
+ private
258
+
259
+ def initialize(caminho_do_arquivo_data)
260
+ @caminho_do_arquivo_data = caminho_do_arquivo_data
261
+ end
262
+
263
+ def ajustar_atributos
264
+ atributos[:dependentes] = atributos[:dependentes].to_json
265
+ end
266
+
267
+ def regras_que_podem_gerar_erros
268
+ {
269
+ 'Não suportamos estagiários assalariados' => eh_estagiario_assalariado?,
270
+ 'Não suportamos administradores rurais' => eh_rural?,
271
+ 'Não suportamos autônomos cadastrados no RET' => eh_autonomo?,
272
+ 'Data de chegada ao Brasil é obrigatória' => estrangeiro_sem_data_de_chegada?
273
+ }
274
+ end
275
+
276
+ def regras_que_podem_gerar_alertas
277
+ {
278
+ }
279
+ end
280
+
281
+ def eh_estagiario_assalariado?
282
+ atributos[:codigo_categoria] == '901' &&
283
+ (atributos[:valor_salario_fixo].to_f.positive? || atributos[:estagiario_valor_bolsa].to_f.positive?)
284
+ end
285
+
286
+ def eh_rural?
287
+ atributos[:natureza_da_atividade].to_i == 2
288
+ end
289
+
290
+ def eh_autonomo?
291
+ atributos[:codigo_categoria] == '701'
292
+ end
293
+
294
+ def estrangeiro_sem_data_de_chegada?
295
+ [
296
+ atributos[:estrangeiro_classificacao_do_ingresso_no_brasil],
297
+ atributos[:estrangeiro_classificacao_do_ingresso_no_brasil] != 6,
298
+ atributos[:estrangeiro_data_de_chegada_ao_brasil].nil?
299
+ ].all?
300
+ end
301
+
302
+ def identificador
303
+ 'trabalhador_sem_vinculo'
304
+ end
305
+ end
@@ -0,0 +1,86 @@
1
+ class ArquivoTrabalhadorSemVinculoHistoricoContratual
2
+ ATRIBUTOS = {
3
+ nr_recibo_evento_original: { key: 'NrReciboEventoOriginal', type: Types::String },
4
+ cpf: { key: 'EventoAdmissao_InfoTrabalhador_Cpf', type: Types::String },
5
+ matricula: { key: 'matricula', type: Types::String.optional },
6
+ data_admissao: { key: 'ESX_DATAADMISSAO', type: Types::Date },
7
+ data_alteracao: { key: 'EventoAdmissao_DataAlteracaoContratual', type: Types::Date },
8
+ cargo_codigo: { key: 'EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCargo',
9
+ type: Types::String.optional },
10
+ codigo_categoria: { key: 'EventoAdmissao_InformacoesInicio_CodigoCategoria',
11
+ type: Types::CategoriaTrabalhadorTsvContratual },
12
+ descricao_proc_emi: { key: 'DescricaoProcEmi', type: Types::String.optional }
13
+ }.freeze
14
+
15
+ ATRIBUTOS_IGNORADOS = %w[
16
+ IdEventoXml
17
+ EventoAdmissao_InfoTrabalhador_Nome
18
+ EventoAdmissao_InfoTrabalhador_Nis
19
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_UnidadeSalarioFixo
20
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_ValorSalarioFixo
21
+ SomenteLeitura
22
+ IdContratoReferenciado
23
+ IdEvento
24
+ EhAlteracaoContratual
25
+ EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento
26
+ EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial
27
+ EventoAdmissao_InformacoesInicio_DataInicio
28
+ EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial_TEXT
29
+ EventoAdmissao_InformacoesInicio_CodigoCategoria_TEXT
30
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_UnidadeSalarioFixo_TEXT
31
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_DescricaoSalarioVariavel
32
+ FiltroCargo
33
+ CodigoCBO
34
+ checkbox_preencher_grupo0
35
+ checkbox_preencher_grupo1
36
+ checkbox_preencher_grupo2
37
+ checkbox_preencher_grupo3
38
+ checkbox_preencher_grupo4
39
+ checkbox_preencher_grupo5
40
+ checkbox_preencher_grupo9
41
+ VerProc
42
+ ESX_CPF
43
+ ESX_CATEGORIA
44
+ ESX_SEMVINCULO
45
+ ESX_DATAALTERACAO
46
+ EventoAdmissao_InformacoesInicio_NaturezaAtividade
47
+ EventoAdmissao_InformacoesInicio_NaturezaAtividade_TEXT
48
+ EventoAdmissao_NrRecibo
49
+ FiltroFuncao
50
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoFuncao
51
+ ].freeze
52
+
53
+ ATRIBUTOS_NAO_SUPORTADOS = {}.freeze
54
+
55
+ ATRIBUTOS_DESCARTADOS = {}.freeze
56
+
57
+ include ArquivoData
58
+
59
+ private
60
+
61
+ def initialize(caminho_do_arquivo_data)
62
+ @caminho_do_arquivo_data = caminho_do_arquivo_data
63
+ end
64
+
65
+ def ajustar_atributos; end
66
+
67
+ def regras_que_podem_gerar_erros
68
+ {
69
+ 'Não suportamos a data de alteração contratual igual ou menor que a data de admissão' =>
70
+ data_de_alteracao_contratual_menor_ou_igual_a_data_de_admissao?
71
+ }
72
+ end
73
+
74
+ def regras_que_podem_gerar_alertas
75
+ {
76
+ }
77
+ end
78
+
79
+ def data_de_alteracao_contratual_menor_ou_igual_a_data_de_admissao?
80
+ atributos[:data_alteracao] <= atributos[:data_admissao]
81
+ end
82
+
83
+ def identificador
84
+ 'trabalhador_sem_vinculo_historico_contratual'
85
+ end
86
+ end
@@ -0,0 +1,204 @@
1
+ class ArquivoTrabalhadorSemVinculoTermino
2
+ ATRIBUTOS = {
3
+ data_desligamento: { key: 'ESX_DATADESLIGAMENTO', type: Types::Date.optional },
4
+ cpf: { key: 'ESX_CPF', type: Types::String },
5
+ matricula: { key: 'EventoAdmissao_InformacoesInicio_Matricula', type: Types::String.optional },
6
+ codigo_categoria: { key: 'ESX_CATEGORIA', type: Types::CategoriaTrabalhadorTsv },
7
+ descricao_proc_emi: { key: 'DescricaoProcEmi', type: Types::String.optional },
8
+ termino_de_contrato_recibo: { key: 'ESX_INFOWEB_RESCISAO_RECIBO', type: Types::String.optional }
9
+ }.freeze
10
+
11
+ ATRIBUTOS_NAO_SUPORTADOS = {}.freeze
12
+
13
+ ATRIBUTOS_DESCARTADOS = {
14
+ CNH: %w[
15
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh
16
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao
17
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao
18
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade
19
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh
20
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT
21
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh
22
+ EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT
23
+ ],
24
+ 'Orgão de Classe': %w[
25
+ EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc
26
+ EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor
27
+ EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao
28
+ ],
29
+ RNE: %w[
30
+ EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne
31
+ EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor
32
+ EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao
33
+ ],
34
+ # rubocop:disable Layout/LineLength
35
+ 'Informações Complementares de Estagiário': %w[
36
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NaturezaEstagio
37
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NaturezaEstagio_TEXT
38
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NivelEstagio
39
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NivelEstagio_TEXT
40
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_AreaAtuacao
41
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_NrApoliceSeguro
42
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_ValorBolsa
43
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_DtPrevistaTermino
44
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Cnpj
45
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_RazaoSocial
46
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Cep
47
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_DescricaoLogradouro
48
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_NumeroLogradouro
49
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Bairro
50
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Uf
51
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_Uf_TEXT
52
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_CodigoMunicipio
53
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoInstEnsino_CodigoMunicipio_TEXT
54
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Cnpj
55
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_RazaoSocial
56
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Cep
57
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_DescricaoLogradouro
58
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_NumeroLogradouro
59
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Bairro
60
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Uf
61
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_Uf_TEXT
62
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_CodigoMunicipio
63
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoAgenteIntegracao_CodigoMunicipio_TEXT
64
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoSupervisorEstagio_Cpf
65
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoEstagiario_InfoSupervisorEstagio_Nome
66
+ ]
67
+ # rubocop:enable Layout/LineLength
68
+ }.freeze
69
+
70
+ ATRIBUTOS_IGNORADOS = %w[
71
+ ESX_DATAADMISSAO
72
+ EventoAdmissao_InfoTrabalhador_NomeSocial
73
+ SomenteLeitura
74
+ IdContratoReferenciado
75
+ EhAlteracaoCadastral
76
+ EventoAdmissao_DataAlteracaoCadastral
77
+ EventoAdmissao_InformacoesInicio_CodigoCategoria
78
+ EventoAdmissao_InfoTrabalhador_Cpf
79
+ EventoAdmissao_InfoTrabalhador_Nis
80
+ EventoAdmissao_InfoTrabalhador_Nome
81
+ EventoAdmissao_InfoTrabalhador_Sexo
82
+ EventoAdmissao_InfoTrabalhador_RacaCor
83
+ EventoAdmissao_InfoTrabalhador_EstadoCivil
84
+ EventoAdmissao_InfoTrabalhador_GrauInstrucao
85
+ EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento
86
+ EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento
87
+ autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento
88
+ EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade
89
+ autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade
90
+ EventoAdmissao_InfoTrabalhador_Nascimento_Uf
91
+ EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio
92
+ EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae
93
+ EventoAdmissao_InfoTrabalhador_Nascimento_NomePai
94
+ checkbox_preencher_grupo0
95
+ EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps
96
+ EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps
97
+ EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps
98
+ checkbox_preencher_grupo1
99
+ checkbox_preencher_grupo2
100
+ EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg
101
+ EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor
102
+ checkbox_preencher_grupo3
103
+ checkbox_preencher_grupo4
104
+ checkbox_preencher_grupo5
105
+ ResideExterior
106
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Cep
107
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_TipoLogradouro
108
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_DescricaoLogradouro
109
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_NumeroLogradouro
110
+ SemNumeroLogradouroEnderecoBR
111
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Complemento
112
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Bairro
113
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Uf
114
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_CodigoMunicipio
115
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_TipoLogradouro_TEXT
116
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Uf_TEXT
117
+ EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_CodigoMunicipio_TEXT
118
+ EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial_TEXT
119
+ EventoAdmissao_InformacoesInicio_CodigoCategoria_TEXT
120
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_UnidadeSalarioFixo_TEXT
121
+ EventoAdmissao_InfoTrabalhador_Sexo_TEXT
122
+ EventoAdmissao_InfoTrabalhador_RacaCor_TEXT
123
+ EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT
124
+ EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT
125
+ EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT
126
+ EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT
127
+ EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT
128
+ EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT
129
+ EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT
130
+ SemNumeroLogradouroEnderecoEX
131
+ checkbox_preencher_grupo6
132
+ EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica
133
+ EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual
134
+ EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva
135
+ EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental
136
+ EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual
137
+ EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado
138
+ checkbox_preencher_grupo8
139
+ checkbox_preencher_grupo9
140
+ IdEventoXml
141
+ NrReciboEventoOriginal
142
+ VerProc
143
+ IdEvento
144
+ EhAlteracaoContratual
145
+ EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial
146
+ EventoAdmissao_InformacoesInicio_DataInicio
147
+ FiltroCargo
148
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCargo
149
+ CodigoCBO
150
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_UnidadeSalarioFixo
151
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_ValorSalarioFixo
152
+ EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao
153
+ EventoAdmissao_DataAlteracaoContratual
154
+ ESX_SEMVINCULO
155
+ EventoAdmissao_InfoTrabalhador_Contato_TelefonePrincipal
156
+ CheckModoCompleto
157
+ EventoAdmissao_InfoTrabalhador_Contato_TelefoneAlternativo
158
+ EventoAdmissao_InfoTrabalhador_Contato_EmailPrincipal
159
+ EventoAdmissao_InfoTrabalhador_Contato_EmailAlternativo
160
+ EventoAdmissao_InformacoesInicio_NaturezaAtividade
161
+ EventoAdmissao_InformacoesInicio_NaturezaAtividade_TEXT
162
+ EventoAdmissao_NrRecibo
163
+ FiltroFuncao
164
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoFuncao
165
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_NomeFuncao
166
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCBOFuncao
167
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCBOFuncao_TEXT
168
+ EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada
169
+ EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro
170
+ EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros
171
+ EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao
172
+ EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT
173
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_DescricaoSalarioVariavel
174
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_NomeCargo
175
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCBOCargo
176
+ EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCBOCargo_TEXT
177
+ autocomplete_EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCBOCargo
178
+ autocomplete_EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoCargoFuncao_CodigoCBOFuncao
179
+ ].freeze
180
+
181
+ include ArquivoData
182
+
183
+ private
184
+
185
+ def initialize(caminho_do_arquivo_data)
186
+ @caminho_do_arquivo_data = caminho_do_arquivo_data
187
+ end
188
+
189
+ def ajustar_atributos; end
190
+
191
+ def regras_que_podem_gerar_erros
192
+ {
193
+ }
194
+ end
195
+
196
+ def regras_que_podem_gerar_alertas
197
+ {
198
+ }
199
+ end
200
+
201
+ def identificador
202
+ 'trabalhador_sem_vinculo_termino'
203
+ end
204
+ end
@@ -0,0 +1,11 @@
1
+ module Console
2
+ def self.print(string)
3
+ Kernel.print "\r\e[2K#{string}"
4
+ begin
5
+ result = yield
6
+ ensure
7
+ Kernel.print "\r\e[2K"
8
+ end
9
+ result
10
+ end
11
+ end