X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContact%2FForm%2FDomain.php;h=801c555d85b1263828f6fbdd75557c5010e5ff06;hb=30c0347c1a0b2a22d70c9d9d36b1fd4b61f6178f;hp=2f23fa66ff0493b9555798783f37515f209c2534;hpb=ca5bec87585757261df111b0ba58a4c236ac2cf8;p=civicrm-core.git diff --git a/CRM/Contact/Form/Domain.php b/CRM/Contact/Form/Domain.php index 2f23fa66ff..801c555d85 100644 --- a/CRM/Contact/Form/Domain.php +++ b/CRM/Contact/Form/Domain.php @@ -1,9 +1,9 @@ _id)) { $params['id'] = $this->_id; @@ -115,7 +133,7 @@ class CRM_Contact_Form_Domain extends CRM_Core_Form { unset($params['id']); $locParams = array('contact_id' => $domainDefaults['contact_id']); - $defaults = CRM_Core_BAO_Location::getValues($locParams); + $this->_locationDefaults = $defaults = CRM_Core_BAO_Location::getValues($locParams); $config = CRM_Core_Config::singleton(); if (!isset($defaults['address'][1]['country_id'])) { @@ -126,21 +144,6 @@ class CRM_Contact_Form_Domain extends CRM_Core_Form { $defaults['address'][1]['state_province_id'] = $config->defaultContactStateProvince; } - if (!empty($defaults['address'])) { - foreach ($defaults['address'] as $key => $value) { - CRM_Contact_Form_Edit_Address::fixStateSelect($this, - "address[$key][country_id]", - "address[$key][state_province_id]", - "address[$key][county_id]", - CRM_Utils_Array::value('country_id', $value, - $config->defaultContactCountry - ), - CRM_Utils_Array::value('state_province_id', $value, - $config->defaultContactStateProvince - ) - ); - } - } } $defaults = array_merge($defaults, $domainDefaults); return $defaults; @@ -237,7 +240,6 @@ class CRM_Contact_Form_Domain extends CRM_Core_Form { * @access public */ public function postProcess() { - $params = array(); $params = $this->exportValues(); $params['entity_id'] = $this->_id; $params['entity_table'] = CRM_Core_BAO_Domain::getTableName(); @@ -245,10 +247,27 @@ class CRM_Contact_Form_Domain extends CRM_Core_Form { $defaultLocationType = CRM_Core_BAO_LocationType::getDefault(); - $location = array(); - $params['address'][1]['location_type_id'] = $defaultLocationType->id; - $params['phone'][1]['location_type_id'] = $defaultLocationType->id; - $params['email'][1]['location_type_id'] = $defaultLocationType->id; + if (isset($this->_locationDefaults['address'][1]['location_type_id'])) { + $params['address'][1]['location_type_id'] = $this->_locationDefaults['address'][1]['location_type_id']; + } + else { + $params['address'][1]['location_type_id'] = $defaultLocationType->id; + } + + if (isset($this->_locationDefaults['phone'][1]['location_type_id'])) { + $params['phone'][1]['location_type_id'] = $this->_locationDefaults['phone'][1]['location_type_id']; + } + else { + $params['phone'][1]['location_type_id'] = $defaultLocationType->id; + } + + if (isset($this->_locationDefaults['email'][1]['location_type_id'])) { + $params['email'][1]['location_type_id'] = $this->_locationDefaults['email'][1]['location_type_id']; + } + else { + $params['email'][1]['location_type_id'] = $defaultLocationType->id; + } + $params += array('contact_id' => $this->_contactId); $contactParams = array ( 'sort_name' => $domain->name, @@ -256,10 +275,15 @@ class CRM_Contact_Form_Domain extends CRM_Core_Form { 'legal_name' => $domain->name, 'organization_name' => $domain->name, 'contact_id' => $this->_contactId, + 'contact_type' => 'Organization', ); - CRM_Contact_BAO_Contact::add($contactParams); - $location = CRM_Core_BAO_Location::create($params, TRUE); + if ($this->_contactId) { + $contactParams['contact_sub_type'] = CRM_Contact_BAO_Contact::getContactSubType($this->_contactId); + } + + CRM_Contact_BAO_Contact::add($contactParams); + CRM_Core_BAO_Location::create($params, TRUE); CRM_Core_BAO_Domain::edit($params, $this->_id);