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
Exemplo:
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.
<div class="Code"><p><span class="bordo">package</span> custom.senior.incidente; </p><p><span class="bordo">public class</span> RegraIncidente <span class="bordo">extends</span> PontoRegraIncidente {</p><p class="Ident1"><span class="anotacao">@Override</span></p><p class="Ident1"><span class="bordo">public void</span> calcular(ContextoIncidente contextoIncidente) {</p><p class="Ident3"><span class="comentario">//Pega o dia apurado no contexto de incidentes</span></p><p class="Ident3">LocalDate dataApuracao = contextoIncidente.getDataApuracao();</p><p class="Ident3"></p><p class="Ident3"><span class="comentario">//Apuração do dia</span></p><p class="Ident3">ApuracaoColaborador apuracaoColaborador = contextoIncidente.getApuracaoColaborador(dataApuracao);</p><p class="Ident3"><span class="comentario">//Se tem alguma exceção no dia OU possui falta de marcações</span></p><p class="Ident3"><span class="bordo">if</span> (apuracaoColaborador.getTemExc() == 'S' || apuracaoColaborador.getFalMar() == 'S') {</p><p class="Ident4"><span class="comentario">//Então cria um incidente do tipo 39, que é customizado nesse exemplo</span></p><p class="Ident4">contextoIncidente.criarIncidente(39);</p><p class="Ident3">}</p><p class="Ident1">}</p><p>}</p></div>
- 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.
- Quando existir uma regra configurada no ponto de regra de geração de incidentes, a criação de incidentes passa a ser tratada exclusivamente por esse ponto. Nesse cenário, métodos de criação de alertas ou incidentes utilizados em outros pontos de regra, como o ponto de apuração, não são executados.
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.
English
Español

English
Español

