Nuance cancel options for processors.
authoreileen <emcnaughton@wikimedia.org>
Wed, 22 Apr 2020 23:08:05 +0000 (11:08 +1200)
committerMatthew Wire <mjw@mjwconsult.co.uk>
Mon, 1 Jun 2020 10:03:36 +0000 (11:03 +0100)
commit5077b04cabe3ad1ce36ce350b4c2cc88b79f21d3
treee59d2c0deb5d6aa648b9093e768cb955cb71806b
parenta51af1d2c80a36c35f628be5f15c50a5310e30bb
Nuance cancel options for processors.

This PR addresses an issue where we have insufficient nuance on processor capabilities for cancel.

There are 2 behaviours that we are trying to support with one capability
1) can this processor cope with us cancelling a recurring donation within CiviCRM
2) should we present the option of whether to or not to a user. This option is appropriate
when the processor manages the schedule (e.g Paypal) as the user may just be updating Civi to
match reality. However, for token driven processors it generally doesnt' apply.

This PR adds a new overridable capability - 'supportsOptionalCancelRecurring' which is the same as
supportsCancelRecurring by default. For the manual processor it is FALSE.

Call cancelRecurring for all cancels.

In almost all cases this will be no change as processors would have to implement the new-ish
doCancelRecurring themselves to have any change
CRM/Contribute/Form/CancelSubscription.php
CRM/Core/Payment.php
CRM/Core/Payment/Manual.php
Civi/Payment/PropertyBag.php
templates/CRM/Contribute/Form/CancelSubscription.tpl