コード例 #1
0
 /**
  * Adiciona uma nova senha na fila de chamada do painel de senhas.
  *
  * @param Unidade     $unidade
  * @param Atendimento $atendimento
  */
 public function chamarSenha(Unidade $unidade, Atendimento $atendimento)
 {
     $senha = new PainelSenha();
     $senha->setUnidade($unidade);
     $senha->setServico($atendimento->getServicoUnidade()->getServico());
     $senha->setNumeroSenha($atendimento->getSenha()->getNumero());
     $senha->setSiglaSenha($atendimento->getSenha()->getSigla());
     $senha->setMensagem($atendimento->getSenha()->getLegenda());
     // local
     $senha->setLocal($atendimento->getServicoUnidade()->getLocal()->getNome());
     $senha->setNumeroLocal($atendimento->getLocal());
     // prioridade
     $senha->setPeso($atendimento->getSenha()->getPrioridade()->getPeso());
     $senha->setPrioridade($atendimento->getSenha()->getPrioridade()->getNome());
     // cliente
     $senha->setNomeCliente($atendimento->getCliente()->getNome());
     $senha->setDocumentoCliente($atendimento->getCliente()->getDocumento());
     AppConfig::getInstance()->hook('panel.pre-call', array($atendimento, $senha));
     $this->em->persist($senha);
     $this->em->flush();
     AppConfig::getInstance()->hook('panel.call', array($atendimento, $senha));
 }
コード例 #2
0
 public function chamar(Atendimento $atendimento, Usuario $usuario, $local)
 {
     AppConfig::getInstance()->hook("attending.pre-call", array($atendimento, $usuario, $local));
     $atendimento->setUsuario($usuario);
     $atendimento->setLocal($local);
     $atendimento->setStatus(AtendimentoService::CHAMADO_PELA_MESA);
     $atendimento->setDataChamada(new DateTime());
     // atualiza o proximo da fila
     $query = $this->em->createQuery("\n            UPDATE \n                Novosga\\Model\\Atendimento e \n            SET \n                e.usuario = :usuario, e.local = :local, e.status = :novoStatus, e.dataChamada = :data\n            WHERE \n                e.id = :id AND e.status = :statusAtual\n        ");
     $query->setParameter('usuario', $atendimento->getUsuario()->getId());
     $query->setParameter('local', $atendimento->getLocal());
     $query->setParameter('novoStatus', $atendimento->getStatus());
     $query->setParameter('data', $atendimento->getDataChamada());
     $query->setParameter('id', $atendimento->getId());
     $query->setParameter('statusAtual', AtendimentoService::SENHA_EMITIDA);
     /* 
      * caso entre o intervalo do select e o update, o proximo ja tiver sido chamado
      * a consulta retornara 0, entao tenta pegar o proximo novamente (outro)
      */
     $success = $query->execute() > 0;
     if ($success) {
         AppConfig::getInstance()->hook("attending.call", array($atendimento, $usuario));
     }
     return $success;
 }
コード例 #3
0
 /**
  * {@inheritDoc}
  */
 public function getLocal()
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getLocal', array());
     return parent::getLocal();
 }