dev/core#704 Fix loss of links for recurrings with no payment_processor_id
authoreileen <emcnaughton@wikimedia.org>
Tue, 2 Apr 2019 02:05:59 +0000 (15:05 +1300)
committereileen <emcnaughton@wikimedia.org>
Tue, 2 Apr 2019 02:11:29 +0000 (15:11 +1300)
commit870111537e92dd563b23f8fe6607b9477a101f67
treee6301effc09bc2c657d75fdf30b3bf560d9d0f80
parent50f4b85e8a4db1aad45f549009368697c095a153
dev/core#704 Fix loss of links for recurrings with no payment_processor_id

In 5.8 changes were made that remove the cancel links from recurring payments where the payment processor object
doesn't load. This is appropriate for cases where there IS a processor but it's disabled. However, it is not
unknown for sites to import contribution_recur records from elsewhere as data records rather than 'functional
records' & it is appropriate to be able to edit those.

We already have a relevant patter - loading payment processor 0 loads the manual processor
(class is CRM_Core_Manual) which has functionality appropriate to non-automated flows
(also known as the paylater processor).

This PR switches to the function CRM_Contribute_BAO_ContributionRecur::getPaymentProcessorObject
which is a skinny wrapper on CRM_Contribute_BAO_ContributionRecur::getPaymentProcessor - which itself
was not actually called from core prior to this change (we didn't remove it as it was better than
functions in play & hence intended to start using it again). No processor is loaded
for an inactive processor so links do not appear there.
CRM/Contribute/BAO/ContributionRecur.php
CRM/Contribute/Page/Tab.php