Implementar uma nova regra de apuração - Gestão do Ponto X

No Gestão do Ponto X, é possível criar Pontos de Regra personalizados para adaptar o processo de apuração de ponto às necessidades específicas de cada empresa.

Essas regras são implementadas por meio de funções Lambda desenvolvidas no ambiente de customização (AWS Cloud9), utilizando a extensão timeEvaluationRule. Cada função pode conter uma lógica específica de apuração, como redistribuir horas entre situações, aplicar limites diários, validar ocorrências e muito mais.

Esta documentação apresenta um exemplo prático de implementação, servindo como referência para o desenvolvimento de outras regras conforme os requisitos do cliente.

Habilitar feature toggle

Durante a fase de desenvolvimento, é necessário ativar uma feature toggle específica para que a regra de apuração funcione corretamente no ambiente de testes.

Essa ativação é feita diretamente na plataforma senior X, com um usuário que tenha permissão de administração.

  1. Acesse a plataforma senior X no menu: Tecnologia > Feature toggle.
  2. No campo de busca, pesquise por timeEvaluation.
  3. Na opção localizada, clique no botão Ações e selecione Editar.
  4. Adicione o tenant correspondente ao seu ambiente de desenvolvimento, por exemplo: cem.testes.apicombr.
  5. Clique em Salvar.

Importante

Se a feature toggle timeEvaluation não estiver habilitada corretamente para o tenant utilizado, a regra de apuração não será executada, mesmo com a lógica implementada no código.

Etapas da configuração

  1. Acesse o arquivo timeEvaluationRule.js, localizado na pasta rule dentro do pacote hcm-clocking-event-rule-nodejs.
  2. Antes de implementar qualquer lógica, consulte a documentação técnica incluída no pacote. Essa documentação descreve as classes e métodos disponíveis para uso nas regras de apuração.
  3. Após identificar os métodos apropriados, implemente a lógica de customização no método execute da classe TimeEvaluationRule.
  4. A lógica será construída com base nos métodos fornecidos pela classe TimeEvaluation, que permite consultar e manipular os dados da apuração diária de ponto, como situações, horários e marcações.
  5. Salve o arquivo e publique a Lambda novamente utilizando a opção Upload Lambda no AWS Cloud9.
  6. Reapure um dia com excedente de banco de horas e verifique se o comportamento da regra está correto.

Exemplo de cenário

Considere um cenário em que a empresa deseja limitar o crédito diário de Banco de Horas a no máximo 60 minutos. Qualquer tempo excedente deve ser automaticamente redirecionado para outra situação, como Horas Extras.

Imagine que um colaborador tenha registrado 120 minutos de trabalho além da jornada no mesmo dia. Sem nenhuma regra ativa, todo o tempo seria acumulado como Banco de Horas. No entanto, com a regra de customização ativa, a lógica aplicará o seguinte comportamento:

Essa lógica pode ser implementada com as funções getSituationHour e setSituationHour, disponíveis na documentação técnica do pacote hcm-clocking-event-rule-nodejs.

O código abaixo demonstra um exemplo prático de como aplicar uma redistribuição de minutos entre situações com base em um limite configurado:

// Método que processa a apuração de cada contrato timeEvaluation(timeEvaluation, contract) 
{
    const horasBh = timeEvaluation.getSituationHour(17);

    if (horasBh > 60) {
       timeEvaluation.setSituationHour(17, 60);
       timeEvaluation.setSituationHour(108, horasBh - 60);
    }
}

Após salvar a regra e realizar o Upload Lambda, reapure um dia com mais de 60 minutos em Banco de Horas. A tela de acertos deverá refletir a divisão entre as duas situações.

Exemplo de aplicação da regra

Veja abaixo o resultado da apuração com a regra ativa:

Marcações realizadas

Situações apuradas

08:00
12:00
13:30
19:15

17 - Crédito BH: 01:00
21 - Trabalho: 08:30
108 - Hora Extra: 00:15

A regra limitou o crédito de banco de horas a 60 minutos e transferiu o excedente para horas extras.

Este artigo ajudou você?