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,401 @@
|
|
1
|
+
require_relative 'jornada'
|
2
|
+
|
3
|
+
class ArquivoEmpregado
|
4
|
+
ATRIBUTOS = {
|
5
|
+
cpf: { key: 'EventoAdmissao_InfoTrabalhador_Cpf', type: Types::String },
|
6
|
+
nis: { key: 'EventoAdmissao_InfoTrabalhador_Nis', type: Types::String.optional },
|
7
|
+
nome: { key: 'EventoAdmissao_InfoTrabalhador_Nome', type: Types::String },
|
8
|
+
sexo: { key: 'EventoAdmissao_InfoTrabalhador_Sexo', type: Types::String },
|
9
|
+
matricula: { key: 'EventoAdmissao_InfoVinculo_Matricula', type: Types::String },
|
10
|
+
raca_cor: { key: 'EventoAdmissao_InfoTrabalhador_RacaCor', type: Types::Integer },
|
11
|
+
grau_instrucao: { key: 'EventoAdmissao_InfoTrabalhador_GrauInstrucao', type: Types::String },
|
12
|
+
primeiro_emprego: { key: 'EventoAdmissao_InfoTrabalhador_PrimeiroEmprego', type: Types::SNBool.optional },
|
13
|
+
data_de_nascimento: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', type: Types::Date },
|
14
|
+
nascimento_pais_codigo: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', type: Types::String },
|
15
|
+
nacionalidade_pais_codigo: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade',
|
16
|
+
type: Types::String },
|
17
|
+
nacionalidade_municipio_codigo: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio',
|
18
|
+
type: Types::String.optional },
|
19
|
+
nome_mae: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', type: Types::String.optional },
|
20
|
+
endereco_br_cep: { key: 'EventoAdmissao_EnderecoResidencialBR_Cep', type: Types::String.optional },
|
21
|
+
endereco_br_tipo_logradouro: { key: 'EventoAdmissao_EnderecoResidencialBR_TipoLogradouro',
|
22
|
+
type: Types::String.optional },
|
23
|
+
endereco_br_descricao_logradouro: { key: 'EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro',
|
24
|
+
type: Types::String.optional },
|
25
|
+
endereco_br_numero_logradouro: { key: 'EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro',
|
26
|
+
type: Types::String.optional },
|
27
|
+
endereco_br_bairro: { key: 'EventoAdmissao_EnderecoResidencialBR_Bairro', type: Types::String.optional },
|
28
|
+
endereco_br_complemento: { key: 'EventoAdmissao_EnderecoResidencialBR_Complemento', type: Types::String.optional },
|
29
|
+
endereco_br_codigo_municipio: { key: 'EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio',
|
30
|
+
type: Types::String.optional },
|
31
|
+
reside_exterior: { key: 'ResideExterior', type: Types::False },
|
32
|
+
deficiencia_fisica: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica',
|
33
|
+
type: Types::SNBool.optional },
|
34
|
+
deficiencia_visual: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual',
|
35
|
+
type: Types::SNBool.optional },
|
36
|
+
deficiencia_auditiva: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva',
|
37
|
+
type: Types::SNBool.optional },
|
38
|
+
deficiencia_mental: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental',
|
39
|
+
type: Types::SNBool.optional },
|
40
|
+
deficiencia_intelectual: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual',
|
41
|
+
type: Types::SNBool.optional },
|
42
|
+
deficiencia_reabilitado_ou_readaptado: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado',
|
43
|
+
type: Types::SNBool.optional },
|
44
|
+
deficiencia_info_cota: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota', type: Types::SNBool.optional },
|
45
|
+
data_admissao_celetista: {
|
46
|
+
key: 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataAdmissao',
|
47
|
+
type: Types::Date
|
48
|
+
},
|
49
|
+
tipo_regime_trabalhista: { key: 'EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista',
|
50
|
+
type: Types::TipoRegimeTrabalhista },
|
51
|
+
tipo_regime_previdenciario: { key: 'EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario',
|
52
|
+
type: Types::TipoRegimePrevidenciario },
|
53
|
+
tipo_regime_jornada: {
|
54
|
+
key: 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada',
|
55
|
+
type: Types::TipoRegimeJornada
|
56
|
+
},
|
57
|
+
optante_fgts: {
|
58
|
+
key: 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS', # rubocop:disable Layout/LineLength
|
59
|
+
type: Types::OpcaoFgts.optional
|
60
|
+
},
|
61
|
+
data_opcao_fgts: {
|
62
|
+
key: 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS', # rubocop:disable Layout/LineLength
|
63
|
+
type: Types::Date.optional
|
64
|
+
},
|
65
|
+
cargo_codigo: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo', type: Types::String.optional },
|
66
|
+
unidade_salario_fixo: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_UnidadeSalarioFixo',
|
67
|
+
type: Types::UnidadeSalarial },
|
68
|
+
valor_salario_fixo: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_ValorSalarioFixo',
|
69
|
+
type: Types::Decimal },
|
70
|
+
tipo_contrato: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_Duracao_TipoContrato', type: Types::TipoContrato },
|
71
|
+
data_termino: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_Duracao_DataTermino', type: Types::Date.optional },
|
72
|
+
clausula_assecuratoria: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_Duracao_ClausulaAssecuratoria',
|
73
|
+
type: Types::SNBool.optional },
|
74
|
+
local_trabalho_geral_tipo_inscricao: {
|
75
|
+
key: 'EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao',
|
76
|
+
type: Types::TipoInscricaoLocalTrabalho.optional
|
77
|
+
},
|
78
|
+
local_trabalho_geral_numero_inscricao: {
|
79
|
+
key: 'EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao',
|
80
|
+
type: Types::String.optional
|
81
|
+
},
|
82
|
+
quantidade_horas_semanal: {
|
83
|
+
key: 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_QuantidadeHorasSemanal',
|
84
|
+
type: Types::Decimal.optional
|
85
|
+
},
|
86
|
+
tipo_jornada: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada',
|
87
|
+
type: Types::TipoJornada.optional },
|
88
|
+
descricao_tipo_jornada: {
|
89
|
+
key: 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoJornada', type: Types::String.optional
|
90
|
+
},
|
91
|
+
descricao_tipo_jornada_2_5: {
|
92
|
+
key: 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada',
|
93
|
+
type: Types::String.optional
|
94
|
+
},
|
95
|
+
horario_noturno: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_HorarioNoturno',
|
96
|
+
type: Types::SNBool.optional },
|
97
|
+
codigo_categoria: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_CodigoCategoria',
|
98
|
+
type: Types::CategoriaTrabalhador },
|
99
|
+
nr_recibo_evento_original: { key: 'NrReciboEventoOriginal', type: Types::String.optional },
|
100
|
+
ctps_numero: { key: 'EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', type: Types::String.optional },
|
101
|
+
ctps_serie: { key: 'EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', type: Types::String.optional },
|
102
|
+
ctps_uf: { key: 'EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', type: Types::String.optional },
|
103
|
+
sindicato_cnpj: {
|
104
|
+
key: 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_CnpjSindicatoCategoriaProfissional', # rubocop:disable Layout/LineLength
|
105
|
+
type: Types::String
|
106
|
+
},
|
107
|
+
data_de_transferencia: { key: 'EventoAdmissao_InfoVinculo_SucessaoVinculo_DataTransferencia',
|
108
|
+
type: Types::Date.optional },
|
109
|
+
cnpj_do_empregador_anterior: { key: 'EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior',
|
110
|
+
type: Types::String.optional },
|
111
|
+
matricula_no_empregador_anterior: { key: 'EventoAdmissao_InfoVinculo_SucessaoVinculo_MatriculaAnterior',
|
112
|
+
type: Types::String.optional },
|
113
|
+
estrangeiro_data_de_chegada_ao_brasil: { key: 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada',
|
114
|
+
type: Types::Date.optional },
|
115
|
+
estrangeiro_classificacao_do_ingresso_no_brasil: {
|
116
|
+
key: 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao', type: Types::Integer.optional
|
117
|
+
},
|
118
|
+
estrangeiro_casado_com_brasileiro: {
|
119
|
+
key: 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', type: Types::SNBool.optional
|
120
|
+
},
|
121
|
+
estrangeiro_tem_filhos_brasileiros: {
|
122
|
+
key: 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', type: Types::SNBool.optional
|
123
|
+
},
|
124
|
+
descricao_proc_emi: { key: 'DescricaoProcEmi', type: Types::String.optional },
|
125
|
+
data_inicio_afastamento: { key: 'EventoAdmissao_InfoVinculo_DataInicioAfastamento', type: Types::Date.optional },
|
126
|
+
motivo_afastamento: { key: 'EventoAdmissao_InfoVinculo_CodigoMotivoAfastamento', type: Types::String.optional },
|
127
|
+
dependentes: { key: 'EventoAdmissao_Dependente', attributes: {
|
128
|
+
nome: { key: 'NomeDependente', type: Types::String },
|
129
|
+
data_de_nascimento: { key: 'DataNascimento', type: Types::Date },
|
130
|
+
incapacidade: { key: 'IncapacidadeDependente', type: Types::SNBool },
|
131
|
+
cpf: { key: 'CPFDependente', type: Types::String.optional },
|
132
|
+
tipo: { key: 'TipoDependente', type: Types::String },
|
133
|
+
dependente_de_IRRF: { key: 'DependenteIRRF', type: Types::SNBool },
|
134
|
+
dependente_de_SF: { key: 'DependenteSF', type: Types::String },
|
135
|
+
data_nascimento_formatada: { key: 'DataNascimentoFormatada', type: Types::String }
|
136
|
+
} },
|
137
|
+
horarios: { key: 'Horarios', attributes: {
|
138
|
+
dia: { key: 'Dia', type: Types::Integer },
|
139
|
+
codigo_horario_contratual: { key: 'CodigoHorarioContratual', type: Types::String }
|
140
|
+
} },
|
141
|
+
treinamentos_capacitacoes: { key: 'treiCap', attributes: {
|
142
|
+
codigo: { key: 'codTreiCap', type: Types::String }
|
143
|
+
} }
|
144
|
+
}.freeze
|
145
|
+
|
146
|
+
ATRIBUTOS_NAO_SUPORTADOS = {
|
147
|
+
'Não suportamos a inclusão no eSocial de empregados já demitidos': %w[
|
148
|
+
EventoAdmissao_InfoVinculo_DataDesligamento
|
149
|
+
]
|
150
|
+
}.freeze
|
151
|
+
|
152
|
+
ATRIBUTOS_DESCARTADOS = {
|
153
|
+
'Data Base': %w[
|
154
|
+
EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataBase
|
155
|
+
],
|
156
|
+
Nascimento: %w[
|
157
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_Uf
|
158
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_NomePai
|
159
|
+
],
|
160
|
+
'Nome Social': %w[
|
161
|
+
EventoAdmissao_InfoTrabalhador_NomeSocial
|
162
|
+
],
|
163
|
+
'Estado Civil': %w[
|
164
|
+
EventoAdmissao_InfoTrabalhador_EstadoCivil
|
165
|
+
],
|
166
|
+
CNH: %w[
|
167
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh
|
168
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao
|
169
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao
|
170
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade
|
171
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh
|
172
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh
|
173
|
+
],
|
174
|
+
'Orgão de Classe': %w[
|
175
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc
|
176
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor
|
177
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao
|
178
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataValidade
|
179
|
+
],
|
180
|
+
Identidade: %w[
|
181
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg
|
182
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor
|
183
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao
|
184
|
+
],
|
185
|
+
'Registro Nacional de Estrangeiro': %w[
|
186
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao
|
187
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne
|
188
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor
|
189
|
+
],
|
190
|
+
'Descrição Complementar de Local de Trabalho': %w[
|
191
|
+
EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_DescricaoComplementar
|
192
|
+
],
|
193
|
+
'Informação Complementar de Endereço': %w[
|
194
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Complemento
|
195
|
+
],
|
196
|
+
'Informação do contato do trabalhador': %w[
|
197
|
+
EventoAdmissao_InfoTrabalhador_Contato_TelefonePrincipal
|
198
|
+
EventoAdmissao_Contato_TelefonePrincipal
|
199
|
+
EventoAdmissao_Contato_TelefoneAlternativo
|
200
|
+
],
|
201
|
+
'Informação das observações de trabalhador': %w[
|
202
|
+
EventoAdmissao_InfoVinculo_InfoContrato_Observacao_0_ConteudoObservacao
|
203
|
+
]
|
204
|
+
}.freeze
|
205
|
+
|
206
|
+
ATRIBUTOS_IGNORADOS = %w[
|
207
|
+
IdEventoXml
|
208
|
+
EventoAdmissao_EnderecoResidencialBR_Uf
|
209
|
+
EventoAdmissao_InfoVinculo_IndicativoCadastramentoInicial
|
210
|
+
EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao
|
211
|
+
EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade
|
212
|
+
EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial
|
213
|
+
EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao
|
214
|
+
TrabalhadorAfastadoINSS
|
215
|
+
EventoAdmissao_TipoEventoEnviado
|
216
|
+
EventoAdmissao_IndRetificacao
|
217
|
+
EventoAdmissao_NrRecibo
|
218
|
+
SomenteLeitura
|
219
|
+
IdEvento
|
220
|
+
DataAdmissaoReferencia
|
221
|
+
EventoAdmissao_InfoTrabalhador_Sexo_TEXT
|
222
|
+
EventoAdmissao_InfoTrabalhador_RacaCor_TEXT
|
223
|
+
EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT
|
224
|
+
EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT
|
225
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT
|
226
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT
|
227
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT
|
228
|
+
EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT
|
229
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT
|
230
|
+
EventoAdmissao_EnderecoResidencialBR_Uf_TEXT
|
231
|
+
EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT
|
232
|
+
EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT
|
233
|
+
SemNumeroLogradouroEnderecoBR
|
234
|
+
SemNumeroLogradouroEnderecoEX
|
235
|
+
VerProc
|
236
|
+
TipoInscricaoEmpregador
|
237
|
+
EventoAdmissao_InfoVinculo_InfoContrato_FiliacaoSindical_0_CnpjSindicatoTrabalhador
|
238
|
+
EventoAdmissao_InfoVinculo_IndicativoCadastramentoInicial_TEXT
|
239
|
+
EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista_TEXT
|
240
|
+
EventoAdmissao_InfoVinculo_InfoContrato_CodigoCategoria_TEXT
|
241
|
+
EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario_TEXT
|
242
|
+
EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao_TEXT
|
243
|
+
EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao_TEXT
|
244
|
+
EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada_TEXT
|
245
|
+
EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade_TEXT
|
246
|
+
EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataBase_TEXT
|
247
|
+
EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS_TEXT
|
248
|
+
FiltroCargo
|
249
|
+
CodigoCBO
|
250
|
+
EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_UnidadeSalarioFixo_TEXT
|
251
|
+
EventoAdmissao_InfoVinculo_InfoContrato_Duracao_TipoContrato_TEXT
|
252
|
+
EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao_TEXT
|
253
|
+
NomeEstabelecimento
|
254
|
+
EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada_TEXT
|
255
|
+
EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial_TEXT
|
256
|
+
HorarioTela_Dia_TEXT
|
257
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Uf_TEXT
|
258
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_TipoLogradouro_TEXT
|
259
|
+
EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_CodigoMunicipio_TEXT
|
260
|
+
checkbox_preencher_grupo0
|
261
|
+
checkbox_preencher_grupo1
|
262
|
+
checkbox_preencher_grupo2
|
263
|
+
checkbox_preencher_grupo3
|
264
|
+
checkbox_preencher_grupo4
|
265
|
+
checkbox_preencher_grupo5
|
266
|
+
checkbox_preencher_grupo6
|
267
|
+
checkbox_preencher_grupo8
|
268
|
+
EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial
|
269
|
+
EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial_TEXT
|
270
|
+
EventoAdmissao_InformacoesInicio_CodigoCategoria_TEXT
|
271
|
+
EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_UnidadeSalarioFixo_TEXT
|
272
|
+
checkbox_preencher_grupo10
|
273
|
+
checkbox_preencher_grupo11
|
274
|
+
checkbox_preencher_grupo12
|
275
|
+
checkbox_preencher_grupo13
|
276
|
+
checkbox_preencher_grupo14
|
277
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT
|
278
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT
|
279
|
+
EventoAdmissao_InfoVinculo_CodigoMotivoAfastamento_TEXT
|
280
|
+
EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS_TEXT
|
281
|
+
autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento
|
282
|
+
autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade
|
283
|
+
CodigoCNAE
|
284
|
+
chkHorarioContratual
|
285
|
+
HorarioTela_Dia
|
286
|
+
ESX_CPF
|
287
|
+
ESX_MATRICULA
|
288
|
+
ESX_DATAADMISSAO
|
289
|
+
ESX_SEMVINCULO
|
290
|
+
IdContratoReferenciado
|
291
|
+
checkbox_preencher_grupo9
|
292
|
+
ESX_CATEGORIA
|
293
|
+
IdContrato
|
294
|
+
TelefoneCelular
|
295
|
+
autocomplete_EventoAdmissao_InformacoesInicio_CodigoCategoria
|
296
|
+
EventoAdmissao_InformacoesInicio_DataInicio
|
297
|
+
EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_DescricaoSalarioVariavel
|
298
|
+
CheckModoCompleto
|
299
|
+
EventoAdmissao_Contato_EmailPrincipal
|
300
|
+
EventoAdmissao_Contato_EmailAlternativo
|
301
|
+
EventoAdmissao_InfoVinculo_NumeroReciboAdmissaoPreliminar
|
302
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ric_NumeroRic
|
303
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ric_OrgaoEmissor
|
304
|
+
EventoAdmissao_InfoTrabalhador_Documentos_Ric_DataExpedicao
|
305
|
+
EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT
|
306
|
+
FiltroFuncao
|
307
|
+
EventoAdmissao_InfoVinculo_InfoContrato_CodigoFuncao
|
308
|
+
EventoAdmissao_InfoVinculo_SucessaoVinculo_TipoInscricaoAnterior
|
309
|
+
EventoAdmissao_InfoVinculo_SucessaoVinculo_TipoInscricaoAnterior_TEXT
|
310
|
+
EventoAdmissao_InfoVinculo_SucessaoVinculo_Observacao
|
311
|
+
EventoAdmissao_InfoVinculo_InfoContrato_NomeCargo
|
312
|
+
EventoAdmissao_InfoVinculo_InfoContrato_CBOCargo
|
313
|
+
EventoAdmissao_InfoVinculo_InfoContrato_CBOCargo_TEXT
|
314
|
+
EventoAdmissao_InfoVinculo_InfoContrato_NomeFuncao
|
315
|
+
EventoAdmissao_InfoVinculo_InfoContrato_CBOFuncao
|
316
|
+
EventoAdmissao_InfoVinculo_InfoContrato_CBOFuncao_TEXT
|
317
|
+
EventoAdmissao_InfoVinculo_InfoContrato_CargoAcumulavel
|
318
|
+
HorarioNoturno
|
319
|
+
].freeze
|
320
|
+
|
321
|
+
include ArquivoData
|
322
|
+
|
323
|
+
private
|
324
|
+
|
325
|
+
def initialize(caminho_do_arquivo_data)
|
326
|
+
@caminho_do_arquivo_data = caminho_do_arquivo_data
|
327
|
+
end
|
328
|
+
|
329
|
+
def ajustar_atributos
|
330
|
+
atributos[:leiaute_simplificado] =
|
331
|
+
verificar_se_eh_leiaute_simplificado?(atributos_especificos_do_leiaute_simplificado)
|
332
|
+
atributos[:ctps_numero] = atributos[:ctps_numero].to_i.to_s.rjust(7, '0')
|
333
|
+
atributos[:dependentes] = atributos[:dependentes].to_json
|
334
|
+
atributos[:descricao_tipo_jornada] =
|
335
|
+
atributos.delete(:descricao_tipo_jornada_2_5) || atributos[:descricao_tipo_jornada]
|
336
|
+
|
337
|
+
setar_optante_fgts if atributos[:optante_fgts].nil?
|
338
|
+
end
|
339
|
+
|
340
|
+
def setar_optante_fgts
|
341
|
+
if atributos[:data_admissao_celetista] > Date.new(1988, 10, 4)
|
342
|
+
atributos[:optante_fgts] = 1
|
343
|
+
atributos[:data_opcao_fgts] = atributos[:data_admissao_celetista]
|
344
|
+
else
|
345
|
+
atributos[:optante_fgts] = 2
|
346
|
+
end
|
347
|
+
end
|
348
|
+
|
349
|
+
def atributos_especificos_do_leiaute_simplificado
|
350
|
+
%w[
|
351
|
+
EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_HorarioNoturno
|
352
|
+
EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoJornada
|
353
|
+
]
|
354
|
+
end
|
355
|
+
|
356
|
+
def regras_que_podem_gerar_erros
|
357
|
+
{
|
358
|
+
"O trabalhador com CPF #{atributos[:cpf]} possui Número de CTPS com mais de 7 dígitos: " \
|
359
|
+
"#{atributos[:ctps_numero]}" =>
|
360
|
+
atributos[:ctps_numero] && atributos[:ctps_numero].size > 7,
|
361
|
+
'Endereço sem município' =>
|
362
|
+
atributos[:endereco_br_codigo_municipio].nil?,
|
363
|
+
'Data de chegada ao Brasil é obrigatória' =>
|
364
|
+
estrangeiro_sem_data_de_chegada?,
|
365
|
+
'Não é suportado contrato de prazo determinado para a categoria' =>
|
366
|
+
atributos[:tipo_contrato] != '1' && !%w[101 103 105].include?(atributos[:codigo_categoria])
|
367
|
+
}
|
368
|
+
end
|
369
|
+
|
370
|
+
def estrangeiro_sem_data_de_chegada?
|
371
|
+
[
|
372
|
+
atributos[:estrangeiro_classificacao_do_ingresso_no_brasil],
|
373
|
+
atributos[:estrangeiro_classificacao_do_ingresso_no_brasil] != 6,
|
374
|
+
atributos[:estrangeiro_data_de_chegada_ao_brasil].nil?
|
375
|
+
].all?
|
376
|
+
end
|
377
|
+
|
378
|
+
def regras_que_podem_gerar_alertas
|
379
|
+
{
|
380
|
+
'Suportamos apenas logradouros do tipo Via' => !logradouro_eh_via?,
|
381
|
+
'Tipo de jornada inconsistente em relação aos horários informados.' => !jornada_consistente?,
|
382
|
+
'Não garantimos a correta importação deste tipo de jornada.' => !jornada_reconstruivel?
|
383
|
+
}
|
384
|
+
end
|
385
|
+
|
386
|
+
def jornada_consistente?
|
387
|
+
Jornada.consistente?(atributos[:tipo_jornada], atributos[:horarios])
|
388
|
+
end
|
389
|
+
|
390
|
+
def jornada_reconstruivel?
|
391
|
+
Jornada.reconstrucao_fiel?(atributos[:tipo_jornada])
|
392
|
+
end
|
393
|
+
|
394
|
+
def logradouro_eh_via?
|
395
|
+
atributos[:endereco_br_tipo_logradouro].to_s == 'V'
|
396
|
+
end
|
397
|
+
|
398
|
+
def identificador
|
399
|
+
'empregado'
|
400
|
+
end
|
401
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
class ArquivoEmpregadoAfastamentoInicio
|
2
|
+
ATRIBUTOS = {
|
3
|
+
id_evento_xml: { key: 'IdEventoXml', type: Types::String.optional },
|
4
|
+
nr_recibo_evento_original: { key: 'NrReciboEventoOriginal', type: Types::String.optional },
|
5
|
+
cpf: { key: 'ESX_CPF', type: Types::String },
|
6
|
+
matricula: { key: 'ESX_MATRICULA', type: Types::String },
|
7
|
+
codigo_motivo: { key: 'IniAfastamento_CodMotivoAfastamento', type: Types::MotivosAfastamento.optional },
|
8
|
+
data_inicio_afastamento: { key: 'ESX_INICIO', type: Types::AnoMesDia },
|
9
|
+
observacao_inicio_de_afastamento: { key: 'IniAfastamento_Observacao', type: Types::String.optional },
|
10
|
+
mesmo_motivo: { key: 'IniAfastamento_InfoMesmoMotivo', type: Types::SNBool.optional },
|
11
|
+
descricao_proc_emi: { key: 'DescricaoProcEmi', type: Types::String.optional }
|
12
|
+
}.freeze
|
13
|
+
|
14
|
+
ATRIBUTOS_NAO_SUPORTADOS = {}.freeze
|
15
|
+
|
16
|
+
ATRIBUTOS_DESCARTADOS = {
|
17
|
+
'Tipo de acidente de trânsito': %w[
|
18
|
+
IniAfastamento_TipoAcidenteTransito
|
19
|
+
],
|
20
|
+
Atestado: (0..8).flat_map do |indice|
|
21
|
+
[
|
22
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_CodigoCID",
|
23
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_QuantidadeDiasAfastados",
|
24
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_Emitente_NomeEmitente",
|
25
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_Emitente_IdOrgaoClasse",
|
26
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_Emitente_NumeroOrgaoClasse",
|
27
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_Emitente_UFOrgaoClasse",
|
28
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_Emitente_DescricaoOrgaoClasse"
|
29
|
+
]
|
30
|
+
end
|
31
|
+
}.freeze
|
32
|
+
|
33
|
+
ATRIBUTOS_IGNORADOS = %w[
|
34
|
+
RequestVerificationToken
|
35
|
+
ExibirBotoes
|
36
|
+
IniAfastamento_DataInicioAfastamento
|
37
|
+
IniAfastamento_InfoMesmoMotivo
|
38
|
+
IniAfastamento_CodMotivoAfastamento
|
39
|
+
IniAfastamento_CodMotivoAfastamento_TEXT
|
40
|
+
CheckPreencherAcidenteTransito
|
41
|
+
IniAfastamento_Observacao
|
42
|
+
DesejaIncluirInfoAtestado
|
43
|
+
checkbox_preencher_grupo0
|
44
|
+
VerProc
|
45
|
+
IdContrato
|
46
|
+
IndicadorRetificacao
|
47
|
+
PreencherCID
|
48
|
+
PreencherAcidenteTransito
|
49
|
+
PreencherEmpregadoCedido
|
50
|
+
PreencherMandatoSindical
|
51
|
+
SomenteLeitura
|
52
|
+
UrlRetorno
|
53
|
+
DataTerminoAfastamentoInformada
|
54
|
+
ContratoSemVinculo
|
55
|
+
CodMotivoAfastamentoRetif
|
56
|
+
ESX_DATAADMISSAO
|
57
|
+
ESX_SEMVINCULO
|
58
|
+
TipoEventoCadastro
|
59
|
+
IdEventoAfastamento
|
60
|
+
DataInicio
|
61
|
+
CodigoMotivo
|
62
|
+
Motivo
|
63
|
+
IniAfastamento_TipoAcidenteTransito_TEXT
|
64
|
+
IniAfastamento_PeriodoAquisitivo_DataInicio
|
65
|
+
InfoRetificacao_IdOrigRetif
|
66
|
+
InfoRetificacao_IdOrigRetif_TEXT
|
67
|
+
DataLimitePeriodoAquis
|
68
|
+
RegraFeriasCategoria
|
69
|
+
PreencherMandatoEletivo
|
70
|
+
ExibirInformacaoAtestadoMedico
|
71
|
+
IdEvento
|
72
|
+
].freeze
|
73
|
+
|
74
|
+
include ArquivoData
|
75
|
+
|
76
|
+
private
|
77
|
+
|
78
|
+
def initialize(caminho_do_arquivo_data)
|
79
|
+
@caminho_do_arquivo_data = caminho_do_arquivo_data
|
80
|
+
end
|
81
|
+
|
82
|
+
def ajustar_atributos; end
|
83
|
+
|
84
|
+
def regras_que_podem_gerar_erros
|
85
|
+
{
|
86
|
+
}
|
87
|
+
end
|
88
|
+
|
89
|
+
def regras_que_podem_gerar_alertas
|
90
|
+
{
|
91
|
+
'Campo id_evento_xml não informado. Para continuar, certifique que este afastamento (matrícula: ' \
|
92
|
+
"#{atributos[:matricula]} - Início: " \
|
93
|
+
"#{atributos[:data_inicio_afastamento]}) foi ajustado com os dados vindos da admissão" =>
|
94
|
+
atributos[:id_evento_xml].nil?,
|
95
|
+
'Campo nr_recibo_evento_original não informado. Para continuar, certifique que este afastamento (matrícula: ' \
|
96
|
+
"#{atributos[:matricula]} - Início: " \
|
97
|
+
"#{atributos[:data_inicio_afastamento]}) foi ajustado com os dados vindos da admissão" =>
|
98
|
+
atributos[:nr_recibo_evento_original].nil?,
|
99
|
+
'Campo codigo_motivo não informado. Para continuar, certifique que este afastamento (matrícula: ' \
|
100
|
+
"#{atributos[:matricula]} - Início: " \
|
101
|
+
"#{atributos[:data_inicio_afastamento]}) foi ajustado com os dados vindos da admissão" =>
|
102
|
+
atributos[:codigo_motivo].nil?
|
103
|
+
}
|
104
|
+
end
|
105
|
+
|
106
|
+
def identificador
|
107
|
+
'empregado_afastamento_inicio'
|
108
|
+
end
|
109
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
class ArquivoEmpregadoAfastamentoTermino
|
2
|
+
ATRIBUTOS = {
|
3
|
+
nr_recibo_evento_original: { key: 'NrReciboEventoOriginal', type: Types::String },
|
4
|
+
cpf: { key: 'ESX_CPF', type: Types::String },
|
5
|
+
matricula: { key: 'ESX_MATRICULA', type: Types::String },
|
6
|
+
cod_motivo_afastamento_antigo: { key: 'IniAfastamento_CodMotivoAfastamento',
|
7
|
+
type: Types::MotivosAfastamento.optional },
|
8
|
+
codigo_motivo: { key: 'CodigoMotivo', type: Types::MotivosAfastamento.optional },
|
9
|
+
codigo_motivo_retificacao: { key: 'CodMotivoAfastamentoRetif', type: Types::String.optional },
|
10
|
+
data_inicio_afastamento: { key: 'ESX_INICIO', type: Types::AnoMesDia },
|
11
|
+
observacao_inicio_de_afastamento: { key: 'IniAfastamento_Observacao', type: Types::String.optional },
|
12
|
+
mesmo_motivo: { key: 'IniAfastamento_InfoMesmoMotivo', type: Types::SNBool.optional },
|
13
|
+
data_termino_afastamento: { key: 'ESX_TERMINO', type: Types::AnoMesDia },
|
14
|
+
inicio_termino_enviados_juntos: { key: 'DataTerminoAfastamentoInformada', type: Types::TrueFalseBool.optional },
|
15
|
+
descricao_proc_emi: { key: 'DescricaoProcEmi', type: Types::String.optional }
|
16
|
+
}.freeze
|
17
|
+
|
18
|
+
ATRIBUTOS_NAO_SUPORTADOS = {}.freeze
|
19
|
+
|
20
|
+
ATRIBUTOS_DESCARTADOS = {
|
21
|
+
'Tipo de acidente de trânsito': %w[
|
22
|
+
IniAfastamento_TipoAcidenteTransito
|
23
|
+
]
|
24
|
+
}.freeze
|
25
|
+
|
26
|
+
ATRIBUTOS_DOS_ATESTADOS = (0..8).flat_map do |indice|
|
27
|
+
[
|
28
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_CodigoCID",
|
29
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_QuantidadeDiasAfastados",
|
30
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_Emitente_NomeEmitente",
|
31
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_Emitente_IdOrgaoClasse",
|
32
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_Emitente_NumeroOrgaoClasse",
|
33
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_Emitente_UFOrgaoClasse",
|
34
|
+
"IniAfastamento_ListaInfoAtestado_#{indice}_Emitente_DescricaoOrgaoClasse"
|
35
|
+
]
|
36
|
+
end.freeze
|
37
|
+
|
38
|
+
ATRIBUTOS_IGNORADOS = ATRIBUTOS_DOS_ATESTADOS + %w[
|
39
|
+
IdEventoXml
|
40
|
+
ExibirBotoes
|
41
|
+
IniAfastamento_CodMotivoAfastamento_TEXT
|
42
|
+
CheckPreencherAcidenteTransito
|
43
|
+
checkbox_preencher_grupo0
|
44
|
+
VerProc
|
45
|
+
IdContrato
|
46
|
+
IndicadorRetificacao
|
47
|
+
PreencherCID
|
48
|
+
PreencherAcidenteTransito
|
49
|
+
PreencherEmpregadoCedido
|
50
|
+
PreencherMandatoSindical
|
51
|
+
SomenteLeitura
|
52
|
+
UrlRetorno
|
53
|
+
ContratoSemVinculo
|
54
|
+
PreencherDataFimAfastamento
|
55
|
+
ESX_DATAADMISSAO
|
56
|
+
ESX_SEMVINCULO
|
57
|
+
DesejaIncluirInfoAtestado
|
58
|
+
RequestVerificationToken
|
59
|
+
TipoEventoCadastro
|
60
|
+
IdEventoAfastamento
|
61
|
+
CodigoMotivo
|
62
|
+
Motivo
|
63
|
+
DataInicio
|
64
|
+
DataFim
|
65
|
+
IniAfastamento_DataInicioAfastamento
|
66
|
+
FimAfastamento_DataTerminoAfastamento
|
67
|
+
IniAfastamento_TipoAcidenteTransito_TEXT
|
68
|
+
DataLimitePeriodoAquis
|
69
|
+
RegraFeriasCategoria
|
70
|
+
PreencherMandatoEletivo
|
71
|
+
IdEvento
|
72
|
+
].freeze
|
73
|
+
|
74
|
+
include ArquivoData
|
75
|
+
|
76
|
+
private
|
77
|
+
|
78
|
+
def initialize(caminho_do_arquivo_data)
|
79
|
+
@caminho_do_arquivo_data = caminho_do_arquivo_data
|
80
|
+
end
|
81
|
+
|
82
|
+
def ajustar_atributos; end
|
83
|
+
|
84
|
+
def regras_que_podem_gerar_erros
|
85
|
+
{
|
86
|
+
'Motivo não localizado para o afastamento' => motivo_indefinido?
|
87
|
+
}
|
88
|
+
end
|
89
|
+
|
90
|
+
def regras_que_podem_gerar_alertas
|
91
|
+
{
|
92
|
+
}
|
93
|
+
end
|
94
|
+
|
95
|
+
def motivo_indefinido?
|
96
|
+
atributos[:cod_motivo_afastamento_antigo].nil? && atributos[:codigo_motivo].nil?
|
97
|
+
end
|
98
|
+
|
99
|
+
def identificador
|
100
|
+
'empregado_afastamento_termino'
|
101
|
+
end
|
102
|
+
end
|