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.
Os nomes abaixo devem, obrigatoriamente, ser respeitados na implementação:
- Nome do pacote: custom.senior.bancohoras
- Nome da classe: RegraFechamentoBH
Exemplo:
<div class="Code"><p><span class="anotacao">@Rule</span>(description = <span class="azul">"Descrição da regra"</span>)</p><p><span class="bordo">public class</span> RegraFechamentoBH <span class="bordo">extends</span> FechamentoBH {</p><p><span class="anotacao">@Override</span></p><p><span class="bordo">public void</span> execute() {</p><p class="Ident3">ContextoGeralRH contextoGeral = getContainer().getContextoGeral();</p><p class="Ident3">ContextoFechamentoBH ctxFechamentoBH = getContainer().getContextoFechamentoBH();</p><p class="Ident3"><span class="bordo">int</span> codBhr = ctxFechamentoBH.getBancoHoras();</p><p class="Ident3">LocalDate dataFinal = ctxFechamentoBH.getDataFinal();</p><p class="Ident3">Colaborador colaborador = ctxFechamentoBH.getColaborador();</p><p class="Ident3"><span class="bordo">int</span> numEmp = colaborador.getNumEmp();</p><p class="Ident3"><span class="bordo">int</span> tipCol = colaborador.getTipCol();</p><p class="Ident3"><span class="bordo">int</span> numCad = colaborador.getNumCad();</p><p class="Ident3"><span class="bordo">int</span> saldoBancoHoras = contextoGeral.getSaldoBancoHoras(</p><p class="Ident3">codBhr, numEmp, tipCol, numCad, dataFinal);</p><p class="Ident3"><span class="bordo">if</span> (40 < saldoBancoHoras) {</p><p class="Ident6"><span class="bordo">int</span> diferenca = saldoBancoHoras - 40;</p><p class="Ident6">ctxFechamentoBH.realizarFechamento(dataFinal, diferenca);</p><p class="Ident3">}</p><p>}</p></div> 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.
English
Español

English
Español

