function getRespondentsByUser(User $user, $filter = 0) { global $db; $respondents = array(); $test = ' and test = 0'; // this can be the supervisor looking $currentUser = new User($_SESSION['URID']); if ($currentUser->isTestMode()) { $test = ' and test = 1'; } if ($currentUser->getRegionFilter() > 0 && $currentUser->getPuid() > 0) { //only certain region $test = ' and puid = ' . $currentUser->getPuid(); } $result = $db->selectQuery('select *, ' . $this->getDeIdentified() . ' from ' . Config::dbSurvey() . '_respondents where urid = ' . prepareDatabaseString($user->getUrid()) . $test); while ($row = $db->getRow($result)) { $respondents[] = new Respondent($row); } if ($currentUser->getTestMode() && sizeof($respondents) == 0 && $currentUser->getRegionFilter() <= 0) { //psu filter!! if ($currentUser->getUserType() == USER_INTERVIEWER) { //only add if interviewer! if (dbConfig::defaultPanel() != PANEL_HOUSEHOLD) { //only if not household sample $respondents = $this->addTestRespondents($user); } } } if ($filter > 0) { //a filter!! $respondents = $this->filterRespondents($respondents, $filter); } return $respondents; }
static function getShortDeIdentified() { $query = 'aes_decrypt(name, "' . Config::smsPersonalInfoKey() . '") as name, '; $query .= 'aes_decrypt(address1, "' . Config::smsPersonalInfoKey() . '") as dwellingid, '; $query .= 'aes_decrypt(city, "' . Config::smsPersonalInfoKey() . '") as village '; return $query; } function getHouseholdsByUser(User $user, $filter = 0) { //do something with the filter! $currentUser = new User($_SESSION['URID']); // this can be the supervisor looking global $db; $households = array(); $test = ' and test = 0'; if ($currentUser->isTestMode()) { $test = ' and test = 1'; } if ($currentUser->getRegionFilter() > 0 && $currentUser->getPuid() > 0) { //only certain region $test = ' and puid = ' . $currentUser->getPuid(); } //urid!!! is this a supervisor? if ($user->getUserType() == USER_INTERVIEWER) { //only add if interviewer! $uridStr = 'urid = ' . prepareDatabaseString($user->getUrid()); } else { $users = new Users(); $uridStr = $users->getUsersBySupervisor($user->getUrid()); $urids = array(); foreach ($uridStr as $urid) { $urids[] = prepareDatabaseString($urid->getUrid()); } $uridStr = 'urid = ' . implode(' or urid = ', $urids); } $query = 'select *, ' . $this->getDeIdentified() . ' from ' . Config::dbSurvey() . '_households where (' . $uridStr . ') ' . $test . ' ORDER by primkey'; /* if ($filter == 6){ //moved out! handle here, not in filter global $survey; $query = 'select *, ' . $this->getDeIdentified() . ' from ' . Config::dbSurvey() . '_data as t1 left join '; $query .= Config::dbSurvey() . '_households as t2 on t1.primkey = t2.primkey where (' . $uridStr . ') ' . $test; $query .= ' and variablename like "HR011[%" and aes_decrypt(answer, "' . $survey->getDataEncryptionKey() . '") = "1"'; }*/ // echo '<br/><br/><br/>' . $query; $result = $db->selectQuery($query); while ($row = $db->getRow($result)) { $households[] = new Household($row); } if ($currentUser->getTestMode() && sizeof($households) == 0 && $currentUser->getRegionFilter() <= 0) { //psu filter if ($currentUser->getUserType() == USER_INTERVIEWER) { //only add if interviewer! $households = $this->addTestHouseholds($user);