Skip to content

Commit

Permalink
[REF] Unshare code to build an array of params for the recurring cont…
Browse files Browse the repository at this point in the history
…ribution
  • Loading branch information
eileenmcnaughton committed Dec 23, 2020
1 parent eafb76d commit 385819f
Showing 1 changed file with 37 additions and 5 deletions.
42 changes: 37 additions & 5 deletions CRM/Member/Form/Membership.php
Original file line number Diff line number Diff line change
Expand Up @@ -1895,11 +1895,43 @@ protected function processContribution(
}

if (isset($params['amount'])) {
$contributionParams = array_merge(CRM_Contribute_Form_Contribution_Confirm::getContributionParams(
$params, $financialType->id,
$result, $receiptDate,
$recurringContributionID), $contributionParams
);
$contributionParams = array_merge([
'financial_type_id' => $financialType->id,
'receive_date' => !empty($params['receive_date']) ? CRM_Utils_Date::processDate($params['receive_date']) : date('YmdHis'),
'tax_amount' => $params['tax_amount'] ?? NULL,
'amount_level' => $params['amount_level'] ?? NULL,
'invoice_id' => $params['invoiceID'],
'currency' => $params['currencyID'],
'is_pay_later' => $params['is_pay_later'] ?? 0,
//configure cancel reason, cancel date and thankyou date
//from 'contribution' type profile if included
'cancel_reason' => $params['cancel_reason'] ?? 0,
'cancel_date' => isset($params['cancel_date']) ? CRM_Utils_Date::format($params['cancel_date']) : NULL,
'thankyou_date' => isset($params['thankyou_date']) ? CRM_Utils_Date::format($params['thankyou_date']) : NULL,
//setting to make available to hook - although seems wrong to set on form for BAO hook availability
'skipLineItem' => $params['skipLineItem'] ?? 0,
], $contributionParams);

if (!empty($params["is_email_receipt"])) {
$contributionParams += [
'receipt_date' => $receiptDate,
];
}

if ($recurringContributionID) {
$contributionParams['contribution_recur_id'] = $recurringContributionID;
}

$contributionParams['contribution_status_id'] = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Pending');
if (isset($contributionParams['invoice_id'])) {
$contributionParams['id'] = CRM_Core_DAO::getFieldValue(
'CRM_Contribute_DAO_Contribution',
$contributionParams['invoice_id'],
'id',
'invoice_id'
);
}

$contributionParams['skipCleanMoney'] = TRUE;
// @todo this is the wrong place for this - it should be done as close to form submission
// as possible
Expand Down

0 comments on commit 385819f

Please sign in to comment.