From 2077cf67fae5025dfbe7717a3b9e9dcfc8de866a Mon Sep 17 00:00:00 2001 From: "deb.monish" Date: Sat, 5 Aug 2017 01:28:35 +0530 Subject: [PATCH] additional fixes --- CRM/Contribute/BAO/Contribution/Utils.php | 18 ++++++++++++------ CRM/Contribute/Form/Contribution.php | 4 ++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/CRM/Contribute/BAO/Contribution/Utils.php b/CRM/Contribute/BAO/Contribution/Utils.php index 79446af9d8..3930addfda 100644 --- a/CRM/Contribute/BAO/Contribution/Utils.php +++ b/CRM/Contribute/BAO/Contribution/Utils.php @@ -504,19 +504,18 @@ LIMIT 1 * @param int $id * Contribution ID * - * @return array + * @return array $statuses * Array of contribution statuses in array('status id' => 'label') format */ public static function getContributionStatuses($usedFor = 'contribution', $id = NULL) { if ($usedFor == 'pledge') { - $statusNames = CRM_Core_OptionGroup::values('pledge_status', FALSE, FALSE, FALSE, NULL, 'name'); + $statusNames = CRM_Pledge_BAO_Pledge::buildOptions('status_id', 'validate'); } else { - $statusNames = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'); + $statusNames = CRM_Contribute_BAO_Contribution::buildOptions('contribution_status_id', 'validate'); } $statusNamesToUnset = array(); - // on create fetch statuses on basis of component if (!$id) { $statusNamesToUnset = array( @@ -524,6 +523,7 @@ LIMIT 1 'Chargeback', 'Pending refund', ); + // Event registration and New Membership backoffice form support partially paid payment, // so exclude this status only for 'New Contribution' form if ($usedFor == 'contribution') { @@ -539,6 +539,12 @@ LIMIT 1 'Failed', )); } + elseif ($usedFor == 'membership') { + $statusNamesToUnset = array_merge($statusNamesToUnset, array( + 'In Progress', + 'Overdue', + )); + } } else { $contributionStatus = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution', $id, 'contribution_status_id'); @@ -590,10 +596,10 @@ LIMIT 1 // based on filtered statuse names fetch the final list of statuses in array('id' => 'label') format if ($usedFor == 'pledge') { - $statuses = CRM_Core_OptionGroup::values('pledge_status'); + $statuses = CRM_Pledge_BAO_Pledge::buildOptions('status_id'); } else { - $statuses = CRM_Contribute_PseudoConstant::contributionStatus(); + $statuses = CRM_Contribute_BAO_Contribution::buildOptions('contribution_status_id'); } foreach ($statuses as $statusID => $label) { if (!array_key_exists($statusID, $statusNames)) { diff --git a/CRM/Contribute/Form/Contribution.php b/CRM/Contribute/Form/Contribution.php index 8de90098d1..44161e6cd3 100644 --- a/CRM/Contribute/Form/Contribution.php +++ b/CRM/Contribute/Form/Contribution.php @@ -663,7 +663,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP $component = 'participant'; } } - elseif ($this->_ppID) { + if ($this->_ppID) { $component = 'pledge'; } $status = CRM_Contribute_BAO_Contribution_Utils::getContributionStatuses($component, $this->_id); @@ -835,7 +835,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP // if status is Cancelled freeze Amount, Payment Instrument, Check #, Financial Type, // Net and Fee Amounts are frozen in AdditionalInfo::buildAdditionalDetail - if ($this->_id && $this->_values['contribution_status_id'] == array_search('Cancelled', $statusName)) { + if ($this->_id && ($this->_values['contribution_status_id'] == CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Cancelled'))) { if ($totalAmount) { $totalAmount->freeze(); } -- 2.25.1