From 44c118da8e3262221a6f4b4ab64977863b9f9b8d Mon Sep 17 00:00:00 2001 From: "Matthew Wire (MJW Consulting)" Date: Mon, 11 Feb 2019 18:26:42 +0000 Subject: [PATCH] Allow viewing of cancelled recurring contributions --- CRM/Contribute/Page/Tab.php | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/CRM/Contribute/Page/Tab.php b/CRM/Contribute/Page/Tab.php index ed5200a852..2a08ede086 100644 --- a/CRM/Contribute/Page/Tab.php +++ b/CRM/Contribute/Page/Tab.php @@ -243,9 +243,14 @@ class CRM_Contribute_Page_Tab extends CRM_Core_Page { private function buildRecurringContributionsArray($recurContributions) { $liveRecurringContributionCount = 0; foreach ($recurContributions as $recurId => $recurDetail) { - $action = array_sum(array_keys($this->recurLinks($recurId))); - // no action allowed if it's not active - $recurContributions[$recurId]['is_active'] = (!CRM_Contribute_BAO_Contribution::isContributionStatusNegative($recurDetail['contribution_status_id'])); + // Is recurring contribution active? + $recurContributions[$recurId]['is_active'] = !in_array(CRM_Contribute_PseudoConstant::contributionStatus($recurDetail['contribution_status_id'], 'name'), CRM_Contribute_BAO_ContributionRecur::getInactiveStatuses()); + if ($recurContributions[$recurId]['is_active']) { + $actionMask = array_sum(array_keys(self::recurLinks($recurId))); + } + else { + $actionMask = CRM_Core_Action::mask([CRM_Core_Permission::VIEW]); + } if (empty($recurDetail['is_test'])) { $liveRecurringContributionCount++; @@ -260,20 +265,18 @@ class CRM_Contribute_Page_Tab extends CRM_Core_Page { $recurContributions[$recurId]['contribution_status'] = CRM_Core_PseudoConstant::getLabel('CRM_Contribute_BAO_ContributionRecur', 'contribution_status_id', $recurDetail['contribution_status_id']); } - if ($recurContributions[$recurId]['is_active']) { - $recurContributions[$recurId]['action'] = CRM_Core_Action::formLink(self::recurLinks($recurId), $action, - array( - 'cid' => $this->_contactId, - 'crid' => $recurId, - 'cxt' => 'contribution', - ), - ts('more'), - FALSE, - 'contribution.selector.recurring', - 'Contribution', - $recurId - ); - } + $recurContributions[$recurId]['action'] = CRM_Core_Action::formLink(self::recurLinks($recurId), $actionMask, + array( + 'cid' => $this->_contactId, + 'crid' => $recurId, + 'cxt' => 'contribution', + ), + ts('more'), + FALSE, + 'contribution.selector.recurring', + 'Contribution', + $recurId + ); } return [$recurContributions, $liveRecurringContributionCount]; -- 2.25.1