End SEPA mandates when ending a debit_manual recurring contribution.
This commit is contained in:
parent
8ff71e277e
commit
2f4358c1b4
2 changed files with 25 additions and 7 deletions
|
@ -70,12 +70,30 @@ function civicrm_api3_twingle_donation_EndRecurring($params) {
|
|||
$contribution = civicrm_api3('ContributionRecur', 'getsingle', array(
|
||||
'trxn_id' => $params['trx_id'],
|
||||
));
|
||||
// TODO: End SEPA mandates?
|
||||
// End SEPA mandate (which ends the associated recurring contribution) or
|
||||
// recurring contributions.
|
||||
if (
|
||||
CRM_Twingle_Submission::civiSepaEnabled()
|
||||
&& CRM_Sepa_Logic_Settings::isSDD($contribution)
|
||||
) {
|
||||
$mandate_id = CRM_Sepa_Logic_Settings::getMandateFor($contribution['id']);
|
||||
if (!CRM_Sepa_BAO_SEPAMandate::terminateMandate($mandate_id, $params['ended_at'])) {
|
||||
throw new CiviCRM_API3_Exception(
|
||||
E::ts('Could not terminate SEPA mandate'),
|
||||
'api_error'
|
||||
);
|
||||
}
|
||||
$contribution = civicrm_api3('ContributionRecur', 'getsingle', array(
|
||||
'id' => $contribution['id'],
|
||||
));
|
||||
}
|
||||
else {
|
||||
$contribution = civicrm_api3('ContributionRecur', 'create', array(
|
||||
'id' => $contribution['id'],
|
||||
'end_date' => $params['ended_at'],
|
||||
'contribution_status_id' => 'Completed', // TODO: Correct?
|
||||
'contribution_status_id' => 'Completed',
|
||||
));
|
||||
}
|
||||
|
||||
$result = civicrm_api3_create_success($contribution);
|
||||
}
|
||||
|
|
|
@ -492,7 +492,7 @@ function civicrm_api3_twingle_donation_Submit($params) {
|
|||
$contribution_recur_data =
|
||||
$contribution_data
|
||||
+ array(
|
||||
'contribution_status_id' => 'Pending', // TODO: Or "In Progress"?
|
||||
'contribution_status_id' => 'Pending',
|
||||
'start_date' => $params['confirmed_at'],
|
||||
)
|
||||
+ CRM_Twingle_Submission::getFrequencyMapping($params['donation_rhythm']);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue