Example #1
0
 private function atendimentosUsuario(UsuarioSessao $usuario, $servicos, $maxResults = 0, $where = '')
 {
     $builder = $this->builder()->where("e.status = :status AND su.unidade = :unidade AND s.id IN (:servicos)");
     if (!empty($where)) {
         $builder->andWhere($where);
     }
     $this->applyOrders($builder, $usuario->getUnidade());
     $query = $builder->getQuery()->setParameter('status', AtendimentoService::SENHA_EMITIDA)->setParameter('unidade', $usuario->getUnidade()->getId())->setParameter('servicos', $servicos);
     if ($maxResults > 0) {
         $query->setMaxResults($maxResults);
     }
     return $query->getResult();
 }
 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);
 }
Example #3
0
 public function unidades(Context $context, UsuarioSessao $usuario)
 {
     if (!empty($this->unidades)) {
         return $this->unidades;
     }
     $em = $context->database()->createEntityManager();
     $query = $em->createQuery("\n            SELECT \n                e\n            FROM \n                Novosga\\Model\\Unidade e\n                INNER JOIN e.grupo g\n            WHERE \n                e.status = 1 AND\n                g.left >= :esquerda AND\n                g.right <= :direita\n            ORDER BY\n                e.nome\n        ");
     $lotacoes = $usuario->getWrapped()->getLotacoes();
     if (!empty($lotacoes)) {
         foreach ($lotacoes as $lotacao) {
             $query->setParameter('esquerda', $lotacao->getGrupo()->getLeft());
             $query->setParameter('direita', $lotacao->getGrupo()->getRight());
             $this->unidades = array_merge($this->unidades, $query->getResult());
         }
     }
     return $this->unidades;
 }