<?php class Webservices_driver_model extends CI_Model { function __construct() { parent::__construct(); } // *********************** NEMT DRIVER DOCUMENTATION ******************** public function login($request) { $this->db->where("phone", $request['phone_number']); $this->db->where('password', md5($request['password'])); $this->db->where('status !=', 0); $query = $this->db->get('drivers'); if ($query->num_rows() > 0) { $unique_id = $this->generate_unique(); $rs = $query->row(); $this->EncryptedPatientKey($unique_id, $rs->driver_id); $data = array('first_time_login' => 'false'); $first_time_login = ($rs->first_time_login == 'true' ? filter_var(true, FILTER_VALIDATE_BOOLEAN) : filter_var(false, FILTER_VALIDATE_BOOLEAN)); if($first_time_login == true){ $this->db->update('drivers', array('first_time_login' => 'false')); } return $result = array('status' => 'success', 'user_id' => $rs->driver_id, 'auth_token' => $unique_id, 'phone' => $rs->phone, 'name' => $rs->first_name." ".$rs->last_name, 'first_time_user' => $first_time_login); } else { return false; } } public function generate_unique() { $unqe = md5(uniqid(time().mt_rand(), true)); return $unqe; } public function EncryptedPatientKey($unique_id, $user_id) { $this->db->insert('driver_auth_table', array('driver_id' => $user_id, 'unique_id' => $unique_id)); } // *********************** DOCUMENT UPLOAD ******************** function doc_upload($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; if($request['type'] == 1){ $data = array('licence' => $request['image']); $where = array('driver_id' => $driv_id); $this->db->where($where)->update('drivers', $data); } elseif($request['type'] == 2){ $result = $this->db->query("SELECT vehicle FROM drivers WHERE driver_id=$driv_id")->row(); $data = array('vehicle_reg_image' => $request['image']); $where = array('vehicle_id' => $result->vehicle); $this->db->where($where)->update('vehicles', $data); } elseif($request['type'] == 3){ $data = array('profile_image' => $request['image']); $where = array('driver_id' => $driv_id); $this->db->where($where)->update('drivers', $data); } return true; } else { return false; } } // *********************** GET DRIVER PROFILE ******************** public function profile($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $query_result = $query->row(); $driv_id = $query_result->driver_id; $data = "SELECT drivers.driver_id, drivers.first_name, drivers.last_name, drivers.profile_image, vehicles.vehicle_reg_no FROM drivers INNER JOIN vehicles ON drivers.vehicle = vehicles.vehicle_id WHERE driver_id = '$driv_id' "; $result = $this->db->query($data); $rs = $result->row(); return $result = array('id' => $rs->driver_id, 'name' => $rs->first_name." ".$rs->last_name, 'car_number' => $rs->vehicle_reg_no, 'profile_photo' => $rs->profile_image); } else { return false; } } // *********************** GET DRIVER STATUS ******************** public function driver_status($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $query = $this->db->where('driver_id', $rs->driver_id)->get('drivers')->row(); $res = $query->is_online; $new_array = array('driver_status' => filter_var($res, FILTER_VALIDATE_BOOLEAN)); return $new_array; } else { return false; } } // *********************** UPDATE DRIVER STATUS ******************** public function status($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $data = array('is_online' => filter_var($request['driver_status'], FILTER_VALIDATE_BOOLEAN)); $this->db->where('driver_id', $rs->driver_id)->update('drivers', $data); return true; } else { return false; } } // *********************** UPDATE DRIVER STATUS ******************** public function arrived_at_customer($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $this->db->where('transport_id', $request['trip_id'])->update('transport_details', array('car_arrival' => 1)); return true; } else { return false; } } // *********************** UPDATE DRIVER STATUS ******************** public function driver_onstatus($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; if ($request['driver_status'] == 'true') { $array = array('driver_id' => $driv_id, 'cur_date' => date('Y-m-d'), 'sign_in' => time()); $this->db->insert('driver_online', $array); return true; } else { $cur_date = date('Y-m-d'); $rs = $this->db->query("SELECT * FROM driver_online WHERE driver_id='$driv_id' AND cur_date='$cur_date' ORDER BY id DESC LIMIT 0,1")->row(); if (count($rs) > 0) { if ($rs->sign_out == '') { $array = array('sign_out' => time()); $this->db->where('id', $rs->id)->update('driver_online', $array); return true; } else { return false; } } else { return false; } } } else { return false; } print json_encode($result); } // *********************** UPDATE DRIVER PASSWORD ******************** public function update_password($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $user_id = $rs->driver_id; $data = array('password' => md5($request['new_password'])); $this->db->where('driver_id', $user_id); $this->db->update('drivers',$data); return $result = array('status' => 'success'); } else { return false; } } // *********************** UPDATE DRIVER USER NAME ******************** public function update_user_name($auth,$request) { $query = $this->db->where('unique_id', $auth)->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $this->db->where('driver_id',$rs->driver_id)->update('drivers',$request); return true; } else { return false; } } // *********************** UPDATE VEHICLE NUMBER ******************** public function update_vehicle_number($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $data = $this->db->query("SELECT drivers.vehicle FROM drivers WHERE driver_id=$rs->driver_id")->row(); $this->db->where('vehicle_id', $data->vehicle)->update('vehicles', array('vehicle_reg_no' => $request['vehicle_number'])); return true; } else { return false; } } // *********************** UPDATE DRIVER LOCATION ******************** public function driver_location($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); if (!empty($request["latitude"] && $request['longitude'])) { $data = array('lat_driver' => $request['latitude'], 'lng_driver' => $request['longitude']); $this->db->where('driver_id', $rs->driver_id)->update('drivers', $data); return $result = array('status' => 'success'); } else { return false; } } else { return false; } } // *********************** PAYMENT STATUS ******************** public function payment_status($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $trip_id = $request['trip_id']; $data = "SELECT payment_status FROM transport_details WHERE transport_id = '$trip_id' "; $query1 = $this->db->query($data)->row(); return $query1; } else { return false; } } // *********************** TRIP ACCEPT ******************** public function accept($request) { $id = $request['request_id']; $status = (isset($request['trip_accept']) && !empty($request['trip_accept']))?'4':'5'; $requestDetails = "SELECT * FROM transport_details WHERE transport_id = '$id' "; $rquDetails = $this->db->query($requestDetails)->row(); $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $data = array('driver_id' => $rs->driver_id); $this->db->where('transport_id', $id)->update('transport_details', $data); $data = $this->db->where('transport_id', $id)->get('transport_details')->row_array(); $res = $this->db->select('booking_code')->get('setting')->row(); $code = $res->booking_code; $rand = rand(1111, 99999); $book_id = $code."$rand"; $driverDetails = $this->db->query("SELECT vehicle_id FROM `drivers` WHERE driver_id = '$rs->driver_id'")->row(); $data2 = array('vehicle_type' => $driverDetails->vehicle_id, 'driver_id' => $data['driver_id'], 'trip_no' => $book_id, 'book_date' => time(), 'start_time' => time(), 'status' => $status); $this->db->where('transport_id', $request['request_id'])->update('transport_details', $data2); $this->db->where(array('driver_id'=>$rs->driver_id,'trip_id'=>$id)); $this->db->update('driver_request', array('status' => 1)); $data4 = array('trip_id' => $rquDetails->transport_id, 'cust_id' => $rquDetails->customer_id, 'driver_id' => $rs->driver_id); $this->db->insert('feedback', $data4); $data5 = "SELECT t.transport_id AS trip_id, t.status AS trip_status, t.request_type AS trip_type, c.customer_id AS customer_id, CONCAT(c.first_name,' ',c.last_name) AS customer_name, c.phone AS customer_phone, c.profile_image AS profile_image, t.pickup_location AS source_location, t.pickup_lat AS source_latitude, t.pickup_lng AS source_longitude, t.drop_location AS destination_location, t.drop_lat AS destination_latitude, t.drop_lng AS destination_longitude FROM transport_details AS t LEFT JOIN customers AS c ON c.customer_id = t.customer_id WHERE t.transport_id ='$id'"; $query = $this->db->query($data5); $result = $query->row(); return $result; return true; } else { return false; } } // *********************** APP STATUS ******************** function statusof_app($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; $data1 = "SELECT * FROM transport_details WHERE driver_id = '$driv_id' ORDER BY transport_id DESC LIMIT 0,1"; $query = $this->db->query($data1); $res = $query->row(); if(!empty($res)){ $driver_status = $res->status; if ($driver_status == 4 || $driver_status == 5) { $data = "SELECT transport_details.total_time AS time, transport_details.trip_distance AS distance, drivers.profile_image AS driver_photo, drivers.phone AS driver_phone_number, customers.phone AS customer_phone_number, customers.profile_image AS customer_photo, CONCAT(customers.first_name,' ',customers.last_name) AS customer_name, transport_details.status AS request_status, transport_details.transport_id AS trip_id, transport_details.pickup_lat AS source_latitude, transport_details.pickup_lng AS source_longitude, transport_details.drop_lat AS destination_latitude, transport_details.drop_lng AS destination_longitude FROM transport_details LEFT JOIN drivers ON transport_details.driver_id = drivers.driver_id LEFT JOIN customers ON customers.customer_id = transport_details.customer_id WHERE transport_details.driver_id = '$driv_id' AND transport_details.status IN(4,5) ORDER BY transport_details.transport_id DESC LIMIT 0,1"; $result = $this->db->query($data)->row(); return $result; } else { return 0; } } else { return 0; } } else { print json_encode(array('status' => 'error', 'code' => '209', 'message' => 'Something Went wrong')); die(); } } // *********************** STATUs OF RIVER ******************** public function status_driver($id) { $data = $this->db->query("SELECT *, car_arrival AS trip_status FROM `transport_details` WHERE transport_id = '$id'")->row(); if ($data->status == 6 && $data->cash_collection == 1) { $driver_status = 4; return $driver_status; } elseif($data->status == 6 && $data->cash_collection == 0) { $driver_status = 3; return $driver_status; } elseif($data->status == 5) { $driver_status = 2; return $driver_status; } elseif($data->car_arrival == 1) { $driver_status = 1; return $driver_status; } else { $driver_status = 0; return $driver_status; } } // *********************** EMERGENCY RIDE HISTORY ******************** public function history_trips_emergency($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; $data1 = "SELECT * FROM setting WHERE id = '1' "; $query1 = $this->db->query($data1); $rs = $query1->row(); $currency = $rs->currency; $query = "SELECT t.transport_id AS id,customers.customer_id AS customer_id, CONCAT(customers.first_name,' ',customers.last_name) AS customer_name, customers.profile_image AS customer_photo, t.pickup_location AS source_location,t.pickup_lat AS source_latitude, t.drop_location AS destination_location, t.pickup_lng AS source_longitude,t.created_date AS date, CONCAT(t.trip_cost,'','$currency') AS fare, t.drop_lat AS destination_latitude,t.drop_lng AS destination_longitude FROM transport_details AS t LEFT JOIN drivers AS d ON d.driver_id = t.driver_id LEFT JOIN customers ON t.customer_id = customers.customer_id WHERE t.driver_id = '$driv_id' AND request_type = 1 "; return $query; } else { return false; } } // *********************** EMERGENCY RIDE HISTORY ******************** public function history_trips_schedule($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if (!empty($query) && $query->num_rows() > 0 && !empty($rs = $query->row()) && !empty($driv_id = $rs->driver_id)) { $data = "SELECT TRNS.transport_id AS id, CUST.customer_id AS customer_id, CONCAT(CUST.first_name,' ',CUST.last_name) AS customer_name, TRNS.pickup_lng AS source_longitude,TRNS.pickup_lat AS source_latitude, TRNS.drop_location AS destination_location,TRNS.trip_cost AS fare, TRNS.drop_lat AS destination_latitude,DR.status AS request_status, CUST.profile_image AS customer_photo,TRNS.appointment_time AS date, TRNS.pickup_location AS source_location,TRNS.status AS ride_status, TRNS.drop_lng AS destination_longitude FROM transport_details AS TRNS INNER JOIN driver_request AS DR ON DR.trip_id = TRNS.transport_id INNER JOIN customers AS CUST ON TRNS.customer_id = CUST.customer_id WHERE DR.driver_id = '$driv_id' AND request_type = 3 AND TRNS.status IN (1,3,4,5,6,8)"; $result = $this->db->query($data)->result_array(); foreach($result AS $key => $ride){ $result[$key]['type'] = 1; if($ride['request_status'] == 1 && $ride['request_status'] == 6){ $result[$key]['type'] = 2; } unset($result[$key]['request_status'],$result[$key]['ride_status']); } return $result; } else { return false; } } // *********************** END NEMT DRIVER DOCUMENTATION ******************** function insert_trip_deduction($userId_new,$fare){ $wallet = array( 'paid_amount' => $fare, 'payment_status' => 'success', 'created' => date("d/m/Y"), 'modified' => date("d/m/Y"), 'transaction_date' => time() * 1000, 'transaction_type' => "3", 'amount' => $fare * 0.019, 'user_id' => $userId_new, 'payment_type' => "3" ); $query = $this->db->insert('wallet_transactions',$wallet); //print_r($this->db->last_query());exit; } function update_user_wallet($userId_new,$fare) { $this->db->where('id', $userId_new); $query = $this->db->get('customer'); $res = $query->row(); $cur_wallet = $res->wallet_balance; $fin_wallet = $cur_wallet - $fare; $array = array( 'wallet_balance' => $fin_wallet); $this->db->where('id', $userId_new); $result = $this->db->update('customer', $array); //print_r($this->db->last_query());exit; return $result; } function booster_seat($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driver_id= $rs->driver_id; $data=array('status_booster_seat'=>$request['is_booster_seat']); $this->db->where('id', $driver_id); $this->db->update('drivers',$data); return true; } else { return false; } } public function driver_reg($data) { $num = $this->db->where('phone', $data['phone'])->get('drivers')->num_rows(); $num1 = $this->db->where('email', $data['email'])->get('drivers')->num_rows(); if ($num > 0) { $result = array('status' => 'error', 'message' => 'Mobile number Already Exists'); } elseif($num1 > 0) { $result = array('status' => 'error', 'message' => 'Email Already Exists'); } else { $unique_id = $this->generate_unique(); $otp = rand(1111, 9999); $this->db->insert('drivers', array('phone' => $data['phone'], 'email' => $data['email'], 'password' => md5($data['password']),'driver_name' => $data['name'], 'city' => $data['city'])); $user_id = $this->db->insert_id(); $this->db->insert('car', array('driv_id' => $user_id)); for ($i = 1; $i <= 12; $i++) { $data1 = array('driver_id' => $user_id, 'type' => $i); $new_result[] = $data1; } $this->db->insert_batch('driver_document', $new_result); $this->db->insert('car', array('driv_id' => $user_id)); // echo $this->db->last_query();die; $this->EncryptedPatientKey($unique_id, $user_id); if ($user_id) { $result = array('status' => 'success', 'user_id' => $user_id, 'auth_token' => $unique_id, 'is_phone_verified' => true, 'name' => $data['name'], 'email' => $data['email'], 'city' => $data['city'], 'phone' => $data['phone']); } else { $result = array('status' => 'error'); } } return $result; } function get_booster_status($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $query = $this->db->where('id', $rs->driver_id)->get('drivers')->row(); $res = $query->status_booster_seat; $new_array = array( 'booster_status' => filter_var($res, FILTER_VALIDATE_BOOLEAN)); return $new_array; } else { return false; } } public function update_fcm($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $data = array('fcm_token' => $request['fcm_token']); $this->db->where('driver_id', $rs->driver_id)->update('drivers', $data); return true; } else { return false; } } public function mobile_availability($request) { $phone = $request['phone']; $num = $this->db->where('phone', $phone)->get('drivers')->num_rows(); if ($num > 0) { return $result = array('status' => 'success', 'phone' => $phone, 'is_available' => 'false'); } else { return false; } } // public function prof_update($request){ // $query = $this->db->where('unique_id',$request['auth'])->get('driver_auth_table'); // if($query->num_rows()>0){ // $rs = $query->row(); // print_r($rs->driver_id); // $data = array('driver_name'=>$request['name'],'email'=>$request['email'],'phone'=>$request['phone'],'address'=>$request['address'],'city'=>$request['city'],'state'=>$request['state'],'post_code'=>$request['postal_code'],'image'=>$request['image']); // $this->db->where('id',$rs->driver_id)->update('drivers',$data); // //echo $this->db->last_query(); // return $result = array('id'=>$rs->driver_id,'name' => $data['driver_name'],'phone'=>$data['phone'],'email'=>$data['email'],'address'=>$data['address'],'city'=>$data['city'],'state'=>$data['state'],'post_code'=>$data['post_code'],'image'=>$data['image']); // }else{ // return false; // } // } function prof_update($request) { // print_r($request); $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $data = array(); if (isset($request['name']) && $request['name'] != '') { $data['driver_name'] = $request['name']; } if (isset($request['email']) && $request['email'] != '') { $data['email'] = $request['email']; } if (isset($request['phone']) && $request['phone'] != '') { $data['phone'] = $request['phone']; } if (isset($request['address']) && $request['address'] != '') { $data['address'] = $request['address']; } if (isset($request['city']) && $request['city'] != '') { $data['city'] = $request['city']; } if (isset($request['state']) && $request['state'] != '') { $data['state'] = $request['state']; } if (isset($request['postal_code']) && $request['postal_code'] != '') { $data['post_code'] = $request['postal_code']; } if (isset($_FILES['profile_photo'])) { $image = ''; if (is_uploaded_file($_FILES['profile_photo']['tmp_name'])) { $uploads_dir = './assets/uploads/profile_pic/'; $tmp_name = $_FILES['profile_photo']['tmp_name']; $pic_name = $_FILES['profile_photo']['name']; $pic_name = str_replace(' ', '_', mt_rand().$pic_name); move_uploaded_file($tmp_name, $uploads_dir.$pic_name); $image = $uploads_dir.$pic_name; } if ($image != '') { $data['image'] = $image; } } $rs = $query->row(); $this->db->where('id', $rs->driver_id)->update('drivers', $data); $res = $this->db->query("SELECT * FROM `driver` WHERE id = '$rs->driver_id'")->row(); // print_r($res); return $res; //return true; } else { return false; } } // public function doc_status($request){ // $query = $this->db->where('unique_id',$request['auth'])->get('driver_auth_table'); // if($query->num_rows()>0){ // $rs = $query->row(); // $id = $rs->driver_id; // $data = "SELECT * FROM driver_document WHERE driver_id = '$id'"; // $query = $this->db->query($data); // $result = $query->result_array(); // return $result; // } else { // return false; // } // } public function doc_status($request) { $this->load->helper('general'); $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $id = $rs->driver_id; $data = "SELECT * FROM driver_document WHERE driver_id = '$id'"; $query = $this->db->query($data); //echo $this->db->last_query(); $result = $query->result_array(); $array_type = array(); foreach($result as $rs) { $array_type[] = $rs['type']; } $dr_doc = array(); for ($i = 1; $i <= 6; $i++) { if (in_array($i, $array_type)) { // } else { $dr_doc[] = array('driver_id' => $id, 'type' => $i); } } if (!empty($dr_doc)) { $this->db->insert_batch('driver_document', $dr_doc); $data = "SELECT * FROM driver_document WHERE driver_id = '$id'"; $query = $this->db->query($data); //echo $this->db->last_query(); $result = $query->result_array(); //print_r($result); } foreach($result as $rs) { if ($rs['status'] != 0) { $is_uploaded = 'true'; } else { $is_uploaded = 'false'; } // print_r($rs['type']); $name = get_document_name($rs['type']); $new_array = array('id' => $rs['id'], 'type' => (int)$rs['type'], 'document_status' => (int)$rs['status'], 'is_uploaded' => filter_var($is_uploaded, FILTER_VALIDATE_BOOLEAN), 'name' => $name, 'document_url' => $rs['image']); $result_array[] = $new_array; # code... } // echo $this->db->last_query(); // $result[] = // if ($result['status'] != '0'){ // $is_uploaded = 'false'; // }else{ // $is_uploaded = 'true'; // } //print_r($result_array); return $result_array; } else { return false; } } function type_driver($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; $result = $this->db->where('id', $driv_id)->update('drivers', array('driver_type' => $request['driver_type'])); return true; } else { return false; } } function photo_upload($request) { //print_r($request); $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $data = array('image' => $request['image']); $this->db->where('id', $rs->driver_id)->update('drivers', $data); return true; } else { return false; } } public function start_trip($request) { // print_r($request); $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); // echo $this->db->last_query(); if ($query->num_rows() > 0) { $id = $request['trip_id']; $start_time = time(); $trip_start_time = time(); $result = $this->db->where('id', $id)->update('booking', array('status' => '2', 'start_time' => $start_time,'trip_start_time' => $trip_start_time)); // echo $this->db->last_query(); return $result; } else { return false; } } public function help_pages($request) { $id = $request['id']; $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $data = "SELECT * FROM help_table WHERE id ='$id' "; $query = $this->db->query($data); $rs = $query->row(); return $result = array('id' => $rs->id, 'title' => $rs->head, 'icon' => $rs->image, 'content' => $rs->content); } else { return false; } } function is_help_status($driv_id, $id) { $data = $this->db->query("SELECT help_status AS is_helpful FROM `help_review` WHERE driver_id = '$driv_id' AND help_id = '$id' ")->row(); //return $data->is_helpful; return filter_var($data->is_helpful, FILTER_VALIDATE_BOOLEAN); } public function help_list($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $data = "SELECT id AS id,head AS title,image AS icon FROM help_table WHERE status = 1 ORDER BY id ASC"; $query = $this->db->query($data); $result = $query->result_array(); return $result; } else { return false; } } function help_review($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; $data = array('help_status' => filter_var($request['is_helpful'], FILTER_VALIDATE_BOOLEAN), 'help_id' => $request['id'], 'driver_id' => $driv_id); $this->db->insert('help_review', $data); return true; } else { return false; } } function update_vehicle($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $data = array('model' => $request['car_model'], 'max_seat' => $request['seats_available'], 'vehicle_reg_num' => $request['vehicle_registration_number'], 'car_owner' => $request['car_owner']); $this->db->where('driv_id', $rs->driver_id)->update('car', $data); return true; } else { return false; } } function update_settings($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $data = array('is_deaf' => filter_var($request['is_deaf'], FILTER_VALIDATE_BOOLEAN), 'is_flash_required' => filter_var($request['is_flash_required_for_requests'], FILTER_VALIDATE_BOOLEAN)); $this->db->where('id', $rs->driver_id)->update('drivers', $data); return true; } else { return false; } } function fetch_settings($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; $data1 = "SELECT * FROM drivers WHERE id = '$driv_id' "; $query1 = $this->db->query($data1); $rs = $query1->row(); //print_r($rs->is_flash_required); //echo $this->db->last_query(); return $result = array('status' => 'success', 'is_deaf' => $rs->is_deaf, 'is_flash_required_for_requests' => $rs->is_flash_required); } else { return false; } } function req_details($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); 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.transport_id='$id' 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; } $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']); return $data; } else { return false; } } function car_type_image($id) { $data = $this->db->query("SELECT image AS image FROM `car_type` WHERE id = '$id' ")->row(); // echo $this->db->last_query(); return $data->image; } // } function car_type($id) { // $data = $this->db->query("SELECT car_type FROM `request` WHERE id = '$id' ")->row(); //$car_type_id = $data->car_type; $data = $this->db->query("SELECT name FROM `car_type` WHERE id = '$id' ")->row(); //echo $this->db->last_query(); return $data->name; } public function summary_trip($request) { $id = $request['trip_id']; //$currency = '₹'; $data = "SELECT booking.id,booking.status AS trip_status,booking.user_id AS customer_id,CONCAT(pattern.currency,'',booking.fare) AS fare, CONCAT(pattern.currency,'',booking.tax) AS tax,CONCAT(pattern.currency,'',booking.fee) as fee,CONCAT(pattern.currency,'',booking.discount) AS rider_discount, CONCAT(pattern.currency,'',booking.payout) AS estimated_payout,CONCAT(pattern.currency,'',booking.base_fare) as base_fare ,booking.time AS duration,booking.payment_mode, ROUND(booking.distance, 2) AS distance FROM booking LEFT JOIN pattern ON booking.pattern_id = pattern.id WHERE booking.id = '$id' "; // $query1 =$this->db->query($data)->result(); $query1 = $this->db->query($data)->row(); // echo $this->db->last_query(); // print_r($query1); return $query1; } function confirm_arrival($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $data = array('car_arrival' => '1'); $this->db->where('id', $request['trip_id'])->update('booking', $data); return true; } else { return false; } } function confirm_cash($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; $data = array(' cash_collection' => '1','payment_status' =>'1'); // $this->db->where('id', $request['trip_id'] && 'driver_id', $driv_id)->update('booking', $data); $this->db->where('id', $request['trip_id'] )->update('booking', $data); return true; } else { return false; } } public function ride_feedback($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; $data = "SELECT feedback.rating AS rating,feedback.id,feedback.bad_feedback AS issue,feedback.comments AS customer_comment,feedback.cust_id AS customer_id,feedback.trip_id AS trip_id FROM feedback WHERE driver_id = '$driv_id'"; $query1 = $this->db->query($data)->result(); foreach($query1 as $result12) { if($result12->rating >=3) { $issue = ""; } else{ $issue = $result12->customer_comment; } $result123[] = array( 'id'=>$result12->id, 'issue'=>$issue, 'customer_comment'=>$result12->customer_comment, 'customer_id'=>$result12->customer_id, 'trip_id'=>$result12->trip_id ); } return $result123; } else { return false; } } public function ride_feedback_old($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; // print_r($driv_id); //$data = "SELECT feedback.id,feedback.bad_feedback AS issue,feedback.driver_feedback AS customer_comment,feedback.cust_id AS customer_id,feedback.trip_id AS trip_id FROM feedback WHERE driver_id = '$driv_id'"; // $data = "SELECT feedback.id,IF(feedback.trip_report!='', feedback.trip_report, feedback.bad_feedback) AS issue,feedback.driver_feedback AS customer_comment,feedback.cust_id AS customer_id,feedback.trip_id AS trip_id FROM feedback WHERE driver_id = '$driv_id' AND feedback.driver_feedback!='' ORDER BY booking.id DESC "; $data = "SELECT feedback.id,feedback.bad_feedback AS issue,feedback.driver_feedback AS customer_comment,feedback.cust_id AS customer_id,feedback.trip_id AS trip_id FROM feedback WHERE driver_id = '$driv_id' AND feedback.driver_feedback!=''"; $query1 = $this->db->query($data)->result(); //print_r($this->db->last_query());exit; $query1 = $this->db->query($data)->result(); return $query1; } else { return false; } } // public function feedback_comments($request){ // $query = $this->db->where('unique_id',$request['auth'])->get('driver_auth_table'); // if($query->num_rows()>0){ // $rs = $query->row(); // $driv_id = $rs->driver_id; // $data = "SELECT feedback.id,feedback.driver_feedback AS customer_comment,feedback.cust_id AS customer_id,feedback.trip_id AS trip_id,feedback.rating AS rating FROM feedback WHERE driver_id = '$driv_id'"; // $query1 =$this->db->query($data)->result(); // return $query1; // }else{ // return false; // } // } public function feedback_comments($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; $data = "SELECT feedback.id,feedback.comments AS customer_comment, feedback.trip_id,feedback.cust_id AS customer_id,feedback.trip_id AS trip_id,booking.start_time AS time, feedback.rating AS rating FROM feedback INNER JOIN booking ON feedback.trip_id = booking.id WHERE feedback.driver_id = '$driv_id' AND feedback.rating >=3 ORDER BY booking.id DESC "; $query1 = $this->db->query($data)->result(); return $query1; } else { return false; } } public function feedback_comments_old($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; $data = "SELECT feedback.id,feedback.driver_feedback AS customer_comment, feedback.trip_id,feedback.cust_id AS customer_id,feedback.trip_id AS trip_id,booking.start_time AS time, feedback.rating AS rating FROM feedback INNER JOIN booking ON feedback.trip_id = booking.id WHERE feedback.driver_id = '$driv_id' AND feedback.driver_feedback!='' ORDER BY booking.id DESC "; $query1 = $this->db->query($data)->result(); //echo $this->db->last_query(); return $query1; } else { return false; } } public function rating($request) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; // print_r($driv_id); //$data = "SELECT count(*) AS total_rating,AVG(feedback.rating) AS average_rating FROM feedback WHERE driver_id = '$driv_id'"; $data = "SELECT count(*) AS total_ratings FROM feedback WHERE driver_id = '$driv_id' AND rating > 0"; // COALESCE(sum(balance),0) $query = $this->db->query($data); //echo $this->db->last_query(); //echo $this->db->last_query(); $result = $query->row(); //$rolltext = (int)implode( $result->average_rating); // print_r($rolltext); //var_dump($myVar) return $result; } else { return false; } } function avg_rating($driv_id) { //$data = $this->db->query("SELECT COALESCE(AVG(feedback.rating),0) AS average_rating FROM `feedback` WHERE driver_id = '94' ")->row(); $data = $this->db->query("SELECT AVG(feedback.rating) AS average_rating FROM `feedback` WHERE driver_id = '$driv_id' AND rating > 0")->row(); //echo $this->db->last_query(); return $data->average_rating; } function num_rides($driv_id) { $data = $this->db->query("SELECT count(id) AS total_requests FROM `driver_request` WHERE driver_id = '$driv_id'")->row(); return $data->total_requests; } function num_requests($driv_id) { $data = $this->db->query("SELECT count(id) AS requests_accepted FROM `request` WHERE driver_id = '$driv_id' AND status = 1")->row(); return $data->requests_accepted; } function num_trips($driv_id) { $data = $this->db->query("SELECT count(id) AS total_trips FROM `booking` WHERE driver_id = '$driv_id'")->row(); return $data->total_trips; } function num_cancelled($driv_id) { $data = $this->db->query("SELECT count(id) AS trips_cancelled FROM `booking` WHERE driver_id = '$driv_id' AND status = 0")->row(); return $data->trips_cancelled; } function tripdetails($request) { $id = $request["trip_id"]; //print_r($id); // $data = "SELECT driver.id,driver.driver_name AS driver_name,driver.image AS driver_photo,booking.id, // booking.status AS trip_status,booking.driver_id,booking.source AS source_location,booking.source_lat AS source_latitude, // booking.source_lng AS source_longitude,booking.destination AS destination_location, // booking.destination_lat AS destination_latitude, // booking.destination_lng AS destination_longitude, IF(booking.start_time='',booking.book_date,booking.start_time) AS start_time,booking.end_time AS end_time, // CONCAT(pattern.currency,'',booking.fare) AS fare,CONCAT(ROUND(booking.time,2),' ','hrs') AS duration,CONCAT(ROUND(booking.distance,3),' ','KM') AS distance,booking.status AS trip_status, // CONCAT(pattern.currency,'',booking.fee) AS fee,CONCAT(pattern.currency,'',booking.tax) AS tax, // CONCAT(pattern.currency,'',booking.payout) AS estimated_payout,customer.id AS customer_id, // customer.name AS customer_name,customer.image AS customer_photo FROM // booking LEFT JOIN driver ON driver.id = booking.driver_id LEFT JOIN customer ON booking.user_id = customer.id // LEFT JOIN pattern ON booking.pattern_id = pattern.id WHERE booking.id = '$id'"; $data = "SELECT driver.id,driver.driver_name AS driver_name,driver.image AS driver_photo,booking.id, booking.status AS trip_status,booking.driver_id,booking.source AS source_location,booking.source_lat AS source_latitude, booking.source_lng AS source_longitude,booking.destination AS destination_location, booking.destination_lat AS destination_latitude, booking.destination_lng AS destination_longitude, IF(booking.start_time='',booking.book_date,booking.start_time) AS start_time,booking.end_time AS end_time, CONCAT(pattern.currency,'',ROUND(booking.fare,2)) AS fare,CONCAT(ROUND(booking.time,2),' ','hrs') AS duration,CONCAT(ROUND(booking.distance,3),' ','KM') AS distance,booking.status AS trip_status, CONCAT(pattern.currency,'',ROUND(booking.fee,2)) AS fee,CONCAT(pattern.currency,'',ROUND(booking.tax,2)) AS tax, CONCAT(pattern.currency,'',ROUND(booking.payout,2)) AS estimated_payout,customer.id AS customer_id, customer.name AS customer_name,customer.image AS customer_photo FROM booking LEFT JOIN drivers ON driver.id = booking.driver_id LEFT JOIN customer ON booking.user_id = customer.id LEFT JOIN pattern ON booking.pattern_id = pattern.id WHERE booking.id = '$id'"; $query = $this->db->query($data); $result = $query->row(); //print_r($result);exit; return $result; } function driver_rate($trip_id) { $query = $this->db->query("SELECT feedback.rating AS rate FROM `feedback` WHERE trip_id = $trip_id")->row(); return $query->rate; } // function history_trips($request){ // //echo "string"; // $query = $this->db->where('unique_id',$request['auth'])->get('driver_auth_table'); // if($query->num_rows()>0){ // $rs = $query->row(); // $driv_id = $rs->driver_id; // //print_r($driv_id); // // $data = "SELECT driver.id,driver.driver_name AS driver_name,driver.image AS driver_photo, // // booking.id,booking.status AS trip_status,booking.driver_id,booking.source AS source_location, // // booking.source_lat AS source_latitude,booking.source_lng AS source_longitude, // // booking.destination AS destination_location,booking.destination_lat AS destination_latitude, // // booking.destination_lng AS destination_longitude,booking.start_time AS start_time, // // booking.end_time AS end_time,booking.fare AS fare,booking.time AS duration,booking.distance AS distance, // // booking.status AS trip_status ,booking.fee AS fee,booking.tax AS tax,booking.payout AS estimated_payout, // // customer.id AS customer_id,customer.name AS customer_name, // // customer.image AS customer_photo FROM booking // // LEFT JOIN driver ON driver.id = booking.driver_id LEFT JOIN customer ON booking.user_id = customer.id // // WHERE booking.driver_id = '$driv_id'"; // $query = "SELECT driver.id,driver.driver_name AS driver_name,driver.image AS driver_photo, // booking.id,booking.status AS trip_status,booking.driver_id,booking.source AS source_location, // booking.source_lat AS source_latitude,booking.source_lng AS source_longitude, // booking.destination AS destination_location,booking.destination_lat AS destination_latitude, // booking.destination_lng AS destination_longitude,booking.start_time AS start_time, // booking.end_time AS end_time,booking.fare AS fare,booking.time AS duration,booking.distance AS distance, // booking.status AS trip_status ,booking.fee AS fee,booking.tax AS tax,booking.payout AS estimated_payout, // customer.id AS customer_id,customer.name AS customer_name, // customer.image AS customer_photo FROM booking // LEFT JOIN driver ON driver.id = booking.driver_id LEFT JOIN customer ON booking.user_id = customer.id // WHERE booking.driver_id = '$driv_id'"; // //echo $this->db->last_query(); // // $total = $this->db->query->num_rows(); // return $query; // //return $data; // }else{ // return false; // } // } function trip_rate($id) { $query = $this->db->query("SELECT feedback.rating AS rate FROM `feedback` WHERE id = '$id'")->row(); return $query->rate; } function total_rides_history($driv_id) { $query = $this->db->query("SELECT count(id) AS rides FROM booking WHERE driver_id = '$driv_id'")->row(); return $query->rides; } function total_online_time($driv_id) { $query = $this->db->query("SELECT * FROM driver_online WHERE driver_id = '$driv_id'")->result(); //echo $this->db->last_query(); $total_time = 0; foreach($query as $rs) { $start_time = $rs->sign_in; if ($rs->sign_out != '') { $end_time = $rs->sign_out; } else { if ($rs->cur_date == date('Y-m-d')) { $end_time = time(); } else { $end_time = strtotime($rs->cur_date.' 23:59:59'); } } $end_time = $rs->sign_out != '' ? $rs->sign_out : time(); $total_time += $end_time - $start_time; } $dateDiff = intval(($total_time) / 60); $hours = intval($dateDiff / 60); $minutes = $dateDiff % 60; // $start = date('m/d/Y H:i:s', $start_time); // $end = date('m/d/Y H:i:s', $end_time); /*$interval = abs($end_time - $start_time)/1000; $minutes = round($interval / 60); $min = $minutes;*/ //$hours = floor($min / 60).':'.($min - floor($min / 60) * 60); return $hours.":".$minutes; } // function total_fare($driv_id){ // $query = $this->db->query("SELECT SUM(fare) AS fare FROM booking WHERE driver_id = '$driv_id'")->row(); // return $query->fare; // echo $this->db->last_query(); // } function total_fare($driv_id) { $data1 = $this->db->query("SELECT pattern_id FROM booking WHERE driver_id = $driv_id ")->row(); $pattern = $data1->pattern_id; // $query = $this->db->query("SELECT CONCAT(patternSUM(fare) AS fare FROM booking WHERE driver_id = '$driv_id'")->row(); $query = $this->db->query("SELECT CONCAT(pattern.currency,'',SUM(fare)) AS fare,pattern_id FROM booking LEFT JOIN pattern ON booking.pattern_id = pattern.id WHERE driver_id = '$driv_id' ")->row(); //echo $this->db->last_query(); if (count($query) > 0) { return $query->fare; } else { return 0; } //echo $this->db->last_query(); } function today_trips($request, $start_time, $end_time) { $query = $this->db->where('unique_id', $request['auth'])->get('driver_auth_table'); if ($query->num_rows() > 0) { $rs = $query->row(); $driv_id = $rs->driver_id; // $data = "SELECT driver.id,driver.driver_name AS driver_name,driver.image AS driver_photo, // booking.id,booking.status AS trip_status,booking.driver_id,booking.source AS source_location, // booking.source_lat AS source_latitude,booking.source_lng AS source_longitude, // booking.destination AS destination_location,booking.destination_lat AS destination_latitude, // booking.destination_lng AS destination_longitude,booking.start_time AS start_time, // booking.end_time AS end_time,booking.fare AS fare,booking.time AS duration,booking.distance AS distance, // booking.status AS trip_status ,booking.fee AS fee,booking.tax AS tax,booking.payout AS estimated_payout,customer.id AS customer_id,customer.name AS customer_name, // customer.image AS customer_photo FROM booking // LEFT JOIN driver ON driver.id = booking.driver_id LEFT JOIN customer ON booking.user_id = customer.id // WHERE booking.driver_id = '$driv_id' AND booking.book_date BETWEEN $start_time AND $end_time"; // $query = "SELECT driver.id,driver.driver_name AS driver_name,driver.image AS driver_photo, // booking.id,booking.status AS trip_status,booking.driver_id,booking.source AS source_location, // booking.source_lat AS source_latitude,booking.source_lng AS source_longitude, // booking.destination AS destination_location,booking.destination_lat AS destination_latitude, // booking.destination_lng AS destination_longitude,booking.start_time AS start_time, // booking.end_time AS end_time,booking.fare AS fare,booking.time AS duration,booking.distance AS distance, // booking.status AS trip_status ,booking.fee AS fee,booking.tax AS tax,booking.payout AS estimated_payout,customer.id AS customer_id,customer.name AS customer_name, // customer.image AS customer_photo FROM booking // LEFT JOIN driver ON driver.id = booking.driver_id LEFT JOIN customer ON booking.user_id = customer.id // LEFT JOIN pattern ON booking.pattern_id = pattern.id WHERE booking.driver_id = '$driv_id' AND booking.book_date BETWEEN $start_time AND $end_time"; // // echo $this->db->last_query(); $query = "SELECT driver.id,driver.driver_name AS driver_name,driver.image AS driver_photo, booking.id,booking.status AS trip_status,booking.driver_id,booking.source AS source_location, booking.source_lat AS source_latitude,booking.source_lng AS source_longitude, booking.destination AS destination_location,booking.destination_lat AS destination_latitude, booking.destination_lng AS destination_longitude,booking.start_time AS start_time, booking.end_time AS end_time,CONCAT(pattern.currency,'',booking.fare) AS fare, booking.time AS duration,booking.distance AS distance, booking.status AS trip_status ,CONCAT(pattern.currency,'',booking.fee) AS fee,CONCAT(pattern.currency,'',booking.tax) AS tax, CONCAT(pattern.currency,'',booking.payout) AS estimated_payout,customer.id AS customer_id,customer.name AS customer_name, customer.image AS customer_photo FROM booking LEFT JOIN drivers ON driver.id = booking.driver_id LEFT JOIN customer ON booking.user_id = customer.id LEFT JOIN pattern ON booking.pattern_id = pattern.id WHERE booking.driver_id = '$driv_id' AND booking.book_date BETWEEN $start_time AND $end_time AND booking.status != 0"; return $query; } else { return false; } } function totalfare_today($start_time, $end_time, $driv_id) { $data1 = $this->db->query("SELECT pattern_id FROM booking WHERE driver_id = $driv_id ")->row(); $pattern = $data1->pattern_id; // $data2 = $this->db->query("SELECT currency FROM pattern WHERE id = $pattern ")->row(); // $currency = $data2->currency; // print_r($currency); // $query = $this->db->query("SELECT SUM(fare) AS fare FROM booking WHERE driver_id = '$driv_id' AND book_date BETWEEN $start_time AND $end_time")->row(); $query = $this->db->query("SELECT CONCAT(pattern.currency,'',SUM(fare)) AS fare,pattern_id FROM booking LEFT JOIN pattern ON booking.pattern_id = pattern.id WHERE driver_id = '$driv_id' AND book_date BETWEEN $start_time AND $end_time")->row(); return $query->fare; } // function total_rides($driv_id){ // $date = strtotime(date('y-m-d')); // $query = $this->db->query("SELECT (count(id) AS rides FROM booking WHERE driver_id = '$driv_id' AND book_date = '$date' ")->row(); // return $query->rides; // } function total_rides($start_time, $end_time, $driv_id) { //print_r($end_time); //print_r($end_time); $query = $this->db->query("SELECT (count(id)) AS rides FROM booking WHERE driver_id = '$driv_id' AND book_date BETWEEN $start_time AND $end_time")->row(); //echo $this->db->last_query(); return $query->rides; //$query = $this->db->query("SELECT SUM(fare) AS fare FROM booking WHERE driver_id = '$driv_id' AND book_date BETWEEN $start_time AND $end_time")->row(); // return $query->fare; } // function total_online_time($driv_id){ // $query = $this->db->query("SELECT * FROM driver_online WHERE driver_id = '$driv_id'")->row(); // //echo $this->db->last_query(); // $start_time = $query->sign_in; // $end_time = $query->sign_out; // // $start = date('m/d/Y H:i:s', $start_time); // // $end = date('m/d/Y H:i:s', $end_time); // $interval = abs($end_time - $start_time); // $minutes = round($interval / 60); // $min = $minutes; // $hours = floor($min / 60).':'.($min - floor($min / 60) * 60); // return $hours; // } function message($request) { $id = $request; $fcm_data = array('id' => $id, 'title' => 'NEMT', 'message' => 'Trip Completed'); $data = array('status ' => '6'); $this->db->where('transport_id', $id)->update('transport_details', $data); $data = "SELECT * FROM transport_details WHERE transport_id = '$id' "; $query = $this->db->query($data); $rs = $query->row(); $cust_id = $rs->customer_id; $data2 = "SELECT * FROM customers WHERE customer_id = '$cust_id' "; $query = $this->db->query($data2); $rs2 = $query->row(); $fcm = $rs2->fcm_token; $this->push_sent($fcm, $fcm_data); } function push_sent($fcm_token, $fcm_data) { $data1 = "SELECT * FROM setting WHERE id = '1' "; $query1 = $this->db->query($data1); $rs = $query1->row(); $key = $rs->google_api_key; $data = "{ \"notification\": { \"title\": \"".$fcm_data['title']."\", \"text\": \"".$fcm_data['message']."\" , \"sound\": \"ringtone_user\" }, \"time_to_live\": 60, \"data\" : {\"response\" : {\"status\" : \"success\", \"data\" : {\"id\" : \"".$fcm_data['id']."\"}}}, \"collapse_key\" : \"trip\", \"priority\":\"high\", \"to\" : \"".$fcm_token."\"}"; $ch = curl_init("https://fcm.googleapis.com/fcm/send"); $header = array('Content-Type: application/json', 'Authorization: key='.$key); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $out = curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_exec($ch); curl_close($ch); } public function fare_calculate($request, $trip_id) { if (!empty($trip_id)) { if ($trip_id != 0) { $distance = $request['trip_distance']; $time = $request['total_time']; $rs = $this->cal_baseRate(); if ($rs) { $fare_cal = $rs->base_price + ($rs->km_rate * $distance); $least_min = $time * $rs->min_rate; //total minute rate $min_fare = $fare_cal + $least_min; // total fare calculated $extra_cost = 0; $min_fare = floor($min_fare + $extra_cost); $fare = $min_fare; $sub_total = $fare; //echo json_encode($sub_total);exit(); $setting = $this->db->get('setting')->row(); $fee = (($fare * $setting->admin_charge) / 100); $tax = (($fare * $setting->tax) / 100); $driver_charge = $fare - ($fee + $tax); $data = array('base_fare' => $rs->base_price, 'km_fare' => $rs->km_rate * $distance, 'min_fare' => $least_min, 'sub_total_fare' => $sub_total, 'trip_cost' => $fare, 'fee' => $fee, 'payout' => $driver_charge, 'tax' => $tax ); $this->db->where('transport_id', $trip_id)->update('transport_details', $data); $sql = $this->db->query("SELECT driver_id FROM transport_details WHERE transport_id = '$trip_id'")->row(); $this->db->where('driver_id', $sql->driver_id)->update('drivers', array('book_status'=>0)); return $min_fare; } } } } function getDistance($latitude1, $longitude1, $latitude2, $longitude2) { $earth_radius = 6371; $dLat = deg2rad($latitude2 - $latitude1); $dLon = deg2rad($longitude2 - $longitude1); $a = sin($dLat / 2) * sin($dLat / 2) + cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * sin($dLon / 2) * sin($dLon / 2); $c = 2 * asin(sqrt($a)); $d = $earth_radius * $c; return $d; } function cal_baseRate() { $data1 = "SELECT * FROM setting WHERE id = '1' "; $query1 = $this->db->query($data1); $rs = $query1->row(); return $rs; } function push_sent_cancel($fcm_token, $fcm_data) { $data1 = "SELECT * FROM settings WHERE id = '1' "; $query1 = $this->db->query($data1); $rs = $query1->row(); $key = $rs->key; $data = "{ \"notification\": { \"title\": \"".$fcm_data['title']."\", \"text\": \"".$fcm_data['message']."\", \"sound\": \"ringtone_driver\" }, \"time_to_live\": 60, \"data\" : {\"response\" : {\"status\" : \"success\", \"data\" : {\"trip_id\" : \"".$fcm_data['id']."\", \"trip_status\" : 0}}}, \"collapse_key\" : \"trip\", \"priority\":\"high\", \"to\" : \"".$fcm_token."\"}"; $ch = curl_init("https://fcm.googleapis.com/fcm/send"); $header = array('Content-Type: application/json', 'Authorization: key='.$key); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $out = curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_exec($ch); curl_close($ch); } public function get_trip_info($trip_id='') { if($trip_id) { $data1 = "SELECT * FROM setting WHERE id = '1' "; $query1 = $this->db->query($data1); $rs = $query1->row(); $currency = $rs->currency; $rs = $this->db->query("SELECT t.transport_id AS trip_id,(CASE t.status WHEN 9 THEN 'cancelled' WHEN 3 THEN 'booking' WHEN 5 THEN 'inprocess' WHEN 6 THEN 'completed' ELSE 'Invalid' END) AS trip_status,t.trip_distance AS distance, CONCAT(t.trip_cost,' ','$currency') AS fare, t.pickup_location AS source_location, t.pickup_lat AS source_latitude, t.pickup_lng AS source_longitude, t.drop_location AS destination_location, t.drop_lat AS destination_latitude, t.drop_lng AS destination_longitude, c.profile_image AS customer_photo, CONCAT(c.first_name,' ',c.last_name) AS customer_name FROM `transport_details` AS t LEFT JOIN customers AS c ON t.customer_id = c.customer_id WHERE t.transport_id =".$trip_id)->row(); if ($rs) { return $rs; } else { return false; } }else{ return false; } } public function update_ride_start($data = array()) { $status = 0; if(!empty($data) && isset($data['auth']) && !empty($data['auth']) && isset($data['trip_id']) && !empty($data['trip_id'])){ $drvAuth = $this->db->where('unique_id', $data['auth'])->get('driver_auth_table'); if(!empty($drvAuth) && $drvAuth->num_rows()>0 && !empty($drvData=$drvAuth->row()) && isset($drvData->driver_id) && !empty($driver_id=$drvData->driver_id)){ $status = $this->db->update('transport_details',array('status'=>5), array('transport_id'=>$data['trip_id'], 'driver_id'=>$driver_id)); } } return $status; } }?>