Regra de fechamento do banco de horas mensal
É utilizado para realizar customizações após o fechamento do banco de horas do sistema. Essa regra é executada para cada colaborador e banco de horas que for feito o fechamento.É possível desabilitar o fechamento padrão do banco de horas, através do cadastro do banco de horas, fazendo com que o fechamento seja executado somente através da regra.
Importante
Os nomes abaixo devem, obrigatoriamente, ser respeitados na implementação:
- Nome do pacote: custom.senior.bancohoras
- Nome da classe: RegraFechamentoBH
@Rule(description = "Descrição da regra")
public class RegraFechamentoBH extends FechamentoBH {
@Override
public void execute() {
ContextoGeralRH contextoGeral = getContainer().getContextoGeral();
ContextoFechamentoBH ctxFechamentoBH = getContainer().getContextoFechamentoBH();
int codBhr = ctxFechamentoBH.getBancoHoras();
LocalDate dataFinal = ctxFechamentoBH.getDataFinal();
Colaborador colaborador = ctxFechamentoBH.getColaborador();
int numEmp = colaborador.getNumEmp();
int tipCol = colaborador.getTipCol();
int numCad = colaborador.getNumCad();
int saldoBancoHoras = contextoGeral.getSaldoBancoHoras(
codBhr, numEmp, tipCol, numCad, dataFinal);
if (40 < saldoBancoHoras) {
int diferenca = saldoBancoHoras - 40;
ctxFechamentoBH.realizarFechamento(dataFinal, diferenca);
}
}
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 fechamento do banco de horas.