CRM-15904 fix sequential with reload
authoreileenmcnaughton <eileen@fuzion.co.nz>
Wed, 5 Aug 2015 10:39:25 +0000 (10:39 +0000)
committereileenmcnaughton <eileen@fuzion.co.nz>
Wed, 5 Aug 2015 10:39:25 +0000 (10:39 +0000)
CRM/Utils/API/ReloadOption.php

index 162d408516657d435f98fbf54f4f59f1adf900ed..af863ab62f9577dfdc075fc3934ac9f58c2b0c2a 100644 (file)
@@ -80,6 +80,7 @@ class CRM_Utils_API_ReloadOption implements API_Wrapper {
       if (!CRM_Utils_Array::value('is_error', $result, FALSE)) {
         $reloadMode = $apiRequest['params']['options']['reload'];
       }
+      $id = (!empty($apiRequest['params']['sequential'])) ? 0 : $result['id'];
     }
 
     switch ($reloadMode) {
@@ -98,16 +99,16 @@ class CRM_Utils_API_ReloadOption implements API_Wrapper {
         if ($reloadResult['is_error']) {
           throw new API_Exception($reloadResult['error_message']);
         }
-        $result['values'][$result['id']] = array_merge($result['values'][$result['id']], $reloadResult['values'][$result['id']]);
+        $result['values'][$id] = array_merge($result['values'][$id], $reloadResult['values'][$result['id']]);
         return $result;
 
       case 'selected':
         $params = array(
-          'id' => $result['id'],
+          'id' => $id,
           'return' => $this->pickReturnFields($apiRequest),
         );
         $reloadResult = civicrm_api3($apiRequest['entity'], 'get', $params);
-        $result['values'][$result['id']] = array_merge($result['values'][$result['id']], $reloadResult['values'][$result['id']]);
+        $result['values'][$id] = array_merge($result['values'][$id], $reloadResult['values'][$id]);
         return $result;
 
       default: