Пример #1
0
 /**
  * Create an address for a contact
  *
  * @param $cid int: contact id
  * @param $masterContactId int: set if this is a shared address
  *
  * @return array
  */
 private function _addAddress($cid, $masterContactId = NULL)
 {
     // Share existing address
     if ($masterContactId) {
         $dao = new CRM_Core_DAO_Address();
         $dao->is_primary = 1;
         $dao->contact_id = $masterContactId;
         $dao->find(TRUE);
         $dao->master_id = $dao->id;
         $dao->id = NULL;
         $dao->contact_id = $cid;
         $dao->is_primary = $this->isPrimary($cid, 'Address');
         $dao->location_type_id = $this->getContactType($masterContactId) == 'Organization' ? self::WORK : self::HOME;
         $this->_insert($dao);
     } else {
         $params = array('contact_id' => $cid, 'location_type_id' => $this->getContactType($cid) == 'Organization' ? self::MAIN : self::HOME, 'street_number' => mt_rand(1, 1000), 'street_number_suffix' => ucfirst($this->randomChar()), 'street_name' => $this->randomItem('street_name'), 'street_type' => $this->randomItem('street_type'), 'street_number_postdirectional' => $this->randomItem('address_direction'), 'county_id' => 1);
         $params['street_address'] = $params['street_number'] . $params['street_number_suffix'] . " " . $params['street_name'] . " " . $params['street_type'] . " " . $params['street_number_postdirectional'];
         if ($params['location_type_id'] == self::MAIN) {
             $params['supplemental_address_1'] = $this->randomItem('supplemental_addresses_1');
         }
         // Hack to add lat/long (limited to USA based addresses)
         list($params['country_id'], $params['state_province_id'], $params['city'], $params['postal_code'], $params['geo_code_1'], $params['geo_code_2'], ) = $this->getZipCodeInfo();
         $this->_addDAO('Address', $params);
         $params['state'] = $this->states[$params['state_province_id']];
         return $params;
     }
 }