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
*
* @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
* @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.
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
'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']);
}
/**
return;
}
- CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects);
+ CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects['contribution']);
}
/**
return;
}
- CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects);
+ CRM_Contribute_BAO_Contribution::completeOrder($input, $ids, $objects['contribution']);
}
/**
'related_contact' => NULL,
'participant' => $params['component_id'],
'contributionRecur' => NULL,
- ], ['contribution' => $contribution]);
+ ], $contribution);
// reset template values before processing next transactions
$template->clearTemplateVars();
'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);
}