/** * Sets the address record as the "Current" address, and all others as "Previous" * Address MUST be associated with the household or this will throw an exception * @param Address $objCurrentAddress * @return void */ public function SetAsCurrentAddress(Address $objCurrentAddress) { if ($objCurrentAddress->HouseholdId != $this->intId) { throw new QCallerException('Address does not belong to this Household'); } // Get any home address and home phone records for this household (and any from-split households) $intAddressIdArray = array(); $intPhoneIdArray = array(); foreach ($this->GetAddressArray() as $objAddress) { if ($objAddress->Id != $objCurrentAddress->Id && $objAddress->CurrentFlag) { $objAddress->CurrentFlag = false; $objAddress->Save(); } $intAddressIdArray[$objAddress->Id] = true; foreach ($objAddress->GetPhoneArray() as $objPhone) { $intPhoneIdArray[$objPhone->Id] = true; } } // Add any old HomeAddresses from previous households foreach ($this->GetHouseholdSplitAsSplitArray() as $objHouseholdSplit) { foreach ($objHouseholdSplit->Household->GetAddressArray() as $objAddress) { $intAddressIdArray[$objAddress->Id] = true; foreach ($objAddress->GetPhoneArray() as $objPhone) { $intPhoneIdArray[$objPhone->Id] = true; } } } if (!$objCurrentAddress->CurrentFlag) { $objCurrentAddress->CurrentFlag = true; $objCurrentAddress->Save(); } // Update "MailingAddress" and "StewardshipAddress" info for HouseholdParticipants // Update "PrimaryAddressText" info for HouseholdParticipants foreach ($this->GetHouseholdParticipationArray(QQ::Expand(QQN::HouseholdParticipation()->Person->Id)) as $objHouseholdParticipation) { $objPerson = $objHouseholdParticipation->Person; if (array_key_exists($objPerson->MailingAddressId, $intAddressIdArray)) { $objPerson->MailingAddress = $objCurrentAddress; } if (array_key_exists($objPerson->StewardshipAddressId, $intAddressIdArray)) { $objPerson->StewardshipAddress = $objCurrentAddress; } if (array_key_exists($objPerson->PrimaryPhoneId, $intPhoneIdArray)) { $objPerson->PrimaryPhone = $objCurrentAddress->PrimaryPhone; } $objPerson->RefreshPrimaryContactInfo(); } }
protected static function GenerateAddressesAndPhonesForPerson(Person $objPerson) { $intAddressCount = rand(0, 5); for ($i = 0; $i < $intAddressCount; $i++) { $objAddress = new Address(); $objAddress->AddressTypeId = QDataGen::GenerateFromArray(array_keys(AddressType::$NameArray)); $objAddress->Person = $objPerson; $objAddress->Address1 = QDataGen::GenerateStreetAddress(); if (rand(0, 1)) { $objAddress->Address2 = QDataGen::GenerateAddressLine2(); } $objAddress->City = QDataGen::GenerateCity(); $objAddress->State = QDataGen::GenerateUsState(); $objAddress->ZipCode = rand(10000, 99999); $objAddress->Country = 'US'; $objAddress->InvalidFlag = false; $objAddress->VerificationCheckedFlag = true; switch ($objAddress->AddressTypeId) { case AddressType::Temporary: $objAddress->CurrentFlag = true; $dttNextYear = QDateTime::Now(); $dttNextYear->Year++; $objAddress->DateUntilWhen = QDataGen::GenerateDateTime(QDateTime::Now(), $dttNextYear); break; default: $objAddress->CurrentFlag = rand(0, 1); break; } $objAddress->Save(); } $intPhoneCount = rand(0, 5); $objPhoneArray = array(); for ($i = 0; $i < $intPhoneCount; $i++) { $objPhone = new Phone(); $objPhone->PhoneTypeId = QDataGen::GenerateFromArray(array_keys(PhoneType::$NameArray)); while ($objPhone->PhoneTypeId == PhoneType::Home) { $objPhone->PhoneTypeId = QDataGen::GenerateFromArray(array_keys(PhoneType::$NameArray)); } $objPhone->Number = QDataGen::GeneratePhone(); $objPhone->Person = $objPerson; $objPhone->Save(); $objPhoneArray[] = $objPhone; } if ($intPhoneCount && !rand(0, 2)) { QDataGen::GenerateFromArray($objPhoneArray)->SetAsPrimary(); } $intEmailCount = rand(0, 5); $objEmailArray = array(); for ($i = 0; $i < $intEmailCount; $i++) { $objEmail = new Email(); $objEmail->Address = QDataGen::GenerateEmail($objPerson->FirstName, $objPerson->LastName); $objEmail->Person = $objPerson; $objEmail->Save(); $objEmailArray[] = $objEmail; } if ($intEmailCount && !rand(0, 2)) { QDataGen::GenerateFromArray($objEmailArray)->SetAsPrimary(); } $intMaxId = OtherContactMethod::CountAll(); for ($intOtherContactMethodId = 1; $intOtherContactMethodId <= $intMaxId; $intOtherContactMethodId++) { if (!rand(0, 2)) { $objContactInfo = new OtherContactInfo(); $objContactInfo->Person = $objPerson; $objContactInfo->OtherContactMethodId = $intOtherContactMethodId; $objContactInfo->Value = QDataGen::GenerateUsername($objPerson->FirstName, $objPerson->LastName); $objContactInfo->Save(); } } }
/** * Given an Address record -- copy it and assign it to the specified Person. * * This is typically used to take a HomeAddress record for a Household and to resassign it * as a previous home address for each member of a household that is being merged with another household. * * ANY LINKED PHONE NUMBERS WILL BE LOST. * * This will return the new address record that is now linked to the Person. * @param Person $objPerson * @param integer $intAddressTypeId * @param boolean $blnCurrentFlag * @return Address */ public function CopyForPerson(Person $objPerson, $intAddressTypeId, $blnCurrentFlag) { $objAddress = new Address(); $objAddress->AddressTypeId = $intAddressTypeId; $objAddress->Person = $objPerson; $objAddress->Address1 = $this->Address1; $objAddress->Address2 = $this->Address2; $objAddress->Address3 = $this->Address3; $objAddress->City = $this->City; $objAddress->State = $this->State; $objAddress->ZipCode = $this->ZipCode; $objAddress->Country = $this->Country; $objAddress->CurrentFlag = $blnCurrentFlag; $objAddress->InvalidFlag = $this->InvalidFlag; $objAddress->Save(); return $objAddress; }
/** * This will set this phone object as the "primary" phone number for (if associated to an address) the address * or (if associated to a person) the person. * * Alternatively, if the phone is associated with the address (e.g. a home phone), you can explicitly * pass in a Person in that house to set as "primary" for that person. * * This will automatically UNSET as primary any current-primary phone (if applicable) * @return void */ public function SetAsPrimary(Person $objPerson = null, Address $objAddress = null) { if ($objPerson) { if ($this->PersonId != $objPerson->Id && (!$this->Address || !$this->Address->Household || !HouseholdParticipation::LoadByPersonIdHouseholdId($objPerson->Id, $this->Address->HouseholdId))) { throw new QCallerException('Cannot set as primary phone for person not in the household for this address'); } $objPerson->PrimaryPhone = $this; $objPerson->Save(); $objPerson->RefreshPrimaryContactInfo(); } else { if ($objAddress) { if ($objAddress->Id != $this->intAddressId) { throw new QCallerException('Cannot set as primary phone for home address that does not own this phone object'); } $objAddress->PrimaryPhone = $this; $objAddress->Save(); } else { if ($this->Address) { $this->Address->PrimaryPhone = $this; $this->Address->Save(); } else { $this->Person->PrimaryPhone = $this; $this->Person->Save(); $this->Person->RefreshPrimaryContactInfo(); } } } }
/** * API Method inserts a new Address record and render response as JSON */ public function Create() { try { $json = json_decode(RequestUtil::GetBody()); if (!$json) { throw new Exception('The request body does not contain valid JSON'); } $address = new Address($this->Phreezer); // TODO: any fields that should not be inserted by the user should be commented out // this is an auto-increment. uncomment if updating is allowed // $address->Idaddress = $this->SafeGetVal($json, 'idaddress'); $address->City = $this->SafeGetVal($json, 'city'); $address->Contact = $this->SafeGetVal($json, 'contact'); $address->Street = $this->SafeGetVal($json, 'street'); $address->Number = $this->SafeGetVal($json, 'number'); $address->Complement = $this->SafeGetVal($json, 'complement'); $address->Zipcode = $this->SafeGetVal($json, 'zipcode'); $address->Otherinformation = $this->SafeGetVal($json, 'otherinformation'); $address->Validate(); $errors = $address->GetValidationErrors(); if (count($errors) > 0) { $this->RenderErrorJSON('Please check the form for errors', $errors); } else { $address->Save(); $this->RenderJSON($address, $this->JSONPCallback(), true, $this->SimpleObjectParams()); } } catch (Exception $ex) { $this->RenderExceptionJSON($ex); } }
public function SaveAddresses($addresses) { if ($this->isAddress == true) { $this->DeleteAddresses(); if (is_array($addresses)) { foreach ($addresses as $key => $add) { $address = new Address(); $address->person = $this->person_record_number; $address->address_record_number = shn_create_uuid('address'); $address->address_type = $addresses[$key]['address_type']; $address->address = $addresses[$key]['address']; $address->country = $addresses[$key]['country']; $address->phone = $addresses[$key]['phone']; $address->cellular = $addresses[$key]['cellular']; $address->fax = $addresses[$key]['fax']; $address->email = $addresses[$key]['email']; $address->web = $addresses[$key]['web']; $address->start_date = $addresses[$key]['start_date']; $address->end_date = $addresses[$key]['end_date']; $address->Save(); } } } }