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); }
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; }