Class: ArquivoEmpregado

Inherits:
Object
  • Object
show all
Includes:
ArquivoData
Defined in:
lib/odorico/arquivo_empregado.rb

Constant Summary collapse

ATRIBUTOS =
{
  cpf: { key: 'EventoAdmissao_InfoTrabalhador_Cpf', type: Types::String },
  nis: { key: 'EventoAdmissao_InfoTrabalhador_Nis', type: Types::String.optional },
  nome: { key: 'EventoAdmissao_InfoTrabalhador_Nome', type: Types::String },
  sexo: { key: 'EventoAdmissao_InfoTrabalhador_Sexo', type: Types::String },
  matricula: { key: 'EventoAdmissao_InfoVinculo_Matricula', type: Types::String },
  raca_cor: { key: 'EventoAdmissao_InfoTrabalhador_RacaCor', type: Types::Integer },
  grau_instrucao: { key: 'EventoAdmissao_InfoTrabalhador_GrauInstrucao', type: Types::String },
  primeiro_emprego: { key: 'EventoAdmissao_InfoTrabalhador_PrimeiroEmprego', type: Types::SNBool.optional },
  data_de_nascimento: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_DataNascimento', type: Types::Date },
  nascimento_pais_codigo: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento', type: Types::String },
  nacionalidade_pais_codigo: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade',
                               type: Types::String },
  nacionalidade_municipio_codigo: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio',
                                    type: Types::String.optional },
  nome_mae: { key: 'EventoAdmissao_InfoTrabalhador_Nascimento_NomeMae', type: Types::String.optional },
  endereco_br_cep: { key: 'EventoAdmissao_EnderecoResidencialBR_Cep', type: Types::String.optional },
  endereco_br_tipo_logradouro: { key: 'EventoAdmissao_EnderecoResidencialBR_TipoLogradouro',
                                 type: Types::String.optional },
  endereco_br_descricao_logradouro: { key: 'EventoAdmissao_EnderecoResidencialBR_DescricaoLogradouro',
                                      type: Types::String.optional },
  endereco_br_numero_logradouro: { key: 'EventoAdmissao_EnderecoResidencialBR_NumeroLogradouro',
                                   type: Types::String.optional },
  endereco_br_bairro: { key: 'EventoAdmissao_EnderecoResidencialBR_Bairro', type: Types::String.optional },
  endereco_br_complemento: { key: 'EventoAdmissao_EnderecoResidencialBR_Complemento', type: Types::String.optional },
  endereco_br_codigo_municipio: { key: 'EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio',
                                  type: Types::String.optional },
  reside_exterior: { key: 'ResideExterior', type: Types::False },
  deficiencia_fisica: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaFisica',
                        type: Types::SNBool.optional },
  deficiencia_visual: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaVisual',
                        type: Types::SNBool.optional },
  deficiencia_auditiva: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaAuditiva',
                          type: Types::SNBool.optional },
  deficiencia_mental: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaMental',
                        type: Types::SNBool.optional },
  deficiencia_intelectual: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_DeficienciaIntelectual',
                             type: Types::SNBool.optional },
  deficiencia_reabilitado_ou_readaptado: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_ReabilitadoOuReadaptado',
                                           type: Types::SNBool.optional },
  deficiencia_info_cota: { key: 'EventoAdmissao_InfoTrabalhador_Deficiencia_InfoCota', type: Types::SNBool.optional },
  data_admissao_celetista: {
    key: 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataAdmissao',
    type: Types::Date
  },
  tipo_regime_trabalhista: { key: 'EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista',
                             type: Types::TipoRegimeTrabalhista },
  tipo_regime_previdenciario: { key: 'EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario',
                                type: Types::TipoRegimePrevidenciario },
  tipo_regime_jornada: {
    key: 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada',
    type: Types::TipoRegimeJornada
  },
  optante_fgts: {
    key: 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS', # rubocop:disable Layout/LineLength
    type: Types::OpcaoFgts.optional
  },
  data_opcao_fgts: {
    key: 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_DataOpcaoFGTS', # rubocop:disable Layout/LineLength
    type: Types::Date.optional
  },
  cargo_codigo: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_CodigoCargo', type: Types::String.optional },
  unidade_salario_fixo: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_UnidadeSalarioFixo',
                          type: Types::UnidadeSalarial },
  valor_salario_fixo: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_ValorSalarioFixo',
                        type: Types::Decimal },
  tipo_contrato: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_Duracao_TipoContrato', type: Types::TipoContrato },
  data_termino: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_Duracao_DataTermino', type: Types::Date.optional },
  clausula_assecuratoria: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_Duracao_ClausulaAssecuratoria',
                            type: Types::SNBool.optional },
  local_trabalho_geral_tipo_inscricao: {
    key: 'EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao',
    type: Types::TipoInscricaoLocalTrabalho.optional
  },
  local_trabalho_geral_numero_inscricao: {
    key: 'EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_NumeroInscricao',
    type: Types::String.optional
  },
  quantidade_horas_semanal: {
    key: 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_QuantidadeHorasSemanal',
    type: Types::Decimal.optional
  },
  tipo_jornada: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada',
                  type: Types::TipoJornada.optional },
  descricao_tipo_jornada: {
    key: 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoJornada', type: Types::String.optional
  },
  descricao_tipo_jornada_2_5: {
    key: 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_DescricaoTipoJornada',
    type: Types::String.optional
  },
  horario_noturno: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_HorarioNoturno',
                     type: Types::SNBool.optional },
  codigo_categoria: { key: 'EventoAdmissao_InfoVinculo_InfoContrato_CodigoCategoria',
                      type: Types::CategoriaTrabalhador },
  nr_recibo_evento_original: { key: 'NrReciboEventoOriginal', type: Types::String.optional },
  ctps_numero: { key: 'EventoAdmissao_InfoTrabalhador_Documentos_Ctps_NumeroCtps', type: Types::String.optional },
  ctps_serie: { key: 'EventoAdmissao_InfoTrabalhador_Documentos_Ctps_SerieCtps', type: Types::String.optional },
  ctps_uf: { key: 'EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps', type: Types::String.optional },
  sindicato_cnpj: {
    key: 'EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_CnpjSindicatoCategoriaProfissional', # rubocop:disable Layout/LineLength
    type: Types::String
  },
  data_de_transferencia: { key: 'EventoAdmissao_InfoVinculo_SucessaoVinculo_DataTransferencia',
                           type: Types::Date.optional },
  cnpj_do_empregador_anterior: { key: 'EventoAdmissao_InfoVinculo_SucessaoVinculo_CnpjEmpregadorAnterior',
                                 type: Types::String.optional },
  matricula_no_empregador_anterior: { key: 'EventoAdmissao_InfoVinculo_SucessaoVinculo_MatriculaAnterior',
                                      type: Types::String.optional },
  estrangeiro_data_de_chegada_ao_brasil: { key: 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_DataChegada',
                                           type: Types::Date.optional },
  estrangeiro_classificacao_do_ingresso_no_brasil: {
    key: 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao', type: Types::Integer.optional
  },
  estrangeiro_casado_com_brasileiro: {
    key: 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_CasadoComBrasileiro', type: Types::SNBool.optional
  },
  estrangeiro_tem_filhos_brasileiros: {
    key: 'EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_FilhosBrasileiros', type: Types::SNBool.optional
  },
  descricao_proc_emi: { key: 'DescricaoProcEmi', type: Types::String.optional },
  data_inicio_afastamento: { key: 'EventoAdmissao_InfoVinculo_DataInicioAfastamento', type: Types::Date.optional },
  motivo_afastamento: { key: 'EventoAdmissao_InfoVinculo_CodigoMotivoAfastamento', type: Types::String.optional },
  dependentes: { key: 'EventoAdmissao_Dependente', attributes: {
    nome: { key: 'NomeDependente', type: Types::String },
    data_de_nascimento: { key: 'DataNascimento', type: Types::Date },
    incapacidade: { key: 'IncapacidadeDependente', type: Types::SNBool },
    cpf: { key: 'CPFDependente', type: Types::String.optional },
    tipo: { key: 'TipoDependente', type: Types::String },
    dependente_de_IRRF: { key: 'DependenteIRRF', type: Types::SNBool },
    dependente_de_SF: { key: 'DependenteSF', type: Types::String },
    data_nascimento_formatada: { key: 'DataNascimentoFormatada', type: Types::String }
  } },
  horarios: { key: 'Horarios', attributes: {
    dia: { key: 'Dia', type: Types::Integer },
    codigo_horario_contratual: { key: 'CodigoHorarioContratual', type: Types::String }
  } },
  treinamentos_capacitacoes: { key: 'treiCap', attributes: {
    codigo: { key: 'codTreiCap', type: Types::String }
  } }
}.freeze
ATRIBUTOS_NAO_SUPORTADOS =
{
  'Não suportamos a inclusão no eSocial de empregados já demitidos': %w[
    EventoAdmissao_InfoVinculo_DataDesligamento
  ]
}.freeze
ATRIBUTOS_DESCARTADOS =
{
  'Data Base': %w[
    EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataBase
  ],
  Nascimento: %w[
    EventoAdmissao_InfoTrabalhador_Nascimento_Uf
    EventoAdmissao_InfoTrabalhador_Nascimento_NomePai
  ],
  'Nome Social': %w[
    EventoAdmissao_InfoTrabalhador_NomeSocial
  ],
  'Estado Civil': %w[
    EventoAdmissao_InfoTrabalhador_EstadoCivil
  ],
  CNH: %w[
    EventoAdmissao_InfoTrabalhador_Documentos_Cnh_NumeroCnh
    EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataExpedicao
    EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataPrimeiraHabilitacao
    EventoAdmissao_InfoTrabalhador_Documentos_Cnh_DataValidade
    EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh
    EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh
  ],
  'Orgão de Classe': %w[
    EventoAdmissao_InfoTrabalhador_Documentos_Oc_NumeroOc
    EventoAdmissao_InfoTrabalhador_Documentos_Oc_OrgaoEmissor
    EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataExpedicao
    EventoAdmissao_InfoTrabalhador_Documentos_Oc_DataValidade
  ],
  Identidade: %w[
    EventoAdmissao_InfoTrabalhador_Documentos_Rg_NumeroRg
    EventoAdmissao_InfoTrabalhador_Documentos_Rg_OrgaoEmissor
    EventoAdmissao_InfoTrabalhador_Documentos_Rg_DataExpedicao
  ],
  'Registro Nacional de Estrangeiro': %w[
    EventoAdmissao_InfoTrabalhador_Documentos_Rne_DataExpedicao
    EventoAdmissao_InfoTrabalhador_Documentos_Rne_NumerorRne
    EventoAdmissao_InfoTrabalhador_Documentos_Rne_OrgaoEmissor
  ],
  'Descrição Complementar de Local de Trabalho': %w[
    EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_DescricaoComplementar
  ],
  'Informação Complementar de Endereço': %w[
    EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Complemento
  ],
  'Informação do contato do trabalhador': %w[
    EventoAdmissao_InfoTrabalhador_Contato_TelefonePrincipal
    EventoAdmissao_Contato_TelefonePrincipal
    EventoAdmissao_Contato_TelefoneAlternativo
  ],
  'Informação das observações de trabalhador': %w[
    EventoAdmissao_InfoVinculo_InfoContrato_Observacao_0_ConteudoObservacao
  ]
}.freeze
ATRIBUTOS_IGNORADOS =
%w[
  IdEventoXml
  EventoAdmissao_EnderecoResidencialBR_Uf
  EventoAdmissao_InfoVinculo_IndicativoCadastramentoInicial
  EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao
  EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade
  EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial
  EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao
  TrabalhadorAfastadoINSS
  EventoAdmissao_TipoEventoEnviado
  EventoAdmissao_IndRetificacao
  EventoAdmissao_NrRecibo
  SomenteLeitura
  IdEvento
  DataAdmissaoReferencia
  EventoAdmissao_InfoTrabalhador_Sexo_TEXT
  EventoAdmissao_InfoTrabalhador_RacaCor_TEXT
  EventoAdmissao_InfoTrabalhador_EstadoCivil_TEXT
  EventoAdmissao_InfoTrabalhador_GrauInstrucao_TEXT
  EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento_TEXT
  EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade_TEXT
  EventoAdmissao_InfoTrabalhador_Nascimento_Uf_TEXT
  EventoAdmissao_InfoTrabalhador_Nascimento_CodigoMunicipio_TEXT
  EventoAdmissao_InfoTrabalhador_Documentos_Ctps_UfCtps_TEXT
  EventoAdmissao_EnderecoResidencialBR_Uf_TEXT
  EventoAdmissao_EnderecoResidencialBR_TipoLogradouro_TEXT
  EventoAdmissao_EnderecoResidencialBR_CodigoMunicipio_TEXT
  SemNumeroLogradouroEnderecoBR
  SemNumeroLogradouroEnderecoEX
  VerProc
  TipoInscricaoEmpregador
  EventoAdmissao_InfoVinculo_InfoContrato_FiliacaoSindical_0_CnpjSindicatoTrabalhador
  EventoAdmissao_InfoVinculo_IndicativoCadastramentoInicial_TEXT
  EventoAdmissao_InfoVinculo_TipoRegimeTrabalhista_TEXT
  EventoAdmissao_InfoVinculo_InfoContrato_CodigoCategoria_TEXT
  EventoAdmissao_InfoVinculo_TipoRegimePrevidenciario_TEXT
  EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoAdmissao_TEXT
  EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_IndicativoAdmissao_TEXT
  EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_TipoRegimeJornada_TEXT
  EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_NaturezaAtividade_TEXT
  EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_DataBase_TEXT
  EventoAdmissao_InfoVinculo_InformacoesRegimeTrabalhista_InformacoesTrabalhadorCeletista_InfoFgts_OptanteFGTS_TEXT
  FiltroCargo
  CodigoCBO
  EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_UnidadeSalarioFixo_TEXT
  EventoAdmissao_InfoVinculo_InfoContrato_Duracao_TipoContrato_TEXT
  EventoAdmissao_InfoVinculo_InfoContrato_LocalTrabalho_LocalTrabalhoGeral_TipoInscricao_TEXT
  NomeEstabelecimento
  EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_TipoJornada_TEXT
  EventoAdmissao_InfoVinculo_InfoContrato_HorarioContratual_JornadaTempoParcial_TEXT
  HorarioTela_Dia_TEXT
  EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_Uf_TEXT
  EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_TipoLogradouro_TEXT
  EventoAdmissao_InfoTrabalhador_InfoEndereco_EnderecoResidencialBR_CodigoMunicipio_TEXT
  checkbox_preencher_grupo0
  checkbox_preencher_grupo1
  checkbox_preencher_grupo2
  checkbox_preencher_grupo3
  checkbox_preencher_grupo4
  checkbox_preencher_grupo5
  checkbox_preencher_grupo6
  checkbox_preencher_grupo8
  EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial
  EventoAdmissao_InformacoesInicio_IndicativoCadastramentoInicial_TEXT
  EventoAdmissao_InformacoesInicio_CodigoCategoria_TEXT
  EventoAdmissao_InformacoesInicio_InformacoesComplementares_Remuneracao_UnidadeSalarioFixo_TEXT
  checkbox_preencher_grupo10
  checkbox_preencher_grupo11
  checkbox_preencher_grupo12
  checkbox_preencher_grupo13
  checkbox_preencher_grupo14
  EventoAdmissao_InfoTrabalhador_Documentos_Cnh_CategoriaCnh_TEXT
  EventoAdmissao_InfoTrabalhador_Documentos_Cnh_UfCnh_TEXT
  EventoAdmissao_InfoVinculo_CodigoMotivoAfastamento_TEXT
  EventoAdmissao_InformacoesInicio_InformacoesComplementares_InfoFgts_OptanteFGTS_TEXT
  autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNascimento
  autocomplete_EventoAdmissao_InfoTrabalhador_Nascimento_PaisNacionalidade
  CodigoCNAE
  chkHorarioContratual
  HorarioTela_Dia
  ESX_CPF
  ESX_MATRICULA
  ESX_DATAADMISSAO
  ESX_SEMVINCULO
  IdContratoReferenciado
  checkbox_preencher_grupo9
  ESX_CATEGORIA
  IdContrato
  TelefoneCelular
  autocomplete_EventoAdmissao_InformacoesInicio_CodigoCategoria
  EventoAdmissao_InformacoesInicio_DataInicio
  EventoAdmissao_InfoVinculo_InfoContrato_Remuneracao_DescricaoSalarioVariavel
  CheckModoCompleto
  EventoAdmissao_Contato_EmailPrincipal
  EventoAdmissao_Contato_EmailAlternativo
  EventoAdmissao_InfoVinculo_NumeroReciboAdmissaoPreliminar
  EventoAdmissao_InfoTrabalhador_Documentos_Ric_NumeroRic
  EventoAdmissao_InfoTrabalhador_Documentos_Ric_OrgaoEmissor
  EventoAdmissao_InfoTrabalhador_Documentos_Ric_DataExpedicao
  EventoAdmissao_InfoTrabalhador_TrabalhadorEstrangeiro_ClassificacaoCondicao_TEXT
  FiltroFuncao
  EventoAdmissao_InfoVinculo_InfoContrato_CodigoFuncao
  EventoAdmissao_InfoVinculo_SucessaoVinculo_TipoInscricaoAnterior
  EventoAdmissao_InfoVinculo_SucessaoVinculo_TipoInscricaoAnterior_TEXT
  EventoAdmissao_InfoVinculo_SucessaoVinculo_Observacao
  EventoAdmissao_InfoVinculo_InfoContrato_NomeCargo
  EventoAdmissao_InfoVinculo_InfoContrato_CBOCargo
  EventoAdmissao_InfoVinculo_InfoContrato_CBOCargo_TEXT
  EventoAdmissao_InfoVinculo_InfoContrato_NomeFuncao
  EventoAdmissao_InfoVinculo_InfoContrato_CBOFuncao
  EventoAdmissao_InfoVinculo_InfoContrato_CBOFuncao_TEXT
  EventoAdmissao_InfoVinculo_InfoContrato_CargoAcumulavel
  HorarioNoturno
].freeze

Method Summary

Methods included from ArquivoData

#alertas, #atributos, #erros, #processar