odorico 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/odorico +3 -0
- data/lib/odorico/arquivo_atestado_de_saude_ocupacional.rb +60 -0
- data/lib/odorico/arquivo_aviso_previo.rb +69 -0
- data/lib/odorico/arquivo_cargo.rb +60 -0
- data/lib/odorico/arquivo_comunicacao_de_acidente_de_trabalho.rb +86 -0
- data/lib/odorico/arquivo_condicao_ambiental_de_trabalho.rb +83 -0
- data/lib/odorico/arquivo_data.rb +251 -0
- data/lib/odorico/arquivo_empregado.rb +401 -0
- data/lib/odorico/arquivo_empregado_afastamento_inicio.rb +109 -0
- data/lib/odorico/arquivo_empregado_afastamento_termino.rb +102 -0
- data/lib/odorico/arquivo_empregado_desligamento.rb +237 -0
- data/lib/odorico/arquivo_empregado_historico_cadastral.rb +194 -0
- data/lib/odorico/arquivo_empregado_historico_contratual.rb +157 -0
- data/lib/odorico/arquivo_empresa.rb +158 -0
- data/lib/odorico/arquivo_estabelecimento.rb +138 -0
- data/lib/odorico/arquivo_horario.rb +69 -0
- data/lib/odorico/arquivo_lotacao.rb +60 -0
- data/lib/odorico/arquivo_trabalhador_sem_vinculo.rb +305 -0
- data/lib/odorico/arquivo_trabalhador_sem_vinculo_historico_contratual.rb +86 -0
- data/lib/odorico/arquivo_trabalhador_sem_vinculo_termino.rb +204 -0
- data/lib/odorico/console.rb +11 -0
- data/lib/odorico/gerador_de_arquivos.rb +126 -0
- data/lib/odorico/gerador_de_arquivos_csv.rb +25 -0
- data/lib/odorico/jornada.rb +21 -0
- data/lib/odorico/processamento.rb +375 -0
- data/lib/odorico/sistema_operacional.rb +33 -0
- data/lib/odorico/types.rb +203 -0
- data/lib/odorico/version.rb +3 -0
- data/lib/odorico.rb +115 -0
- metadata +184 -0
@@ -0,0 +1,237 @@
|
|
1
|
+
require 'securerandom'
|
2
|
+
|
3
|
+
class ArquivoEmpregadoDesligamento
|
4
|
+
ATRIBUTOS = {
|
5
|
+
data_desligamento: { key: 'ESX_DATADESLIGAMENTO', type: Types::Date },
|
6
|
+
causa_desligamento: { key: 'ESX_INFOWEB_RESCISAO_MOTIVO', type: Types::CausasDesligamento },
|
7
|
+
cpf: { key: 'ESX_CPF', type: Types::String },
|
8
|
+
matricula: { key: 'ESX_MATRICULA', type: Types::String.optional },
|
9
|
+
data_admissao: { key: 'InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataAdmissao',
|
10
|
+
type: Types::Date },
|
11
|
+
recibo: { key: 'ESX_INFOWEB_RESCISAO_RECIBO', type: Types::String },
|
12
|
+
ide_dm_dev: { key: 'ESX_INFOWEB_RESCISAO_IDEDMDEV', type: Types::String.optional },
|
13
|
+
descricao_proc_emi: { key: 'DescricaoProcEmi', type: Types::String.optional }
|
14
|
+
}.freeze
|
15
|
+
|
16
|
+
ATRIBUTOS_NAO_SUPORTADOS = {}.freeze
|
17
|
+
|
18
|
+
ATRIBUTOS_DESCARTADOS = {}.freeze
|
19
|
+
|
20
|
+
ATRIBUTOS_IGNORADOS = %w[
|
21
|
+
NomeEstabelecimentoLocalTrabalho
|
22
|
+
RequestVerificationToken
|
23
|
+
SomenteLeitura
|
24
|
+
VisualizarDadosCadastrais
|
25
|
+
UrlRetorno
|
26
|
+
visualizar
|
27
|
+
EventoAdmissao_InfoTrabalhador_Cpf
|
28
|
+
EventoAdmissao_InfoTrabalhador_Nome
|
29
|
+
EventoAdmissao_InfoTrabalhador_Nis
|
30
|
+
EventoAdmissao_InfoTrabalhador_Sexo
|
31
|
+
EventoAdmissao_InfoTrabalhador_Sexo_TEXT
|
32
|
+
EventoAdmissao_InfoTrabalhador_RacaCor
|
33
|
+
EventoAdmissao_InfoTrabalhador_RacaCor_TEXT
|
34
|
+
EventoAdmissao_InfoTrabalhador_EstadoCivil
|
35
|
+
EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT
|
36
|
+
EventoAdmissao_InfoTrabalhador_GrauInstrucao
|
37
|
+
EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT
|
38
|
+
EventoAdmissao_InfoTrabalhador_PrimeiroEmprego
|
39
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento
|
40
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento
|
41
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT
|
42
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade
|
43
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT
|
44
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_Uf
|
45
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT
|
46
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio
|
47
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT
|
48
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae
|
49
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_NomePai
|
50
|
+
ResideExterior
|
51
|
+
EventoAdmissao_EnderecoResidencialBR_Cep
|
52
|
+
EventoAdmissao_EnderecoResidencialBR_TipoLogradouro
|
53
|
+
EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT
|
54
|
+
EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro
|
55
|
+
EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro
|
56
|
+
SemNumeroLogradouroEnderecoBR
|
57
|
+
EventoAdmissao_EnderecoResidencialBR_Bairro
|
58
|
+
EventoAdmissao_EnderecoResidencialBR_Uf
|
59
|
+
EventoAdmissao_EnderecoResidencialBR_Uf_TEXT
|
60
|
+
EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio
|
61
|
+
EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT
|
62
|
+
EventoAdmissao_EnderecoResidencialBR_Complemento
|
63
|
+
SemNumeroLogradouroEnderecoEX
|
64
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps
|
65
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps
|
66
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps
|
67
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT
|
68
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg
|
69
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor
|
70
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao
|
71
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh
|
72
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao
|
73
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade
|
74
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh
|
75
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT
|
76
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh
|
77
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT
|
78
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao
|
79
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataValidade
|
80
|
+
InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada
|
81
|
+
IdEventoXml
|
82
|
+
NrReciboEventoOriginal
|
83
|
+
VerProc
|
84
|
+
EventoAdmissao_TipoEventoEnviado
|
85
|
+
EhVisualizacao
|
86
|
+
idContrato
|
87
|
+
IdEvento
|
88
|
+
TipoInscricaoEmpregador
|
89
|
+
cpfTrabalhador
|
90
|
+
nomeTrabalhador
|
91
|
+
TipoRegistroAdmissao
|
92
|
+
InfoVinculo_Matricula
|
93
|
+
InfoVinculo_TipoRegimeTrabalhista
|
94
|
+
InfoVinculo_TipoRegimeTrabalhista_TEXT
|
95
|
+
InfoVinculo_InfoContrato_CodigoCategoria_TEXT
|
96
|
+
InfoVinculo_TipoRegimePrevidenciario
|
97
|
+
InfoVinculo_TipoRegimePrevidenciario_TEXT
|
98
|
+
FiltroCargo
|
99
|
+
InfoVinculo_InfoContrato_CodigoCargo
|
100
|
+
InfoVinculo_InfoContrato_CodigoCategoria
|
101
|
+
CodigoCBO
|
102
|
+
InfoVinculo_InfoContrato_Remuneracao_UnidadeSalarioFixo
|
103
|
+
InfoVinculo_InfoContrato_Remuneracao_UnidadeSalarioFixo_TEXT
|
104
|
+
InfoVinculo_InfoContrato_Remuneracao_ValorSalarioFixo
|
105
|
+
InfoVinculo_InfoContrato_Duracao_TipoContrato
|
106
|
+
InfoVinculo_InfoContrato_Duracao_TipoContrato_TEXT
|
107
|
+
InfoVinculo_InfoContrato_Duracao_DataTermino
|
108
|
+
InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao
|
109
|
+
InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao_TEXT
|
110
|
+
InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao
|
111
|
+
InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_DescricaoComplementar
|
112
|
+
EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica
|
113
|
+
EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual
|
114
|
+
EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva
|
115
|
+
EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental
|
116
|
+
EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual
|
117
|
+
EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado
|
118
|
+
EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota
|
119
|
+
NomeEstabelecimentoLocalTrabalho=DANISTUR TRANSPORTE RODOVIARIO LTDA
|
120
|
+
CodigoCNAE
|
121
|
+
chkHorarioContratual
|
122
|
+
InfoVinculo_InfoContrato_HorarioContratual_QuantidadeHorasSemanal
|
123
|
+
InfoVinculo_InfoContrato_HorarioContratual_TipoJornada
|
124
|
+
InfoVinculo_InfoContrato_HorarioContratual_TipoJornada_TEXT
|
125
|
+
InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial
|
126
|
+
InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial_TEXT
|
127
|
+
InfoVinculo_InfoContrato_DataIngressoCarreira
|
128
|
+
chkHorarioDiario
|
129
|
+
HorarioTela_Dia
|
130
|
+
HorarioTela_Dia_TEXT
|
131
|
+
FiltroHorario
|
132
|
+
HorarioTela_CodigoHorarioContratual
|
133
|
+
Horarios_0_Dia
|
134
|
+
Horarios_0_CodigoHorarioContratual
|
135
|
+
ESX_DATAADMISSAO
|
136
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao
|
137
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao_TEXT
|
138
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao
|
139
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao_TEXT
|
140
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada
|
141
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada_TEXT
|
142
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade
|
143
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade_TEXT
|
144
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataBase
|
145
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataBase_TEXT
|
146
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_CnpjSindicatoCategoriaProfissional
|
147
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS
|
148
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS_TEXT
|
149
|
+
InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS
|
150
|
+
InfoVinculo_InfoContrato_FiliacaoSindical_0_CnpjSindicatoTrabalhador
|
151
|
+
InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior
|
152
|
+
InfoVinculo_SucessaoVinculo_DataTransferencia
|
153
|
+
InfoVinculo_DataInicioAfastamento
|
154
|
+
InfoVinculo_CodigoMotivoAfastamento
|
155
|
+
InfoVinculo_CodigoMotivoAfastamento_TEXT
|
156
|
+
EventoAdmissao_Contato_TelefoneAlternativo
|
157
|
+
EventoAdmissao_Contato_TelefonePrincipal
|
158
|
+
EventoAdmissao_InfoTrabalhador_NomeSocial
|
159
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc
|
160
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor
|
161
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao
|
162
|
+
ESX_SEMVINCULO
|
163
|
+
EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada
|
164
|
+
EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro
|
165
|
+
EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao
|
166
|
+
EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT
|
167
|
+
EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros
|
168
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne
|
169
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor
|
170
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao
|
171
|
+
InfoVinculo_SucessaoVinculo_MatriculaAnterior
|
172
|
+
InfoVinculo_InfoContrato_Remuneracao_DescricaoSalarioVariavel
|
173
|
+
EventoAdmissao_Contato_EmailPrincipal
|
174
|
+
EventoAdmissao_Contato_EmailAlternativo
|
175
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ric_NumeroRic
|
176
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ric_OrgaoEmissor
|
177
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ric_DataExpedicao
|
178
|
+
FiltroFuncao
|
179
|
+
InfoVinculo_InfoContrato_CodigoFuncao
|
180
|
+
InfoVinculo_SucessaoVinculo_Observacao
|
181
|
+
ESX_INFOWEB_RESCISAO_MOTIVO_TEXT
|
182
|
+
CheckModoCompleto
|
183
|
+
InfoVinculo_InfoContrato_NomeCargo
|
184
|
+
InfoVinculo_InfoContrato_CBOCargo
|
185
|
+
InfoVinculo_InfoContrato_CBOCargo_TEXT
|
186
|
+
InfoVinculo_InfoContrato_NomeFuncao
|
187
|
+
InfoVinculo_InfoContrato_CBOFuncao
|
188
|
+
InfoVinculo_InfoContrato_CBOFuncao_TEXT
|
189
|
+
InfoVinculo_InfoContrato_CargoAcumulavel
|
190
|
+
InfoVinculo_InfoContrato_HorarioContratual_DescricaoJornada
|
191
|
+
InfoVinculo_InfoContrato_HorarioContratual_HorarioNoturno
|
192
|
+
].freeze
|
193
|
+
|
194
|
+
include ArquivoData
|
195
|
+
|
196
|
+
private
|
197
|
+
|
198
|
+
def initialize(caminho_do_arquivo_data, grupo_da_empresa_no_e_social)
|
199
|
+
@caminho_do_arquivo_data = caminho_do_arquivo_data
|
200
|
+
@grupo_da_empresa_no_e_social = grupo_da_empresa_no_e_social
|
201
|
+
end
|
202
|
+
|
203
|
+
attr_reader :grupo_da_empresa_no_e_social
|
204
|
+
|
205
|
+
def ajustar_atributos
|
206
|
+
atributos[:ide_dm_dev] = SecureRandom.hex(15) unless desligamento_ocorreu_na_fase_3?
|
207
|
+
end
|
208
|
+
|
209
|
+
def regras_que_podem_gerar_erros
|
210
|
+
{
|
211
|
+
'Código do Demonstrativo da Rescisão não encontrado. Executar robô novamente.' =>
|
212
|
+
desligamento_ocorreu_na_fase_3? && atributos[:ide_dm_dev].nil?,
|
213
|
+
'Recibo da Rescisão não encontrado. Executar robô novamente.' =>
|
214
|
+
atributos[:recibo].nil?
|
215
|
+
}
|
216
|
+
end
|
217
|
+
|
218
|
+
def desligamento_ocorreu_na_fase_3?
|
219
|
+
atributos[:data_desligamento] && atributos[:data_desligamento] >= inicio_da_fase_3
|
220
|
+
end
|
221
|
+
|
222
|
+
def inicio_da_fase_3
|
223
|
+
{
|
224
|
+
2 => Date.new(2019, 1, 10),
|
225
|
+
3 => Date.new(2021, 5, 10)
|
226
|
+
}[grupo_da_empresa_no_e_social]
|
227
|
+
end
|
228
|
+
|
229
|
+
def regras_que_podem_gerar_alertas
|
230
|
+
{
|
231
|
+
}
|
232
|
+
end
|
233
|
+
|
234
|
+
def identificador
|
235
|
+
'empregado_desligamento'
|
236
|
+
end
|
237
|
+
end
|
@@ -0,0 +1,194 @@
|
|
1
|
+
class ArquivoEmpregadoHistoricoCadastral
|
2
|
+
ATRIBUTOS = {
|
3
|
+
id_evento_xml: { key: 'IdEventoXml', type: Types::String },
|
4
|
+
nr_recibo_evento_original: { key: 'NrReciboEventoOriginal', type: Types::String },
|
5
|
+
data_alteracao: { key: 'ESX_DATAALTERACAO', type: Types::Date },
|
6
|
+
grau_instrucao: { key: 'EventoAdmissao_InfoTrabalhador_GrauInstrucao', type: Types::String },
|
7
|
+
cpf: { key: 'EventoAdmissao_InfoTrabalhador_Cpf', type: Types::String },
|
8
|
+
deficiencia_auditiva: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva',
|
9
|
+
type: Types::SNBool.optional },
|
10
|
+
deficiencia_fisica: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica',
|
11
|
+
type: Types::SNBool.optional },
|
12
|
+
deficiencia_intelectual: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual',
|
13
|
+
type: Types::SNBool.optional },
|
14
|
+
deficiencia_mental: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental',
|
15
|
+
type: Types::SNBool.optional },
|
16
|
+
deficiencia_visual: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual',
|
17
|
+
type: Types::SNBool.optional },
|
18
|
+
deficiencia_reabilitado_ou_readaptado: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado',
|
19
|
+
type: Types::SNBool.optional },
|
20
|
+
endereco_br_cep: { key: 'EventoAdmissao_EnderecoResidencialBR_Cep', type: Types::String.optional },
|
21
|
+
endereco_br_descricao_logradouro: { key: 'EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro',
|
22
|
+
type: Types::String.optional },
|
23
|
+
endereco_br_numero_logradouro: { key: 'EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro',
|
24
|
+
type: Types::String.optional },
|
25
|
+
endereco_br_bairro: { key: 'EventoAdmissao_EnderecoResidencialBR_Bairro', type: Types::String.optional },
|
26
|
+
endereco_br_codigo_municipio: { key: 'EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio',
|
27
|
+
type: Types::String.optional },
|
28
|
+
descricao_proc_emi: { key: 'DescricaoProcEmi', type: Types::String.optional },
|
29
|
+
dependentes: { key: 'EventoAdmissao_Dependente', attributes: {
|
30
|
+
nome: { key: 'NomeDependente', type: Types::String },
|
31
|
+
data_de_nascimento: { key: 'DataNascimento', type: Types::Date },
|
32
|
+
incapacidade: { key: 'IncapacidadeDependente', type: Types::SNBool },
|
33
|
+
cpf: { key: 'CPFDependente', type: Types::String.optional },
|
34
|
+
tipo: { key: 'TipoDependente', type: Types::String },
|
35
|
+
dependente_de_IRRF: { key: 'DependenteIRRF', type: Types::SNBool }
|
36
|
+
} }
|
37
|
+
}.freeze
|
38
|
+
|
39
|
+
ATRIBUTOS_IGNORADOS = %w[
|
40
|
+
EventoAdmissao_InfoTrabalhador_Nis
|
41
|
+
EventoAdmissao_InfoTrabalhador_Nome
|
42
|
+
EventoAdmissao_InfoTrabalhador_Sexo
|
43
|
+
EventoAdmissao_InfoTrabalhador_RacaCor
|
44
|
+
EventoAdmissao_EnderecoResidencialBR_Uf
|
45
|
+
EventoAdmissao_EnderecoResidencialBR_TipoLogradouro
|
46
|
+
EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota
|
47
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento
|
48
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento
|
49
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade
|
50
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae
|
51
|
+
UrlRetorno
|
52
|
+
EventoAdmissao_TipoEventoEnviado
|
53
|
+
EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT
|
54
|
+
EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT
|
55
|
+
EventoAdmissao_EnderecoResidencialBR_Uf_TEXT
|
56
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT
|
57
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT
|
58
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT
|
59
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne
|
60
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor
|
61
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao
|
62
|
+
EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT
|
63
|
+
EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT
|
64
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT
|
65
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT
|
66
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT
|
67
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT
|
68
|
+
EventoAdmissao_InfoTrabalhador_RacaCor_TEXT
|
69
|
+
EventoAdmissao_InfoTrabalhador_Sexo_TEXT
|
70
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Uf_TEXT
|
71
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_CodigoMunicipio_TEXT
|
72
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_TipoLogradouro_TEXT
|
73
|
+
EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada
|
74
|
+
EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro
|
75
|
+
EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros
|
76
|
+
EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao
|
77
|
+
EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT
|
78
|
+
RequestVerificationToken
|
79
|
+
ResideExterior
|
80
|
+
SemNumeroLogradouroEnderecoBR
|
81
|
+
SemNumeroLogradouroEnderecoEX
|
82
|
+
SomenteLeitura
|
83
|
+
VerProc
|
84
|
+
VisualizarDadosCadastrais
|
85
|
+
visualizar
|
86
|
+
ESX_CPF
|
87
|
+
ESX_DATAADMISSAO
|
88
|
+
ESX_DATAALTERACAO
|
89
|
+
ESX_MATRICULA
|
90
|
+
ESX_SEMVINCULO
|
91
|
+
IdContratoReferenciado
|
92
|
+
EhAlteracaoCadastral
|
93
|
+
EventoAdmissao_InformacoesInicio_CodigoCategoria
|
94
|
+
CheckModoCompleto
|
95
|
+
EventoAdmissao_DataAlteracaoCadastral
|
96
|
+
checkbox_preencher_grupo0
|
97
|
+
checkbox_preencher_grupo1
|
98
|
+
checkbox_preencher_grupo2
|
99
|
+
checkbox_preencher_grupo3
|
100
|
+
checkbox_preencher_grupo4
|
101
|
+
checkbox_preencher_grupo5
|
102
|
+
checkbox_preencher_grupo6
|
103
|
+
checkbox_preencher_grupo8
|
104
|
+
ESX_CATEGORIA
|
105
|
+
DataAlteracao
|
106
|
+
DependenteSF
|
107
|
+
DataNascimentoFormatada
|
108
|
+
].freeze
|
109
|
+
|
110
|
+
ATRIBUTOS_NAO_SUPORTADOS = {}.freeze
|
111
|
+
|
112
|
+
ATRIBUTOS_DESCARTADOS = {
|
113
|
+
'Informação Complementar de Endereço': %w[
|
114
|
+
EventoAdmissao_EnderecoResidencialBR_Complemento
|
115
|
+
],
|
116
|
+
Nascimento: %w[
|
117
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio
|
118
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_Uf
|
119
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_NomePai
|
120
|
+
autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento
|
121
|
+
autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade
|
122
|
+
],
|
123
|
+
'Nome Social': %w[
|
124
|
+
EventoAdmissao_InfoTrabalhador_NomeSocial
|
125
|
+
],
|
126
|
+
'Estado Civil': %w[
|
127
|
+
EventoAdmissao_InfoTrabalhador_EstadoCivil
|
128
|
+
],
|
129
|
+
CNH: %w[
|
130
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh
|
131
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao
|
132
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao
|
133
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade
|
134
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh
|
135
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh
|
136
|
+
],
|
137
|
+
CTPS: %w[
|
138
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps
|
139
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps
|
140
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps
|
141
|
+
],
|
142
|
+
Identidade: %w[
|
143
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao
|
144
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg
|
145
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor
|
146
|
+
],
|
147
|
+
'Informação do contato do trabalhador': %w[
|
148
|
+
EventoAdmissao_Contato_TelefoneAlternativo
|
149
|
+
EventoAdmissao_Contato_TelefonePrincipal
|
150
|
+
EventoAdmissao_Contato_EmailPrincipal
|
151
|
+
EventoAdmissao_InfoTrabalhador_Contato_TelefonePrincipal
|
152
|
+
],
|
153
|
+
'Informação de endereço do trabalhador': %w[
|
154
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Cep
|
155
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_TipoLogradouro
|
156
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_DescricaoLogradouro
|
157
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_NumeroLogradouro
|
158
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Bairro
|
159
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Uf
|
160
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_CodigoMunicipio
|
161
|
+
]
|
162
|
+
}.freeze
|
163
|
+
|
164
|
+
include ArquivoData
|
165
|
+
|
166
|
+
private
|
167
|
+
|
168
|
+
def initialize(caminho_do_arquivo_data)
|
169
|
+
@caminho_do_arquivo_data = caminho_do_arquivo_data
|
170
|
+
end
|
171
|
+
|
172
|
+
def ajustar_atributos
|
173
|
+
atributos[:dependentes] = atributos[:dependentes].to_json
|
174
|
+
end
|
175
|
+
|
176
|
+
def regras_que_podem_gerar_erros
|
177
|
+
{
|
178
|
+
}
|
179
|
+
end
|
180
|
+
|
181
|
+
def regras_que_podem_gerar_alertas
|
182
|
+
{
|
183
|
+
'Suportamos apenas logradouros do tipo Via' => !eh_via?
|
184
|
+
}
|
185
|
+
end
|
186
|
+
|
187
|
+
def eh_via?
|
188
|
+
atributos[:endereco_br_tipo_logradouro].to_s == 'V'
|
189
|
+
end
|
190
|
+
|
191
|
+
def identificador
|
192
|
+
'empregado_historico_cadastral'
|
193
|
+
end
|
194
|
+
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
require_relative 'jornada'
|
2
|
+
|
3
|
+
class ArquivoEmpregadoHistoricoContratual
|
4
|
+
ATRIBUTOS = {
|
5
|
+
id_evento_xml: { key: 'IdEventoXml', type: Types::String },
|
6
|
+
nr_recibo_evento_original: { key: 'NrReciboEventoOriginal', type: Types::String },
|
7
|
+
matricula: { key: 'IdentificacaoVinculo_Matricula', type: Types::String },
|
8
|
+
data_admissao: { key: 'dataAdmissao', type: Types::Date },
|
9
|
+
data_alteracao: { key: 'AlteracaoContratual_DataAlteracao', type: Types::Date },
|
10
|
+
data_de_efeito: { key: 'AlteracaoContratual_DataEfeito', type: Types::Date.optional },
|
11
|
+
descricao_da_alteracao: { key: 'AlteracaoContratual_DescricaoAlteracao', type: Types::String.optional },
|
12
|
+
valor_salario_fixo: { key: 'InformacoesContrato_Remuneracao_ValorSalarioFixo', type: Types::Decimal },
|
13
|
+
local_trabalho_geral_numero_inscricao: {
|
14
|
+
key: 'InformacoesContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao', type: Types::String.optional
|
15
|
+
},
|
16
|
+
tipo_regime_jornada: { key: 'InformacoesCeletista_TipoRegimeJornada', type: Types::TipoRegimeJornada },
|
17
|
+
tipo_jornada: { key: 'InformacoesContrato_HorarioContratual_TipoJornada', type: Types::TipoJornada.optional },
|
18
|
+
descricao_tipo_jornada: { key: 'InformacoesContrato_HorarioContratual_DescricaoJornada',
|
19
|
+
type: Types::String.optional },
|
20
|
+
descricao_tipo_jornada_2_5: { key: 'InformacoesContrato_HorarioContratual_DescricaoTipoJornada',
|
21
|
+
type: Types::String.optional },
|
22
|
+
horario_noturno: { key: 'InformacoesContrato_HorarioContratual_HorarioNoturno', type: Types::SNBool.optional },
|
23
|
+
quantidade_horas_semanal: { key: 'InformacoesContrato_HorarioContratual_QuantidadeHorasSemanal',
|
24
|
+
type: Types::Decimal.optional },
|
25
|
+
cargo_codigo: { key: 'InformacoesContrato_CodigoCargo', type: Types::String.optional },
|
26
|
+
sindicato_cnpj: { key: 'InformacoesCeletista_CnpjSindicatoCategoriaProfissional', type: Types::String },
|
27
|
+
descricao_proc_emi: { key: 'DescricaoProcEmi', type: Types::String.optional },
|
28
|
+
horarios: { key: 'Horarios', attributes: {
|
29
|
+
dia: { key: 'Dia', type: Types::Integer },
|
30
|
+
codigo_horario_contratual: { key: 'CodigoHorarioContratual', type: Types::String }
|
31
|
+
} },
|
32
|
+
treinamentos_capacitacoes: { key: 'treiCap', attributes: {
|
33
|
+
codigo: { key: 'codTreiCap', type: Types::String }
|
34
|
+
} }
|
35
|
+
}.freeze
|
36
|
+
|
37
|
+
ATRIBUTOS_IGNORADOS = %w[
|
38
|
+
chkHorarioContratual
|
39
|
+
regTrab
|
40
|
+
idContrato
|
41
|
+
TipoInscricaoEmpregador
|
42
|
+
NomeEstabelecimentoLocalTrabalho
|
43
|
+
cpfTrabalhador
|
44
|
+
IndicadorRetificacao
|
45
|
+
CodigoCBO
|
46
|
+
CodigoCNAE
|
47
|
+
IdContratoAlterado
|
48
|
+
HorarioTela_Dia
|
49
|
+
IdEvento
|
50
|
+
ESX_CPF
|
51
|
+
ESX_DATAADMISSAO
|
52
|
+
ESX_DATAALTERACAO
|
53
|
+
ESX_MATRICULA
|
54
|
+
ESX_SEMVINCULO
|
55
|
+
FiltroCargo
|
56
|
+
FiltroEstabelecimentoLocalTrabalho
|
57
|
+
RequestVerificationToken
|
58
|
+
SomenteLeitura
|
59
|
+
VerProc
|
60
|
+
UrlRetorno
|
61
|
+
HorarioTela_Dia_TEXT
|
62
|
+
IdentificacaoVinculo_Cpf
|
63
|
+
IdentificacaoVinculo_Nis
|
64
|
+
nomeTrabalhador
|
65
|
+
InformacoesCeletista_NaturezaAtividade
|
66
|
+
InformacoesCeletista_DataBase_TEXT
|
67
|
+
InformacoesCeletista_NaturezaAtividade_TEXT
|
68
|
+
InformacoesCeletista_TipoRegimeJornada_TEXT
|
69
|
+
InformacoesContrato_DataTermino
|
70
|
+
InformacoesContrato_TipoContrato
|
71
|
+
InformacoesContrato_CodigoCategoria
|
72
|
+
InformacoesContrato_CodigoCategoria_TEXT
|
73
|
+
InformacoesContrato_HorarioContratual_JornadaTempoParcial_TEXT
|
74
|
+
InformacoesContrato_HorarioContratual_TipoJornada_TEXT
|
75
|
+
InformacoesContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao_TEXT
|
76
|
+
InformacoesContrato_Remuneracao_UnidadeSalarioFixo_TEXT
|
77
|
+
InformacoesContrato_TipoContrato_TEXT
|
78
|
+
InformacoesContrato_Remuneracao_UnidadeSalarioFixo
|
79
|
+
InformacoesContrato_HorarioContratual_JornadaTempoParcial
|
80
|
+
InformacoesContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao
|
81
|
+
VinculoAlteracao_TipoRegimePrevidenciario
|
82
|
+
VinculoAlteracao_TipoRegimePrevidenciario_TEXT
|
83
|
+
dataNomeacao
|
84
|
+
FiltroFuncao
|
85
|
+
InformacoesContrato_FiliacaoSindical_0_CnpjSindicatoTrabalhador
|
86
|
+
InformacoesContrato_NomeCargo
|
87
|
+
InformacoesContrato_CBOCargo
|
88
|
+
InformacoesContrato_CBOCargo_TEXT
|
89
|
+
HorarioNoturno
|
90
|
+
].freeze
|
91
|
+
|
92
|
+
ATRIBUTOS_NAO_SUPORTADOS = {}.freeze
|
93
|
+
|
94
|
+
ATRIBUTOS_DESCARTADOS = {
|
95
|
+
'Data Base': %w[
|
96
|
+
InformacoesCeletista_DataBase
|
97
|
+
],
|
98
|
+
'Descrição Complementar de Local de Trabalho': %w[
|
99
|
+
InformacoesContrato_LocalTrabalho_LocalTrabalhoGeral_DescricaoComplementar
|
100
|
+
],
|
101
|
+
Função: %w[
|
102
|
+
InformacoesContrato_CodigoFuncao
|
103
|
+
]
|
104
|
+
}.freeze
|
105
|
+
|
106
|
+
include ArquivoData
|
107
|
+
|
108
|
+
private
|
109
|
+
|
110
|
+
def initialize(caminho_do_arquivo_data)
|
111
|
+
@caminho_do_arquivo_data = caminho_do_arquivo_data
|
112
|
+
end
|
113
|
+
|
114
|
+
def ajustar_atributos
|
115
|
+
atributos[:leiaute_simplificado] =
|
116
|
+
verificar_se_eh_leiaute_simplificado?(atributos_especificos_do_leiaute_simplificado)
|
117
|
+
atributos[:descricao_tipo_jornada] =
|
118
|
+
atributos.delete(:descricao_tipo_jornada_2_5) || atributos[:descricao_tipo_jornada]
|
119
|
+
end
|
120
|
+
|
121
|
+
def atributos_especificos_do_leiaute_simplificado
|
122
|
+
%w[
|
123
|
+
InformacoesContrato_HorarioContratual_HorarioNoturno
|
124
|
+
InformacoesContrato_HorarioContratual_DescricaoJornada
|
125
|
+
]
|
126
|
+
end
|
127
|
+
|
128
|
+
def regras_que_podem_gerar_erros
|
129
|
+
{
|
130
|
+
'Não suportamos a data de alteração contratual igual ou menor que a data de admissão' =>
|
131
|
+
data_de_alteracao_contratual_menor_ou_igual_a_data_de_admissao?
|
132
|
+
}
|
133
|
+
end
|
134
|
+
|
135
|
+
def regras_que_podem_gerar_alertas
|
136
|
+
{
|
137
|
+
'Tipo de jornada inconsistente em relação aos horários informados.' => !jornada_consistente?,
|
138
|
+
'Não garantimos a correta importação deste tipo de jornada.' => !jornada_reconstruivel?
|
139
|
+
}
|
140
|
+
end
|
141
|
+
|
142
|
+
def data_de_alteracao_contratual_menor_ou_igual_a_data_de_admissao?
|
143
|
+
atributos[:data_alteracao] <= atributos[:data_admissao]
|
144
|
+
end
|
145
|
+
|
146
|
+
def jornada_consistente?
|
147
|
+
Jornada.consistente?(atributos[:tipo_jornada], atributos[:horarios])
|
148
|
+
end
|
149
|
+
|
150
|
+
def jornada_reconstruivel?
|
151
|
+
Jornada.reconstrucao_fiel?(atributos[:tipo_jornada])
|
152
|
+
end
|
153
|
+
|
154
|
+
def identificador
|
155
|
+
'empregado_historico_contratual'
|
156
|
+
end
|
157
|
+
end
|