// we do need contribution and recurring records.
$result = NULL;
if (!empty($paymentParams['is_recur'])) {
- $financialType = new CRM_Financial_DAO_FinancialType();
- $financialType->id = $params['financial_type_id'];
- $financialType->find(TRUE);
$this->_params = $formValues;
$contribution = $this->processContribution(
$paymentParams,
- NULL,
[
'contact_id' => $this->_contributorContactID,
'line_item' => $lineItem,
'source' => CRM_Utils_Array::value('source', $paymentParams, CRM_Utils_Array::value('description', $paymentParams)),
'thankyou_date' => $paymentParams['thankyou_date'] ?? NULL,
'payment_instrument_id' => $paymentInstrumentID,
- ],
- $financialType
+ 'financial_type_id' => $params['financial_type_id'],
+ ]
);
//create new soft-credit record, CRM-13981
* being fixed later.
*
* @param array $params
- * @param array $result
* @param array $contributionParams
* Parameters to be passed to contribution create action.
* This differs from params in that we are currently adding params to it and 1) ensuring they are being
* - payment_type_id
* - thankyou_date (not all forms will set this)
*
- * @param CRM_Financial_DAO_FinancialType $financialType
- *
* @return \CRM_Contribute_DAO_Contribution
*
* @throws \CRM_Core_Exception
*/
protected function processContribution(
$params,
- $result,
- $contributionParams,
- $financialType
+ $contributionParams
) {
$form = $this;
$transaction = new CRM_Core_Transaction();
$isEmailReceipt = !empty($form->_values['is_email_receipt']);
// add these values for the recurringContrib function ,CRM-10188
- $params['financial_type_id'] = $financialType->id;
+ $params['financial_type_id'] = $contributionParams['financial_type_id'];
//@todo - this is being set from the form to resolve CRM-10188 - an
// eNotice caused by it not being set @ the front end
}
$params['is_recur'] = TRUE;
$params['payment_instrument_id'] = $contributionParams['payment_instrument_id'] ?? NULL;
- $recurringContributionID = $this->legacyProcessRecurringContribution($params, $contactID, $financialType);
+ $recurringContributionID = $this->legacyProcessRecurringContribution($params, $contactID);
$now = date('YmdHis');
$receiptDate = $params['receipt_date'] ?? NULL;
if (isset($params['amount'])) {
$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,
*
* @param array $params
* @param int $contactID
- * @param string $contributionType
*
* @return int|null
*/
- protected function legacyProcessRecurringContribution(&$params, $contactID, $contributionType) {
+ protected function legacyProcessRecurringContribution(&$params, $contactID) {
$form = $this;
if (empty($params['is_recur'])) {
return NULL;
$recurParams['frequency_unit'] = $params['frequency_unit'] ?? NULL;
$recurParams['frequency_interval'] = $params['frequency_interval'] ?? NULL;
$recurParams['installments'] = $params['installments'] ?? NULL;
- $recurParams['financial_type_id'] = $params['financial_type_id'] ?? NULL;
+ $recurParams['financial_type_id'] = $params['financial_type_id'];
$recurParams['currency'] = $params['currency'] ?? NULL;
$recurParams['payment_instrument_id'] = $params['payment_instrument_id'];
// we need to add a unique trxn_id to avoid a unique key error
// in paypal IPN we reset this when paypal sends us the real trxn id, CRM-2991
$recurParams['trxn_id'] = $params['trxn_id'] ?? $params['invoiceID'];
- $recurParams['financial_type_id'] = $contributionType->id;
$campaignId = $params['campaign_id'] ?? $form->_values['campaign_id'] ?? NULL;
$recurParams['campaign_id'] = $campaignId;