From: Eileen McNaughton Date: Tue, 28 Jul 2015 21:21:50 +0000 (+1200) Subject: CRM-16926 complete recurring transactions when payment_status_id = 1, X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=5ddd6889ec8898fee5d7964d0845d8ffbeeaceb5;p=civicrm-core.git CRM-16926 complete recurring transactions when payment_status_id = 1, carefully to grandfather in Conflicts: CRM/Contribute/BAO/Contribution/Utils.php --- diff --git a/api/v3/Contribution.php b/api/v3/Contribution.php index 20cc1aedc7..0cf23a94c8 100644 --- a/api/v3/Contribution.php +++ b/api/v3/Contribution.php @@ -419,19 +419,16 @@ function civicrm_api3_contribution_completetransaction(&$params) { if (!$contribution->id == $params['id']) { throw new API_Exception('A valid contribution ID is required', 'invalid_data'); } - try { - if (!$contribution->loadRelatedObjects($input, $ids, FALSE, TRUE)) { - throw new API_Exception('failed to load related objects'); - } - elseif ($contribution->contribution_status_id == CRM_Core_OptionGroup::getValue('contribution_status', 'Completed', 'name')) { - throw new API_Exception(ts('Contribution already completed')); - } - $input['trxn_id'] = !empty($params['trxn_id']) ? $params['trxn_id'] : $contribution->trxn_id; - $params = _ipn_process_transaction($params, $contribution, $input, $ids); + + if (!$contribution->loadRelatedObjects($input, $ids, FALSE, TRUE)) { + throw new API_Exception('failed to load related objects'); } - catch(Exception $e) { - throw new API_Exception('failed to load related objects' . $e->getMessage() . "\n" . $e->getTraceAsString()); + elseif ($contribution->contribution_status_id == CRM_Core_OptionGroup::getValue('contribution_status', 'Completed', 'name')) { + throw new API_Exception(ts('Contribution already completed'), 'contribution_completed'); } + $input['trxn_id'] = !empty($params['trxn_id']) ? $params['trxn_id'] : $contribution->trxn_id; + $params = _ipn_process_transaction($params, $contribution, $input, $ids); + } /**