Commit 139d582d by Tobin

daily commit

parent 1fc4d483
......@@ -7,6 +7,7 @@ class Broker extends CI_Controller {
parent::__construct();
date_default_timezone_set("Asia/Kolkata");
$this->load->model('Broker_model');
$this->load->model('Company_model');
if(!$this->session->userdata('logged_in')) {
redirect(base_url('Login'));
......@@ -21,6 +22,13 @@ class Broker extends CI_Controller {
$template['page_desc'] = "Add New Broker";
$template['page_title'] = "Add Broker";
$template['company_data'] = $this->Company_model->getCompany();
if($this->session->userdata['user_type'] == 1 && empty($template['company_data'])){
$flashMsg=array('message'=>'There is no active company found, Activate Company and continue.',
'class'=>'error');
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Broker/view_brokers'));
}
$this->load->view('template',$template);
}
......@@ -34,7 +42,7 @@ class Broker extends CI_Controller {
$template['page_desc'] = "Brokers List View";
$template['page_title'] = "View Brokers";
$template['brokers_data'] = $this->Broker_model->getBroker();
$template['brokers_data'] = $this->Broker_model->getBroker('','0,1');
$this->load->view('template',$template);
}
......@@ -71,6 +79,10 @@ class Broker extends CI_Controller {
$err = 1;
$errMsg = 'Provide a State Name';
}
else if($err == 0 && (!isset($_POST['company_id']) || empty($_POST['company_id']))){
$err = 1;
$errMsg = 'Choose a Company';
}
if($err == 1){
$flashMsg['message'] = $errMsg;
$this->session->set_flashdata('message',$flashMsg);
......@@ -80,6 +92,9 @@ class Broker extends CI_Controller {
if($status == 1){
$flashMsg['class'] = 'success';
$flashMsg['message'] = 'Broker Created';
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Broker/view_brokers'));
}else if($status == 2){
$flashMsg['message'] = 'Email ID already in use.';
}else if($status == 3){
......@@ -119,7 +134,15 @@ class Broker extends CI_Controller {
$template['page_desc'] = "Edit Broker Details";
$template['page_title'] = "Edit Broker";
$template['broker_id'] = $broker_id;
$template['broker_data'] = $this->Broker_model->getBroker($broker_id);
$template['broker_data'] = $this->Broker_model->getBroker($broker_id,'0,1');
$template['company_data'] = $this->Company_model->getCompany();
if($this->session->userdata['user_type'] == 1 && empty($template['company_data'])){
$flashMsg=array('message'=>'There is no active company found, Activate Company and continue.',
'class'=>'error');
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Broker/view_brokers'));
}
$this->load->view('template',$template);
}
......@@ -185,6 +208,20 @@ class Broker extends CI_Controller {
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Broker/edit/'.encode_param($broker_id)));
}
function getBrokers(){
$result = array('status'=>'0');
if(!isset($_POST) || empty($_POST) || !isset($_POST['company_id']) || empty($_POST['company_id'])){
echo json_encode($result);exit;
}
$broker_data = $this->Broker_model->getBroker('','',$_POST['company_id']);
if(empty($broker_data)){
$result['status'] = 2;
echo json_encode($result);exit;
}
$result['status'] = 1;
$result['data'] = $broker_data;
echo json_encode($result);exit;
}
}
?>
\ No newline at end of file
......@@ -40,7 +40,7 @@ class Company extends CI_Controller {
$template['menu'] = "Company Management";
$template['sub_menu'] = "View Companies";
$template['company_data'] = $this->Company_model->getCompany();
$template['company_data'] = $this->Company_model->getCompany('','0,1');
$this->load->view('template',$template);
}
......@@ -151,7 +151,7 @@ class Company extends CI_Controller {
$template['page_title'] = "View Company Details";
$template['company_id'] = $company_id;
$template['company_data'] = $this->Company_model->getCompany($company_id);
$template['company_data'] = $this->Company_model->getCompany($company_id,'0,1');
$this->load->view('template',$template);
}
......@@ -172,7 +172,7 @@ class Company extends CI_Controller {
$template['page_title'] = "Edit Company";
$template['company_id'] = $company_id;
$template['company_data'] = $this->Company_model->getCompany($company_id);
$template['company_data'] = $this->Company_model->getCompany($company_id,'0,1');
$this->load->view('template',$template);
}
......
......@@ -38,7 +38,7 @@ class Driver extends CI_Controller {
$template['page_desc'] = "Driver List View";
$template['page_title'] = "View Drivers";
$template['drivers_data'] = $this->Driver_model->getDriver();
$template['drivers_data'] = $this->Driver_model->getDriver('','0,1');
$this->load->view('template',$template);
}
......@@ -96,6 +96,18 @@ class Driver extends CI_Controller {
}else if($err == 0 && (!isset($_POST['vehicle']) || empty($_POST['vehicle']))){
$err = 1;
$errMsg = 'Provide your Vehicle Model';
}else if($err == 0 && (!isset($_POST['active_location']) || empty($_POST['active_location']))){
$err = 1;
$errMsg = 'Provide your Active Location';
}else if($err == 0 && (!isset($_POST['online_start_time']) || empty($_POST['online_start_time']))){
$err = 1;
$errMsg = 'Provide your Online Ckeck In Time';
}else if($err == 0 && (!isset($_POST['online_end_time']) || empty($_POST['online_end_time']))){
$err = 1;
$errMsg = 'Provide your Online Ckeck Out Time';
}else if($err == 0 && ($_POST['online_start_time'] >= $_POST['online_end_time'])){
$err = 1;
$errMsg = 'Provide Ckeck Out Time greater than Ckeck In Time';
}
if($err == 0){
$config = set_upload_service("assets/uploads/services");
......@@ -121,13 +133,26 @@ class Driver extends CI_Controller {
$upload_data = $this->upload->data();
$_POST['licence'] = $config['upload_path']."/".$upload_data['file_name'];
}
$acLatLng = getLatLngFromLocation($_POST['active_location']);
if(empty($acLatLng) || !isset($acLatLng['lat']) || !isset($acLatLng['lng'])){
$err = 1;
$errMsg = 'Provide a valid Active Location';
} else {
$_POST['active_loc_lat'] = $acLatLng['lat'];
$_POST['active_loc_lng'] = $acLatLng['lng'];
}
}
if($err == 1){
$flashMsg['message'] = $errMsg;
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Driver/add_driver'));
}
$_POST['password'] = md5($_POST['password']);
$_POST['online_end_time'] = strtotime($_POST['online_end_time']);
$_POST['online_start_time'] = strtotime($_POST['online_start_time']);
$status = $this->Driver_model->addDriver($_POST);
if($status == 1){
$flashMsg['class'] = 'success';
......@@ -174,7 +199,7 @@ class Driver extends CI_Controller {
$template['page_desc'] = "View Driver Details";
$template['page_title'] = "Driver Details";
$template['driver_id'] = $driver_id;
$template['driver_data'] = $this->Driver_model->getDriver($driver_id);
$template['driver_data'] = $this->Driver_model->getDriver($driver_id,'0,1');
$this->load->view('template',$template);
}
......@@ -197,7 +222,7 @@ class Driver extends CI_Controller {
$template['driver_id'] = $driver_id;
$template['companies'] = $this->Company_model->getCompany();
$template['driver_data'] = $this->Driver_model->getDriver($driver_id);
$template['driver_data'] = $this->Driver_model->getDriver($driver_id,'0,1');
$template['vehicle_types'] = $this->Vehicle_model->getVehicleType();
if(empty($template['driver_data'])){
......@@ -254,6 +279,18 @@ class Driver extends CI_Controller {
}else if($err == 0 && (!isset($_POST['vehicle']) || empty($_POST['vehicle']))){
$err = 1;
$errMsg = 'Choose your Vehicle';
}else if($err == 0 && (!isset($_POST['active_location']) || empty($_POST['active_location']))){
$err = 1;
$errMsg = 'Provide your Active Location';
}else if($err == 0 && (!isset($_POST['online_start_time']) || empty($_POST['online_start_time']))){
$err = 1;
$errMsg = 'Provide your Online Ckeck In Time';
}else if($err == 0 && (!isset($_POST['online_end_time']) || empty($_POST['online_end_time']))){
$err = 1;
$errMsg = 'Provide your Online Ckeck Out Time';
}else if($err == 0 && ($_POST['online_start_time'] >= $_POST['online_end_time'])){
$err = 1;
$errMsg = 'Provide Ckeck Out Time greater than Ckeck In Time';
}
$_POST['profile_image'] = $_POST['licence'] = '';
......@@ -278,12 +315,23 @@ class Driver extends CI_Controller {
}
}
$acLatLng = getLatLngFromLocation($_POST['active_location']);
if(empty($acLatLng) || !isset($acLatLng['lat']) || !isset($acLatLng['lng'])){
$err = 1;
$errMsg = 'Provide a valid Active Location';
} else {
$_POST['active_loc_lat'] = $acLatLng['lat'];
$_POST['active_loc_lng'] = $acLatLng['lng'];
}
if($err == 1){
$flashMsg['message'] = $errMsg;
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Driver/edit/'.encode_param($driver_id)));
}
$_POST['online_end_time'] = strtotime($_POST['online_end_time']);
$_POST['online_start_time'] = strtotime($_POST['online_start_time']);
$status = $this->Driver_model->updateDriver($driver_id,$_POST);
if($status == 1){
$flashMsg['class'] = 'success';
......@@ -305,12 +353,20 @@ class Driver extends CI_Controller {
echo json_encode($return_arr);exit;
}
$driver_id = decode_param($_POST['driver_id']);
$driver_data = $this->Driver_model->getDriver($driver_id);
$driver_data = $this->Driver_model->getDriver($driver_id,'0,1');
if(!empty($driver_data)){
$driver_data->online_time = ' -- ';
if(!empty($driver_data->online_start_time) && !empty($driver_data->online_end_time)){
$driver_data->online_time = $driver_data->online_start_time.' -- '.$driver_data->online_end_time;
}
$return_arr['status'] = 1;
$return_arr['driver_data'] = $driver_data;
}
echo json_encode($return_arr);exit;
}
}
?>
\ No newline at end of file
......@@ -23,12 +23,12 @@ class Report extends CI_Controller {
$template['page_desc'] = "Report Generation Page";
$template['page_title'] = "Report Management";
$template['company_data'] = $this->Company_model->getCompany();
$template['company_data'] = $this->Company_model->getCompany('','0,1');
$template['broker_data'] = '';
if($this->session->userdata['user_type'] != 1){
$this->load->model('Broker_model');
$template['broker_data'] = $this->Broker_model->getBroker();
$template['broker_data'] = $this->Broker_model->getBroker('','0,1');
}
$this->load->view('template',$template);
}
......
......@@ -112,4 +112,25 @@ function decode_param($param = ''){
$decode = trim(base64_decode(urldecode($decode)),'{*}');
return $decode;
}
function getLatLngFromLocation($location = ''){
if(empty($location))
return 0;
$thisObj = & get_instance();
$locData = file_get_contents("https://maps.google.com/maps/api/geocode/json?address=".
urlencode($location).
"&sensor=false&key=".$thisObj->session->userdata['settings']['google_api_key']);
if(empty($locData))
return 0;
$loc_data = json_decode($locData);
if(empty($loc_data) || !isset($loc_data->status) || $loc_data->status != 'OK')
return 0;
$locArr['lat'] = $loc_data->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
$locArr['lng'] = $loc_data->{'results'}[0]->{'geometry'}->{'location'}->{'lng'};
if(empty($locArr['lat']) || empty($locArr['lng']))
return 0;
return $locArr;
}
?>
\ No newline at end of file
......@@ -21,10 +21,15 @@ class Broker_model extends CI_Model {
return ($status)?1:0;
}
function getBroker($broker_id = ''){
$cond = (!empty($broker_id))?" AND broker_id = '$broker_id'":"";
function getBroker($broker_id = '', $status = '1', $company_id = ''){
$cond = (!empty($broker_id))?" AND BRK.broker_id = '$broker_id'":"";
$cond .= (!empty($company_id))?" AND BRK.company_id = '$company_id'":"";
$status = ($status == '')?'1':$status;
$result = $this->db->query("SELECT * FROM brokers WHERE status IN (0,1) $cond");
$result = $this->db->query("SELECT BRK.*,CMP.company_name
FROM brokers AS BRK
INNER JOIN company AS CMP ON (CMP.company_id = BRK.company_id)
WHERE BRK.status IN ($status) $cond");
if(empty($result)){
return;
}
......
......@@ -33,14 +33,14 @@ class Company_model extends CI_Model {
return 0;
}
function getCompany($company_id = ''){
function getCompany($company_id = '',$status = '1'){
$cond = (!empty($company_id))?" AND CMP.company_id = '$company_id'":"";
$sql = "SELECT CMP.*,AU.*,CPAY.*
FROM company AS CMP
INNER JOIN admin_users AS AU ON (AU.id = CMP.company_id)
INNER JOIN company_payment_details AS CPAY ON (CPAY.company_id = CMP.company_id)
WHERE AU.status IN (0,1) $cond";
WHERE AU.status IN ($status) $cond";
$result = $this->db->query($sql);
if(empty($result)){
return;
......
......@@ -21,13 +21,14 @@ class Driver_model extends CI_Model {
return ($status)?1:0;
}
function getDriver($driver_id = ''){
function getDriver($driver_id = '',$status = '1',$company_id = ''){
$cond = '';
$user_id = $this->session->userdata('id');
if($this->session->userdata('user_type') != 1){
$cond = " AND CMP.company_id = '$user_id'";
}
$cond .= (!empty($driver_id))?" AND DRV.driver_id = '$driver_id'":"";
$cond .= (!empty($company_id))?" AND DRV.company_id = '$company_id'":"";
$sql = "SELECT DRV.*, CMP.company_name, VH.vehicle_type, VHS.vehicle_model, VHS.vehicle_reg_no,
VHS.vehicle_reg_image, VHS.model
......@@ -36,7 +37,7 @@ class Driver_model extends CI_Model {
INNER JOIN admin_users AS AU ON (AU.id = CMP.company_id)
LEFT JOIN vehicles AS VHS ON (VHS.vehicle_id = DRV.vehicle)
LEFT JOIN vehicle_types AS VH ON (VH.vehicle_id = DRV.vehicle_id)
WHERE DRV.status IN (0,1) AND AU.status = '1' $cond";
WHERE DRV.status IN ($status) AND AU.status = '1' $cond";
$result = $this->db->query($sql);
if(empty($result)){
return;
......@@ -64,20 +65,20 @@ class Driver_model extends CI_Model {
if(!empty($phoneChk) && $phoneChk->num_rows() > 0){
return 3;
}
$upArr = array('first_name'=>$driver_data['first_name'],'last_name'=>$driver_data['last_name'],'email_id'=>$driver_data['email_id'],'phone'=>$driver_data['phone'],'city'=>$driver_data['city'],'state'=>$driver_data['state'],'address'=>$driver_data['address'],'licence_exp_date'=>$driver_data['licence_exp_date'],'licence_number'=>$driver_data['licence_number'],'vehicle'=>$driver_data['vehicle']);
if(!empty($driver_data['profile_image'])){
$upArr['profile_image'] = $driver_data['profile_image'];
if(empty($driver_data['licence'])){
unset($driver_data['licence']);
}
if(!empty($driver_data['licence'])){
$upArr['licence'] = $driver_data['licence'];
if(empty($driver_data['company_id'])){
unset($driver_data['company_id']);
}
if(!empty($driver_data['company_id'])){
$upArr['company_id'] = $driver_data['company_id'];
if(empty($driver_data['vehicle_id'])){
unset($driver_data['vehicle_id']);
}
if(!empty($driver_data['vehicle_id'])){
$upArr['vehicle_id'] = $driver_data['vehicle_id'];
if(empty($driver_data['profile_image'])){
unset($driver_data['profile_image']);
}
$status = $this->db->update('drivers', $upArr, array('driver_id'=>$driver_id));
$status = $this->db->update('drivers', $driver_data, array('driver_id'=>$driver_id));
return ($status)?1:0;
}
......
......@@ -143,8 +143,10 @@ class Ride_model extends CI_Model {
$this->db->delete('ride_status',array('ride_id'=>$ride_id));
}
function autoAssignDriver($ride_id = '',$appointment_time = '', $pickupLoc = array()){
if(empty($ride_id) || empty($appointment_time) || empty($pickupLoc) || !isset($pickupLoc['lat']) || $pickupLoc['lat'] == '' || !isset($pickupLoc['lng']) || $pickupLoc['lng'] == ''){
function autoAssignDriver($ride_id='',$appointment_time='',$pickupLoc=array(),$drivers=array(),$no_driver='0'){
if(empty($ride_id) || empty($appointment_time) || empty($drivers) || empty($pickupLoc) ||
!isset($pickupLoc['lat']) || $pickupLoc['lat'] == '' || !isset($pickupLoc['lng']) ||
$pickupLoc['lng'] == '' ){
return;
}
......@@ -161,44 +163,39 @@ class Ride_model extends CI_Model {
FROM transport_details AS TD
WHERE TD.driver_assign_status='0' AND TD.assigned_driver<>'0' AND TD.is_scheduled='1' AND
TD.appointment_time>$startDateTime AND TD.appointment_time<$endDateTime AND
TD.status IN (4,5,8)";
TD.status IN (4,5,8) AND TD.assigned_driver IN (".implode(",",$drivers).")";
$prvDrivers = $this->db->query($sql);
if(empty($prvDrivers)){
return 0;
}
$driverCond = '';
if($prvDrivers->num_rows() > 0){
$prvDrivers = $prvDrivers->row_array();
$driverCond = (isset($prvDrivers['assigned_drivers']) && !empty($prvDrivers['assigned_drivers']))?
'AND DRV.driver_id NOT IN ('.$prvDrivers['assigned_drivers'].')':'';
if(!empty($prvDrivers) && $prvDrivers->num_rows() > 0 &&
!empty($prvDrivers = $prvDrivers->row_array()) && isset($prvDrivers['assigned_drivers']) &&
!empty($prvDrivers['assigned_drivers'])){
$driverCond = 'AND DRV.driver_id NOT IN ('.$prvDrivers['assigned_drivers'].')';
}
$sql = "SELECT DRV.driver_id,3956*2*ASIN(SQRT(POWER(SIN((".$pickupLoc['lat']."-DRV.lat_driver)*
pi()/180/2),2)+COS(".$pickupLoc['lat']."*pi()/180)*COS(DRV.lat_driver*pi()/180)*
POWER(SIN((".$pickupLoc['lng']."-DRV.lng_driver)*pi()/180/2),2))) AS distance
$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)*pi()/180/2),2))) AS distance
FROM drivers AS DRV
WHERE DRV.status = 1 ".$driverCond."
HAVING distance < 25
WHERE DRV.status = 1 AND DRV.driver_id IN (".implode(",",$drivers).") ".$driverCond."
ORDER BY distance
LIMIT 0,1";
$driverData = $this->db->query($sql);
if(empty($driverData)){
return 0;
}
if(!empty($driverData) && $driverData->num_rows() > 0 &&
!empty($nearByDriver = $driverData->row_array())){
$driver_id = $nearByDriver['driver_id'];
if($driverData->num_rows() > 0){
$nearByDriver = $driverData->row_array();
$nearByDriver = $nearByDriver['driver_id'];
$status = $this->db->update('transport_details',
array('driver_assign_status'=>'0','assigned_driver'=>$nearByDriver,'status'=>'3'),
array('transport_id'=>$ride_id));
} else {
$status = $this->db->update('transport_details',
array('driver_assign_status'=>'1','status'=>'3'),
array('transport_id'=>$ride_id));
}
array('driver_assign_status'=>'0','assigned_driver'=>$driver_id,
'status'=>'3'),
array('transport_id'=>$ride_id));
return $status;
}
$assignStatus = ($no_driver == '1')?'2':'1';
$status = $this->db->update('transport_details',
array('driver_assign_status'=>"'".$assignStatus."'",'status'=>'3'),
array('transport_id'=>$ride_id));
return $status;
}
}
}
?>
\ No newline at end of file
......@@ -36,6 +36,26 @@
data-parsley-minlength="2" data-parsley-pattern="^[a-zA-Z\ . ! @ # $ % ^ & * () + = , \/]+$" required="" name="broker_name" placeholder="Enter Broker Company Name">
<span class="glyphicon form-control-feedback"></span>
</div>
<?php if($this->session->userdata['user_type'] == 1){ ?>
<div class="form-group">
<label>Select Company</label>
<select name="company_id" class="form-control">
<option selected value="">All Company</option>
<?php
if(!empty($company_data)){
foreach ($company_data as $company) {
$chkFlg = ($company_id == $company->company_id)?'selected':'';
echo '<option value="'.$company->company_id.'" '.$chkFlg.'>
'.$company->company_name.
'</option>';
}
}
?>
</select>
</div>
<?php } else { ?>
<input type="hidden" name="company_id" value="<?= $this->session->userdata['id'] ?>">
<?php } ?>
<div class="form-group has-feedback">
<label>Email</label>
<input type="email" class="form-control required" data-parsley-trigger="change"
......
......@@ -36,6 +36,26 @@
data-parsley-minlength="2" value="<?= $broker_data->broker_name ?>" data-parsley-pattern="^[a-zA-Z\ . ! @ # $ % ^ & * () + = , \/]+$" required="" name="broker_name" placeholder="Enter Company Name">
<span class="glyphicon form-control-feedback"></span>
</div>
<?php if($this->session->userdata['user_type'] == 1){ ?>
<div class="form-group">
<label>Select Company</label>
<select name="company_id" class="form-control">
<option selected value="">All Company</option>
<?php
if(!empty($company_data)){
foreach ($company_data as $company) {
$chkFlg = ($broker_data->company_id == $company->company_id)?'selected':'';
echo '<option value="'.$company->company_id.'" '.$chkFlg.'>
'.$company->company_name.
'</option>';
}
}
?>
</select>
</div>
<?php } else { ?>
<input type="hidden" name="company_id" value="<?= $broker_data->company_id ?>">
<?php } ?>
<div class="form-group has-feedback">
<label>Email</label>
<input type="email" class="form-control required" data-parsley-trigger="change"
......
......@@ -33,14 +33,14 @@
<thead>
<tr>
<th class="hidden">ID</th>
<th width="130px;">Broker Name</th>
<th width="170px;">Email ID</th>
<th width="70px;">Phone</th>
<th width="90px;">Broker Name</th>
<th width="90px;">Company</th>
<th width="200px;">Email ID</th>
<th width="80px;">Phone</th>
<th width="100px;">Address</th>
<th width="60px;">City</th>
<th width="60px;">State</th>
<th width="60px;">Status</th>
<th width="300px;">Action</th>
<th width="50px;">City</th>
<th width="50px;">State</th>
<th width="120px;">Action</th>
</tr>
</thead>
<tbody>
......@@ -51,31 +51,35 @@
<tr>
<th class="hidden"><?= $broker->broker_id ?></th>
<td class="center"><?= $broker->broker_name ?></th>
<td class="center"><?= $broker->company_name ?></th>
<td class="center"><?= $broker->broker_email ?></th>
<td class="center"><?= $broker->broker_phone ?></th>
<td class="center"><?= $broker->address ?></th>
<td class="center"><?= $broker->city ?></th>
<td class="center"><?= $broker->state ?></th>
<td class="center"><?= ($broker->status == '1')?'Active':'Inactive'?></td>
<td class="center">
<a class="btn btn-sm btn-primary"
href="<?= base_url('Broker/edit/'.encode_param($broker->broker_id)) ?>">
<i class="fa fa-fw fa-trash"></i>Edit
</a>
<a class="btn btn-sm btn-danger"
href="<?= base_url("Broker/changeStatus/".encode_param($broker->broker_id))."/2" ?>"
onClick="return doconfirm()">
<i class="fa fa-fw fa-trash"></i>Delete
</a>
<?php if($broker->status == 1){ ?>
<a class="btn btn-sm btn-success" style="background-color:#ac2925" href="<?= base_url("Broker/changeStatus/".encode_param($broker->broker_id))."/0" ?>">
<i class="fa fa-cog"></i> De-activate
<div>
<a class="btn btn-sm btn-primary"
href="<?= base_url('Broker/edit/'.encode_param($broker->broker_id)) ?>">
<i class="fa fa-fw fa-trash"></i>Edit
</a>
<a class="btn btn-sm btn-danger"
href="<?= base_url("Broker/changeStatus/".encode_param($broker->broker_id))."/2" ?>"
onClick="return doconfirm()">
<i class="fa fa-fw fa-trash"></i>Delete
</a>
<?php } else { ?>
<a class="btn btn-sm btn-success" href="<?= base_url("Broker/changeStatus/".encode_param($broker->broker_id))."/1" ?>">
<i class="fa fa-cog"></i> Activate
</a>
<?php } ?>
</div>
<div style="text-align: center; padding-top: 2px;">
<?php if($broker->status == 1){ ?>
<a class="btn btn-sm btn-success" style="background-color:#ac2925" href="<?= base_url("Broker/changeStatus/".encode_param($broker->broker_id))."/0" ?>">
<i class="fa fa-cog"></i> De-activate
</a>
<?php } else { ?>
<a class="btn btn-sm btn-success" href="<?= base_url("Broker/changeStatus/".encode_param($broker->broker_id))."/1" ?>">
<i class="fa fa-cog"></i> Activate
</a>
<?php } ?>
</div>
</td>
</tr>
<?php }
......
......@@ -58,7 +58,7 @@
<input type="password" class="form-control required" data-parsley-trigger="change"
data-parsley-minlength="2" required="" name="password" placeholder="Enter Pasword">
<span class="glyphicon form-control-feedback"></span>
</div>
</div>
<div class="form-group">
<label>Address</label>
<input type="text" class="form-control required" data-parsley-trigger="change"
......@@ -77,7 +77,30 @@
<input type="text" class="form-control required" data-parsley-trigger="change"
data-parsley-minlength="2" required="" name="state" placeholder="Enter Driver State">
<span class="glyphicon form-control-feedback"></span>
</div>
</div>
<div class="form-group">
<label>Online Timing</label>
<div style="display: flex;">
<div class="clockpicker" data-placement="right" data-align="top"
data-autoclose="true" style="padding-right: 5px;width: 50%;">
<div class="input-group date" id='online_start_time'>
<input type="text" class="form-control required" data-parsley-trigger="change" data-parsley-minlength="2" required="" name="online_start_time" placeholder="Pick Online Check In Time" autocomplete="off">
<div class="input-group-addon">
<i class="fa fa-clock-o"></i>
</div>
</div>
</div>
<div class="clockpicker" data-placement="right" data-align="top"
data-autoclose="true" style="padding-left: 5px;width: 50%;">
<div class="input-group date" id='online_end_time'>
<input type="text" class="form-control required" data-parsley-trigger="change" data-parsley-minlength="2" required="" name="online_end_time" placeholder="Pick Online Check Out Time" autocomplete="off">
<div class="input-group-addon">
<i class="fa fa-clock-o"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
......@@ -116,6 +139,12 @@
<i class="fa fa-calendar"></i>
</div>
</div>
</div>
<div class="form-group">
<label>Active Location</label>
<input type="text" class="form-control required" data-parsley-trigger="change" required=""
id="pickup_location" name="active_location" placeholder="Select Active Location">
<span class="glyphicon form-control-feedback"></span>
</div>
<?php if($this->session->userdata['user_type'] == 1){ ?>
<div class="form-group">
......@@ -154,7 +183,7 @@
</select>
</div>
</div>
<div class="col-md-12" style="text-align: center;">
<div class="col-md-12" style="text-align: center; padding-top: 20px;">
<div class="box-footer">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
......
......@@ -83,8 +83,8 @@
</td>
</tr>
<?php
if(!empty($driver->lat_driver) && !empty($driver->lng_driver))
$drvLatLng = $driver->lat_driver.','.$driver->lng_driver;
if(!empty($driver->active_loc_lat) && !empty($driver->active_loc_lng))
$drvLatLng = $driver->active_loc_lat.','.$driver->active_loc_lng;
$mapLocData[]=array('DisplayText'=>$driver->first_name.' '.$driver->last_name,
'MarkerId'=>base_url('assets/images/mapCarIconPref.png'),
......@@ -137,11 +137,15 @@
icon: people["MarkerId"]
});
google.maps.event.addListener(marker, 'click', function(event) {
markCalBak(people["driver_id"]);
});
google.maps.event.addListener(marker, 'mouseout', function(event) {
infowindow.close(map, this);
});
google.maps.event.addListener(marker, 'mouseover', function(event) {
infowindow.setContent(this.html);
infowindow.setPosition(event.latLng);
infowindow.open(map, this);
markCalBak(people["driver_id"]);
});
}
}
......@@ -231,12 +235,20 @@
'</div> '+
'<div class="col-md-5"> '+
'<div class="form-group"> '+
'<span style="padding-right: 35px;">Online Timing </span> : '+
'<label style="padding-left: 10px;">'+driver_data['online_time']+' </label>'+
'</div> '+
'<div class="form-group"> '+
'<span style="padding-right: 27px;">Active Location </span> : '+
'<label style="padding-left: 10px;">'+driver_data['active_location']+'</label>'+
'</div> '+
'<div class="form-group"> '+
'<span style="padding-right: 50px;">Licence No. </span> : '+
'<label style="padding-left: 10px;"> '+driver_data['licence_number']+' </label> '+
'<label style="padding-left: 10px;"> '+driver_data['licence_number']+' </label>'+
'</div> '+
'<div class="form-group"> '+
'<span style="padding-right: 33px;">Licence Expiry </span> : '+
'<label style="padding-left: 10px;"> '+driver_data['licence_exp_date']+' </label> '+
'<label style="padding-left: 10px;">'+driver_data['licence_exp_date']+'</label>'+
'</div> '+
'<div class="form-group"> '+
'<span style="padding-right: 37px;">Licence Proof </span> : '+
......@@ -248,7 +260,7 @@
'</div> '+
'</div>'+
'<div style="text-align:center;">'+
'<a href="'+base_url+'Driver/view/'+driver_id+'">View More</a>'+
'<a href="'+base_url+'Driver/view/'+driver_id+'">View</a>'+
'</div>';
remModalLoader();
......
......@@ -71,6 +71,33 @@
<input type="text" class="form-control required" value="<?= $driver_data->state ?>" data-parsley-trigger="change" data-parsley-minlength="2" required="" name="state"
placeholder="Enter Driver State">
<span class="glyphicon form-control-feedback"></span>
</div>
<div class="form-group">
<label>Online Timing</label>
<div style="display: flex;">
<div class="clockpicker" data-placement="right" data-align="top"
data-autoclose="true" style="padding-right: 5px;width: 50%;">
<div class="input-group date" id='online_start_time'>
<input type="text" class="form-control required" data-parsley-trigger="change"
name="online_start_time" value="<?= date('G:i',$driver_data->online_start_time)?>"
data-parsley-minlength="2" required="" placeholder="Pick Online Check In Time" autocomplete="off">
<div class="input-group-addon">
<i class="fa fa-clock-o"></i>
</div>
</div>
</div>
<div class="clockpicker" data-placement="right" data-align="top"
data-autoclose="true" style="padding-left: 5px;width: 50%;">
<div class="input-group date" id='online_end_time'>
<input type="text" class="form-control required" data-parsley-trigger="change"
value="<?= date('G:i',$driver_data->online_end_time) ?>" data-parsley-minlength="2" required=""
name="online_end_time" placeholder="Pick Online Check Out Time" autocomplete="off">
<div class="input-group-addon">
<i class="fa fa-clock-o"></i>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
......@@ -110,7 +137,14 @@
<i class="fa fa-calendar"></i>
</div>
</div>
</div>
</div>
<div class="form-group">
<label>Active Location</label>
<input type="text" class="form-control required" data-parsley-trigger="change" required=""
id="pickup_location" name="active_location" placeholder="Select Active Location"
value="<?= $driver_data->active_location ?>">
<span class="glyphicon form-control-feedback"></span>
</div>
<?php if($this->session->userdata['user_type'] == 1){ ?>
<div class="form-group">
<label for="exampleInputEmail1">Company</label>
......
......@@ -39,7 +39,7 @@
<img src="<?= base_url($driver_data->profile_image) ?>" onerror="this.src='<?=base_url("assets/images/user_avatar.jpg")?>';" height="100" width="100" />
</div>
</div>
<div class="col-md-4">
<div class="col-md-5" style="width:380px;">
<div class="form-group has-feedback">
<span style="padding-right: 73px;">Name </span> :
<label style="padding-left: 10px;">
......@@ -109,6 +109,27 @@
</div>
<div class="col-md-5">
<div class="form-group has-feedback">
<div class="col-md-5" >
<span style="padding-right: 27px;">Active Location </span> :
</div>
<label>
<?= $driver_data->active_location ?>
</label>
</div>
<?php
$online_time = ' -- ';
if(!empty($driver_data->online_start_time) && !empty($driver_data->online_end_time)){
$online_time = date('G:i',$driver_data->online_start_time).' - '.date('G:i',$driver_data->online_end_time);
}?>
<div class="form-group has-feedback">
<div class="col-md-5" >
<span style="padding-right: 34px;">Online Timing </span> :
</div>
<label>
<?= $online_time ?>
</label>
</div>
<div class="form-group has-feedback">
<div class="col-md-5" >
<span style="padding-right: 50px;">Licence No. </span> :
</div>
......@@ -131,14 +152,6 @@
<div class="col-md-7" style="height: 200px;">
<img id="licence_img" src="<?= base_url($driver_data->licence) ?>" onerror="this.src='<?=base_url("assets/images/no_image.png")?>';" style="height:auto;width:100%;" />
</div>
</div>
<div class="form-group has-feedback">
<div class="col-md-5" >
<span style="padding-right: 50px;">Vehicle Reg </span> :
</div>
<div class="col-md-7" style="height: 200px;">
<img id="licence_img" src="<?= base_url($driver_data->vehicle_reg_image) ?>" onerror="this.src='<?=base_url("assets/images/no_image.png")?>';" style="height:auto;width:100%;" />
</div>
</div>
</div>
</div>
......
......@@ -226,7 +226,7 @@
<div class="col-md-4">
<div class="form-group has-feedback">
<label>Select NEMT Company</label>
<select name="company_id" class="form-control required" data-parsley-trigger="change" required>
<select name="company_id" class="form-control required" data-parsley-trigger="change" required onchange="getBrokers(0,0)" id="searchCompanyDrop" >
<option selected disabled>Select Company</option>
<?php
if(!empty($company_data)){
......@@ -242,21 +242,23 @@
</div>
<?php }else{ ?>
<input type="hidden" name="company_id" value="<?= $this->session->userdata['id'] ?>">
<?php } ?>
<div class="col-md-4">
<div class="form-group has-feedback">
<label>Choose Broker</label>
<select name="broker_id" class="form-control required" data-parsley-trigger="change" required>
<option selected disabled>Select Broker</option>
<?php
if(!empty($broker_data)){
foreach ($broker_data as $broker) {
echo '<option value="'.$broker->broker_id.'">'.$broker->broker_name.'</option>';
}
}
?>
</select>
</div>
<?php } $customCls = ($this->session->userdata['user_type'] == 1)?'disable-div':''; ?>
<div id="searchBrokerBlock" class="col-md-4 <?= $customCls ?>">
<div class="form-group">
<label>Choose Booking Source</label>
<select id="searchBrokerDrop" name="broker_id" class="form-control required">
<option selected disabled>Select Broker</option>
<?php
if($this->session->userdata['user_type'] != 1 && !empty($company_data)){
foreach ($broker_data as $broker) {
echo '<option value="'.$broker->broker_id.'">'.
$broker->broker_name.
'</option>';
}
}
?>
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group has-feedback">
......
......@@ -62,13 +62,13 @@
<tr>
<th class="hidden">ID</th>
<th width="100px">Scheduled Time</th>
<th width="100px">Arrival Time</th>
<th width="70px">Arrival Time</th>
<th width="100px">Coustomer Name</th>
<th width="100px">Mobility</th>
<th width="100px">Pick Up Address</th>
<th width="100px">Drop Off Address</th>
<th width="100px">Rider Status</th>
<th width="40px">View</th>
<th width="30px">Mobility</th>
<th width="90px">Pick Up Address</th>
<th width="90px">Drop Address</th>
<th width="155px">Rider Status</th>
<th width="30px">View</th>
</tr>
</thead>
<tbody>
......@@ -83,23 +83,26 @@
<tr>
<th class="hidden"><?= $ride->transport_id ?></th>
<th class="center">
<?= date("d-m-y G:i",$ride->appointment_time) ?>
<?= date("d-m-y G:i",$ride->appointment_time - 60 * 60) ?>
</th>
<th class="center"></th>
<th class="center"><?= date("d-m-y G:i",$ride->appointment_time) ?></th>
<th class="center"><?= $ride->patient_name ?></th>
<th class="center"></th>
<th class="center">Med</th>
<th class="center"><?= $ride->pickup_location ?></th>
<th class="center"><?= $ride->drop_location ?></th>
<th class="center">
<?php
if(!empty($ride->assigned_driver) && $ride->driver_assign_status == '1'){
echo 'Driver Cancelled & Auto Assigned to Dispatcher';
echo 'Driver Cancelled,<br> Auto Assigned to Dispatcher';
} else if (empty($ride->assigned_driver) && $ride->driver_assign_status == '1'){
echo 'No Driver Found, ride assigned to dispatcher';
echo 'No Driver Found,<br> Ride assigned to Dispatcher';
} else if (empty($ride->assigned_driver) && $ride->driver_assign_status == '2'){
echo 'No Driver Found,<br> Ride assigned to No Driver';
} else if (!empty($ride->assigned_driver) && $ride->driver_assign_status == '0' && !empty($ride->assigned_driver_name) && $ride->status == 3){
echo 'Waiting for driver response : Driver Name '.$ride->assigned_driver_name;
echo 'Waiting for driver Approval<br>
Driver Name - '.$ride->assigned_driver_name;
} else if (!empty($ride->assigned_driver) && $ride->driver_assign_status == '0' && !empty($ride->assigned_driver_name) && $ride->status == 4){
echo 'Driver Accepted : Driver Name '.$ride->assigned_driver_name;
echo 'Driver Accepted<br> Driver Name - '.$ride->assigned_driver_name;
}
?>
</th>
......
......@@ -306,4 +306,45 @@
.disable-block {
pointer-events: none;
opacity: 0.5;
}
.disable-div {
-webkit-filter: blur(1px) !important;
pointer-events: none;
cursor: default;
text-decoration: none;
color: black;
}
.driver-list-body {
height: 120px;
}
.padLeft20 {
padding-left: 20px;
}
.padBottom10 {
padding-bottom: 10px;
}
.enable-no-driver {
padding-left:5px;
padding-bottom:5px;
color:#a51c1c;
}
.enable-nodriver-blk {
padding-left: 20px;
display: inline-block;
}
.select-all-input {
padding-left:5px;
padding-bottom:5px;
}
.driver-list-blk {
height: 80px;
overflow-y:scroll;
}
\ No newline at end of file
......@@ -166,8 +166,8 @@ function viewOrderDetails(key){
modalTrigger('Ride Details',body_html);
}
function getBrokerRides(){
jQuery('[id="getBrokerRides"]').submit();
function getRideData(){
jQuery('[id="getRideDataForm"]').submit();
}
function getCmpyPayDetls(){
......@@ -195,6 +195,50 @@ function remModalLoader(){
jQuery("[id='modal_content']").removeClass('relative height_200');
}
function getBrokers(allBrokerFlag,phoneBookingFlag){
var company_id = jQuery('[id="searchCompanyDrop"] option:selected').val();
if(company_id == '' || company_id == undefined || company_id == 'undefined' || company_id == null || company_id == 'null'){
jQuery('[id="searchBrokerBlock"]').addClass('disable-div');
}
jQuery.ajax({
url : base_url+"Broker/getBrokers",
type : 'POST',
data : {'company_id':company_id},
success: function(resp){
if(resp == '' || resp == undefined || resp == null || resp == 'null' || resp == 'undefined'){
return false;
}
var optionHtml = (allBrokerFlag == 1)?'<option selected value="">All Brokers</option>':'';
resp = jQuery.parseJSON(resp);
if(resp['status'] == 0){
return false;
}
if(resp['status'] == 1){
jQuery.each(resp['data'], function(index,value) {
optionHtml += '<option value="'+value['broker_id']+'">'+value['broker_name']+'</option>';
});
}
optionHtml += (phoneBookingFlag == 1)?'<option value="0">Phone Bookings</option>':'';
if(optionHtml == ''){
jQuery('[id="searchBrokerDrop"]').addClass('prevent-click');
optionHtml = '<option selected disabled>No Data Found</option>';
}
jQuery('[id="searchBrokerDrop"]').html(optionHtml);
jQuery('[id="searchBrokerBlock"]').removeClass('disable-div');
}
});
}
jQuery('[id="selectAllDriver"]').click(function(){
var thisObj = jQuery(this);
if(thisObj.prop("checked") == true){
jQuery('[id^="avlDriver_"]').prop("checked", true);
} else {
jQuery('[id^="avlDriver_"]').prop("checked", false);
}
});
jQuery('[id="scheduleAll"]').click(function(){
if(ride_ids==undefined || ride_ids=='undefined' || ride_ids==null || ride_ids=='null' || ride_ids==''){
return false;
......@@ -220,15 +264,31 @@ markAsScheduled(transport_id,is_scheduled);
});
function markAsScheduled(transport_id,is_scheduled){
if(transport_id == undefined || transport_id == 'undefined' || transport_id == null || transport_id == 'null' || transport_id == '' ||
is_scheduled == undefined || is_scheduled == 'undefined' || is_scheduled == null || is_scheduled == 'null' || is_scheduled == ''){
var drivers = [], no_driver = jQuery('[id="checkNoDriver"]:checked').val();
jQuery.each(jQuery("input[name^='avlDrivers[]']:checked"), function() {
drivers.push(jQuery(this).val());
});
no_driver = (no_driver == undefined || no_driver == 'undefined' || no_driver == null || no_driver == 'null' || no_driver == '')?'0':'1';
if(is_scheduled == undefined || is_scheduled == 'undefined' || is_scheduled == null || is_scheduled == 'null' || is_scheduled == '' ||
transport_id == undefined || transport_id == 'undefined' || transport_id == null || transport_id == 'null' || transport_id == ''){
return false;
}
if(is_scheduled == 0 && (drivers == undefined || drivers == 'undefined' || drivers == null || drivers == 'null' || drivers == '')){
slideTo('selectDriverBlock');
jQuery('[id="driverRequired"]').fadeIn(500);
setTimeout(function(){
jQuery('[id="driverRequired"]').fadeOut(1000);
}, 5000);
return false;
}
showFullScreenLoader();
jQuery.ajax({
url : base_url+"Ride/changeSchuduleStatus",
type : 'POST',
data : {'transport_id':transport_id,'is_scheduled':is_scheduled},
data : {'transport_id':transport_id,'is_scheduled':is_scheduled,'no_driver':no_driver,'drivers':drivers},
success: function(resp){
if(resp == '' || resp == undefined || resp == null || resp == 'null' || resp == 'undefined'){
remFullScreenLoader();
......
This source diff could not be displayed because it is too large. You can view the blob instead.
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