<?php
class MemberCard{
	var $id;
	var $email;
	var $ugid;
	private $db;
	private $nwtm;
	
	function __construct(){		
		global $db, $nwtm;
		$this->db = $db;
		$this->email = '';
		$this->id = '';
		$this->nwtm = $nwtm;
	}
		
	function setId($id){
		$this->id = $this->db->clean($id);
	}
	
	function deleteCard(){
		$this->db->query("DELETE FROM membership_card WHERE idcard = '".$this->db->clean($this->id)."'");
	}
		
	function getMemberCardType($mode = ''){
		$sqls = array();
		if ($mode == 'partial'){
			array_push($sqls,'status = 1');
		}
		
		$sql = '';
		$datas = array();
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		$datas = $this->db->fetch_all("SELECT * FROM membership_card".$sql." ORDER BY sort");
		
		return $datas;
	}
	
	function saveCard($name_card,$status,$userid){		
		$inserts['name_card'] = $name_card;
		$inserts['createddate'] = $this->nwtm;
		$inserts['createdby'] = $userid;
		$inserts['lastediteddate'] = $this->nwtm;
		$inserts['lasteditedby'] = $userid;
		$inserts['sort'] = $this->getLastOrder();
		$inserts['status'] = $status;
		
		$savemebership = $this->db->insert('membership_card',$inserts);
		
		return $savemebership;
	}
	
	function updateCard($name_card,$status,$userid){			
		if (!empty($this->id)){
			$updates['name_card'] = $name_card;
			$updates['lastediteddate'] = $this->nwtm;
			$updates['lasteditedby'] = $userid;
			$updates['status'] = $status;				
			$this->db->update('membership_card',$updates,'idcard=\''.$this->id.'\'');
		}
	}
	
	function updateSort($pageorder){
		if (!empty($this->id)){
			$updates['sort'] = $pageorder;
			
			$this->db->update("membership_card",$updates,"idcard='".$this->id."'");
		
			return true;
		}
	}
	
	function getLastOrder(){
		$lastorder = $this->db->fetch_one("SELECT * FROM membership_card ORDER BY sort DESC LIMIT 1");
		if (sizeof($lastorder) > 0){
			return $lastorder['sort'] + 1;
		}
		return 1;
	}
	
	function searchCard($keyword,$field,$sortfield,$sortdetail,$getreturn,$page = -1){
		global $general;
		
		$addlimit = '';
		if ($page > 0){
			$addlimit = ' LIMIT '.($page-1)*$general['showperpageadmin'].','.$general['showperpageadmin'];
		}
		
		$sqls = array();
		$fields = 'sort';
		
		if (isset($keyword)){
			$strinarr = '';
			$groupby = '';
			
			$arr1 = array_search('name_card',$field);
			if ($arr1 !== false){
				$strinarr = 'name_card LIKE (\'%'.$this->db->clean($keyword[$arr1]).'%\')';
				array_push($sqls,$strinarr);
				$fields = 'idcard';
			}
			$arr3 = array_search('status',$field);
			if ($arr3 !== false){
				$strinarr = 'status = \''.$this->db->clean($keyword[$arr3]).'\'';
				array_push($sqls,$strinarr);
				$fields = 'idcard';
			}
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		
		if ($getreturn == 'data'){
			$orders = 'ASC';
			if (!empty($sortdetail)){
				$orders = $sortdetail;
			}
		
			if (!empty($sortfield)){
				switch ($sortfield){
					case 'sortidcard': $fields = 'idcard'; break;
					case 'sortname_card': $fields = 'name_card'; break;
					case 'sortstatus': $fields = 'status'; break;
					default: $fields = 'sort'; break;
				}
			}
			
			$dball = $this->db->fetch_all("SELECT * FROM membership_card ".$sql." ORDER BY ".$fields." ".$orders.$addlimit);
			
			return $dball;
		}
		else if ($getreturn == 'pagenav'){
			$dball = $this->db->fetch_one("SELECT COUNT(idcard) AS totalrecord FROM membership_card".$sql);
			
			if ($dball['totalrecord'] > 0){
				$totalrecord = $dball['totalrecord'];
				$totalpage = ceil($totalrecord / $general['showperpageadmin']);
				$page = handlepage($page,$totalpage);
				$startrecord = ($page - 1) * $general['showperpageadmin'] + 1;
				$endrecord = $startrecord + $general['showperpageadmin'] - 1;
				if ($endrecord > $totalrecord){
					$endrecord = $totalrecord;
				}
			}
			else{
				$page = 0;
				$totalrecord = 0;
				$totalpage = 0;
				$startrecord = 0;
				$endrecord = 0;
			}
			
			return $page.'|^|'.$totalrecord.'|^|'.$totalpage.'|^|'.$startrecord.'|^|'.$endrecord;
		}
	}

}
?>