<?php
	require "../commonincludefiles.php";
 
	$arr = array();
	$total = 0;
	
	if($_SESSION["cCompany_id"]!=""){

		$company_id	=	$_SESSION["cCompany_id"];
	
		$start   = isset($_REQUEST['start'])  ? $_REQUEST['start']  :  0;
		$limit   = isset($_REQUEST['limit'])  ? $_REQUEST['limit']  : 30;
		$sort    = isset($_REQUEST['sort'])   ? $_REQUEST['sort']   : '';
		$dir     = isset($_REQUEST['dir'])    ? $_REQUEST['dir']    : 'ASC';
		$filters = isset($_REQUEST['filter']) ? $_REQUEST['filter'] : null;

		if (is_array($filters)) {
    		$encoded = false;
		} else {
    		$encoded = true;
    		$filters = json_decode($filters);
		}

		$qs = '';

		if (is_array($filters)) {
			for ($i=0;$i<count($filters);$i++){
				$filter = $filters[$i];
				
				if ($encoded) {
					$field = $filter->field;
					$value = $filter->value;
					$compare = isset($filter->comparison) ? $filter->comparison : null;
					$filterType = $filter->type;
				} else {
					$field = $filter['field'];
					$value = $filter['data']['value'];
					$compare = isset($filter['data']['comparison']) ? $filter['data']['comparison'] : null;
					$filterType = $filter['data']['type'];
				}
				switch($filterType){
				case 'string' : $qs .= " AND ".$field." LIKE '%".$value."%'"; break;
				case 'list' :
					if (strstr($value,',')){
						if(strcmp($field,"designation_name")==0){
							$fi = explode(',',$value);
							for ($q=0;$q < count($fi);$q++){
								$fi[$q] = "'".$fi[$q]."'";
							}
							$value = implode(',',$fi);
							$field = "lm.designation_id";
							$qs .= " AND ".$field." IN (".$value.")";
						}
					} else{
						if(strcmp($field,"designation_name")==0){
							$field = "lm.designation_id";
							$qs .= " AND ".$field." = '".$value."'";
						} else{
							$qs .= " AND ".$field." = '".$value."'";
						}
					}	
					break;
				case 'boolean' : $qs .= " AND ".$field." = ".($value); break;
				case 'numeric' :
					switch ($compare) {
						case 'eq' : $qs .= " AND ".$field." = ".$value; break;
						case 'lt' : $qs .= " AND ".$field." < ".$value; break;
						case 'gt' : $qs .= " AND ".$field." > ".$value; break;
					}
				break;
				case 'date' :
					switch ($compare) {
						case 'eq' : $qs .= " AND ".$field." = '".date('Y-m-d',strtotime($value))."'"; break;
						case 'lt' : $qs .= " AND ".$field." < '".date('Y-m-d',strtotime($value))."'"; break;
						case 'gt' : $qs .= " AND ".$field." > '".date('Y-m-d',strtotime($value))."'"; break;
					}
				break;
				}
			}
			$where .= $qs;
		}

		$sortorder="";
						  
		if ($sort != ""){
			$order_field = $sort;
			$order_type  = $dir;		 		  
		}
			
		$objEmployeeMgmt = new EmployeeMgmt();
		
		$k=0;
		//$where="";
		
		$rs		= $objEmployeeMgmt->employeeGridFilter($limit,$start,$where,$order_field,$order_type);
		$total  = $objEmployeeMgmt->employeeGridFilterCount(0,0,$where,"","");;
		
		while($obj = dbObject($rs)){
			$arr[$k] = $obj;  		
			$k++;
		}
	}
	echo '{"total":"'.$total.'","data":'.json_encode($arr).'}';
?>