fn_chat.php 5.08 KB
<? 
	session_start();
	include ('../init.php');
	include ('fn_common.php');
	checkUserSession();
	
	loadLanguage($_SESSION["language"], $_SESSION["units"]);
	
	// check privileges
	if ($_SESSION["privileges"] == 'subuser')
	{
		$user_id = $_SESSION["manager_id"];
	}
	else
	{
		$user_id = $_SESSION["user_id"];
	}
        
        if(@$_POST['cmd'] == 'send_msg')
	{
                $dt_server = gmdate("Y-m-d H:i:s");
                $imei = $_POST['imei'];
                $side = 'S';
                $msg = $_POST['msg'];
		
		$q = 'UPDATE gs_objects SET `dt_chat`="'.$dt_server.'" WHERE imei="'.$imei.'"';
		$r = mysqli_query($ms, $q);
               
                $q = 'INSERT INTO gs_object_chat (dt_server,
                                                        imei,
                                                        side,
                                                        msg
                                                        ) VALUES (
                                                        "'.$dt_server.'",
                                                        "'.$imei.'",
                                                        "'.$side.'",
                                                        "'.$msg.'")';
                                    
                $r = mysqli_query($ms, $q);
                
                echo 'OK';
                die;
        }
	
	if(@$_POST['cmd'] == 'delete_all_msgs')
	{
		$imei = $_POST['imei'];
		
		$q = "DELETE FROM `gs_object_chat` WHERE `imei`='".$imei."'";
		$r = mysqli_query($ms, $q);
		
		$q = 'UPDATE gs_objects SET `dt_chat`="" WHERE imei="'.$imei.'"';
		$r = mysqli_query($ms, $q);
		
		echo 'OK';
		die;
	}
	
	if(@$_POST['cmd'] == 'load_chat_data')
	{
		$result = array();
		$result['msg_count'] = array();
		$result['msg_dt'] = array();
		$result['last_msg_status'] = false;
		
		$imei = $_POST['imei'];
		$last_msg_id = $_POST['last_msg_id'];
		
		// set messages to delivered
		if ($_SESSION["privileges"] == 'subuser')
		{
			$q = "UPDATE `gs_object_chat` SET `status`=1 WHERE `imei` IN (".$_SESSION["privileges_imei"].") AND `side`='C' AND `status`=0";
		}
		else
		{
			$q = "UPDATE `gs_object_chat` SET `status`=1 WHERE `imei` IN (".getUserObjectIMEIs($user_id).") AND `side`='C' AND `status`=0";
		}
		
		$r = mysqli_query($ms, $q);
		
		// get unread messages number
		if ($_SESSION["privileges"] == 'subuser')
		{
			$q = "SELECT * FROM `gs_object_chat` WHERE `imei` IN (".$_SESSION["privileges_imei"].") AND `side`='C' AND `status`!=2";
		}
		else
		{
			$q = "SELECT * FROM `gs_object_chat` WHERE `imei` IN (".getUserObjectIMEIs($user_id).") AND `side`='C' AND `status`!=2";
		}
		
		$r = mysqli_query($ms, $q);
		
		if ($r)
		{
			while($row = mysqli_fetch_array($r))
			{
				if (!isset($result['msg_count'][$row['imei']]))
				{
					$result['msg_count'][$row['imei']] = 0;
				}
				
				$result['msg_count'][$row['imei']] += 1;
			}	
		}
		
		// get last messages datetime
		if ($_SESSION["privileges"] == 'subuser')
		{
			$q = "SELECT * FROM `gs_objects` WHERE `imei` IN (".$_SESSION["privileges_imei"].")";
		}
		else
		{
			$q = "SELECT * FROM `gs_objects` WHERE `imei` IN (".getUserObjectIMEIs($user_id).")";
		}
		
		$r = mysqli_query($ms, $q);
		
		if ($r)
		{
			while($row = mysqli_fetch_array($r))
			{
				if (strtotime($row['dt_chat']) > 0)
				{
					$dt = convUserTimezone($row['dt_chat']);
					$result['msg_dt'][$row['imei']] = $dt;
				}
				else
				{
					$result['msg_dt'][$row['imei']] = '';
				}
			}	
		}
		
		// get last sent message status
		if (($imei != 'false') && ($last_msg_id != 'false'))
		{
			$q = "SELECT * FROM `gs_object_chat` WHERE `imei`='".$imei."' AND `msg_id`='".$last_msg_id."' AND `side`='S'";
			$r = mysqli_query($ms, $q);
			if($row = mysqli_fetch_array($r))
			{
				$result['last_msg_status'] = $row['status'];
			}
		}
		
		echo json_encode($result);
		die;
	}
        
        if(@$_POST['cmd'] == 'load_msgs')
	{
		$result = array();
		
                $imei = $_POST['imei'];
		$type = $_POST['type'];
		$msg_limit = $_POST['msg_limit'];
		$first_msg_id = $_POST['first_msg_id'];
		$last_msg_id = $_POST['last_msg_id'];
		
		// set messages to seen
		$q = "UPDATE `gs_object_chat` SET `status`=2 WHERE `imei`='".$imei."' AND `side`='C'";
		$r = mysqli_query($ms, $q);
		
		// get messages
		if ($type == 'select')
		{
			$q = "SELECT * FROM `gs_object_chat` WHERE `imei`='".$imei."' ORDER BY `msg_id` desc LIMIT ".$msg_limit;
		}
		else if ($type == 'old')
		{
			$q = "SELECT * FROM `gs_object_chat` WHERE `imei`='".$imei."' AND `msg_id`<'".$first_msg_id."' ORDER BY `msg_id` desc LIMIT ".$msg_limit;
		}
		else if ($type == 'new')
		{
			$q = "SELECT * FROM `gs_object_chat` WHERE `imei`='".$imei."' AND `msg_id`>'".$last_msg_id."' ORDER BY `msg_id` desc";
		}
		
		$r = mysqli_query($ms, $q);
		
		while($row = mysqli_fetch_array($r))
		{
			$msg_id = $row['msg_id'];
			
			$dt = convUserTimezone($row['dt_server']);
			
                        $result[$msg_id] = array(	'dt' => $dt,
							's' => $row['side'],
							'm' => $row['msg'],
							'st' => $row['status']
							);
		}
		
		echo json_encode($result);
		die;
        }
?>