Regra de apuração
É utilizada para realizar customizações na apuração de horas padrão do sistema, sendo possível modificar as horas apuradas pelo sistema e também criar novas situações. A regra de apuração é executada sempre que o sistema apurar um dia para um colaborador, após a apuração padrão do sistema e antes da gravação da apuração.
Ela é executada nos seguintes momentos:
- Cálculo de apuração (para cada dia apurado);
- Recálculo de apuração (para cada dia apurado);
- Acertos para colaborador e gestor. Sempre que o usuário utilizar a opção de apurar ou o sistema executar a apuração automaticamente como nas opções de "Editar marcações" e Históricos e programações.
@Rule(description = "DescricaoDaRegra")
public class RegraApuracao extends Apuracao {
private ContextoGeralRH getContextoGeral() {
return getContainer().getContextoGeral();
}
private ContextoApuracao getContextoApuracao() {
return getContainer().getContextoApuracao();
}
@Override
public void execute() {
//A implementação abaixo é apenas um exemplo. Não é necessário implementar desta mesma forma.
HistoricoApuracao historicoApuracao = getContextoApuracao().getHistoricoApuracao();
int anoData = getContextoGeral().getAnoData(historicoApuracao.getIniApu());
int numEmp = historicoApuracao.getNumEmp();
if (numEmp == 1 && anoData == 2014) {
getContextoApuracao().setGerarPendencia(true);
}
}
}
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>)
Contextos disponíveis: Contexto geral e Contexto de apuração.