/** * Function to delete membership. * * @param int $membershipId membership id that needs to be deleted * * @static * @return $results no of deleted Membership on success, false otherwise * @access public */ static function deleteMembership($membershipId) { require_once 'CRM/Core/Transaction.php'; $transaction = new CRM_Core_Transaction(); $results = null; //delete activity record $activityTypes = CRM_Core_Pseudoconstant::activityType(true, false, false, 'name'); require_once "CRM/Activity/BAO/Activity.php"; $params = array('source_record_id' => $membershipId, 'activity_type_id' => array(array_search('Membership Signup', $activityTypes), array_search('Membership Renewal', $activityTypes))); CRM_Activity_BAO_Activity::deleteActivity($params); self::deleteMembershipPayment($membershipId); require_once 'CRM/Member/DAO/Membership.php'; $membership = new CRM_Member_DAO_Membership(); $membership->id = $membershipId; $results = $membership->delete(); $transaction->commit(); // delete the recently created Membership require_once 'CRM/Utils/Recent.php'; $membershipRecent = array('id' => $membershipId, 'type' => 'Membership'); CRM_Utils_Recent::del($membershipRecent); return $results; }
/** * Function to delete membership. * * @param int $membershipId membership id that needs to be deleted * * @static * * @return $results no of deleted Membership on success, false otherwise * @access public */ static function deleteMembership($membershipId) { CRM_Utils_Hook::pre('delete', 'Membership', $membershipId, CRM_Core_DAO::$_nullArray); $transaction = new CRM_Core_Transaction(); $results = NULL; //delete activity record $activityTypes = CRM_Core_PseudoConstant::activityType(TRUE, FALSE, FALSE, 'name'); $params = array(); $deleteActivity = false; $membershipActivities = array('Membership Signup', 'Membership Renewal', 'Change Membership Status', 'Change Membership Type', 'Membership Renewal Reminder'); foreach ($membershipActivities as $membershipActivity) { $activityId = array_search($membershipActivity, $activityTypes); if ($activityId) { $params['activity_type_id'][] = $activityId; $deleteActivity = true; } } if ($deleteActivity) { $params['source_record_id'] = $membershipId; CRM_Activity_BAO_Activity::deleteActivity($params); } self::deleteMembershipPayment($membershipId); $membership = new CRM_Member_DAO_Membership(); $membership->id = $membershipId; $results = $membership->delete(); $transaction->commit(); CRM_Utils_Hook::post('delete', 'Membership', $membership->id, $membership); // delete the recently created Membership $membershipRecent = array('id' => $membershipId, 'type' => 'Membership'); CRM_Utils_Recent::del($membershipRecent); return $results; }