| Data de elaboração | 09/12/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 03 - Natureza das Rubricas da Folha de Pagamento 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 03 - Natureza das Rubricas da Folha de Pagamento do eSocial. Essa tabela classifica as rubricas utilizadas na folha de pagamento, como salário, descanso semanal remunerado, horas extras, adicionais e descontos. Cada rubrica é identificada por um código específico, que serve para definir a natureza do valor informado no eSocial.
No sistema Governa - RH, a Tabela 03 foi implementada por meio de uma enumeração (ESocialNaturezaRubricaEnum), que define os códigos e descrições das rubricas diretamente no código-fonte. Embora essa abordagem permita que o sistema tenha acesso imediato às naturezas de rubricas, ela apresenta limitações significativas para a manutenção e a atualização dos dados.
No contexto do sistema Governa - RH, o enum ESocialNaturezaRubricaEnum armazena as seguintes informações:
Código: Um identificador único.
Descrição: Uma explicação detalhada sobre a rubrica.
Tipo: Classificação da rubrica, como «PRO» (provento) ou «DES» (desconto).
Já no contexto do eSocial, a Tabela 03 - Natureza das Rubricas da Folha de Pagamento possui os seguintes campos:
Código: Um identificador numérico exclusivo para cada rubrica, que facilita a referência e o uso padronizado de cada natureza de pagamento ou desconto (ex.: 1000 para «Salário, vencimento, soldo», 1003 para «Horas extraordinárias»).
Nome da Natureza da Rubrica: Um nome sucinto que identifica a rubrica, proporcionando uma visão clara de sua finalidade (ex.: «Descanso semanal remunerado - DSR»).
Descrição da Natureza da Rubrica: Um texto descritivo que explica detalhadamente o que a rubrica representa e sua aplicação prática (ex.: «Valor correspondente à hora extraordinária de trabalho, acrescido de percentual de no mínimo 50%»).
Início: Data que indica o início da vigência de cada rubrica. Este campo garante que a rubrica seja utilizada apenas a partir do período correto, conforme definido pelo eSocial.
Término: Data que indica o fim da validade de uma rubrica, caso tenha sido descontinuada ou substituída. Esse campo é importante para evitar o uso de rubricas obsoletas e assegurar conformidade com a versão mais atualizada do eSocial.
Uma diferença importante entre o formato do enumerado ESocialNaturezaRubricaEnum e a tabela oficial do eSocial é a presença do campo «Tipo» no enumerado, que classifica as rubricas como «PRO» (Provento) ou «DES» (Desconto). Esse campo, embora não exista na Tabela 03 do eSocial, é necessário para as regras internas do sistema Governa - RH. Para resolver essa questão, o campo será mantido na tabela criada no banco de dados como uma coluna adicional, garantindo que as classificações atuais sejam preservadas e continuem a atender às necessidades internas sem impactar na conformidade com o formato oficial do eSocial.
A implementação da Tabela 03 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 alteração no enumerado implica em mudanças no código, exigindo um novo ciclo de desenvolvimento, testes e deploy. Isso aumenta o tempo necessário para incorporar alterações simples, que poderiam ser realizadas de forma mais eficiente se as rubricas fossem gerenciadas externamente, como em uma tabela de banco de dados.
Essa dependência do código-fonte não apenas dificulta a adaptação às novas normas, mas também aumenta o risco de introdução de erros, reduzindo a agilidade necessária para atender às demandas regulatórias e de negócio.
No sistema Governa - RH, a Tabela 03 - Natureza das Rubricas da Folha de Pagamento é utilizada principalmente na tela de cadastro e edição de verba, dentro da aba eSocial, no caminho:
/rh/usuario/cadastro/verba/manterVerba.xhtml
Acessado pelo menu:
Cadastro > Verba > Cadastro de Verbas
O código responsável por essa funcionalidade está no arquivo manterVerba.xhtml, especificamente no componente de seleção (<p:selectOneMenu>) com o ID "naturezaRubrica". Esse componente exibe a lista de naturezas de rubricas utilizando o enumerado ESocialNaturezaRubricaEnum, que é carregado através do método listarNaturezaRubrica().
O trecho de código abaixo ilustra como essa lista é exibida na interface:
<h:outputLabel value="#{rtlsRh['rotulo.rh.manter.verba.natureza.rubrica']}:" />
<p:selectOneMenu id="naturezaRubrica"
value="#{verbaMB.verba.naturezaRubrica}"
style="#{stlsRh['largura.combo.tamanho.60']}"
panelStyle="#{stlsRh['largura.combo.tamanho.60']}"
filter="true" filterText="Filter" filterMatchMode="contains"
disabled="#{!verbaMB.isSalvarHabilitado()}">
<f:selectItem itemLabel="" itemValue="" />
<f:selectItems value="#{verbaMB.listarNaturezaRubrica()}"
var="item" itemValue="#{item.codigo}"
itemLabel="#{item.codigo} - #{item.descricao} " />
<p:ajax partialSubmit="true" ignoreAutoUpdate="true" />
</p:selectOneMenu>
Atualmente, a Tabela 03 - Natureza das Rubricas da Folha de Pagamento está implementada como uma enumeração fixa (ESocialNaturezaRubricaEnum) no sistema Governa - RH. Essa abordagem apresenta diversas limitações que comprometem 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:
Para resolver essas limitações, propomos a migração da Tabela 03 - Natureza das Rubricas da Folha de Pagamento para uma tabela de banco de dados, complementada por um módulo CRUD no sistema Governa - RH para gerenciar os registros. Essa abordagem permitirá que as rubricas sejam gerenciadas de forma dinâmica, com a inclusão de campos como Início de Validade e Término de Validade, além de manter o campo adicional «Tipo» (Provento ou Desconto) necessário para as regras internas do sistema.
A nova tabela no banco de dados, chamada natureza_rubrica, 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 natureza_rubrica:
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 rubricas com campos como código, nome, descrição, tipo (Provento ou Desconto), início e término de validade, e status (Ativo ou Inativo).
Adicionar Nova Rubrica: Formulário para inserir novas rubricas, permitindo preencher todos os campos exigidos pelo eSocial, incluindo o campo «tipo» e o status com valor padrão de «Ativo».
Editar Rubrica Existente: Permitir a atualização dos campos, incluindo descrições, nomes, datas de validade, e tipo da rubrica, garantindo que a interface exiba sempre as informações mais recentes.
Desativar Rubrica: Permitir a desativação de uma rubrica ao definir o campo status como «Inativo». Esse processo é reversível, permitindo a reativação da rubrica caso o status seja alterado novamente para «Ativo».
Excluir Rubrica: Caso seja necessário remover uma rubrica de forma definitiva, permitir a exclusão permanente da entrada obsoleta.
Esse módulo permitirá aos administradores realizar alterações de forma rápida e segura, sem necessidade de modificar o código-fonte.
natureza_rubrica no banco| História - O quê | Eu, dev, preciso criar um script SQL para a geração da tabela natureza_rubrica no banco de dados, conforme a estrutura definida. |
| Por quê? | Para que a tabela natureza_rubrica seja criada de forma padronizada, possibilitando o armazenamento das naturezas de rubricas com todos os campos necessários para a conformidade com o eSocial e as regras internas do sistema Governa - RH. |
| Regras e Validações | O script deve criar a tabela natureza_rubrica com os campos id, codigo, nome, descricao, tipo, inicio_validade, termino_validade, status, created_at, e updated_at conforme a modelagem descrita no item 3.2.1 do estudo. |