odorico 1.0.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 (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