Ejemplo n.º 1
0
 public function ajax_update(Context $context)
 {
     $response = new JsonResponse();
     $unidade = $context->getUnidade();
     $filaService = new FilaService($this->em());
     if ($unidade) {
         $ids = $context->request()->get('ids');
         $ids = Arrays::valuesToInt(explode(',', $ids));
         if (count($ids)) {
             $response->data['total'] = 0;
             $servicos = $this->servicos($unidade, ' e.servico IN (' . implode(',', $ids) . ') ');
             $em = $context->database()->createEntityManager();
             if ($servicos) {
                 foreach ($servicos as $su) {
                     $rs = $filaService->filaServico($unidade, $su->getServico());
                     $total = count($rs);
                     // prevent overhead
                     if ($total) {
                         $fila = [];
                         foreach ($rs as $atendimento) {
                             $arr = $atendimento->jsonSerialize(true);
                             $fila[] = $arr;
                         }
                         $response->data['servicos'][$su->getServico()->getId()] = $fila;
                         ++$response->data['total'];
                     }
                 }
             }
             $response->success = true;
         }
     }
     return $response;
 }
Ejemplo n.º 2
0
 /**
  * Marca o atendimento como erro de triagem. E gera um novo atendimento para
  * o servico informado.
  *
  * @param Novosga\Context $context
  */
 public function redirecionar(Context $context)
 {
     $unidade = $context->getUnidade();
     $response = new JsonResponse(false);
     try {
         if (!$context->request()->isPost()) {
             throw new Exception(_('Somente via POST'));
         }
         if (!$unidade) {
             throw new Exception(_('Nenhum unidade escolhida'));
         }
         $usuario = $context->getUser();
         $servico = (int) $context->request()->post('servico');
         $atual = $this->atendimentoService->atendimentoAndamento($usuario->getId());
         if (!$atual) {
             throw new Exception(_('Nenhum atendimento em andamento'));
         }
         $redirecionado = $this->atendimentoService->redirecionar($atual, $usuario->getWrapped(), $unidade, $servico);
         if (!$redirecionado->getId()) {
             throw new Exception(sprintf(_('Erro ao redirecionar atendimento %s para o serviço %s'), $atual->getId(), $servico));
         }
         $response->success = $this->mudaStatusAtendimento($atual, [AtendimentoService::ATENDIMENTO_INICIADO, AtendimentoService::ATENDIMENTO_ENCERRADO], AtendimentoService::ERRO_TRIAGEM, 'dataFim');
         if (!$response->success) {
             throw new Exception(sprintf(_('Erro ao mudar status do atendimento %s para encerrado'), $atual->getId()));
         }
     } catch (Exception $e) {
         $response->message = $e->getMessage();
     }
     return $response;
 }
Ejemplo n.º 3
0
 public function acumular_atendimentos(Context $context)
 {
     $response = new JsonResponse();
     try {
         if (!$context->request()->isPost()) {
             throw new \Exception(_('Somente via POST'));
         }
         $unidade = $context->getUnidade();
         if (!$unidade) {
             throw new Exception(_('Nenhum unidade definida'));
         }
         $service = new AtendimentoService($this->em());
         $service->acumularAtendimentos($unidade);
         $response->success = true;
     } catch (Exception $e) {
         $response->message = $e->getMessage();
     }
     return $response;
 }
Ejemplo n.º 4
0
 public function distribui_senha(Context $context)
 {
     $response = new JsonResponse();
     $unidade = $context->getUnidade();
     $usuario = $context->getUser();
     $servico = (int) $context->request()->post('servico');
     $prioridade = (int) $context->request()->post('prioridade');
     $nomeCliente = $context->request()->post('cli_nome', '');
     $documentoCliente = $context->request()->post('cli_doc', '');
     try {
         $service = new AtendimentoService($this->em());
         $response->data = $service->distribuiSenha($unidade, $usuario, $servico, $prioridade, $nomeCliente, $documentoCliente)->jsonSerialize();
         $response->success = true;
     } catch (Exception $e) {
         $response->message = $e->getMessage();
         $response->success = false;
     }
     return $response;
 }
Ejemplo n.º 5
0
 public function distribui_senha(Context $context)
 {
     $response = new JsonResponse();
     $unidade = $context->getUnidade();
     $usuario = $context->getUser();
     $servico = (int) $context->request()->post('servico');
     $prioridade = (int) $context->request()->post('prioridade');
     $nomeCliente = $context->request()->post('cli_nome', '');
     $documentoCliente = $context->request()->post('cli_doc', '');
     try {
         /**************/
         //GRUPOJAV
         /**************/
         if (empty($nomeCliente)) {
             throw new Exception(_('Nome Obrigatório'));
         }
         if (empty($documentoCliente)) {
             throw new Exception(_('Documento Obrigatório'));
         }
         /**************/
         //FIM
         /**************/
         $service = new AtendimentoService($this->em());
         $response->data = $service->distribuiSenha($unidade, $usuario, $servico, $prioridade, $nomeCliente, $documentoCliente)->jsonSerialize();
         $response->success = true;
     } catch (Exception $e) {
         $response->message = $e->getMessage();
         $response->success = false;
     }
     return $response;
 }