From d665d6aac107492b74efda078002d2215c9a1b62 Mon Sep 17 00:00:00 2001
From: tobin <tobin@techware.in>
Date: Thu, 4 Jul 2019 21:48:54 +0530
Subject: [PATCH] dc

---
 application/controllers/Webservices.php         | 15 ++++++++++++---
 application/helpers/generals_helper.php         |  6 +++---
 application/models/Webservice_model.php         | 27 ++++++++++++++++-----------
 application/models/Webservices_driver_model.php |  8 --------
 4 files changed, 31 insertions(+), 25 deletions(-)

diff --git a/application/controllers/Webservices.php b/application/controllers/Webservices.php
index 7e094a2..8a37dad 100644
--- a/application/controllers/Webservices.php
+++ b/application/controllers/Webservices.php
@@ -521,18 +521,27 @@ class Webservices extends CI_Controller {
         continue;
       }
       if($ride['request_type'] == 3 && 
-        (empty($ride['appointment_time'])||$ride['appointment_time']<strtotime(date('Y-m-d H:i:s')))){
+        (empty($ride['appointment_time']) || 
+         $ride['appointment_time'] < strtotime(date('Y-m-d H:i:s')) || 
+         $ride['appointment_time'] > (strtotime(date('Y-m-d H:i:s'))+7200))){
         continue;
       }
-      $driver_data=$this->Webservice_model->getAvailableDrivers($ride['pickup_lat'],$ride['pickup_lng']);
+      $driver_data = $this->Webservice_model->getAvailableDrivers($ride['pickup_lat'],$ride['pickup_lng'],$ride['transport_id']);
       if(empty($driver_data)){
         continue;
       }
       if(!empty($driver_data) && !empty($driver_data['driver_id']) && 
          !empty($driver_data['distance']) && !empty($driver_data['fcm_token'])){
+
+         $this->db->update('transport_details',array('status'=>'3'),array('transport_id'=>$ride_id));
+         $this->db->insert('driver_request',array('trip_id'=>$ride_id,
+                                                  'driver_id'=>$driverData[$key]['driver_id'],
+                                                  'request_time'=>date('Y-m-d H:i:s'),'status'=>'0'));
+         
+        $type = ($ride['request_type'] == 3)?'2':'1';
         $fcm_data = array('title'=>'Ride Request','message'=>'Emergency Ride Request',
                           'request_id'=>$ride['transport_id']);
-        push_sent_cancel(1,$driver_data['fcm_token'],$fcm_data);
+        push_sent_cancel($type,$driver_data['fcm_token'],$fcm_data);
       }
     }
   }
diff --git a/application/helpers/generals_helper.php b/application/helpers/generals_helper.php
index 9cb9da2..be00940 100644
--- a/application/helpers/generals_helper.php
+++ b/application/helpers/generals_helper.php
@@ -152,9 +152,9 @@ function push_sent_cancel($type='1', $fcm_token='', $fcm_data=array()) {
 		case '1':
 			$data = "{ \"notification\": { \"title\": \"".$fcm_data['title']."\", \"text\": \"".$fcm_data['message']."\", \"sound\": \"default\" }, \"time_to_live\": 60, \"data\" : {\"response\" : {\"status\" : \"success\", \"data\" : {\"request_id\" : \"".$fcm_data['request_id']."\", \"request_type\" : 0}}}, \"collapse_key\" : \"trip\", \"priority\":\"high\", \"to\" : \"".$fcm_token."\"}";
 			break;
-		// case '2':
-		// 	$data = "{ \"notification\": { \"title\": \"".$fcm_data['title']."\", \"text\": \"".$fcm_data['message']."\", \"sound\": \"default\" }, \"time_to_live\": 60, \"data\" : {\"response\" : {\"status\" : \"success\", \"data\" : {\"booking_id\" : \"".$fcm_data['id']."\", \"trip_status\" : 0}}}, \"collapse_key\" : \"trip\", \"priority\":\"high\", \"to\" : \"".$fcm_token."\"}";
-		// 	break;
+		case '2':
+			$data = "{ \"notification\": { \"title\": \"".$fcm_data['title']."\", \"text\": \"".$fcm_data['message']."\", \"sound\": \"default\" }, \"time_to_live\": 60, \"data\" : {\"response\" : {\"status\" : \"success\", \"data\" : {\"request_id\" : \"".$fcm_data['request_id']."\", \"request_type\" : 1}}}, \"collapse_key\" : \"trip\", \"priority\":\"high\", \"to\" : \"".$fcm_token."\"}";
+			break;
 	}
 
 	$ch = curl_init("https://fcm.googleapis.com/fcm/send");
diff --git a/application/models/Webservice_model.php b/application/models/Webservice_model.php
index 40cb308..bf4c23f 100644
--- a/application/models/Webservice_model.php
+++ b/application/models/Webservice_model.php
@@ -480,14 +480,19 @@ class Webservice_model extends CI_Model {
    }
 
    public function driverAssignCrone(){
+      $date = date('Y-m-d H:i:s',strtotime('-3 minutes',strtotime(date('Y-m-d H:i:s'))));
+      $sql  = "UPDATE transport_details AS TD 
+               INNER JOIN driver_request AS DR ON (DR.trip_id=TD.transport_id)
+               SET TD.status='1',DR.status='3' WHERE DR.request_time<='$date' AND DR.status='0'";
+      $this->db->query($sql);
+
       $sql = "SELECT TD.transport_id,TD.appointment_time,TD.pickup_lat,TD.pickup_lng,TD.drop_lat, 
-               TD.drop_lng,TD.vehicle_type,TD.status,TD.is_scheduled,DR.request_time,DR.status,TD.request_type
-           FROM transport_details AS TD
-           LEFT JOIN driver_request AS DR ON (TD.transport_id=DR.trip_id)
-           LEFT JOIN drivers AS DRV ON (DR.driver_id=DR.driver_id)
-           WHERE ((request_type='3' AND is_scheduled='1') OR (request_type='1')) AND 
-                 TD.status IN ('1','3','7') 
-           ORDER BY TD.transport_id DESC";
+                     TD.drop_lng,TD.vehicle_type,TD.status,TD.is_scheduled,TD.request_type
+              FROM transport_details AS TD
+              LEFT JOIN driver_request AS DR ON (TD.transport_id=DR.trip_id AND DR.status IN (2,3))
+              WHERE ((TD.request_type='3' AND TD.is_scheduled='1') OR (TD.request_type='1')) AND 
+                    TD.status IN ('1','3','7') 
+              ORDER BY TD.transport_id DESC";
       $ride_data = $this->db->query($sql);
       if(empty($ride_data)){
          return 0;
@@ -495,8 +500,8 @@ class Webservice_model extends CI_Model {
       return $ride_data->result_array();
    }
 
-   public function getAvailableDrivers($lat='',$lng=''){
-      if(empty($lat) || empty($lng)){
+   public function getAvailableDrivers($lat='',$lng='',$ride_id=''){
+      if(empty($lat) || empty($lng) || empty($ride_id)){
          return;
       }
       $cTime = date('H:i');
@@ -506,8 +511,8 @@ class Webservice_model extends CI_Model {
                        cos(($lat*pi()/180))*cos((lat_driver*pi()/180))*
                        cos((($lng-lng_driver)*pi()/180))))*180/pi())*60*1.1515) as distance 
                    FROM drivers AS d 
-                   WHERE d.status='1' AND d.online_start_time < '$cTime' AND d.online_end_time > '$cTime'
-                   HAVING distance<15
+                   WHERE d.status='1' AND d.online_start_time<'$cTime' AND d.online_end_time>'$cTime'
+                   -- HAVING distance<15
                    ORDER BY distance DESC");
 
       if(!empty($data) && !empty($driverData = $data->result_array())){
diff --git a/application/models/Webservices_driver_model.php b/application/models/Webservices_driver_model.php
index 915fa9b..0403515 100644
--- a/application/models/Webservices_driver_model.php
+++ b/application/models/Webservices_driver_model.php
@@ -2383,10 +2383,6 @@ function booster_seat($request) {
      
 
       function push_sent_cancel($fcm_token, $fcm_data) {
-
-            // print_r($fcm_data);
-
-
             $data1 = "SELECT * FROM settings WHERE id = '1' ";
             $query1 = $this->db->query($data1);
             $rs = $query1->row();
@@ -2406,10 +2402,6 @@ function booster_seat($request) {
 
             curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
 
-            // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
-
-            // curl_close($ch);
-
             $out = curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
             
             curl_exec($ch);
--
libgit2 0.27.1