Amigos, estive quebrando a cabeça, pois não me conformava com essa forma que as configurações padrão da fila de espera estava gerenciando a organização das prioridades na fila. Eu tinha um dilema: Normal (peso 0), Prioritário 2 (peso 1), Prioritário 1 (peso 2) e Expresso (peso 3). A melhor solução que eu encontrei já pronta me trazia o seguinte resultado: O meu atendente atenderia todas as senhas "Expressas" indiferente do horário de chegada das senhas dos outros serviços enquanto houvesse; após e da mesma forma com a "Prioridade 2", após e da mesma forma com a "Prioridade 1"; e só quando não houvesse senhas com prioridade ele chamaria por ordem de chegada as senhas sem prioridade.
A solução veio da seguinte alteração no arquivo "FilaService.php"?
class FilaService extends ModelService
{
// default queue ordering
public static $ordering = array(
// wait time
/**array(
'exp' => '((p.peso + 1) * (CURRENT_TIMESTAMP() - e.dataChegada))',
'order' => 'DESC',
),
// priority
array(
'exp' => 'p.peso',
'order' => 'DESC',
), */
// ticket number
array(
'exp' => 'e.numeroSenha - (p.peso * 3)',
'order' => 'ASC',
),
);