From db9c53bd103057860480d96a2378ae7b46025400 Mon Sep 17 00:00:00 2001 From: "B. Endres" Date: Sun, 24 May 2020 20:26:10 +0200 Subject: [PATCH] [#20] fixes for mandate ref / postprocessing --- api/v3/TwingleDonation/Submit.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/api/v3/TwingleDonation/Submit.php b/api/v3/TwingleDonation/Submit.php index 57793d6..c961cdb 100644 --- a/api/v3/TwingleDonation/Submit.php +++ b/api/v3/TwingleDonation/Submit.php @@ -707,8 +707,16 @@ function civicrm_api3_twingle_donation_Submit($params) { $recurring_contribution_id = $contribution_id = ''; if (isset($contribution_recur['id'])) { $recurring_contribution_id = $contribution_recur['id']; - } elseif (!empty($mandate['entity_id']) && $mandate['type'] == 'RCUR') { - $recurring_contribution_id = $mandate['entity_id']; + } elseif (!empty($mandate['id'])) { + // load mandate and see... + try { + $mandate_created = civicrm_api3('SepaMandate', 'getsingle', ['id' => $mandate['id']]); + if ($mandate_created['entity_table'] == 'civicrm_contribution_recur') { + $recurring_contribution_id = $mandate['entity_id']; + } + } catch(CiviCRM_API3_Exception $ex) { + Civi::log()->warning("Couldn't load SepaMandate with id '{$mandate['id']}'."); + } } if (isset($contribution['id'])) { $contribution_id = $contribution['id']; @@ -724,7 +732,7 @@ function civicrm_api3_twingle_donation_Submit($params) { ]); // refresh membership data - $result_values['membership'] = civicrm_api3('Membership', 'getsingle', $membership['id']); + $result_values['membership'] = civicrm_api3('Membership', 'getsingle', ['id' => $membership['id']]); } catch (Exception $ex) { // TODO: more error handling?