X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContribute%2FForm%2FCancelSubscription.php;h=f8b523e2e5d3c55be2abdcd391d10b0768eb4a8c;hb=157edc4fc77a075e8e0304f3feb74f9107244bb2;hp=e02ae64bb5860f1c211cf476dd5a5b2de209cfc8;hpb=ee3bab5603fcac14174948ed640fa92be8798c83;p=civicrm-core.git diff --git a/CRM/Contribute/Form/CancelSubscription.php b/CRM/Contribute/Form/CancelSubscription.php index e02ae64bb5..f8b523e2e5 100644 --- a/CRM/Contribute/Form/CancelSubscription.php +++ b/CRM/Contribute/Form/CancelSubscription.php @@ -8,6 +8,7 @@ | and copyright information, see https://civicrm.org/licensing | +--------------------------------------------------------------------+ */ +use Civi\Payment\PropertyBag; /** * @@ -45,14 +46,14 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib public function preProcess() { parent::preProcess(); if ($this->_crid) { - $this->assign('frequency_unit', $this->_subscriptionDetails->frequency_unit); - $this->assign('frequency_interval', $this->_subscriptionDetails->frequency_interval); - $this->assign('amount', $this->_subscriptionDetails->amount); - $this->assign('installments', $this->_subscriptionDetails->installments); + $this->assign('frequency_unit', $this->getSubscriptionDetails()->frequency_unit); + $this->assign('frequency_interval', $this->getSubscriptionDetails()->frequency_interval); + $this->assign('amount', $this->getSubscriptionDetails()->amount); + $this->assign('installments', $this->getSubscriptionDetails()->installments); // Are we cancelling a recurring contribution that is linked to an auto-renew membership? - if ($this->_subscriptionDetails->membership_id) { - $this->_mid = $this->_subscriptionDetails->membership_id; + if ($this->getSubscriptionDetails()->membership_id) { + $this->_mid = $this->getSubscriptionDetails()->membership_id; } } @@ -68,19 +69,19 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib if ($this->_coid) { if (CRM_Contribute_BAO_Contribution::isSubscriptionCancelled($this->_coid)) { - CRM_Core_Error::fatal(ts('The recurring contribution looks to have been cancelled already.')); + CRM_Core_Error::statusBounce(ts('The recurring contribution looks to have been cancelled already.')); } $this->_paymentProcessorObj = CRM_Financial_BAO_PaymentProcessor::getProcessorForEntity($this->_coid, 'contribute', 'obj'); - $this->assign('frequency_unit', $this->_subscriptionDetails->frequency_unit); - $this->assign('frequency_interval', $this->_subscriptionDetails->frequency_interval); - $this->assign('amount', $this->_subscriptionDetails->amount); - $this->assign('installments', $this->_subscriptionDetails->installments); + $this->assign('frequency_unit', $this->getSubscriptionDetails()->frequency_unit); + $this->assign('frequency_interval', $this->getSubscriptionDetails()->frequency_interval); + $this->assign('amount', $this->getSubscriptionDetails()->amount); + $this->assign('installments', $this->getSubscriptionDetails()->installments); } if ( (!$this->_crid && !$this->_coid && !$this->_mid) || - (!$this->_subscriptionDetails) + (!$this->getSubscriptionDetails()) ) { CRM_Core_Error::statusBounce('Required information missing.'); } @@ -95,9 +96,9 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib unset($this->entityFields['send_cancel_request'], $this->entityFields['is_notify']); } - if ($this->_subscriptionDetails->contact_id) { + if ($this->getSubscriptionDetails()->contact_id) { list($this->_donorDisplayName, $this->_donorEmail) - = CRM_Contact_BAO_Contact::getContactDetails($this->_subscriptionDetails->contact_id); + = CRM_Contact_BAO_Contact::getContactDetails($this->getSubscriptionDetails()->contact_id); } } @@ -187,7 +188,7 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib * Process the form submission. */ public function postProcess() { - $status = $message = NULL; + $message = NULL; $cancelSubscription = TRUE; $params = $this->controller->exportValues($this->_name); @@ -203,24 +204,21 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib } if (CRM_Utils_Array::value('send_cancel_request', $params) == 1) { - // Note the 'subscriptionId' here is the value stored in - // civicrm_contribution_recur.processor_id - $cancelParams = ['subscriptionId' => $this->_subscriptionDetails->subscription_id]; try { - $cancelSubscription = $this->_paymentProcessorObj->cancelSubscription($message, $cancelParams); + $propertyBag = new PropertyBag(); + $propertyBag->setContributionRecurID($this->getSubscriptionDetails()->recur_id); + $propertyBag->setRecurProcessorID($this->getSubscriptionDetails()->subscription_id); + $message = $this->_paymentProcessorObj->doCancelRecurring($propertyBag)['message']; } catch (\Civi\Payment\Exception\PaymentProcessorException $e) { CRM_Core_Error::statusBounce($e->getMessage()); } } - if (is_a($cancelSubscription, 'CRM_Core_Error')) { - CRM_Core_Error::displaySessionError($cancelSubscription); - } - elseif ($cancelSubscription) { + if ($cancelSubscription) { try { civicrm_api3('ContributionRecur', 'cancel', [ - 'id' => $this->_subscriptionDetails->recur_id, + 'id' => $this->getSubscriptionDetails()->recur_id, 'membership_id' => $this->_mid, 'processor_message' => $message, 'cancel_reason' => $params['cancel_reason'], @@ -240,15 +238,15 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib $msgType = 'info'; } else { - $tplParams['recur_frequency_interval'] = $this->_subscriptionDetails->frequency_interval; - $tplParams['recur_frequency_unit'] = $this->_subscriptionDetails->frequency_unit; - $tplParams['amount'] = $this->_subscriptionDetails->amount; + $tplParams['recur_frequency_interval'] = $this->getSubscriptionDetails()->frequency_interval; + $tplParams['recur_frequency_unit'] = $this->getSubscriptionDetails()->frequency_unit; + $tplParams['amount'] = $this->getSubscriptionDetails()->amount; $tplParams['contact'] = ['display_name' => $this->_donorDisplayName]; $status = ts('The recurring contribution of %1, every %2 %3 has been cancelled.', [ - 1 => $this->_subscriptionDetails->amount, - 2 => $this->_subscriptionDetails->frequency_interval, - 3 => $this->_subscriptionDetails->frequency_unit, + 1 => $this->getSubscriptionDetails()->amount, + 2 => $this->getSubscriptionDetails()->frequency_interval, + 3 => $this->getSubscriptionDetails()->frequency_unit, ] ); $msgTitle = 'Contribution Cancelled'; @@ -256,18 +254,18 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib } if (CRM_Utils_Array::value('is_notify', $params) == 1) { - if ($this->_subscriptionDetails->contribution_page_id) { + if ($this->getSubscriptionDetails()->contribution_page_id) { CRM_Core_DAO::commonRetrieveAll( 'CRM_Contribute_DAO_ContributionPage', 'id', - $this->_subscriptionDetails->contribution_page_id, + $this->getSubscriptionDetails()->contribution_page_id, $value, ['title', 'receipt_from_name', 'receipt_from_email'] ); $receiptFrom - = '"' . CRM_Utils_Array::value('receipt_from_name', $value[$this->_subscriptionDetails->contribution_page_id]) . + = '"' . CRM_Utils_Array::value('receipt_from_name', $value[$this->getSubscriptionDetails()->contribution_page_id]) . '" <' . - $value[$this->_subscriptionDetails->contribution_page_id]['receipt_from_email'] . + $value[$this->getSubscriptionDetails()->contribution_page_id]['receipt_from_email'] . '>'; } else { @@ -280,7 +278,7 @@ class CRM_Contribute_Form_CancelSubscription extends CRM_Contribute_Form_Contrib = [ 'groupName' => $this->_mode == 'auto_renew' ? 'msg_tpl_workflow_membership' : 'msg_tpl_workflow_contribution', 'valueName' => $this->_mode == 'auto_renew' ? 'membership_autorenew_cancelled' : 'contribution_recurring_cancelled', - 'contactId' => $this->_subscriptionDetails->contact_id, + 'contactId' => $this->getSubscriptionDetails()->contact_id, 'tplParams' => $tplParams, //'isTest' => $isTest, set this from _objects 'PDFFilename' => 'receipt.pdf',