Merge pull request #3679 from yashodha/CRM-14951
[civicrm-core.git] / api / v3 / OptionValue.php
index 772a0d54656eee966bfa662134d8c3b38ff0fc15..6f83e2b564537dce44f8ec7ed9e3df9d059bdaa2 100644 (file)
@@ -3,7 +3,9 @@
 /**
  * Retrieve one or more OptionValues
  *
- * @param  array  $ params input parameters
+ * @param $params
+ *
+ * @internal param $array $ params input parameters
  *
  * {@example OptionValueGet.php 0}
  * @example OptionValueGet.php
@@ -33,14 +35,25 @@ function civicrm_api3_option_value_get($params) {
  *
  * {@example OptionValueCreate.php}
  *
+ * @param $params
+ *
+ * @throws API_Exception
  * @return array of newly created option_value property values.
  * {@getfields OptionValue_create}
  * @access public
  */
 function civicrm_api3_option_value_create($params) {
-
   $result = _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params);
-  civicrm_api('option_value', 'getfields', array('version' => 3, 'cache_clear' => 1, 'option_group_id' => $params['option_group_id']));
+  if (!empty($params['id']) && !array_key_exists('option_group_id', $params)) {
+    $groupId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionValue',
+      $params['id'], 'option_group_id', 'id'
+    );
+  }
+  else {
+    $groupId = $params['option_group_id'];
+  }
+
+  civicrm_api('option_value', 'getfields', array('version' => 3, 'cache_clear' => 1, 'option_group_id' => $groupId));
   return $result;
 }