Ejegg has submitted this change and it was merged.
Change subject: Use Civi method to cancel recurring via qc
......................................................................
Use Civi method to cancel recurring via qc
Cancel recurring donations using the same method as Civi's UI.
This gets the contribution status correct and adds an activity
record for the cancellation. Keep making the API call to update
cancel and end dates to match those in the message
Bug: T110367
Change-Id: Ic08da5592db08a14fa3f7809e928b094dab26162
---
M sites/all/modules/queue2civicrm/recurring/recurring.module
M sites/all/modules/queue2civicrm/recurring/recurring_queue_consume.drush.inc
2 files changed, 25 insertions(+), 13 deletions(-)
Approvals:
Ejegg: Verified
Awight: Looks good to me, approved
diff --git a/sites/all/modules/queue2civicrm/recurring/recurring.module
b/sites/all/modules/queue2civicrm/recurring/recurring.module
index 5704bad..a171371 100644
--- a/sites/all/modules/queue2civicrm/recurring/recurring.module
+++ b/sites/all/modules/queue2civicrm/recurring/recurring.module
@@ -332,21 +332,32 @@
if ( !$recur_record = wmf_civicrm_get_recur_record( $msg[ 'subscr_id' ] ) ) {
throw new WmfException( 'INVALID_RECURRING', 'Subscription account does
not exist' );
}
-
- $api = civicrm_api_classapi();
- $update_params = array(
- 'id' => $recur_record->id,
-
- 'cancel_date' => wmf_common_date_unix_to_civicrm( $msg[ 'cancel_date' ] ),
- 'end_date' => wmf_common_date_unix_to_civicrm( $msg[ 'cancel_date' ] ),
-
- 'version' => 3,
+ $activityParams = array(
+ 'subject' => ts('Recurring contribution cancelled'),
);
- if ( !$api->ContributionRecur->Create( $update_params ) ) {
- throw new WmfException( 'INVALID_RECURRING', 'There was a problem updating
the subscription for cancelation for subscriber id: ' . print_r( $msg[
'subscr_id' ], true ) . ": " . $api->errorMsg() );
- } else {
- watchdog( 'recurring', 'Succesfuly cancelled subscription for subscriber
id %subscr_id', array( '%subscr_id' => print_r( $msg[ 'subscr_id' ], true )),
WATCHDOG_NOTICE );
+ $cancelStatus =
CRM_Contribute_BAO_ContributionRecur::cancelRecurContribution(
+ $recur_record->id,
+ CRM_Core_DAO::$_nullObject,
+ $activityParams
+ );
+ if ( !$cancelStatus ) {
+ throw new WmfException( 'INVALID_RECURRING', 'There was a problem
cancelling the subscription for subscriber id: ' . print_r( $msg[ 'subscr_id'
], true ) );
}
+
+ if ( $msg[ 'cancel_date' ] ) {
+ // Set cancel and end dates to match those from message.
+ $api = civicrm_api_classapi();
+ $update_params = array(
+ 'id' => $recur_record->id,
+ 'cancel_date' => wmf_common_date_unix_to_civicrm( $msg[ 'cancel_date' ]
),
+ 'end_date' => wmf_common_date_unix_to_civicrm( $msg[ 'cancel_date' ] ),
+ 'version' => 3,
+ );
+ if ( !$api->ContributionRecur->Create( $update_params ) ) {
+ throw new WmfException( 'INVALID_RECURRING', 'There was a problem
updating the subscription for cancelation for subscriber id: ' . print_r( $msg[
'subscr_id' ], true ) . ": " . $api->errorMsg() );
+ }
+ }
+ watchdog( 'recurring', 'Succesfuly cancelled subscription for subscriber id
%subscr_id', array( '%subscr_id' => print_r( $msg[ 'subscr_id' ], true )),
WATCHDOG_NOTICE );
}
/**
diff --git
a/sites/all/modules/queue2civicrm/recurring/recurring_queue_consume.drush.inc
b/sites/all/modules/queue2civicrm/recurring/recurring_queue_consume.drush.inc
index d74e712..779afa5 100644
---
a/sites/all/modules/queue2civicrm/recurring/recurring_queue_consume.drush.inc
+++
b/sites/all/modules/queue2civicrm/recurring/recurring_queue_consume.drush.inc
@@ -50,6 +50,7 @@
}
function drush_recurring_queue_consume_recurring_process_messagefile( $path ) {
+ civicrm_initialize();
watchdog( 'recurring', "Processing input file @path and feeding to
recurring_import.",
array( '@path' => realpath( $path ) ), WATCHDOG_INFO );
$contents = file_get_contents( $path );
--
To view, visit https://gerrit.wikimedia.org/r/239900
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ic08da5592db08a14fa3f7809e928b094dab26162
Gerrit-PatchSet: 2
Gerrit-Project: wikimedia/fundraising/crm
Gerrit-Branch: master
Gerrit-Owner: Ejegg <[email protected]>
Gerrit-Reviewer: Awight <[email protected]>
Gerrit-Reviewer: Ejegg <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits