/**
  * Delete membership Types.
  *
  * @param int $membershipStatusId
  *
  * @throws CRM_Core_Exception
  */
 public static function del($membershipStatusId)
 {
     //check dependencies
     //checking if membership status is present in some other table
     $check = FALSE;
     $dependency = array('Membership', 'MembershipLog');
     foreach ($dependency as $name) {
         $baoString = 'CRM_Member_BAO_' . $name;
         $dao = new $baoString();
         $dao->status_id = $membershipStatusId;
         if ($dao->find(TRUE)) {
             throw new CRM_Core_Exception(ts('This membership status cannot be deleted as memberships exist with this status'));
         }
     }
     CRM_Utils_Weight::delWeight('CRM_Member_DAO_MembershipStatus', $membershipStatusId);
     //delete from membership Type table
     $membershipStatus = new CRM_Member_DAO_MembershipStatus();
     $membershipStatus->id = $membershipStatusId;
     $membershipStatus->delete();
     CRM_Member_PseudoConstant::flush('membershipStatus');
     $membershipStatus->free();
 }
 /**
  * @param string $name
  *
  * @return mixed
  */
 public function membershipStatusCreate($name = 'test member status')
 {
     $params['name'] = $name;
     $params['start_event'] = 'start_date';
     $params['end_event'] = 'end_date';
     $params['is_current_member'] = 1;
     $params['is_active'] = 1;
     $result = $this->callAPISuccess('MembershipStatus', 'Create', $params);
     CRM_Member_PseudoConstant::flush('membershipStatus');
     return $result['id'];
 }