Commit 1e0ab026 by Tobin

dc

parent 1fd1f30c
......@@ -272,6 +272,7 @@ class Ride extends CI_Controller {
'drop_location' => $row[$headerOrder['28']],
'pickup_location' => $row[$headerOrder['23']],
'trip_bid_status' => $tripBidStatus,
'request_type' => 3,
'data' => json_encode($rowArr)
);
$insertData['appointment_time'] = strtotime($date_time);
......@@ -437,6 +438,7 @@ class Ride extends CI_Controller {
'drop_location' => $row[$headerOrder['28']],
'pickup_location' => $row[$headerOrder['23']],
'trip_bid_status' => $tripBidStatus,
'request_type' => 3,
'data' => json_encode($rowArr)
);
$insertData['appointment_time'] = strtotime($date_time);
......
......@@ -336,7 +336,7 @@ class Webservices extends CI_Controller {
$request = json_decode($postdata, true);
$auth = apache_request_headers()['Auth'];
$request['auth'] = $auth;
if(!empty($request) && isset($request['trip_type']) && !empty($request['trip_type']) &&
if(!empty($request) && isset($request['trip_type']) && $request['trip_type'] != '' &&
isset($request['source_name']) && !empty($request['source_name']) &&
isset($request['source_latitude']) && !empty($request['source_latitude']) &&
isset($request['destination_name']) && !empty($request['destination_name']) &&
......@@ -457,9 +457,9 @@ class Webservices extends CI_Controller {
if (isset($request['request_id'])) {
$result = $this->Webservice_model->req_status($request);
if ($result->request_status == '3') {
if ($result->request_status == '0' || $result->request_status == '1' || $result->request_status == '3') {
print json_encode(array('status'=>'success','data'=>array('request_status'=>'0')));
} else if($result->request_status == '4') {
} else if($result->request_status == '4' || $result->request_status == '5' || $result->request_status == '6' || $result->request_status == '8') {
print json_encode(array('status'=>'success','data'=>$result));
} else {
print json_encode(array('status'=>'error','message'=>'Something Went wrong','error'=>'606'));
......@@ -513,12 +513,18 @@ class Webservices extends CI_Controller {
}
foreach ($ride_data AS $ride) {
if(empty($ride['pickup_lat']) || empty($ride['pickup_lng']) ||
empty($ride['appointment_time']) || $ride['appointment_time']<strtotime(date('Y-m-d H:i:s'))){
if(empty($ride['pickup_lat']) || empty($ride['pickup_lng'])){
continue;
}
if($ride['request_type'] == 3 &&
(empty($ride['appointment_time']) || $ride['appointment_time'] < strtotime(date('Y-m-d H:i:s')))){
continue;
}
$driver_data = $this->Webservice_model->getAvailableDrivers($ride['pickup_lat'],$ride['pickup_lng'],$ride['appointment_time']);
$driver_data = $this->Webservice_model->getAvailableDrivers($ride['pickup_lat'],$ride['pickup_lng']);
if(empty($driver_data)){
continue;
}
if(!empty($driver_data) && !empty($driver_data['driver_id']) &&
!empty($driver_data['distance']) && !empty($driver_data['fcm_token'])){
......
......@@ -1450,13 +1450,11 @@
$request['auth'] = $auth;
if (isset($request['request_id'])) {
if (isset($request['request_id']) && !empty($request['request_id'])) {
$result = $this->Webservices_driver_model->req_details($request);
header('Content-type: application/json');
if (count($result) > 0) {
if (!empty($result)) {
$result->request_id = $request['request_id'];
......@@ -1468,28 +1466,23 @@
$result->car_type = $car_type;
// $is_help = $this->Webservices_driver_model->is_help_status($driv_id,$result['id']);
// $rs->is_helpful = $is_help;
print json_encode(array('status' => 'success', 'data' => $result));
} else {
print json_encode(array('status' => 'error'));
print json_encode(array('status' => 'error', 'error' => '210', 'message' => 'Invalid Request ID'));
}
} else {
print json_encode(array('status' => 'error', 'error' => '209', 'message' => 'Something Went wrong'));
print json_encode(array('status' => 'error', 'error' => '209', 'message' => 'Required fields are empty'));
}
} else {
print json_encode(array('status' => 'error', 'error' => '209', 'message' => 'Something Went wrong'));
print json_encode(array('status' => 'error', 'error' => '211', 'message' => 'Auth Token Missing'));
}
......
......@@ -168,7 +168,7 @@ class Ride_model extends CI_Model {
FROM transport_details AS TD
INNER JOIN drivers AS DRV ON (DRV.driver_id = TD.assigned_driver)
WHERE TD.driver_assign_status='0' AND TD.assigned_driver<>'0' AND
TD.is_scheduled='1' AND
TD.is_scheduled='1' AND TD.request_type='3' AND
TD.appointment_time>$startDateTime AND TD.appointment_time<$endDateTime AND
TD.status IN (3,4,5,8) AND TD.assigned_driver IN (".implode(",",$drivers).")";
$prvDrivers = $this->db->query($sql);
......
......@@ -377,17 +377,12 @@ class Webservice_model extends CI_Model {
'status'=>'1');
$this->db->insert('transport_details', $data);
$last_id = $this->db->insert_id();
return $result = array('request_id'=>$last_id);
}else{
return false;
}
return $result = array('request_id'=>$last_id);
} else {
return false;
}
}
......@@ -421,7 +416,7 @@ class Webservice_model extends CI_Model {
$nonScheduledDriver[] = array('driver_id'=>'0' );;
}
$driverList = $nonScheduledDriver1 = array();
foreach($data as $row){
$driverList[] = $row['driver_id'];
......@@ -432,9 +427,16 @@ class Webservice_model extends CI_Model {
}
}
$nonScheduledDriverList = array_diff($driverList,$nonScheduledDriver1);
$nonScheduledDriverList = array();
if(!empty($driverList) && !empty($nonScheduledDriver1)){
$nonScheduledDriverList = array_diff($driverList,$nonScheduledDriver1);
} else if (!empty($driverList)){
$nonScheduledDriverList = $driverList;
} else if (!empty($nonScheduledDriver1)){
$nonScheduledDriverList = $nonScheduledDriver1;
}
if($nonScheduledDriverList){
if(!empty($nonScheduledDriverList)){
return $result = array('ambulace_count'=>COUNT($nonScheduledDriverList),'distance'=>$radius.'Km');
......@@ -778,7 +780,7 @@ class Webservice_model extends CI_Model {
public function driverAssignCrone(){
$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.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)
......@@ -791,8 +793,8 @@ class Webservice_model extends CI_Model {
return $ride_data->result_array();
}
public function getAvailableDrivers($lat='',$lng='',$aTime=''){
if(empty($lat) || empty($lng) || empty($aTime)){
public function getAvailableDrivers($lat='',$lng=''){
if(empty($lat) || empty($lng)){
return;
}
$cTime = date('H:i');
......@@ -811,6 +813,10 @@ class Webservice_model extends CI_Model {
$startTime = strtotime(date('Y-m-d H:i:s')) - 1800;
$finishTime = strtotime(date('Y-m-d H:i:s')) + 1800;
foreach ($driverData AS $key => $driver) {
if(empty($driver['fcm_token'])){
continue;
}
$driver_id = $driver['driver_id'];
$sql = "SELECT TD.driver_id
FROM transport_details AS TD
......
......@@ -1357,32 +1357,66 @@ function booster_seat($request) {
function req_details($request) {
$query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table');
if ($query->num_rows() > 0) {
if(!empty($query) && !empty($driver_data = $query->row())) {
$id = $request["request_id"];
$driver_id = $driver_data->driver_id;
$type = isset($request["type"]) && !empty($request["type"]) ? 1 : 3 ;
$query = "SELECT TD.pickup_location AS source_address,TD.drop_location AS hospital_address,
CUST.profile_image AS photo,TD.drop_lat,TD.drop_lng,
TD.created_date AS request_time,
CONCAT(CUST.first_name,' ',CUST.last_name) AS name
FROM transport_details AS TD
INNER JOIN customers CUST ON (CUST.customer_id=TD.customer_id)
WHERE TD.request_type='$type' AND TD.transport_id='$id' AND
CUST.status='1' AND TD.status != '2'";
$data = $this->db->query($query);
$drvLoc = $this->db->query("SELECT lat_driver,lng_driver
FROM drivers WHERE driver_id='$driver_id'")->row_array();
if(empty($data) || empty($data = $data->row_array()) || empty($data['drop_lat']) ||
empty($data['drop_lng']) || empty($drvLoc['lat_driver']) || empty($drvLoc['lng_driver'])){
return 0;
}
$data = "SELECT request.stop_list,request.car_type,request.source AS customer_location,request.source_lat AS customer_latitude,request.source_lng AS customer_longitude,customer.id AS customer_id,
customer.name AS customer_name,customer.image AS customer_photo FROM request LEFT JOIN customer ON customer.id = request.cust_id
WHERE request.id = '$id' ";
$query = $this->db->query($data);
$settings = getSettings();
$key = $settings['google_api_key'];
$cor = $drvLoc['lat_driver'].",".$drvLoc['lng_driver']."&destinations=".
$data['drop_lat'].",".$data['drop_lng'];
$url = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=".
$cor."&mode=driving&key=".$key;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$response = json_decode($response, true);
if(empty($response) ||
!isset($response['rows'],
$response['rows'][0],
$response['rows'][0]['elements'],
$response['rows'][0]['elements'][0],
$response['rows'][0]['elements'][0]['status'],
$response['rows'][0]['elements'][0]['distance'],
$response['rows'][0]['elements'][0]['duration'],
$response['rows'][0]['elements'][0]['distance']['text'],
$response['rows'][0]['elements'][0]['duration']['text']) ||
$response['rows'][0]['elements'][0]['status'] != 'OK'){
return 0;
}
$data['type'] = $type == 3 ? 1 : 0;
$data['request_time'] = strtotime($data['request_time']);
$data['time'] = $response['rows'][0]['elements'][0]['duration']['text'];
$data['distance'] = $response['rows'][0]['elements'][0]['distance']['text'];
unset($data['drop_lat'],$data['drop_lng']);
$result = $query->row();
$stopList = json_decode($result->stop_list);
$resultArray = array(
'stop_list'=>$stopList,
'car_type'=>$result->car_type,
'customer_location'=>$result->customer_location,
'customer_latitude'=>$result->customer_latitude,
'customer_longitude'=>$result->customer_longitude,
'customer_id'=>$result->customer_id,
'customer_name'=>$result->customer_name,
'customer_photo'=>$result->customer_photo
);
return $resultArray;
return $data;
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment