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; }
/** * 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; }
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; }
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; }
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; }