}
if ($this->_mid) {
- if (CRM_Member_BAO_Membership::isSubscriptionCancelled($this->_mid)) {
- CRM_Core_Error::fatal(ts('The auto renewal option for this membership looks to have been cancelled already.'));
- }
$this->_mode = 'auto_renew';
- $this->_paymentProcessorObj = CRM_Financial_BAO_PaymentProcessor::getProcessorForEntity($this->_mid, 'membership', 'obj');
- $this->_subscriptionDetails = CRM_Contribute_BAO_ContributionRecur::getSubscriptionDetails($this->_mid, 'membership');
+ // CRM-18468: crid is more accurate than mid for getting
+ // subscriptionDetails, so don't get them again.
+ if (!$this->_crid) {
+ $this->_paymentProcessorObj = CRM_Financial_BAO_PaymentProcessor::getProcessorForEntity($this->_mid, 'membership', 'obj');
+ $this->_subscriptionDetails = CRM_Contribute_BAO_ContributionRecur::getSubscriptionDetails($this->_mid, 'membership');
+ }
$membershipTypes = CRM_Member_PseudoConstant::membershipType();
$membershipTypeId = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership', $this->_mid, 'membership_type_id');