Commit 65b69a7a by Tobin

dc

parent 678c927e
......@@ -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');
......@@ -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,11 +397,29 @@ class Ride extends CI_Controller {
$tripBidStatus = (isset($headerOrder['37']) && isset($row[$headerOrder['37']]))?
$row[$headerOrder['37']]:'';
$insertData = array(
$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']],
......@@ -368,6 +430,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,
......@@ -390,24 +456,48 @@ 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']) ||
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);
$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);
$respStatus=$this->getImportDataExcel($_POST['import_file'],1,$_POST['header_order'],$data);
break;
}
......@@ -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))
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;
$pickupLocData = getLatLngFromLocation($pickup_location);
}
$locData = array('dlat'=>$ride_data->drop_lat,'dlng'=>$ride_data->drop_lng,
'plat'=>$ride_data->pickup_lat,'plng'=>$ride_data->pickup_lng);
if(empty($pickupLocData))
return $status;
$status = $this->Ride_model->autoAssignDriver($ride_id,$appointment_time,
array('lat'=>$pickupLocData['lat'],'lng'=>$pickupLocData['lng']),
$drivers,$no_driver);
$status = $this->Ride_model->autoAssignDriver
($ride_id,$appointment_time,$locData,$drivers,$no_driver);
} else {
$status = $this->Ride_model->changeSchuduleStatus($ride_id,$is_scheduled);
}
......
<?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
......@@ -42,7 +42,7 @@ class Ride_model extends CI_Model {
return ($status)?1:0;
}
function getRideData($ride_id = '',$company_id = '',$broker_id = '',$scheduled = '',$condArr = array()){
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
......
......@@ -281,6 +281,12 @@
</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>
......
......@@ -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){
......
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