Example #1
0
 /**
  * Gets the historical journal for an object from the log database.
  * Objects will have VirtualAttributes available to lookup login, date, and action information from the journal object.
  * @param integer intId
  * @return Household[]
  */
 public static function GetJournalForId($intId)
 {
     $objDatabase = Household::GetDatabase()->JournalingDatabase;
     $objResult = $objDatabase->Query('SELECT * FROM household WHERE id = ' . $objDatabase->SqlVariable($intId) . ' ORDER BY __sys_date');
     return Household::InstantiateDbResult($objResult);
 }
Example #2
0
 /**
  * Given a search term, this will try and match all similarly matched households based on
  * hopuseholdparticipation indivudal match.
  * This will utilize soundex and other indexing methodologies.
  * 
  * THIS IS TODO and the algorithm needs to be tuned.
  * 
  * @param string $strFirstName
  * @param string $strLastName
  * @param integer $intNotHouseholdId HouseholdId NOT to include
  * @return Household[]
  */
 public static function LoadArrayBySearch($strFirstName, $strLastName, $intNotHouseholdId = null)
 {
     $strClauseArray = array();
     $strClauseArray[] = '(household_participation.household_id = household.id)';
     $strClauseArray[] = '(household_participation.person_id = person.id)';
     if (strlen($strFirstName)) {
         $strClauseArray[] = sprintf("(soundex(person.first_name) = soundex('%s') OR person.first_name LIKE '%s%%')", mysql_escape_string($strFirstName), mysql_escape_string($strFirstName));
     }
     if (strlen($strLastName)) {
         $strClauseArray[] = sprintf("(soundex(person.last_name) = soundex('%s') OR person.last_name LIKE '%s%%')", mysql_escape_string($strLastName), mysql_escape_string($strLastName));
     }
     if ($intNotHouseholdId) {
         $strClauseArray[] = sprintf("(household.id != %s)", mysql_escape_string($intNotHouseholdId));
     }
     $strQuery = 'SELECT DISTINCT household.* FROM household, household_participation, person WHERE ' . implode(' AND ', $strClauseArray) . ' ORDER BY household.name';
     return Household::InstantiateDbResult(Household::GetDatabase()->Query($strQuery));
 }