/** * Deletes all associated ParentPagerHouseholds * @return void */ public function DeleteAllParentPagerHouseholds() { if (is_null($this->intId)) { throw new QUndefinedPrimaryKeyException('Unable to call UnassociateParentPagerHousehold on this unsaved Household.'); } // Get the Database Object for this Class $objDatabase = Household::GetDatabase(); // Journaling if ($objDatabase->JournalingDatabase) { foreach (ParentPagerHousehold::LoadArrayByHouseholdId($this->intId) as $objParentPagerHousehold) { $objParentPagerHousehold->Journal('DELETE'); } } // Perform the SQL Query $objDatabase->NonQuery(' DELETE FROM `parent_pager_household` WHERE `household_id` = ' . $objDatabase->SqlVariable($this->intId) . ' '); }
/** * 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)); }