Regra de montagem de hierarquia
É utilizada para disponibilizar ao usuário uma maneira de atribuir gestores a um colaborador específico, mesmo que a hierarquia for montada através de um posto de trabalho.
Regra de customização para gerar a tabela de hierarquia:
Essa regra o gestor irá executar diariamente e para isso é necessário o consultor:
- Criar a classe custom.senior.hierarquia.RegraHierarquiaPonto e extends de PontoRegraHierarquiaPonto;
- Implementar o método buscaGestor (int empresa, int tipoColaborador, int cadastro), que deve retornar a lista dos gestores liderados.
public class PontoRegraHierarquiaPontoPostoTrabalho extends PontoRegraHierarquiaPonto {
@Override
public List<Colaborador> buscaGestor(int empresa, int tipoColaborador, int cadastro) {
HistoricoCargo historicoCargo = getContextoHierarquiaPonto().getHistoricoCargo(new LocalDate());
HistoricoApuracao historicoApuracao = getContextoHierarquiaPonto().getHistoricoApuracao(new LocalDate());
HistoricoCentroCusto historicoCentroCusto = getContextoHierarquiaPonto().getHistoricoCentrodeCusto(new LocalDate());
HistoricoFilial historicoFilial = getContextoHierarquiaPonto().getHistoricoFilial(new LocalDate());
HistoricoLocal historicoLocal = getContextoHierarquiaPonto().getHistoricoLocal(new LocalDate());
HistoricoSindicato historicoSindicato = getContextoHierarquiaPonto().getHistoricoSindicato(new LocalDate());
List<Colaborador> gestores = getContextoHierarquiaPonto().buscaGestorPostoTrabalho(empresa, tipoColaborador, cadastro);
if(gestores.isEmpty()) {
List<Colaborador> colaboradores = new ArrayList<Colaborador>();
colaboradores.add(new Colaborador(empresa, tipoColaborador, cadastro));
}
return gestores;
}
}
Observação
Para ter acesso ao métodos da regra, o consultor deve utilizar o método getContextoHierarquiaPonto().
Para buscar o gestor do posto de trabalho, deve utilizar: getContextoHierarquiaPonto().buscaGestorPostoTrabalho(empresa, tipoColaborador, cadastro), que retorna uma lista de gestores.
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.