Exemplo n.º 1
0
 /**
  * Retorna a fila de atendimentos do usuario
  * @param UsuarioSessao $usuario
  * @param integer $maxResults
  * @return array
  */
 public function atendimentos(UsuarioSessao $usuario, $maxResults = 0)
 {
     $ids = array(0);
     $servicos = $usuario->getServicos();
     foreach ($servicos as $s) {
         $ids[] = $s->getServico()->getId();
     }
     $cond = '';
     // se nao atende todos, filtra pelo tipo de atendimento
     if ($usuario->getTipoAtendimento() != UsuarioSessao::ATEND_TODOS) {
         $s = $usuario->getTipoAtendimento() == UsuarioSessao::ATEND_CONVENCIONAL ? '=' : '>';
         $cond = "p.peso {$s} 0";
         $rs = $this->atendimentosUsuario($usuario, $ids, $maxResults, $cond);
     } else {
         // se atende todos mas tem limite para sequencia de tipo de atendimento
         $maxPrioridade = (int) AppConfig::getInstance()->get("queue.limits.priority");
         if ($maxPrioridade > 0 && $usuario->getSequenciaPrioridade() > 0 && $usuario->getSequenciaPrioridade() % $maxPrioridade === 0) {
             $cond = "p.peso = 0";
         }
         $rs = $this->atendimentosUsuario($usuario, $ids, $maxResults, $cond);
         // se a lista veio vazia, tenta pegar qualquer um
         if (sizeof($rs) === 0) {
             $rs = $this->atendimentosUsuario($usuario, $ids, $maxResults);
         }
     }
     return $rs;
 }
Exemplo n.º 2
0
 private function checkUserConfig(Context $context, UsuarioSessao $usuario)
 {
     $service = new UsuarioService($this->em());
     $numeroLocalMeta = $service->meta($usuario->getWrapped(), 'atendimento.local');
     $numero = $numeroLocalMeta ? (int) $numeroLocalMeta->getValue() : $usuario->getLocal();
     $tipoAtendimentoMeta = $service->meta($usuario->getWrapped(), 'atendimento.tipo');
     $tipoAtendimento = $tipoAtendimentoMeta ? (int) $tipoAtendimentoMeta->getValue() : $usuario->getTipoAtendimento();
     if ($numero != $usuario->getLocal()) {
         $usuario->setLocal($numero);
     }
     if ($tipoAtendimento != $usuario->getTipoAtendimento()) {
         $usuario->setTipoAtendimento($tipoAtendimento);
     }
     $context->setUser($usuario);
 }