/**
  * Hook performing actual save
  *
  * @param string $newCode
  * @param int $userId
  * @return $changed
  */
 public function setReceptionCode($newCode, $userId)
 {
     $oldCode = $this->respondent->getReceptionCode();
     $code = $this->respondent->setReceptionCode($newCode);
     // Is the respondent really removed
     if ($code->isSuccess()) {
         $this->addMessage($this->_('Respondent restored.'));
         if ($this->formData['restore_tracks']) {
             $count = $this->respondent->restoreTracks($oldCode, $code);
             $this->addMessage(sprintf($this->plural('Restored %d track.', 'Restored %d tracks.', $count), $count));
         }
     } else {
         // Perform actual save, but not simple stop codes.
         if ($code->isForRespondents()) {
             $this->addMessage($this->_('Respondent deleted.'));
             $this->afterSaveRouteKeys = false;
             $this->resetRoute = true;
             $this->routeAction = 'index';
         } else {
             // Just a stop code
             $this->addMessage(sprintf($this->plural('Stopped %d track.', 'Stopped %d tracks.', $count), $count));
         }
     }
     return 1;
 }