Beispiel #1
0
 /**
  * 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();
     }
 }
Beispiel #2
0
 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();
         }
     }
 }
Beispiel #3
0
 /**
  * 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;
 }
Beispiel #4
0
 /**
  * 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);
     }
 }
Beispiel #6
0
 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();
             }
         }
     }
 }