'note' => $params['note'],
'entity_id' => $contribution->id,
'contact_id' => $session->get('userID'),
- 'modified_date' => date('Ymd'),
];
if (!$noteParams['contact_id']) {
$noteParams['contact_id'] = $params['contact_id'];
if (self::isContributionUpdateARefund($params['prevContribution']->contribution_status_id, $params['contribution']->contribution_status_id)) {
// @todo we should stop passing $params by reference - splitting this out would be a step towards that.
$params['trxnParams']['total_amount'] = -$params['total_amount'];
+ if (empty($params['contribution']->creditnote_id)) {
+ // This is always set in the Contribution::create function.
+ CRM_Core_Error::deprecatedFunctionWarning('Logic says this line is never reached & can be removed');
+ $creditNoteId = self::createCreditNoteId();
+ CRM_Core_DAO::setFieldValue('CRM_Contribute_DAO_Contribution', $params['contribution']->id, 'creditnote_id', $creditNoteId);
+ }
}
elseif (($previousContributionStatus == 'Pending'
&& $params['prevContribution']->is_pay_later) || $previousContributionStatus == 'In Progress'
// @todo we should stop passing $params by reference - splitting this out would be a step towards that.
$params['trxnParams']['to_financial_account_id'] = $arAccountId;
$params['trxnParams']['total_amount'] = -$params['total_amount'];
+ if (empty($params['contribution']->creditnote_id)) {
+ // This is always set in the Contribution::create function.
+ CRM_Core_Error::deprecatedFunctionWarning('Logic says this line is never reached & can be removed');
+ $creditNoteId = self::createCreditNoteId();
+ CRM_Core_DAO::setFieldValue('CRM_Contribute_DAO_Contribution', $params['contribution']->id, 'creditnote_id', $creditNoteId);
+ }
}
else {
// @todo we should stop passing $params by reference - splitting this out would be a step towards that.
return '';
}
- /**
- * Function to add payments for contribution for Partially Paid status
- *
- * @deprecated this is known to be flawed and possibly buggy.
- *
- * Replace with Order.create->Payment.create flow.
- *
- * @param array $contribution
- *
- * @throws \CiviCRM_API3_Exception
- */
- public static function addPayments($contribution) {
- // get financial trxn which is a payment
- $ftSql = "SELECT ft.id, ft.total_amount
- FROM civicrm_financial_trxn ft
- INNER JOIN civicrm_entity_financial_trxn eft ON eft.financial_trxn_id = ft.id AND eft.entity_table = 'civicrm_contribution'
- WHERE eft.entity_id = %1 AND ft.is_payment = 1 ORDER BY ft.id DESC LIMIT 1";
-
- $ftDao = CRM_Core_DAO::executeQuery($ftSql, [
- 1 => [
- $contribution->id,
- 'Integer',
- ],
- ]);
- $ftDao->fetch();
-
- // store financial item Proportionaly.
- $trxnParams = [
- 'total_amount' => $ftDao->total_amount,
- 'contribution_id' => $contribution->id,
- ];
- self::assignProportionalLineItems($trxnParams, $ftDao->id, $contribution->total_amount);
- }
-
/**
* Function use to store line item proportionally in in entity financial trxn table
*