Пример #1
0
 /**
  * Imprime a senha informada pelo atendimento.
  *
  * @param \Novosga\Model\Atendimento $atendimento
  *
  * @throws Exception
  *
  * @return string
  */
 public function printTicket(\Novosga\Model\Atendimento $atendimento)
 {
     // custom view parameters
     $params = AppConfig::getInstance()->get('ticket.print.params');
     if (is_callable($params)) {
         $params = $params($atendimento);
     }
     if (is_array($params)) {
         foreach ($params as $k => $v) {
             $this->app()->view()->set($k, $v);
         }
     }
     $this->app()->view()->set('atendimento', $atendimento);
     $this->app()->view()->set('now', new DateTime());
     // custom print template
     $template = AppConfig::getInstance()->get('ticket.print.template');
     if (empty($template)) {
         $template = 'print.html.twig';
     }
     return $template;
 }
Пример #2
0
 public function set_local(Context $context)
 {
     $response = new JsonResponse();
     try {
         $unidade = $context->getUnidade();
         $usuario = $context->getUser();
         $numero = (int) $context->request()->post('local');
         $tipo = (int) $context->request()->post('tipo');
         AppConfig::getInstance()->hook('sga.atendimento.pre-setlocal', [$unidade, $usuario, $numero, $tipo]);
         $this->usuarioService->meta($usuario->getWrapped(), UsuarioService::ATTR_ATENDIMENTO_LOCAL, $numero);
         $this->usuarioService->meta($usuario->getWrapped(), UsuarioService::ATTR_ATENDIMENTO_TIPO, $tipo);
         $usuario->setLocal($numero);
         $usuario->setTipoAtendimento($tipo);
         $context->setUser($context->getUser());
         AppConfig::getInstance()->hook('sga.atendimento.setlocal', [$unidade, $usuario, $numero, $tipo]);
         $response->success = true;
     } catch (\Exception $e) {
         $response->message = $e->getMessage();
         $response->success = false;
     }
     return $response;
 }
Пример #3
0
 /**
  * Reativa o atendimento para o mesmo serviço e mesma prioridade.
  * Só pode reativar atendimentos que foram: Cancelados ou Não Compareceu.
  *
  * @param Atendimento $atendimento
  * @param Unidade     $unidade
  *
  * @return bool
  */
 public function reativar(Atendimento $atendimento, Unidade $unidade)
 {
     AppConfig::getInstance()->hook('attending.pre-reactivate', $atendimento);
     // reativa apenas se estiver finalizada (data fim diferente de nulo)
     $success = $this->em->createQuery('
             UPDATE
                 Novosga\\Model\\Atendimento e
             SET
                 e.status = :status,
                 e.dataFim = NULL
             WHERE
                 e.id = :id AND
                 e.unidade = :unidade AND
                 e.status IN (:statuses)
             ')->setParameter('status', self::SENHA_EMITIDA)->setParameter('statuses', array(self::SENHA_CANCELADA, self::NAO_COMPARECEU))->setParameter('id', $atendimento)->setParameter('unidade', $unidade)->execute() > 0;
     if ($success) {
         $this->em->refresh($atendimento);
         AppConfig::getInstance()->hook('attending.reactivate', $atendimento);
     }
     return $success;
 }
Пример #4
0
 /**
  * Aplica a ordenação na QueryBuilder
  * @param QueryBuilder $builder
  */
 public function applyOrders(QueryBuilder $builder, Unidade $unidade)
 {
     $ordering = AppConfig::getInstance()->get("queue.ordering");
     if (is_callable($ordering)) {
         $ordering = $ordering($unidade);
     }
     if (!$ordering || empty($ordering)) {
         $ordering = self::$ordering;
     }
     foreach ($ordering as $item) {
         if (!isset($item['exp'])) {
             break;
         }
         $exp = $item['exp'];
         $order = isset($item['order']) ? $item['order'] : 'ASC';
         $builder->addOrderBy($exp, $order);
     }
 }
Пример #5
0
 /**
  * @return \Novosga\Auth\AuthProviderFactory
  */
 public static function authenticationFactory()
 {
     $factory = null;
     $factoryClass = AppConfig::getInstance()->get('auth.factory');
     if (!empty($factoryClass) && class_exists($factoryClass)) {
         $factory = new $factoryClass();
     }
     if (!$factory || !$factory instanceof \Novosga\Auth\AuthProviderFactory) {
         $factory = new \Novosga\Auth\DefaultAuthProviderFactory();
     }
     return $factory;
 }