<?php
class UserGroup{
	var $id;
	var $code;
	
	function setId($id){
		$this->id = $id;
	}
	
	function getListUserGroup($mode = ''){
		global $db;
		
		$sqls = array();
		if ($mode == 'partial'){
			array_push($sqls,'status = 1');
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		$dbusergroup = $db->fetch_all("SELECT * FROM usergroup".$sql." ORDER BY title");
		
		return $dbusergroup;
	}
	
	function getUserGroupDetail(){
		global $db;
		
		$sqls = array();
		if (!empty($this->id)){
			array_push($sqls,'usergroupid = \''.$this->id.'\'');
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		$dbusergroup = $db->fetch_one("SELECT * FROM usergroup".$sql);
		
		return $dbusergroup;
	}
	
	function checkUserGroupExist($title){
		global $db;
		
		$sqls = array();
		if (!empty($this->id)){
			array_push($sqls,'usergroupid <> \''.$this->id.'\'');
		}
		array_push($sqls,'title = \''.$title.'\'');
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		
		$checkexist = $db->fetch_one("SELECT * FROM usergroup".$sql);
		if (sizeof($checkexist) > 0){
			return true;
		}
		return false;
	}
	
	function saveUserGroup($title,$usertitle,$admin_access,$accessed,$locationid,$status,$userid){
		global $db;
		$inserts['title'] = $title;		
		$inserts['usertitle'] = $usertitle;
		$inserts['adminaccess'] = $admin_access;
		$inserts['accessed'] = $accessed;
		$inserts['location_id'] = $locationid;
		$inserts['createdby'] = $userid;
		$inserts['createddate'] = time();
		$inserts['lasteditedby'] = $userid;
		$inserts['lastediteddate'] = time();
		$inserts['status'] = $status;
		$lastid=$db->insert("usergroup",$inserts);
		/* $db->query("alter table detailprice ADD ugp_".$lastid." decimal(13,2) not null default 0");
		$db->query("alter table detailprice ADD currency_".$lastid." varchar(25) not null default 'Rupiah'"); */
	}
	
	function updateUserGroup($title,$usertitle,$admin_access,$accessed,$locationid,$status,$userid){
		global $db;
		if (!empty($this->id)){
			$updates['title'] = $title;		
			$updates['usertitle'] = $usertitle;
			$updates['adminaccess'] = $admin_access;
			$updates['accessed'] = $accessed;
			$updates['location_id'] = $locationid;
			$updates['lastediteddate'] = time();
			$updates['lasteditedby'] = $userid;
			$updates['status'] = $status;
			$db->update("usergroup",$updates,"usergroupid='".$this->id."'");
			return true;
		}
	}
	
	/*function searchUserGroup($keyword,$mode){
		global $db;
		
		$sqls = array();
		if ($mode == 'partial'){
			array_push($sqls,'status = 1');
		}
		
		if (!empty($keyword)){
			array_push($sqls,'title LIKE (\'%'.$keyword.'%\')');
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		$dbusergroup = $db->fetch_all("SELECT * FROM usergroup".$sql." ORDER BY title");
		
		return $dbusergroup;
	}
	
		function deleteUserGroup(){
		global $db;
		
		if (!empty($this->id)){	
			$db->query("DELETE FROM usergroup WHERE usergroupid='".$this->id."'");
			$db->query("ALTER table detailprice DROP ugp_".$this->id);
		}
		
	}*/
	
	function searchUserGroup($keyword,$field,$sortfield,$sortdetail,$getreturn,$page = -1){
		global $db,$general;
		
		$addlimit = '';
		if ($page > 0){
			$addlimit = ' LIMIT '.($page-1)*$general['showperpageadmin'].','.$general['showperpageadmin'];
		}
		
		$sqls = array();
			
		$fields = 'title';
		
		if (isset($keyword)){
			$strinarr = '';
			$groupby = '';
			
			$arr1 = array_search('usergroupid',$field);
			if ($arr1 !== false){
				$strinarr = 'usergroupid LIKE (\'%'.$db->clean($keyword[$arr1]).'%\')';
				array_push($sqls,$strinarr);
			}
			$arr2 = array_search('title',$field);
			if ($arr2 !== false){
				$strinarr = 'title LIKE (\'%'.$db->clean($keyword[$arr2]).'%\')';
				array_push($sqls,$strinarr);
			}
			$arr3 = array_search('usertitle',$field);
			if ($arr3 !== false){
				$strinarr = 'usertitle LIKE (\'%'.$db->clean($keyword[$arr3]).'%\')';
				array_push($sqls,$strinarr);
			}
			$arr4= array_search('createdby',$field);
			if ($arr4 !== false){
				$strinarr = 'createdby LIKE (\'%'.$db->clean($keyword[$arr4]).'%\')';
				array_push($sqls,$strinarr);
			}
			$arr5= array_search('status',$field);
			if ($arr5 !== false){
				$strinarr = 'status = \''.$keyword[$arr5].'\'';
				array_push($sqls,$strinarr);
			}
		}
		
		$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 'sortusergroupid': $fields = 'usergroupid'; break;
					case 'sorttitle': $fields = 'title'; break;
					case 'sortusertitle': $fields = 'usertitle'; break;
					case 'sortcreatedby': $fields = 'createdby'; break;
					case 'sortstatus': $fields = 'status'; break;
					default: $fields = 'title'; break;
				}
			}
			
			$dball = $db->fetch_all("SELECT * FROM usergroup ".$sql." ORDER BY ".$fields." ".$orders.$addlimit);
			
			return $dball;
		}
		else if ($getreturn == 'pagenav'){
			$dball = $db->fetch_one("SELECT COUNT(usergroupid) AS totalrecord FROM usergroup".$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;
		}
	}
	
	function deleteUserGroup(){
		global $db;
		
		if (!empty($this->id)){			
			$db->query("DELETE FROM usergroup WHERE usergroupid='".$this->id."'");
		}
	}
	
}
?>