Example #1
0
    /**
     * 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) . '
			');
    }
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));
 }