CRM-13945 - Editing website field via profile creates new entry
[civicrm-core.git] / CRM / Core / BAO / OptionValue.php
index fab3a17efd8fb6f9b2f96f407605b51542114666..97da09c945ee9fa8a38f681e8365ec8c39e19a7e 100644 (file)
@@ -195,8 +195,19 @@ class CRM_Core_BAO_OptionValue extends CRM_Core_DAO_OptionValue {
       $p = array(1 => array($params['option_group_id'], 'Integer'));
       CRM_Core_DAO::executeQuery($query, $p);
     }
+
+    // CRM-13814 : evalute option group id
+    if (!array_key_exists('option_group_id', $params) && !empty($ids['optionValue'])) {
+      $groupId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionValue',
+        $ids['optionValue'], 'option_group_id', 'id'
+      );
+    }
+    else {
+      $groupId = $params['option_group_id'];
+    }
+
     $groupName = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup',
-      $params['option_group_id'], 'name', 'id'
+      $groupId, 'name', 'id'
     );
     if (in_array($groupName, CRM_Core_OptionGroup::$_domainIDGroups)) {
       $optionValue->domain_id = CRM_Utils_Array::value('domain_id', $params, CRM_Core_Config::domainID());