/** * 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; }