From a4c35c95bdba99a7e84897897e4005efaa9f0e57 Mon Sep 17 00:00:00 2001 From: eileen Date: Fri, 1 Nov 2019 14:11:04 +1300 Subject: [PATCH] Remove recordPayment function. Looks like we actually got rid of usage of this function (that was desirable the paralell recordRefundPayment is currently misbehaving so trying to fix that now --- CRM/Financial/BAO/Payment.php | 111 ---------------------------------- 1 file changed, 111 deletions(-) diff --git a/CRM/Financial/BAO/Payment.php b/CRM/Financial/BAO/Payment.php index 15c9359b84..d8da835d42 100644 --- a/CRM/Financial/BAO/Payment.php +++ b/CRM/Financial/BAO/Payment.php @@ -455,117 +455,6 @@ class CRM_Financial_BAO_Payment { return $financialTrxn; } - /** - * @param int $contributionId - * @param array $trxnData - * @param int $participantId - * - * @return \CRM_Core_BAO_FinancialTrxn - */ - public static function recordPayment($contributionId, $trxnData, $participantId) { - list($contributionDAO, $params) = self::getContributionAndParamsInFormatForRecordFinancialTransaction($contributionId); - - $trxnData['trxn_date'] = !empty($trxnData['trxn_date']) ? $trxnData['trxn_date'] : date('YmdHis'); - $params['payment_instrument_id'] = CRM_Utils_Array::value('payment_instrument_id', $trxnData, CRM_Utils_Array::value('payment_instrument_id', $params)); - - $paidStatus = CRM_Core_PseudoConstant::getKey('CRM_Financial_DAO_FinancialItem', 'status_id', 'Paid'); - $arAccountId = CRM_Contribute_PseudoConstant::getRelationalFinancialAccount($contributionDAO->financial_type_id, 'Accounts Receivable Account is'); - $completedStatusId = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Completed'); - - $params['partial_payment_total'] = $contributionDAO->total_amount; - $params['partial_amount_to_pay'] = $trxnData['total_amount']; - $trxnData['net_amount'] = !empty($trxnData['net_amount']) ? $trxnData['net_amount'] : $trxnData['total_amount']; - $params['pan_truncation'] = CRM_Utils_Array::value('pan_truncation', $trxnData); - $params['card_type_id'] = CRM_Utils_Array::value('card_type_id', $trxnData); - $params['check_number'] = CRM_Utils_Array::value('check_number', $trxnData); - - // record the entry - $financialTrxn = CRM_Contribute_BAO_Contribution::recordFinancialAccounts($params, $trxnData); - $toFinancialAccount = $arAccountId; - $trxnId = CRM_Core_BAO_FinancialTrxn::getBalanceTrxnAmt($contributionId, $contributionDAO->financial_type_id); - if (!empty($trxnId)) { - $trxnId = $trxnId['trxn_id']; - } - elseif (!empty($contributionDAO->payment_instrument_id)) { - $trxnId = CRM_Financial_BAO_FinancialTypeAccount::getInstrumentFinancialAccount($contributionDAO->payment_instrument_id); - } - else { - $relationTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('financial_account_type', NULL, " AND v.name LIKE 'Asset' ")); - $queryParams = [1 => [$relationTypeId, 'Integer']]; - $trxnId = CRM_Core_DAO::singleValueQuery("SELECT id FROM civicrm_financial_account WHERE is_default = 1 AND financial_account_type_id = %1", $queryParams); - } - - // update statuses - // criteria for updates contribution total_amount == financial_trxns of partial_payments - $sql = "SELECT SUM(ft.total_amount) as sum_of_payments, SUM(ft.net_amount) as net_amount_total -FROM civicrm_financial_trxn ft -LEFT JOIN civicrm_entity_financial_trxn eft - ON (ft.id = eft.financial_trxn_id) -WHERE eft.entity_table = 'civicrm_contribution' - AND eft.entity_id = {$contributionId} - AND ft.to_financial_account_id != {$toFinancialAccount} - AND ft.status_id = {$completedStatusId} -"; - $query = CRM_Core_DAO::executeQuery($sql); - $query->fetch(); - $sumOfPayments = $query->sum_of_payments; - - // update statuses - if ($contributionDAO->total_amount == $sumOfPayments) { - // update contribution status and - // clean cancel info (if any) if prev. contribution was updated in case of 'Refunded' => 'Completed' - $contributionDAO->contribution_status_id = $completedStatusId; - $contributionDAO->cancel_date = 'null'; - $contributionDAO->cancel_reason = NULL; - $netAmount = !empty($trxnData['net_amount']) ? NULL : $trxnData['total_amount']; - $contributionDAO->net_amount = $query->net_amount_total + $netAmount; - $contributionDAO->fee_amount = $contributionDAO->total_amount - $contributionDAO->net_amount; - $contributionDAO->save(); - - //Change status of financial record too - $financialTrxn->status_id = $completedStatusId; - $financialTrxn->save(); - - // note : not using the self::add method, - // the reason because it performs 'status change' related code execution for financial records - // which in 'Partial Paid' => 'Completed' is not useful, instead specific financial record updates - // are coded below i.e. just updating financial_item status to 'Paid' - - if (!$participantId) { - $participantId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment', $contributionId, 'participant_id', 'contribution_id'); - } - if ($participantId) { - // update participant status - $participantStatuses = CRM_Event_PseudoConstant::participantStatus(); - $ids = CRM_Event_BAO_Participant::getParticipantIds($contributionId); - foreach ($ids as $val) { - $participantUpdate['id'] = $val; - $participantUpdate['status_id'] = array_search('Registered', $participantStatuses); - CRM_Event_BAO_Participant::add($participantUpdate); - } - } - - // Remove this - completeOrder does it. - CRM_Contribute_BAO_Contribution::updateMembershipBasedOnCompletionOfContribution( - $contributionDAO, - $contributionId, - $trxnData['trxn_date'] - ); - - // update financial item statuses - $baseTrxnId = CRM_Core_BAO_FinancialTrxn::getFinancialTrxnId($contributionId); - $sqlFinancialItemUpdate = " -UPDATE civicrm_financial_item fi - LEFT JOIN civicrm_entity_financial_trxn eft - ON (eft.entity_id = fi.id AND eft.entity_table = 'civicrm_financial_item') -SET status_id = {$paidStatus} -WHERE eft.financial_trxn_id IN ({$trxnId}, {$baseTrxnId['financialTrxnId']}) -"; - CRM_Core_DAO::executeQuery($sqlFinancialItemUpdate); - } - return $financialTrxn; - } - /** * The recordFinancialTransactions function has capricious requirements for input parameters - load them. * -- 2.25.1