From 63db51f52d83f7e18a7c38889158c08ba9398b99 Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Fri, 4 Feb 2022 19:13:03 +1300 Subject: [PATCH] Fix missing variables Note this updates the code such that the buttons are consistent on this form with the payment info block --- CRM/Contribute/BAO/Contribution.php | 8 +++-- CRM/Contribute/Form/ContributionView.php | 33 ++++++------------- .../CRM/Contribute/Form/ContributionView.tpl | 14 +++----- 3 files changed, 20 insertions(+), 35 deletions(-) diff --git a/CRM/Contribute/BAO/Contribution.php b/CRM/Contribute/BAO/Contribution.php index d03f1abe93..f086b14f5b 100644 --- a/CRM/Contribute/BAO/Contribution.php +++ b/CRM/Contribute/BAO/Contribution.php @@ -4271,6 +4271,9 @@ LIMIT 1;"; /** * Get payment links as they relate to a contribution. * + * If a payment can be made then include a payment link & if a refund is appropriate + * then a refund link. + * * @param int $id * @param string $contributionStatus * @@ -4279,10 +4282,9 @@ LIMIT 1;"; * -url * -title * - * If a payment can be made then include a payment link & if a refund is appropriate - * then a refund link. + * @internal - not supported for use outside of core. */ - protected static function getContributionPaymentLinks(int $id, string $contributionStatus): array { + public static function getContributionPaymentLinks(int $id, string $contributionStatus): array { if ($contributionStatus === 'Failed' || !CRM_Core_Permission::check('edit contributions')) { // In general the balance is the best way to determine if a payment can be added or not, // but not for Failed contributions, where we don't accept additional payments at the moment. diff --git a/CRM/Contribute/Form/ContributionView.php b/CRM/Contribute/Form/ContributionView.php index 9f4bcd47f0..f2d8597564 100644 --- a/CRM/Contribute/Form/ContributionView.php +++ b/CRM/Contribute/Form/ContributionView.php @@ -202,20 +202,7 @@ class CRM_Contribute_Form_ContributionView extends CRM_Core_Form { ); $statusOptionValueNames = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'); $contributionStatus = $statusOptionValueNames[$values['contribution_status_id']]; - if (in_array($contributionStatus, ['Partially paid', 'Pending refund']) - || ($contributionStatus == 'Pending' && $values['is_pay_later']) - ) { - if ($contributionStatus == 'Pending refund') { - $this->assign('paymentButtonName', ts('Record Refund')); - } - else { - $this->assign('paymentButtonName', ts('Record Payment')); - } - $this->assign('addRecordPayment', TRUE); - $this->assign('contactId', $values['contact_id']); - $this->assign('componentId', $id); - $this->assign('component', 'contribution'); - } + $this->assign('addRecordPayment', in_array($contributionStatus, ['Partially paid', 'Pending refund', 'Pending'])); $this->assignPaymentInfoBlock($id); $searchKey = NULL; @@ -228,6 +215,10 @@ class CRM_Contribute_Form_ContributionView extends CRM_Core_Form { if (($context === 'fulltext' || $context === 'search') && $searchKey) { $urlParams = "reset=1&id={$id}&cid={$values['contact_id']}&action=update&context={$context}&key={$searchKey}"; } + foreach (CRM_Contribute_BAO_Contribution::getContributionPaymentLinks($this->getID(), $contributionStatus) as $paymentButton) { + $paymentButton['icon'] = 'fa-plus-circle'; + $linkButtons[] = $paymentButton; + } $linkButtons[] = [ 'title' => ts('Edit'), 'url' => 'civicrm/contact/view/contribution', @@ -235,14 +226,6 @@ class CRM_Contribute_Form_ContributionView extends CRM_Core_Form { 'icon' => 'fa-pencil', 'accesskey' => 'e', ]; - if (!empty($paymentButtonName)) { - $linkButtons[] = [ - 'title' => $paymentButtonName, - 'url' => 'civicrm/payment', - 'qs' => "action=add&reset=1&component=contribution&id={$id}&cid={$values['contact_id']}", - 'icon' => 'fa-plus-circle', - ]; - } } if ($this->isHasAccess('delete')) { @@ -260,7 +243,7 @@ class CRM_Contribute_Form_ContributionView extends CRM_Core_Form { $pdfUrlParams = "reset=1&id={$id}&cid={$values['contact_id']}"; $emailUrlParams = "reset=1&id={$id}&cid={$values['contact_id']}&select=email"; - if ($invoicing && empty($is_template)) { + if (Civi::settings()->get('invoicing') && !$contribution['is_template']) { if (($values['contribution_status'] != 'Refunded') && ($values['contribution_status'] != 'Cancelled')) { $invoiceButtonText = ts('Download Invoice'); } @@ -281,6 +264,10 @@ class CRM_Contribute_Form_ContributionView extends CRM_Core_Form { ]; } $this->assign('linkButtons', $linkButtons ?? []); + $this->assign('contactId', $values['contact_id']); + $this->assign('componentId', $id); + $this->assign('component', 'contribution'); + $this->assignPaymentInfoBlock($id); } /** diff --git a/templates/CRM/Contribute/Form/ContributionView.tpl b/templates/CRM/Contribute/Form/ContributionView.tpl index 5b7b3b4fbd..7956686f7d 100644 --- a/templates/CRM/Contribute/Form/ContributionView.tpl +++ b/templates/CRM/Contribute/Form/ContributionView.tpl @@ -178,18 +178,16 @@ {$thankyou_date|crmDate} {/if} + + {ts}Payment Summary{/ts} + + {if empty($is_template)} {ts}Payment Details{/ts} {include file="CRM/Contribute/Form/PaymentInfoBlock.tpl"} {/if} - {if $addRecordPayment} - - {ts}Payment Summary{/ts} - - - {/if} {if $softContributions && count($softContributions)} {* We show soft credit name with PCP section if contribution is linked to a PCP. *} @@ -285,9 +283,7 @@ {/if} -{if $addRecordPayment} - {include file="CRM/Contribute/Page/PaymentInfo.tpl" show='payments'} -{/if} +{include file="CRM/Contribute/Page/PaymentInfo.tpl" show='payments'}
{include file="CRM/common/formButtons.tpl" location="bottom"} -- 2.25.1