Regra de geração de incidentes
É utilizada para gerar incidentes de ponto customizados de acordo com a política da empresa. Através dessa regra é possível analisar informações do colaborador, como históricos, situações, marcações, definições e informações da ficha cadastral para que com essas informações perceba possíveis incidentes de ponto.
Esta regra é executada nos seguintes momentos:
- Cálculo da apuração (para cada dia apurado);
- Recálculo da apuração (para cada dia apurado);
- Acertos para colaborador e gestor, sempre que o usuário salvar alterações vindas de um acerto de ponto.
Para criar uma regra de geração de incidentes é necessário seguir as seguintes premissas:
- Classe que a regra deve ser herdada: PontoRegraIncidente
- Classe da regra: RegraIncidente
- Pacote padrão: custom.senior.incidente
Regra do contexto de incidentes para demonstração de uso:
Tem como objetivo criar um incidente quando o colaborador tem alguma exceção ou falta de marcações no dia apurado.
package custom.senior.incidente;
public class RegraIncidente extends PontoRegraIncidente {
@Override
public void calcular(ContextoIncidente contextoIncidente) {
//Pega o dia apurado no contexto de incidentes
LocalDate dataApuracao = contextoIncidente.getDataApuracao();
//Apuração do dia
ApuracaoColaborador apuracaoColaborador = contextoIncidente.getApuracaoColaborador(dataApuracao);
//Se tem alguma exceção no dia OU possui falta de marcações
if (apuracaoColaborador.getTemExc() == 'S' || apuracaoColaborador.getFalMar() == 'S') {
//Então cria um incidente do tipo 39, que é customizado nesse exemplo
contextoIncidente.criarIncidente(39);
}
}
}
Importante
Para a criação de incidentes customizados, via ponto de regra, é necessário ter previamente cadastrado um incidente do tipo 1 na base, caso contrário o incidente não será criado para o colaborador.
Importante
Para que um campo de usuário customizado esteja com os valores atualizados, sem a necessidade de atualização da página, é necessário que a regra busque este valor através da entidade da tela, utilizando o método getField().getValue() do cursor e especificando o campo da seguinte maneira:
Object value = cursor.getField(<nome do campo de usuário>).getValue(<entidade que representa tabela>)
Contexto disponível: Contexto de geração de incidentes.