diff --git a/application/controllers/Ride.php b/application/controllers/Ride.php
index eb098ce..d92e380 100644
--- a/application/controllers/Ride.php
+++ b/application/controllers/Ride.php
@@ -45,13 +45,15 @@ class Ride extends CI_Controller {
 	function excelMapping(){
 		$flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error');
 		if(!isset($_FILES) || empty($_FILES) || !isset($_FILES['import_file']) || 
-		   empty($_FILES['import_file']) || !isset($_POST) || empty($_POST) || !isset($_POST['broker_id']) || 
-		   empty($_POST['broker_id']) || !isset($_POST['company_id']) || empty($_POST['company_id'])){
+		   empty($_FILES['import_file']) || !isset($_POST) || empty($_POST) || 
+		   !isset($_POST['broker_id']) || empty($_POST['broker_id']) || !isset($_POST['company_id']) || 
+		   empty($_POST['company_id'])){
 			$this->session->set_flashdata('message',$flashMsg);
 			redirect(base_url('Ride/import_ride'));
 		}
 
 		$fileType = '';
+		$skipMapping = (isset($_POST['skipMapping']))?true:false;
 		$importedFile = '';
 
         $this->load->library('upload');
@@ -82,7 +84,7 @@ class Ride extends CI_Controller {
 				break;
 		}
 
-		if(empty($importData) || !isset($importData['status']) ||  $importData['status'] == 3 || 
+		if(empty($importData) || !isset($importData['status']) || $importData['status'] == 3 || 
 		   $importData['status'] == 4 || ($importData['status'] == 1 && empty($importData['headerArr']))){
 			$this->session->set_flashdata('message',$flashMsg);
 		    redirect(base_url('Ride/import_ride'));
@@ -93,6 +95,26 @@ class Ride extends CI_Controller {
 	    	redirect(base_url('Ride/import_ride'));
 		}
 
+		$this->load->model('Broker_model');
+		$broker_data = $this->Broker_model->getBroker($_POST['broker_id']);
+
+		if($skipMapping && !empty($broker_data) && isset($broker_data->export_header) && 
+		   !empty($broker_data->export_header) && isset($broker_data->mapped_header) && 
+		   !empty($broker_data->mapped_header) && 
+		   !empty($broker_data->export_header = json_decode($broker_data->export_header,true)) && 
+		   $broker_data->export_header === $importData['headerArr']
+		){
+			$params = array('broker_id'=>$_POST['broker_id'],'company_id'=>$_POST['company_id'],
+							'file_type'=>$fileType,'import_file'=>$importedFile,
+							'header_order'=>$broker_data->mapped_header);
+
+			$this->session->set_flashdata('params',$params);
+			redirect(base_url('Ride/import'));
+		} else {
+			$this->db->update('brokers',array('export_header'=>json_encode($importData['headerArr'])),
+										array('broker_id'=>$_POST['broker_id']));
+		}
+
 		$template['fileType'] = $fileType;
 		$template['headerArr'] = $importData['headerArr'];
 		$template['broker_id'] = $_POST['broker_id'];
@@ -110,8 +132,7 @@ class Ride extends CI_Controller {
 		$this->load->view('template',$template);
 	}
 
-	function getImportDataCSV($importedFile = '', $headerRetFlag = 0, $headerOrder = array(), $data = array()){
-
+	function getImportDataCSV($importedFile='',$headerRetFlag=0,$headerOrder=array(),$data=array()){
 		$header = 0;
 		$insertArr = array(); 
 		$headerArr = array();
@@ -210,6 +231,25 @@ class Ride extends CI_Controller {
 				$tripBidStatus = (isset($headerOrder['37']) && isset($row[$headerOrder['37']]))?
 												  $row[$headerOrder['37']]:'';
 
+			  	$locData = array('pLat'=>'0','pLng'=>'0','dLat'=>'0','dLng'=>'0');
+			    if(isset($row[$headerOrder['23']]) && !empty($row[$headerOrder['23']])){
+			    	$locData = getLatLngFromLocation($row[$headerOrder['23']]);
+
+			    	if(!empty($locData)){
+			    		$locData['pLat'] = $locData['lat'];
+			    		$locData['pLng'] = $locData['lng'];
+			    	}
+			    }
+
+			    if(isset($row[$headerOrder['28']]) && !empty($row[$headerOrder['28']])){
+			    	$locData = getLatLngFromLocation($row[$headerOrder['28']]);
+
+			    	if(!empty($locData)){
+			    		$locData['dLat'] = $locData['lat'];
+			    		$locData['dLng'] = $locData['lng'];
+			    	}
+			    }
+			    
 				$insertData = array(
 								'broker_id'       => $data['broker_id'],
 								'company_id'      => $data['company_id'],
@@ -225,6 +265,10 @@ class Ride extends CI_Controller {
 								'trip_status'	  => $row[$headerOrder['12']],
 								'vehicle_type'	  => $row[$headerOrder['13']],
 								'patient_name'    => $row[$headerOrder['2']].' '.$row[$headerOrder['1']],
+								'drop_lat'	      => $locData['dLat'],
+								'drop_lng'	      => $locData['dLng'],
+								'pickup_lat'	  => $locData['pLat'],
+								'pickup_lng'	  => $locData['pLng'],
 								'drop_location'	  => $row[$headerOrder['28']],
 								'pickup_location' => $row[$headerOrder['23']],
 								'trip_bid_status' => $tripBidStatus,
@@ -353,25 +397,47 @@ class Ride extends CI_Controller {
 					$tripBidStatus = (isset($headerOrder['37']) && isset($row[$headerOrder['37']]))?
 													  $row[$headerOrder['37']]:'';
 
-					$insertData = array(
-									'broker_id'       => $data['broker_id'],
-									'company_id'      => $data['company_id'],
-									'customer_id'     => $customerId,
-
-									'age'		  	  => $row[$headerOrder['4']],
-									'phone'		  	  => $row[$headerOrder['5']],
-									'trip_no'	 	  => $row[$headerOrder['7']],
-									'trip_cost'	  	  => $row[$headerOrder['22']],
-									'trip_type'  	  => $row[$headerOrder['14']],
-									'medical_no'      => $row[$headerOrder['0']],
-									'reason_code'  	  => $row[$headerOrder['11']],
-									'trip_status'	  => $row[$headerOrder['12']],
-									'vehicle_type'	  => $row[$headerOrder['13']],
-									'patient_name'    => $row[$headerOrder['2']].' '.$row[$headerOrder['1']],
-									'drop_location'	  => $row[$headerOrder['28']],
-									'pickup_location' => $row[$headerOrder['23']],
-									'trip_bid_status' => $tripBidStatus,
-									'data'		      => json_encode($rowArr)
+				  	$locData = array('pLat'=>'0','pLng'=>'0','dLat'=>'0','dLng'=>'0');
+				    if(isset($row[$headerOrder['23']]) && !empty($row[$headerOrder['23']])){
+				    	$plocData = getLatLngFromLocation($row[$headerOrder['23']]);
+
+				    	if(!empty($plocData)){
+				    		$locData['pLat'] = $plocData['lat'];
+				    		$locData['pLng'] = $plocData['lng'];
+				    	}
+				    }
+
+				    if(isset($row[$headerOrder['28']]) && !empty($row[$headerOrder['28']])){
+				    	$dlocData = getLatLngFromLocation($row[$headerOrder['28']]);
+
+				    	if(!empty($dlocData)){
+				    		$locData['dLat'] = $dlocData['lat'];
+				    		$locData['dLng'] = $dlocData['lng'];
+				    	}
+				    }
+
+					$insertData=array(
+								  'broker_id'       => $data['broker_id'],
+								  'company_id'      => $data['company_id'],
+							  	  'customer_id'     => $customerId,
+								  'age'		  	    => $row[$headerOrder['4']],
+								  'phone'		  	=> $row[$headerOrder['5']],
+								  'trip_no'	 	    => $row[$headerOrder['7']],
+								  'trip_cost'	  	=> $row[$headerOrder['22']],
+								  'trip_type'  	    => $row[$headerOrder['14']],
+								  'medical_no'      => $row[$headerOrder['0']],
+								  'reason_code'  	=> $row[$headerOrder['11']],
+								  'trip_status'	    => $row[$headerOrder['12']],
+								  'vehicle_type'	=> $row[$headerOrder['13']],
+								  'patient_name'    => $row[$headerOrder['2']].' '.$row[$headerOrder['1']],
+								  'drop_lat'	    => $locData['dLat'],
+								  'drop_lng'	    => $locData['dLng'],
+								  'pickup_lat'	    => $locData['pLat'],
+								  'pickup_lng'	    => $locData['pLng'],
+								  'drop_location'	=> $row[$headerOrder['28']],
+								  'pickup_location' => $row[$headerOrder['23']],
+								  'trip_bid_status' => $tripBidStatus,
+								  'data'		    => json_encode($rowArr)
 								);
 					$insertData['appointment_time'] = strtotime($date_time);
 					$insertArr[] = $insertData;
@@ -390,25 +456,49 @@ class Ride extends CI_Controller {
 	}
 
 	function import(){
+		$redirectFlag = 0;
 		$flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error');
-		if(!isset($_POST) || empty($_POST) || 
-		   !isset($_POST['broker_id']) || empty($_POST['broker_id']) || 
-		   !isset($_POST['file_type']) || empty($_POST['file_type']) || 
-		   !isset($_POST['company_id']) || empty($_POST['company_id']) || 
-		   !isset($_POST['import_file']) || empty($_POST['import_file']) ||
-		   !isset($_POST['header_order']) || empty($_POST['header_order'])){
-			$this->session->set_flashdata('message',$flashMsg);
-			redirect(base_url('Ride/import_ride'));
+
+		if(isset($_POST) && !empty($_POST)){
+			if(!isset($_POST['broker_id']) || empty($_POST['broker_id']) || 
+			   !isset($_POST['file_type']) || empty($_POST['file_type']) || 
+			   !isset($_POST['company_id']) || empty($_POST['company_id']) || 
+			   !isset($_POST['import_file']) || empty($_POST['import_file']) ||
+			   !isset($_POST['header_order']) || empty($_POST['header_order'])){
+
+				$this->session->set_flashdata('message',$flashMsg);
+				redirect(base_url('Ride/import_ride'));
+		    }
+		    $this->db->update('brokers',array('mapped_header'=>json_encode($_POST['header_order'])),
+		    							array('broker_id'=>$_POST['broker_id']));
+		} else {
+			if(empty($params = $this->session->flashdata('params')) ||
+			   !isset($params['broker_id']) || empty($params['broker_id']) || 
+			   !isset($params['file_type']) || empty($params['file_type']) || 
+			   !isset($params['company_id']) || empty($params['company_id']) || 
+			   !isset($params['import_file']) || empty($params['import_file']) ||
+			   !isset($params['header_order']) || empty($params['header_order'])){
+
+				$this->session->set_flashdata('message',$flashMsg);
+				redirect(base_url('Ride/import_ride'));
+		    }
+		    $redirectFlag = 1;
+		    $_POST['file_type'] = $params['file_type'];
+		    $_POST['broker_id'] = $params['broker_id'];
+		    $_POST['company_id'] = $params['company_id'];
+		    $_POST['import_file'] = $params['import_file'];
+		    $_POST['header_order'] = json_decode($params['header_order'],true);
 		}
+
 		$data = array('broker_id'=>$_POST['broker_id'],'company_id'=>$_POST['company_id']);
 		switch($_POST['file_type']){
 			case 'csv':
-				$respStatus = $this->getImportDataCSV($_POST['import_file'],1,$_POST['header_order'],$data);
-				break;
+			   $respStatus=$this->getImportDataCSV($_POST['import_file'],1,$_POST['header_order'],$data);
+			   break;
 			case 'xls':
 			case 'xlsx':
-				$respStatus = $this->getImportDataExcel($_POST['import_file'],1,$_POST['header_order'],$data);
-				break;
+			   $respStatus=$this->getImportDataExcel($_POST['import_file'],1,$_POST['header_order'],$data);
+			   break;
 		}
 
 		if(!empty($respStatus) && isset($respStatus['status']) && $respStatus['status'] != ''){
@@ -428,6 +518,24 @@ class Ride extends CI_Controller {
 		} else {
 			$respStatus['status'] = '0';
 		}
+
+		if($redirectFlag == 1){
+			if ($respStatus['status'] == 0) {
+				$flashMsg['class'] = 'error';
+                $flashMsg['message'] = 'Something went wrong, please try again..!';
+            } else if ($respStatus['status'] == 2) {
+				$flashMsg['class'] = 'error';
+                $flashMsg['message'] = 'Invalid File given, please try again later..!';
+            } else if ($respStatus['status'] == 3) {
+				$flashMsg['class'] = 'error';
+                $flashMsg['message'] = 'No data found, please try again later..!';
+            } else if ($respStatus['status'] == 4) {
+				$flashMsg['class'] = 'error';
+                $flashMsg['message'] = 'Invalid header given, please try again later..!';
+            }
+
+            redirect(base_url('Ride/view_rides'));
+		}
 		echo json_encode($respStatus);exit;
 	}
 
@@ -757,18 +865,19 @@ class Ride extends CI_Controller {
 		  	if(empty($ride_data) || (isset($ride_data->is_scheduled) && $ride_data->is_scheduled != '0'))
 		  		return $status;
 
-		  	$pickup_location = $ride_data->pickup_location;
 		  	$appointment_time = $ride_data->appointment_time;
 
-	    	if(empty($pickup_location) || empty($appointment_time))
-	    		return $status;
-	 	  	$pickupLocData = getLatLngFromLocation($pickup_location);
-
-	        if(empty($pickupLocData))
-	        	return $status;
-	        $status = $this->Ride_model->autoAssignDriver($ride_id,$appointment_time,
-										 array('lat'=>$pickupLocData['lat'],'lng'=>$pickupLocData['lng']),
-										 $drivers,$no_driver);
+	        if(!isset($ride_data->drop_lat) || empty($ride_data->drop_lat) || 
+	    	   !isset($ride_data->drop_lng) || empty($ride_data->drop_lng) || 
+	    	   !isset($ride_data->pickup_lat) || empty($ride_data->pickup_lat) || 
+	    	   !isset($ride_data->pickup_lng) || empty($ride_data->pickup_lng)){
+				return $status;
+	        }
+	        $locData = array('dlat'=>$ride_data->drop_lat,'dlng'=>$ride_data->drop_lng,
+	        				 'plat'=>$ride_data->pickup_lat,'plng'=>$ride_data->pickup_lng);
+
+	        $status = $this->Ride_model->autoAssignDriver
+	        								($ride_id,$appointment_time,$locData,$drivers,$no_driver);
 	    } else {
 	    	$status = $this->Ride_model->changeSchuduleStatus($ride_id,$is_scheduled);
 	    }
diff --git a/application/helpers/excel_reader_helper.txt b/application/helpers/excel_reader_helper.txt
new file mode 100644
index 0000000..b74fce4
--- /dev/null
+++ b/application/helpers/excel_reader_helper.txt
@@ -0,0 +1,8 @@
+<?php
+
+    defined('BASEPATH') OR exit('No direct script access allowed');
+
+    include('excelReaderLibrary/SpreadsheetReader.php');
+    include('excelReaderLibrary/php-excel-reader/excel_reader.php');
+
+?>
\ No newline at end of file
diff --git a/application/models/Ride_model.php b/application/models/Ride_model.php
index c39c10f..02f571a 100644
--- a/application/models/Ride_model.php
+++ b/application/models/Ride_model.php
@@ -42,8 +42,8 @@ class Ride_model extends CI_Model {
 		return ($status)?1:0;
 	}
 
-	function getRideData($ride_id = '',$company_id = '',$broker_id = '',$scheduled = '',$condArr = array()){
-		$cond = (!empty($ride_id))?" AND TD.transport_id = '$ride_id'":"";
+	function getRideData($ride_id='',$company_id='',$broker_id='',$scheduled='',$condArr=array()){
+		$cond  = (!empty($ride_id))?" AND TD.transport_id = '$ride_id'":"";
 		$cond .= ($broker_id != '')?" AND TD.broker_id = '$broker_id'":"";
 		$cond .= (!empty($company_id))?" AND TD.company_id = '$company_id'":"";
 
@@ -147,11 +147,13 @@ class Ride_model extends CI_Model {
  		$this->db->delete('ride_status',array('ride_id'=>$ride_id));
  	}
 
- 	function autoAssignDriver($ride_id = '', $appointment_time = '', $pickupLoc = array(),
+ 	function autoAssignDriver($ride_id = '', $appointment_time = '', $locData = array(),
  							  $drivers = array(), $no_driver = '0'){
- 		if(empty($ride_id) || empty($appointment_time) || empty($pickupLoc) || 
- 		   !isset($pickupLoc['lat']) || $pickupLoc['lat'] == '' ||
- 		   !isset($pickupLoc['lng']) || $pickupLoc['lng'] == ''){
+ 		if(empty($ride_id) || empty($appointment_time) || empty($locData) || 
+ 		   !isset($locData['plat']) || $locData['plat'] == '' ||
+ 		   !isset($locData['plng']) || $locData['plng'] == '' || 
+ 		   !isset($locData['dlat']) || $locData['dlat'] == '' ||
+ 		   !isset($locData['dlng']) || $locData['dlng'] == ''){
  			return 0;
  		}
 
@@ -180,9 +182,9 @@ class Ride_model extends CI_Model {
 		  	}
 		  	if(!empty($drivers)){
 		 		$sql = "SELECT DRV.driver_id,
-		 					   3956*2*ASIN(SQRT(POWER(SIN((".$pickupLoc['lat']."-DRV.active_loc_lat)*
-		 					   pi()/180/2),2)+COS(".$pickupLoc['lat']."*pi()/180)*COS(DRV.active_loc_lat*
-		 					   pi()/180)*POWER(SIN((".$pickupLoc['lng']."-DRV.active_loc_lng)*
+		 					   3956*2*ASIN(SQRT(POWER(SIN((".$locData['plat']."-DRV.active_loc_lat)*
+		 					   pi()/180/2),2)+COS(".$locData['plat']."*pi()/180)*COS(DRV.active_loc_lat*
+		 					   pi()/180)*POWER(SIN((".$locData['plng']."-DRV.active_loc_lng)*
 		 					   pi()/180/2),2))) AS distance
 		 				FROM drivers AS DRV 
 						WHERE DRV.status = 1 AND DRV.driver_id IN (".implode(",",$drivers).") AND 
diff --git a/application/views/Ride/add_transport.php b/application/views/Ride/add_transport.php
index dd5ef4f..c391498 100644
--- a/application/views/Ride/add_transport.php
+++ b/application/views/Ride/add_transport.php
@@ -281,10 +281,16 @@
                     </div>
                   </div>
                 </div>
+                <div class="col-md-12" style="padding-left:30px;padding-bottom:10px;"> 
+                  <input type="checkbox" name="skipMapping" checked>
+                    <p style="display:inline;padding-left:10px;">
+                      Auto skip Mapping Page (If mapping data is available)
+                    </p>
+                </div>
                 <div class="col-md-12">          
                   <div class="box-footer">
                     <button type="submit" class="btn btn-primary">Upload</button>
-                  </div>        
+                  </div>
                 </div> 
               </div>
               <br>
diff --git a/application/views/Ride/view_rides.php b/application/views/Ride/view_rides.php
index bd3ff0f..aa347b9 100644
--- a/application/views/Ride/view_rides.php
+++ b/application/views/Ride/view_rides.php
@@ -168,16 +168,20 @@
                 $report_data = array();
                 if(!empty($ride_data)){
                   foreach($ride_data as $ride) {
-                    $ride_ids[] = $ride->transport_id;
+                    $schedFlag = 0;
                     $json_ride = json_decode($ride->data,true);
                     if(empty($json_ride)){
                       continue; 
                     }
+                    if($json_ride['Trip_Status'] == 'S1'){
+                      $schedFlag = 1;
+                      $ride_ids[] = $ride->transport_id;
+                    }
                     ?>
                       <tr>
                         <th class="hidden"><?= $ride->transport_id ?></th>
                         <th class="center">
-                          <?php if($this->session->userdata['user_type'] != 1 && !empty($drivers_data)){ 
+                          <?php if($schedFlag && $this->session->userdata['user_type'] != 1 && !empty($drivers_data)){ 
                             $style = 'style="color:red;";';
                             $ride->is_scheduled = (isset($ride->is_scheduled))?$ride->is_scheduled:0;
                             if($ride->is_scheduled == 1){