Beispiel #1
0
 public function isValidSession(Context $context)
 {
     $user = $context->getUser();
     if (!$user || !$user->isAtivo()) {
         return false;
     }
     // verificando session id
     $em = $context->database()->createEntityManager();
     $query = $em->createQuery("SELECT u.sessionId FROM Novosga\\Model\\Usuario u WHERE u.id = :id");
     $query->setParameter('id', $user->getId());
     $rs = $query->getSingleResult();
     return $user->getSessionId() == $rs['sessionId'];
 }
Beispiel #2
0
 protected function preDelete(Context $context, SequencialModel $model)
 {
     if ($context->getUser()->getId() === $model->getId()) {
         throw new \Exception(_('Não é possível excluir si próprio.'));
     }
     // verificando a quantidade de atendimentos do usuario
     $total = 0;
     $models = array('Atendimento', 'ViewAtendimento');
     foreach ($models as $atendimentoModel) {
         $query = $this->em()->createQuery("SELECT COUNT(e) as total FROM Novosga\\Model\\{$atendimentoModel} e WHERE e.usuario = :usuario");
         $query->setParameter('usuario', $model->getId());
         $rs = $query->getSingleResult();
         $total += $rs['total'];
     }
     if ($total > 0) {
         throw new \Exception(_('Não é possível excluir esse usuário pois o mesmo já realizou atendimentos.'));
     }
     // excluindo vinculos do usuario (servicos e lotacoes)
     $models = array('ServicoUsuario', 'Lotacao');
     foreach ($models as $vinculoModel) {
         $query = $this->em()->createQuery("DELETE FROM Novosga\\Model\\{$vinculoModel} e WHERE e.usuario = :usuario");
         $query->setParameter('usuario', $model->getId());
         $query->execute();
     }
 }
 /**
  * Busca os atendimentos a partir do número da senha.
  *
  * @param Novosga\Context $context
  */
 public function consulta_senha(Context $context)
 {
     $response = new JsonResponse();
     $unidade = $context->getUser()->getUnidade();
     if ($unidade) {
         $numero = $context->request()->get('numero');
         $atendimentos = $this->atendimentoService->buscaAtendimentos($unidade, $numero);
         $response->data['total'] = count($atendimentos);
         foreach ($atendimentos as $atendimento) {
             $response->data['atendimentos'][] = $atendimento->jsonSerialize();
         }
         $response->success = true;
     } else {
         $response->message = _('Nenhuma unidade selecionada');
     }
     return $response;
 }
Beispiel #4
0
 public function update_servico(Context $context)
 {
     $response = new JsonResponse();
     try {
         if (!$context->request()->isPost()) {
             throw new \Exception(_('Somente via POST'));
         }
         $id = (int) $context->request()->post('id');
         $service = new ServicoService($this->em());
         $su = $service->servicoUnidade($context->getUser()->getUnidade(), $id);
         $sigla = $context->request()->post('sigla');
         $peso = (int) $context->request()->post('peso');
         $peso = max(1, $peso);
         $local = $this->em()->find("Novosga\\Model\\Local", (int) $context->request()->post('local'));
         $su->setSigla($sigla);
         $su->setPeso($peso);
         if ($local) {
             $su->setLocal($local);
         }
         $this->em()->merge($su);
         $this->em()->flush();
         $response->success = true;
     } catch (Exception $e) {
         $response->message = $e->getMessage();
     }
     return $response;
 }
Beispiel #5
0
 public function desativar_sessao(Context $context)
 {
     $response = new JsonResponse(true);
     $usuario = $context->getUser();
     $usuario->setAtivo(false);
     $context->setUser($usuario);
     return $response;
 }
Beispiel #6
0
 /**
  * Atualiza o status da senha para cancelado.
  *
  * @param Novosga\Context $context
  */
 public function cancelar(Context $context)
 {
     $response = new JsonResponse();
     try {
         $unidade = $context->getUser()->getUnidade();
         if (!$unidade) {
             throw new Exception(_('Nenhuma unidade selecionada'));
         }
         $id = (int) $context->request()->post('id');
         $atendimento = $this->getAtendimento($unidade, $id);
         $service = new AtendimentoService($this->em());
         $response->success = $service->cancelar($atendimento, $unidade);
     } catch (Exception $e) {
         $response->message = $e->getMessage();
     }
     return $response;
 }