<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class User_model extends CI_Model
{
	
	protected $table_name = 'tbluser';
	protected $id_name = 'us_id';

	function __construct()
	{
		parent::__construct();
		$this->vservices->setApiUrl($this->config->item('api_url'));
		$this->vservices->setConnection($this->curl);
	}
	
	function check_data($login_name)
	{
		$this->db->where('login_name', $login_name);
		$query = $this->db->get($this->table_name);
		return $query->num_rows();
	}
	
	function get_list_users($data)
	{
		$sql="SELECT * FROM ".$this->table_name;
		if ($data['status'] == 1){
			$sql.=" WHERE expire_date > NOW() AND p_id <> 5";
		}
		if ($data['status'] == 2){
			$sql.=" WHERE expire_date > NOW() AND p_id = 5";
		}
		if ($data['status'] == 3){
			$sql.=" WHERE expire_date < NOW() AND p_id = 5";
		}
		if ($data['status'] == 4){
			$sql.=" WHERE expire_date < NOW() AND p_id <> 5";
		}
		if (isset($data['keyword']))
		{
			if (strlen($data['keyword'])>0){
				if ($data['status']==0){
					if (strlen($data['province_code'])>0){
						if(strlen($data['daterange_start'])>0){
							$sql.=" WHERE province = '".$data['province_code']."' AND (cellphone LIKE '%".$data['keyword']."%' OR collaborator LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%') AND (created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."')";
						}
					}else{
						if(strlen($data['daterange_start'])>0){
							$sql.=" WHERE (cellphone LIKE '%".$data['keyword']."%' OR collaborator LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%') AND (created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."')";
						}else
						{
							$sql.=" WHERE (cellphone LIKE '%".$data['keyword']."%' OR collaborator LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%')";
						}
					}
				}else
				{
					if (strlen($data['province_code'])>0){
						if(strlen($data['daterange_start'])>0){
							$sql.=" AND province = '".$data['province_code']."' AND (cellphone LIKE '%".$data['keyword']."%' OR collaborator LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR district LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%') AND (created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."')";
						}else{
							$sql.=" AND province = '".$data['province_code']."' AND (cellphone LIKE '%".$data['keyword']."%' OR collaborator LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR district LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%') ";
						}
					}
				}
			}else
			{
				if(strlen($data['daterange_start'])>0){
					if ($data['status']==0){
						if (strlen($data['province_code'])>0){
							$sql.=" WHERE province = '".$data['province_code']."' AND created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."'";
						}else{
							$sql.=" WHERE (created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."')";
						}
					}else{
						if (strlen($data['province_code'])>0){
							$sql.=" AND province = '".$data['province_code']."' AND (created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."')";
						}else{
							$sql.=" AND (created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."')";
						}
					}		
				}
				else{
					if ($data['status']==0){
						if (strlen($data['province_code'])>0){
							$sql.=" WHERE province = '".$data['province_code']."'"; 
						}
					}else{
						if (strlen($data['province_code'])>0){
							$sql.=" AND province = '".$data['province_code']."'";
						}
					}		
				}
			}
		}
		$order = "";
		if ($data['sorting_order'] != "sorting") {
			if($data['sorting_field'] != "status"){
				$sort = "DESC";
				if ($data['sorting_order'] == "sorting_asc")
					$sort = "ASC";
				$order = "ORDER BY " . $data['sorting_field'] . " " . $sort;
			}
		}
		write_file('./log/test.log', date("d-m-Y: H:i:s"). ": ".$sql." ".$order." LIMIT ".$data['start'].", ".$data['perpage'] , FOPEN_WRITE_CREATE);
		return $this->db->query($sql." ".$order." LIMIT ".$data['start'].", ".$data['perpage']." ")->result_array();
	}

	function get_total_users($data)
	{
		$sql="SELECT COUNT(".$this->id_name.") AS total FROM ".$this->table_name;
		
		if ($data['status'] == 1){
			$sql.=" WHERE expire_date > NOW() AND p_id <> 5";
		}
		if ($data['status'] == 2){
			$sql.=" WHERE expire_date > NOW() AND p_id = 5";
		}
		if ($data['status'] == 3){
			$sql.=" WHERE expire_date < NOW() AND p_id = 5";
		}
		if ($data['status'] == 4){
			$sql.=" WHERE expire_date < NOW() AND p_id <> 5";
		}
		
		if (isset($data['keyword']))
		{
			if (strlen($data['keyword'])>0){
				if ($data['status']==0){
					if (strlen($data['province_code'])>0){
						if(strlen($data['daterange_start'])>0){
							$sql.=" WHERE province = '".$data['province_code']."' AND (cellphone LIKE '%".$data['keyword']."%' OR collaborator LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%') AND (created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."')";
						}
					}else{
						if(strlen($data['daterange_start'])>0){
							$sql.=" WHERE (cellphone LIKE '%".$data['keyword']."%' OR collaborator LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%') AND (created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."')";
						}else
						{
							$sql.=" WHERE (cellphone LIKE '%".$data['keyword']."%' OR collaborator LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%')";
						}
					}
				}else
				{
					if (strlen($data['province_code'])>0){
						if(strlen($data['daterange_start'])>0){
							$sql.=" AND province = '".$data['province_code']."' AND (cellphone LIKE '%".$data['keyword']."%' OR collaborator LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR district LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%') AND (created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."')";
						}else{
							$sql.=" AND province = '".$data['province_code']."' AND (cellphone LIKE '%".$data['keyword']."%' OR collaborator LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%' OR acc_balanced LIKE '%".$data['keyword']."%' OR district LIKE '%".$data['keyword']."%' OR province LIKE '%".$data['keyword']."%') ";
						}
					}
				}
			}else
			{
				if(strlen($data['daterange_start'])>0){
					if ($data['status']==0){
						if (strlen($data['province_code'])>0){
							$sql.=" WHERE province = '".$data['province_code']."' AND created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."'";
						}else{
							$sql.=" AND (created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."')";
						}
					}else{
						if (strlen($data['province_code'])>0){
							$sql.=" AND province = '".$data['province_code']."' AND (created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."')";
						}else{
							$sql.=" AND (created_time BETWEEN '".$data['daterange_start']."' AND '".$data['daterange_end']."')";
						}
					}		
				}
				else{
					if ($data['status']==0){
						if (strlen($data['province_code'])>0){
							$sql.=" WHERE province = '".$data['province_code']."'"; 
						}
					}else{
						if (strlen($data['province_code'])>0){
							$sql.=" AND province = '".$data['province_code']."'";
						}
					}		
				}
			}
		}
		
		$query = $this->db->query($sql);
		$row = $query->row_array();
		
		return $row['total'];
	}
	
	function get_user_info($src, $us_id, $token)
	{
		$data = $this->vservices->actionExecute('getinfo', array('src' => $src, 'us_id' => $us_id, 'token'=>$token), 'user');
        return $data;
	}
	
}