function run() { $get = $_GET; $cid = $get['cid']; $mid = $get['mid']; $cr_id = $get['cr_id']; $payer_reference = $get['reference_number']; $this->assign('payer_reference', $reference_number); $params = array(); if (!empty($cid)) { $contact = CRM_SmartdebitReconciliation_Page_MembershipRecurDetails::_get_contact_details($cid); $address = CRM_SmartdebitReconciliation_Page_MembershipRecurDetails::_get_address($cid); $this->assign('aContact', $contact); $this->assign('aAddress', $address); $params['contact_id'] = $cid; } if (!empty($mid)) { $membership = CRM_SmartdebitReconciliation_Page_MembershipRecurDetails::_get_membership($mid); $this->assign('aMembership', $membership); $params['membership_id'] = $mid; } if (!empty($cr_id)) { $cRecur = CRM_SmartdebitReconciliation_Page_MembershipRecurDetails::_get_contribution_recur($cr_id); $this->assign('aContributionRecur', $cRecur); $params['contribution_recur_id'] = $cr_id; } $params['payer_reference'] = $payer_reference; // Check the details are correct and everything has been passed over // Call the routine that will fix everything require_once 'CRM/SmartdebitReconciliation/Form/SmartdebitReconciliationList.php'; CRM_SmartdebitReconciliation_Form_SmartdebitReconciliationList::repair_missing_from_civicrm_record($params); $params = sprintf('reset=1&cid=%d', $params['contact_id']); $url = CRM_Utils_System::url('civicrm/contact/view', $params); CRM_Utils_System::redirect($url); }
function run() { $get = $_GET; $cid = $get['cid']; $payer_reference = $get['reference_number']; $this->assign('payer_reference', $reference_number); $params = array(); // Find a membership for the contact - if they have more than one then bomb out $mid = $get['mid']; // Find recurring for the contact // The recurring should have the a status of pending $cr_id = $get['cr_id']; // Find the contribution attached to the recurring record thats also set to pending (incomplete transaction) if (!empty($cid)) { $contact = CRM_SmartdebitReconciliation_Page_MembershipRecurDetails::_get_contact_details($cid); $address = CRM_SmartdebitReconciliation_Page_MembershipRecurDetails::_get_address($cid); $this->assign('aContact', $contact); $this->assign('aAddress', $address); $params['contact_id'] = $cid; } if (!empty($mid)) { $membership = CRM_SmartdebitReconciliation_Page_MembershipRecurDetails::_get_membership($mid); $this->assign('aMembership', $membership); $params['membership_id'] = $mid; } if (!empty($cr_id)) { $cRecur = CRM_SmartdebitReconciliation_Page_MembershipRecurDetails::_get_contribution_recur($cr_id); $this->assign('aContributionRecur', $cRecur); $params['contribution_recur_id'] = $cr_id; } $params['payer_reference'] = $payer_reference; // Check the details are correct and everything has been passed over // Call the routine that will fix everything require_once 'CRM/SmartdebitReconciliation/Form/SmartdebitReconciliationList.php'; // Then Call the IPN code i.e. we're pretending we've just completed the smart debit call and firing the code that was in the CRM_SmartdebitReconciliation_Form_SmartdebitReconciliationList::repair_corrupt_in_civicrm_record($params); $params = sprintf('reset=1&cid=%d', $cid); $url = CRM_Utils_System::url('civicrm/contact/view', $params); CRM_Utils_System::redirect($url); }