/**
  * 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;
 }
 /**
  * Hook performing actual save
  *
  * @param string $newCode
  * @param int $userId
  * @return $changed
  */
 public function setReceptionCode($newCode, $userId)
 {
     $model = $this->getModel();
     $oldCode = $this->respondent->getReceptionCode()->getCode();
     $code = $model->setReceptionCode($this->formData['gr2o_patient_nr'], $this->formData['gr2o_id_organization'], $newCode, $userId, $oldCode);
     // Is the respondent really removed
     if ($code->isSuccess()) {
         $this->addMessage($this->_('Respondent restored.'));
         if ($this->formData['restore_tracks']) {
             $count = 0;
             $respTracks = $this->loader->getTracker()->getRespondentTracks($this->formData['grs_id_user'], $this->formData['gr2o_id_organization']);
             foreach ($respTracks as $respTrack) {
                 if ($respTrack instanceof \Gems_Tracker_RespondentTrack) {
                     if ($oldCode == $respTrack->getReceptionCode()->getCode()) {
                         $respTrack->setReceptionCode($code, null, $userId);
                         $count++;
                     }
                 }
             }
             $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;
 }