/** 
  * 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;
 }