/**
  * Redireciona um atendimento para outro servico.
  *
  * @param Atendimento $atendimento
  * @param Usuario     $usuario
  * @param int|Unidade $unidade
  * @param int|Servico $servico
  *
  * @return Atendimento
  */
 public function redirecionar(Atendimento $atendimento, Usuario $usuario, $unidade, $servico)
 {
     // copiando a senha do atendimento atual
     $service = new ServicoService($this->em);
     $su = $service->servicoUnidade($unidade, $servico);
     AppConfig::getInstance()->hook('attending.pre-redirect', array($atendimento, $su, $usuario));
     $novo = new Atendimento();
     $novo->setLocal(0);
     $novo->setServicoUnidade($su);
     $novo->setPai($atendimento);
     $novo->setDataChegada(new DateTime());
     $novo->setStatus(self::SENHA_EMITIDA);
     $novo->setSiglaSenha($atendimento->getSenha()->getSigla());
     $novo->setNumeroSenha($atendimento->getNumeroSenha());
     $novo->setNumeroSenhaServico($atendimento->getNumeroSenhaServico());
     $novo->setUsuario($usuario);
     $novo->setUsuarioTriagem($usuario);
     $novo->setPrioridade($atendimento->getPrioridade());
     $novo->setNomeCliente($atendimento->getCliente()->getNome());
     $novo->setDocumentoCliente($atendimento->getCliente()->getDocumento());
     $this->em->persist($novo);
     $this->em->flush();
     AppConfig::getInstance()->hook('attending.redirect', $atendimento);
     return $novo;
 }
 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;
 }
Exemple #3
0
 /**
  * Retorna os servicos que o usuario nao atende na unidade atual
  * @return Locatacao
  */
 public function getServicosIndisponiveis()
 {
     if (!$this->servicosIndisponiveis && $this->getUnidade()) {
         $service = new ServicoService($this->em);
         $this->servicosIndisponiveis = $service->servicosIndisponiveis($this->getUnidade(), $this->getId());
     }
     return $this->servicosIndisponiveis;
 }
 private function servicos(Unidade $unidade, $where = '')
 {
     $service = new ServicoService($this->em());
     return $service->servicosUnidade($unidade, $where);
 }
 private function servicos(Unidade $unidade)
 {
     $service = new ServicoService($this->em());
     return $service->servicosUnidade($unidade, "e.status = 1");
 }