/**
  * 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;
 }
 /**
  * {@inheritDoc}
  */
 public function setNumeroSenha($numeroSenha)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'setNumeroSenha', array($numeroSenha));
     return parent::setNumeroSenha($numeroSenha);
 }