/**
  * Add organization id and gul_user_class when needed
  *
  * @param mixed $row array or \Traversable row
  * @param scalar $key
  * @return mixed Row array or false when errors occurred
  */
 public function translateRowValues($row, $key)
 {
     $row = parent::translateRowValues($row, $key);
     if (!$row) {
         return false;
     }
     if (!isset($row['gsf_id_organization'])) {
         $row['gsf_id_organization'] = $this->_organization->getId();
         if (!isset($row['gul_user_class'])) {
             $row['gul_user_class'] = $this->_organization->get('gor_user_class');
         }
     } elseif (!isset($row['gul_user_class'])) {
         $row['gul_user_class'] = $this->loader->getUserLoader()->getOrganization($row['gsf_id_organization'])->get('gor_user_class');
     }
     return $row;
 }
 /**
  * Function to allow the creation of search defaults in code
  *
  * @see getSearchFilter()
  *
  * @return array
  */
 public function getSearchDefaults()
 {
     if (!$this->defaultSearchData) {
         $orgId = $this->currentOrganization->getId();
         $this->defaultSearchData[-1] = "gtr_organizations LIKE '%|{$orgId}|%'";
     }
     return parent::getSearchDefaults();
 }
 /**
  * Function to allow the creation of search defaults in code
  *
  * @see getSearchFilter()
  *
  * @return array
  */
 public function getSearchDefaults()
 {
     if (!$this->defaultSearchData) {
         $orgId = $this->currentOrganization->getId();
         $this->defaultSearchData[-1] = "((gsu_insertable = 1 AND gsu_insert_organizations LIKE '%|{$orgId}|%') OR\r\n                EXISTS\r\n                (SELECT gro_id_track FROM gems__tracks INNER JOIN gems__rounds ON gtr_id_track = gro_id_track\r\n                    WHERE gro_id_survey = gsu_id_survey AND gtr_organizations LIKE '%|{$orgId}|%'\r\n                    ))";
     }
     return parent::getSearchDefaults();
 }
 /**
  * Returns the currently used organization
  *
  * @param int $default Optional default value
  * @return int An organization id
  */
 protected function getOrganizationId($default = null)
 {
     if ($orgId = $this->_getParam(\MUtil_Model::REQUEST_ID2, $default)) {
         return $orgId;
     }
     $data = $this->getCachedRequestData(false);
     if (isset($data[\MUtil_Model::REQUEST_ID2])) {
         return $data[\MUtil_Model::REQUEST_ID2];
     }
     return $this->currentOrganization->getId();
 }
 /**
  * Function to allow the creation of search defaults in code
  *
  * @see getSearchFilter()
  *
  * @return array
  */
 public function getSearchDefaults()
 {
     if (!isset($this->defaultSearchData[\MUtil_Model::REQUEST_ID2])) {
         if ($this->currentUser->hasPrivilege('pr.respondent.multiorg') && !$this->currentOrganization->canHaveRespondents()) {
             $this->defaultSearchData[\MUtil_Model::REQUEST_ID2] = '';
         } else {
             $this->defaultSearchData[\MUtil_Model::REQUEST_ID2] = $this->currentOrganization->getId();
         }
     }
     $this->defaultSearchData['gr2t_id_track'] = 'show_all';
     return parent::getSearchDefaults();
 }
 /**
  *
  * @param string $patientId
  * @param int|\Gems_User_Organization $organization
  * @param int $respondentId
  * @return boolean True when something changed
  */
 public function handleRespondentChanged($patientId, $organization, $respondentId = null)
 {
     if ($organization instanceof \Gems_User_Organization) {
         $org = $organization;
         $orgId = $organization->getId();
     } else {
         $org = $this->loader->getOrganization($organization);
         $orgId = $organization;
     }
     $changeEventClass = $org->getRespondentChangeEventClass();
     if ($changeEventClass) {
         $event = $this->loader->getEvents()->loadRespondentChangedEvent($changeEventClass);
         if ($event) {
             $respondent = $this->loader->getRespondent($patientId, $orgId, $respondentId);
             if ($event->processChangedRespondent($respondent)) {
                 // If no change was registered yet, do so now
                 if (!$this->getChanged()) {
                     $this->addChanged();
                 }
                 return true;
             }
         }
     }
     return false;
 }