| Data de elaboração | 14/11/2024 |
| Responsável pelo estudo | Rodrigo Stefano Sales Nascimento (Assessor) |
| Equipe do estudo | Tropa de Elite |
| Alvo | Sistema Governa |
| Origem | Objetivo estratégico: Verificação da Tabela 01 - Categorias de Trabalhadores do eSocial no Sistema Governa. |
| Objetivo | para atender as exigências do eSocial e facilitar a extração e envios das informações |
O eSocial é um sistema do governo brasileiro que unifica a prestação de informações trabalhistas, previdenciárias e fiscais por parte dos empregadores. Instituído pelo Decreto nº 8.373/2014, seu objetivo é simplificar e centralizar a comunicação entre empresas e órgãos governamentais, como Receita Federal, INSS, Caixa Econômica Federal e Ministério do Trabalho. Por meio do eSocial, empregadores comunicam, de forma padronizada, dados sobre vínculos empregatícios, contribuições previdenciárias, folhas de pagamento, acidentes de trabalho, aviso prévio, entre outros. Essa integração visa reduzir a burocracia, eliminar redundâncias e aprimorar a qualidade das informações relacionadas às obrigações fiscais, previdenciárias e trabalhistas.
Para organizar e padronizar esses dados, o eSocial utiliza uma série de tabelas que servem como referência para diversas informações. Essas tabelas incluem definições importantes para a classificação de trabalhadores, remunerações, vínculos empregatícios, afastamentos, dependentes, entre outras. Com essas tabelas, o sistema eSocial garante que todas as empresas sigam um padrão unificado de dados, o que evita inconsistências e problemas de interpretação.
Neste estudo, o foco será a Tabela 01 - Categorias de Trabalhadores do eSocial. Essa tabela classifica os trabalhadores em diferentes categorias, como empregados, trabalhadores avulsos, agentes públicos, segurados especiais, contribuintes individuais e bolsistas. Cada categoria é identificada por um código específico, utilizado para indicar o tipo de vínculo no eSocial. Essa categorização é essencial para assegurar que cada trabalhador seja tratado de acordo com suas características legais e fiscais.
No sistema Governa - RH, a Tabela 01 foi implementada por meio de uma enumeração (ServidorCategoriaTrabalhadorEnum), que define os códigos e descrições das categorias de trabalhadores diretamente no código-fonte. Embora essa abordagem permita que o sistema tenha acesso imediato às categorias de trabalhadores, ela apresenta limitações significativas para a manutenção e a atualização dos dados.
No contexto do sistema Governa - RH, o enum ServidorCategoriaTrabalhadorEnum armazena as seguintes informações:
Código: Um identificador numérico exclusivo para cada categoria (ex.: 101 para «Empregado - Geral», 102 para «Trabalhador Rural», etc.).
Descrição: Um texto descritivo da categoria, explicando o tipo de trabalhador que o código representa (ex.: «Empregado - Geral, Trabalhador avulso portuário, etc.»).
Já no contexto do eSocial, a Tabela 01 - Categorias de Trabalhadores possui os seguintes campos:
Grupo: Indica a categoria geral ou grupo ao qual cada trabalhador pertence, como «Empregado e Trabalhador Temporário», «Avulso», «Agente Público», etc. Esse campo organiza as categorias em grupos, facilitando a visualização e aplicação de regras específicas de acordo com o tipo de vínculo.
Código: Possuindo um identificador numérico exclusivo para cada categoria, que facilita a referência e o uso padronizado de cada tipo de vínculo (ex.: 101 para «Empregado - Geral», 201 para «Trabalhador Avulso Portuário», etc.).
Descrição: Um texto descritivo que explica detalhadamente o tipo de trabalhador que o código representa. Esse campo é utilizado para garantir que cada categoria seja facilmente compreendida e corretamente aplicada (ex.: «Empregado - Contrato de trabalho intermitente»).
Início de Validade: Data que indica o início da vigência de cada categoria. Esse campo ajuda a garantir que a categoria seja utilizada apenas a partir do período correto, conforme definido pelo eSocial.
Término de Validade: Data que indica o fim da validade de uma categoria, caso ela tenha sido descontinuada ou substituída. Esse campo é importante para assegurar que categorias obsoletas não sejam usadas indevidamente e que o sistema esteja em conformidade com a versão atualizada das normas do eSocial.
A implementação da Tabela 01 por meio de uma enumeração fixa traz uma série de problemas que afetam a flexibilidade e a manutenção do sistema. Entre as principais limitações estão:
Dificuldade de Atualização:
Redução da Flexibilidade e Escalabilidade:
Impacto no Ciclo de Desenvolvimento e Testes:
Qualquer mudança na enumeração requer uma atualização do código e um novo ciclo de desenvolvimento, testes e deploy. Isso pode aumentar o tempo necessário para incorporar alterações simples, que poderiam ser tratadas de maneira mais eficiente se as categorias fossem gerenciadas fora do código-fonte.
Essa necessidade constante de alterar o código também aumenta o risco de introdução de erros e reduz a agilidade na adaptação a novas normas.
No sistema Governa - RH, a Tabela 01 - Categorias de Trabalhadores é utilizada principalmente na tela de informações mensais do servidor, dentro da aba Complementar. Esse local permite que os usuários do sistema visualizem e selecionem a categoria de trabalhador correta.
O código responsável por essa funcionalidade está no arquivo manterServidor.xhtml, especificamente no componente de seleção (<p:selectOneMenu>) com o ID "categoriaTrabalhador". Esse componente exibe a lista de categorias de trabalhadores utilizando o enumerado ServidorCategoriaTrabalhadorEnum, que é carregado através do método categoriaTrabalhorList().
O trecho de código abaixo ilustra como essa lista é exibida na interface:
<h:outputLabel value="Categoria Trabalhador: *" />
<p:selectOneMenu id="categoriaTrabalhador"
value="#{servidorMB.servidorMensal.categoriaTrabalhador}"
style="#{stlsRh['largura.combo.tamanho.60']}" autoWidth="false"
panelStyle="#{stlsRh['largura.combo.tamanho.60']}"
disabled="#{not servidorMB.isSalvarSecundarioHabilitado()}">
<f:selectItem itemLabel="" itemValue="" />
<f:selectItems value="#{servidorMB.categoriaTrabalhorList()}"
var="item" itemValue="#{item.codigo}"
itemLabel="#{item.codigo} - #{item.descricao}" />
</p:selectOneMenu>
Atualmente, a Tabela 01 - Categorias de Trabalhadores está implementada como uma enumeração fixa (ServidorCategoriaTrabalhadorEnum) no sistema Governa - RH. Essa abordagem apresenta limitações que afetam a flexibilidade e a capacidade de atualização do sistema, especialmente considerando as mudanças periódicas realizadas pelo eSocial. Entre os principais problemas estão:
Dificuldade de Atualização: Como as categorias estão “chapadas” no código, qualquer alteração exige uma modificação no código-fonte, recompilação e redistribuição do sistema. Esse processo é oneroso e pouco eficiente para um sistema que precisa estar constantemente alinhado às atualizações do eSocial.
Falta de Organização e Validade: A enumeração atual contém apenas o código e a descrição da categoria, sem uma estrutura que permita organizar as categorias por grupo ou definir períodos de validade. A ausência desses campos limita a conformidade com a estrutura da tabela original do eSocial e dificulta a navegação e o uso correto das categorias.
Para resolver essas limitações, propomos a migração da Tabela 01 - Categorias de Trabalhadores para uma tabela de banco de dados, complementada por um módulo CRUD no sistema Governa - RH para gerenciar os registros.
A nova tabela no banco de dados, chamada categoria_trabalhador, deverá ter uma estrutura que reflete a tabela original do eSocial, incluindo campos adicionais para melhorar a organização e permitir a atualização de dados sem modificar o código.
Estrutura da tabela categoria_trabalhador:
Estrutura do Menu:
O menu de navegação incluirá um novo item para o gerenciamento das tabelas do eSocial:

figura: novo menu de Tabelas do eSocial
Para facilitar a administração das tabelas do eSocial no Governa - RH, propomos a criação de um módulo CRUD que permita gerenciar as categorias de trabalhadores.
Funcionalidades do CRUD:
Listagem: Visualizar todas as categorias com campos como grupo, código, descrição, início e término de validade, e status (Ativo ou Inativo).
Adicionar Nova Categoria: Formulário para inserir novas categorias, permitindo preencher todos os campos exigidos pelo eSocial, incluindo o campo status com o valor padrão de «Ativo».
Editar Categoria Existente: Permitir a atualização dos campos, incluindo descrições, grupos, datas de validade e status da categoria, garantindo que a interface exiba sempre as informações mais recentes.
Desativar Categoria: Permitir a desativação de uma categoria ao definir o campo status como «Inativo». Esse processo é reversível, permitindo a reativação da categoria caso o status seja alterado novamente para «Ativo».
Excluir Categoria: Caso seja necessário remover uma categoria de forma definitiva, permitir a exclusão permanente da entrada obsoleta.

Figura: Módulo CRUD de gestão de categorias de trabalhadores
Esse módulo permitirá aos administradores realizar alterações de forma rápida e segura, sem necessidade de modificar o código-fonte.