From db9c53bd103057860480d96a2378ae7b46025400 Mon Sep 17 00:00:00 2001 From: "B. Endres" Date: Sun, 24 May 2020 20:26:10 +0200 Subject: [PATCH 1/3] [#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? From 30a0b81c8b08442743d58fdffd663fd3806afc71 Mon Sep 17 00:00:00 2001 From: "B. Endres" Date: Sun, 24 May 2020 20:39:47 +0200 Subject: [PATCH 2/3] [#20] fixes for mandate ref / postprocessing --- api/v3/TwingleDonation/Submit.php | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/api/v3/TwingleDonation/Submit.php b/api/v3/TwingleDonation/Submit.php index c961cdb..74204bd 100644 --- a/api/v3/TwingleDonation/Submit.php +++ b/api/v3/TwingleDonation/Submit.php @@ -707,16 +707,8 @@ 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['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']}'."); - } + } elseif (!empty($result_values['sepa_mandate']['entity_id'])) { + $recurring_contribution_id = (int) $result_values['sepa_mandate']['entity_id']; } if (isset($contribution['id'])) { $contribution_id = $contribution['id']; @@ -734,7 +726,7 @@ function civicrm_api3_twingle_donation_Submit($params) { // refresh membership data $result_values['membership'] = civicrm_api3('Membership', 'getsingle', ['id' => $membership['id']]); - } catch (Exception $ex) { + } catch (CiviCRM_API3_Exception $ex) { // TODO: more error handling? Civi::log()->debug("Twingle membership postprocessing call {$pp_entity}.{$pp_action} has failed: " . $ex->getMessage()); throw new Exception( From 84fe5137c1bc8d922a2296d4b88b9a5243861514 Mon Sep 17 00:00:00 2001 From: "B. Endres" Date: Sun, 24 May 2020 20:44:17 +0200 Subject: [PATCH 3/3] [#20] fixes for mandate ref / postprocessing --- api/v3/TwingleDonation/Submit.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/api/v3/TwingleDonation/Submit.php b/api/v3/TwingleDonation/Submit.php index 74204bd..d0e4299 100644 --- a/api/v3/TwingleDonation/Submit.php +++ b/api/v3/TwingleDonation/Submit.php @@ -707,8 +707,11 @@ 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($result_values['sepa_mandate']['entity_id'])) { - $recurring_contribution_id = (int) $result_values['sepa_mandate']['entity_id']; + } elseif (!empty($result_values['sepa_mandate'])) { + $mandate = reset($result_values['sepa_mandate']); + if ($mandate['entity_table'] == 'civicrm_contribution_recur') { + $recurring_contribution_id = (int) $mandate['entity_id']; + } } if (isset($contribution['id'])) { $contribution_id = $contribution['id'];