From 71d085febe85ba813639dc986cdbf634d986e6a7 Mon Sep 17 00:00:00 2001 From: atif-shaikh Date: Mon, 1 Dec 2014 20:06:25 +0530 Subject: [PATCH] CRM-15546 - Fixed constants issue/bug in BaseIPN.php and PaymentProcessor.tpl https://issues.civicrm.org/jira/browse/CRM-15546 --- CRM/Admin/Page/PaymentProcessor.php | 3 ++ CRM/Core/Payment/BaseIPN.php | 46 +++++++++++-------- templates/CRM/Admin/Page/PaymentProcessor.tpl | 4 +- 3 files changed, 31 insertions(+), 22 deletions(-) diff --git a/CRM/Admin/Page/PaymentProcessor.php b/CRM/Admin/Page/PaymentProcessor.php index ffadf10225..abc9e79548 100644 --- a/CRM/Admin/Page/PaymentProcessor.php +++ b/CRM/Admin/Page/PaymentProcessor.php @@ -104,6 +104,9 @@ class CRM_Admin_Page_PaymentProcessor extends CRM_Core_Page_Basic { function run() { // set title and breadcrumb CRM_Utils_System::setTitle(ts('Settings - Payment Processor')); + //CRM-15546 + $paymentProcessorTypes = CRM_Core_PseudoConstant::get('CRM_Financial_DAO_PaymentProcessor', 'payment_processor_type_id', array('labelColumn' => 'name', 'flip' => 1)); + $this->assign('defaultPaymentProcessorType', $paymentProcessorTypes['PayPal']); $breadCrumb = array(array('title' => ts('Administration'), 'url' => CRM_Utils_System::url('civicrm/admin', 'reset=1' diff --git a/CRM/Core/Payment/BaseIPN.php b/CRM/Core/Payment/BaseIPN.php index 746bc2dc40..02361dff0f 100644 --- a/CRM/Core/Payment/BaseIPN.php +++ b/CRM/Core/Payment/BaseIPN.php @@ -196,11 +196,12 @@ class CRM_Core_Payment_BaseIPN { } $participant = &$objects['participant']; - $contributionStatus = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'); + //CRM-15546 + $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array('labelColumn' => 'name', 'flip' => 1)); $contribution->receive_date = CRM_Utils_Date::isoToMysql($contribution->receive_date); $contribution->receipt_date = CRM_Utils_Date::isoToMysql($contribution->receipt_date); $contribution->thankyou_date = CRM_Utils_Date::isoToMysql($contribution->thankyou_date); - $contribution->contribution_status_id = array_search('Failed', $contributionStatus); + $contribution->contribution_status_id = $contributionStatuses['Failed']; $contribution->save(); //add lineitems for recurring payments @@ -218,21 +219,22 @@ class CRM_Core_Payment_BaseIPN { if (empty($input['skipComponentSync'])) { if (!empty($memberships)) { // if transaction is failed then set "Cancelled" as membership status - $cancelStatusId = array_search('Cancelled', CRM_Member_PseudoConstant::membershipStatus()); + $membershipStatuses = CRM_Core_PseudoConstant::get('CRM_Member_DAO_Membership', 'status_id', array('labelColumn' => 'name', 'flip' => 1)); foreach ($memberships as $membership) { if ($membership) { - $membership->status_id = $cancelStatusId; + $membership->status_id = $membershipStatuses['Cancelled']; $membership->save(); //update related Memberships. - $params = array('status_id' => $cancelStatusId); + $params = array('status_id' => $membershipStatuses['Cancelled']); CRM_Member_BAO_Membership::updateRelatedMemberships($membership->id, $params); } } } if ($participant) { - $participant->status_id = 4; + $participantStatuses = CRM_Core_PseudoConstant::get('CRM_Event_DAO_Participant', 'status_id', array('labelColumn' => 'name', 'flip' => 1)); + $participant->status_id = $participantStatuses['Cancelled']; $participant->save(); } } @@ -275,7 +277,8 @@ class CRM_Core_Payment_BaseIPN { if (empty($contribution->id)) { $addLineItems = TRUE; } - $contribution->contribution_status_id = 3; + $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array('labelColumn' => 'name', 'flip' => 1)); + $contribution->contribution_status_id = $contributionStatuses['Cancelled']; $contribution->cancel_date = self::$_now; $contribution->cancel_reason = CRM_Utils_Array::value('reasonCode', $input); $contribution->receive_date = CRM_Utils_Date::isoToMysql($contribution->receive_date); @@ -297,20 +300,22 @@ class CRM_Core_Payment_BaseIPN { if (empty($input['skipComponentSync'])) { if (!empty($memberships)) { + $membershipStatuses = CRM_Core_PseudoConstant::get('CRM_Member_DAO_Membership', 'status_id', array('labelColumn' => 'name', 'flip' => 1)); foreach ($memberships as $membership) { if ($membership) { - $membership->status_id = 6; + $membership->status_id = $membershipStatuses['Cancelled']; $membership->save(); //update related Memberships. - $params = array('status_id' => 6); + $params = array('status_id' => $membershipStatuses['Cancelled']); CRM_Member_BAO_Membership::updateRelatedMemberships($membership->id, $params); } } } if ($participant) { - $participant->status_id = 4; + $participantStatuses = CRM_Core_PseudoConstant::get('CRM_Event_DAO_Participant', 'status_id', array('labelColumn' => 'name', 'flip' => 1)); + $participant->status_id = $participantStatuses['Cancelled']; $participant->save(); } } @@ -525,7 +530,8 @@ LIMIT 1;"; $values['is_email_receipt'] = 1; } if (empty($input['skipComponentSync'])) { - $participant->status_id = 1; + $participantStatuses = CRM_Core_PseudoConstant::get('CRM_Event_DAO_Participant', 'status_id', array('labelColumn' => 'name', 'flip' => 1)); + $participant->status_id = $participantStatuses['Registered']; } $participant->save(); } @@ -539,8 +545,8 @@ LIMIT 1;"; if (empty($contribution->id)) { $addLineItems = TRUE; } - - $contribution->contribution_status_id = 1; + $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array('labelColumn' => 'name', 'flip' => 1)); + $contribution->contribution_status_id = $contributionStatuses['Completed']; $contribution->is_test = $input['is_test']; $contribution->fee_amount = CRM_Utils_Array::value('fee_amount', $input, 0); $contribution->net_amount = CRM_Utils_Array::value('net_amount', $input, 0); @@ -602,12 +608,12 @@ LIMIT 1;"; // From a lot of code reading /debugging I'm still not sure the intent WRT first & subsequent payments in this code // it would be good if someone added some comments or refactored this if ($contribution->id) { - $contributionStatuses = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'); + $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array('labelColumn' => 'name', 'flip' => 1)); if ((empty($input['prevContribution']) && $paymentProcessorId) || (!$input['prevContribution']->is_pay_later && -- $input['prevContribution']->contribution_status_id == array_search('Pending', $contributionStatuses))) { +- $input['prevContribution']->contribution_status_id == $contributionStatuses['Pending'])) { $input['payment_processor'] = $paymentProcessorId; } - $input['contribution_status_id'] = array_search('Completed', $contributionStatuses); + $input['contribution_status_id'] = $contributionStatuses['Completed']; $input['total_amount'] = $input['amount']; $input['contribution'] = $contribution; $input['financial_type_id'] = $contribution->financial_type_id; @@ -805,21 +811,21 @@ LIMIT 1;"; $contribution = &$objects['contribution']; - $contributionStatuses = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'); + $contributionStatuses = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'contribution_status_id', array('labelColumn' => 'name','flip' => 1)); $input['skipComponentSync'] = CRM_Utils_Array::value('skipComponentSync', $params); - if ($statusId == array_search('Cancelled', $contributionStatuses)) { + if ($statusId == $contributionStatuses['Cancelled']) { $baseIPN->cancelled($objects, $transaction, $input); $transaction->commit(); return $statusId; } - elseif ($statusId == array_search('Failed', $contributionStatuses)) { + elseif ($statusId == $contributionStatuses['Failed']) { $baseIPN->failed($objects, $transaction, $input); $transaction->commit(); return $statusId; } // status is not pending - if ($contribution->contribution_status_id != array_search('Pending', $contributionStatuses)) { + if ($contribution->contribution_status_id != $contributionStatuses['Pending']) { $transaction->commit(); return; } diff --git a/templates/CRM/Admin/Page/PaymentProcessor.tpl b/templates/CRM/Admin/Page/PaymentProcessor.tpl index f192fba9c8..6f3c84151b 100644 --- a/templates/CRM/Admin/Page/PaymentProcessor.tpl +++ b/templates/CRM/Admin/Page/PaymentProcessor.tpl @@ -63,7 +63,7 @@ {if $action ne 1 and $action ne 2} {/if} @@ -73,7 +73,7 @@ {ts}There are no Payment Processors entered.{/ts} {/if} {/if} -- 2.25.1