Skip to content
Snippets Groups Projects
Commit fedc226f authored by eileen's avatar eileen
Browse files

financial#152 Pass contribution directly to completeOrder

We have done quite a a bit of cleanup on this and the only value in objects now used is
contribution - this is really explict in the code as we actually unset objects after
extracting contribution.

This alters the function signature such that it receives contribution directly rather than
in an array
parent 6ed4a274
Branches
Tags
No related merge requests found
......@@ -4363,7 +4363,7 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
*
* @param array $input
* @param array $ids
* @param array $objects
* @param \CRM_Contribute_BAO_Contribution $contribution
* @param bool $isPostPaymentCreate
* Is this being called from the payment.create api. If so the api has taken care of financial entities.
* Note that our goal is that this would only ever be called from payment.create and never handle financials (only
......@@ -4373,11 +4373,8 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac
* @throws \CRM_Core_Exception
* @throws \CiviCRM_API3_Exception
*/
public static function completeOrder($input, $ids, $objects, $isPostPaymentCreate = FALSE) {
public static function completeOrder($input, $ids, $contribution, $isPostPaymentCreate = FALSE) {
$transaction = new CRM_Core_Transaction();
$contribution = $objects['contribution'];
// Unset objects just to make it clear it's not used again.
unset($objects);
// @todo see if we even need this - it's used further down to create an activity
// but the BAO layer should create that - we just need to add a test to cover it & can
// maybe remove $ids altogether.
......
......@@ -229,7 +229,7 @@ class CRM_Core_Payment_AuthorizeNetIPN extends CRM_Core_Payment_BaseIPN {
return TRUE;
}
CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, ['contribution' => $objects['contribution']]);
CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects['contribution']);
// Only Authorize.net does this so it is on the a.net class. If there is a need for other processors
// to do this we should make it available via the api, e.g as a parameter, changing the nuance
......
......@@ -427,7 +427,7 @@ class CRM_Core_Payment_BaseIPN {
'related_contact' => $ids['related_contact'] ?? NULL,
'participant' => !empty($objects['participant']) ? $objects['participant']->id : NULL,
'contributionRecur' => !empty($objects['contributionRecur']) ? $objects['contributionRecur']->id : NULL,
], $objects);
], $objects['contribution']);
}
/**
......
......@@ -252,7 +252,7 @@ class CRM_Core_Payment_PayPalIPN extends CRM_Core_Payment_BaseIPN {
return;
}
CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects);
CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects['contribution']);
}
/**
......
......@@ -368,7 +368,7 @@ class CRM_Core_Payment_PayPalProIPN extends CRM_Core_Payment_BaseIPN {
return;
}
CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects);
CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects['contribution']);
}
/**
......
......@@ -362,7 +362,7 @@ class CRM_Event_Form_Task_Batch extends CRM_Event_Form_Task {
'related_contact' => NULL,
'participant' => $params['component_id'],
'contributionRecur' => NULL,
], ['contribution' => $contribution]);
], $contribution);
// reset template values before processing next transactions
$template->clearTemplateVars();
......
......@@ -679,7 +679,7 @@ function _ipn_process_transaction($params, $contribution, $input, $ids) {
'related_contact' => $ids['related_contact'] ?? NULL,
'participant' => !empty($objects['participant']) ? $objects['participant']->id : NULL,
'contributionRecur' => !empty($objects['contributionRecur']) ? $objects['contributionRecur']->id : NULL,
], $objects,
], $objects['contribution'],
$params['is_post_payment_create'] ?? NULL);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment