Commit c17c1b19 by Tobin

daily commit

parent 2cf704b9
...@@ -288,6 +288,8 @@ class Ride extends CI_Controller { ...@@ -288,6 +288,8 @@ class Ride extends CI_Controller {
$template['ride_id'] = $ride_id; $template['ride_id'] = $ride_id;
$template['ride_data'] = $ride_data; $template['ride_data'] = $ride_data;
$template['company_id'] = $company_id; $template['company_id'] = $company_id;
$template['pickup_lat'] = $lat;
$template['pickup_lng'] = $lng;
$template['driver_list'] = $driver_list; $template['driver_list'] = $driver_list;
$this->load->view('template',$template); $this->load->view('template',$template);
......
...@@ -11,6 +11,12 @@ class Company extends CI_Controller { ...@@ -11,6 +11,12 @@ class Company extends CI_Controller {
if(!$this->session->userdata('logged_in')) { if(!$this->session->userdata('logged_in')) {
redirect(base_url('Login')); redirect(base_url('Login'));
} }
if($this->session->userdata['user_type'] != 1){
$flashMsg = array('message'=>'Access Denied You don\'t have permission to access this Page',
'class'=>'error');
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url());
}
} }
...@@ -208,6 +214,18 @@ class Company extends CI_Controller { ...@@ -208,6 +214,18 @@ class Company extends CI_Controller {
}else if($err == 0 && (!isset($_POST['company_info']) || empty($_POST['company_info']))){ }else if($err == 0 && (!isset($_POST['company_info']) || empty($_POST['company_info']))){
$err = 1; $err = 1;
$errMsg = 'Provide a Contact Person Info.'; $errMsg = 'Provide a Contact Person Info.';
}else if($err == 0 && (!isset($_POST['booking_charge']) || empty($_POST['booking_charge']))){
$err = 1;
$errMsg = 'Provide a Booking Charge';
}else if($err == 0 && (!isset($_POST['sms_charge']) || empty($_POST['sms_charge']))){
$err = 1;
$errMsg = 'Provide an SMS Charge';
}else if($err == 0 && (!isset($_POST['push_charge']) || empty($_POST['push_charge']))){
$err = 1;
$errMsg = 'Provide Push Notification Charge';
}else if($err == 0 && (!isset($_POST['report_charge']) || empty($_POST['report_charge']))){
$err = 1;
$errMsg = 'Provide a Report Generation Charge';
} }
$_POST['profile_image'] = ''; $_POST['profile_image'] = '';
if(isset($_FILES['profile_image']) && !empty($_FILES['profile_image'])){ if(isset($_FILES['profile_image']) && !empty($_FILES['profile_image'])){
...@@ -240,5 +258,97 @@ class Company extends CI_Controller { ...@@ -240,5 +258,97 @@ class Company extends CI_Controller {
redirect(base_url('Company/edit/'.encode_param($company_id))); redirect(base_url('Company/edit/'.encode_param($company_id)));
} }
function manager_offers(){
$template['page'] = 'Company/offer_list_page';
$template['menu'] = "Company Management";
$template['sub_menu'] = "Offer Management";
$template['page_desc'] = "Manage Company Offers";
$template['page_title'] = "Offer Management";
$template['offer_data'] = $this->Company_model->getOfferData();
$this->load->view('template',$template);
}
function changeOfferStatus($offer_id = '', $status = '1'){
$flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error');
if(empty($offer_id)){
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Company/manager_offers'));
}
$offer_id = decode_param($offer_id);
$status = $this->Company_model->changeOfferStatus($offer_id,$status);
if($status != 1){
$this->session->set_flashdata('message',$flashMsg);
}
redirect(base_url('Company/manager_offers'));
}
function create_offer(){
$template['page'] = 'Company/create_offer';
$template['menu'] = "Company Management";
$template['sub_menu'] = "Offer Management";
$template['page_desc'] = "Craete Company Offers";
$template['page_title'] = "Create Offer";
$template['company_data'] = $this->Company_model->getCompany();
$this->load->view('template',$template);
}
function addOffer(){
$err = 0;
$errMsg = '';
$flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error');
if(!isset($_POST) || empty($_POST)){
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Company/create_offer'));
}
if($err == 0 && (!isset($_POST['company_id']) || empty($_POST['company_id']))){
$err = 1;
$errMsg = 'Select a Company';
}else if($err == 0 && (!isset($_POST['activation_date']) || empty($_POST['activation_date']))){
$err = 1;
$errMsg = 'Provide an Activation Date';
}else if($err == 0 && (!isset($_POST['expiry_date']) || empty($_POST['expiry_date']))){
$err = 1;
$errMsg = 'Provide an Expiry Date';
}else if($err == 0 && (!isset($_POST['offer_type']) || empty($_POST['offer_type']))){
$err = 1;
$errMsg = 'Select an Offer Type';
}else if($err == 0 && $_POST['expiry_date'] <= $_POST['activation_date']){
$err = 1;
$errMsg = 'Choose a Proper Date Range';
}
if($err == 0 && $_POST['offer_type'] == 2){
if(!isset($_POST['discount']) || empty($_POST['discount'])){
$err = 1;
$errMsg = 'Provide a Discount';
}
} else {
unset($_POST['discount']);
}
if($err == 1){
$flashMsg['message'] = $errMsg;
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Company/create_offer'));
}
$status = $this->Company_model->addOffer($_POST);
if($status == 1){
$flashMsg['class'] = 'success';
$flashMsg['message'] = 'Offer Created';
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Company/manager_offers'));
}
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Company/create_offer'));
}
} }
?> ?>
\ No newline at end of file
...@@ -68,5 +68,36 @@ class Company_model extends CI_Model { ...@@ -68,5 +68,36 @@ class Company_model extends CI_Model {
return 0; return 0;
} }
function getOfferData(){
$sql = "SELECT CMP.*, COF.*
FROM company AS CMP
INNER JOIN admin_users AS AU ON (AU.id = CMP.company_id)
INNER JOIN company_offers AS COF ON (CMP.company_id = COF.company_id)
WHERE AU.status = '1' AND COF.status != '2'
ORDER BY CMP.company_name";
$result = $this->db->query($sql);
if(empty($result)){
return 0;
}
return $result->result();
}
function changeOfferStatus($offer_id = '', $status = '1'){
if(empty($offer_id)){
return 0;
}
$status = $this->db->update('company_offers',array('status'=>$status), array('id'=>$offer_id));
return ($status)?1:0;
}
function addOffer($offer_data = array()){
if(empty($offer_data)){
return 0;
}
$offer_data['status'] = 1;
$status = $this->db->insert('company_offers',$offer_data);
return ($status)?1:0;
}
} }
?> ?>
\ No newline at end of file
<div class="content-wrapper">
<section class="content-header">
<h1>
<?= $page_title ?>
<small><?= $page_desc ?></small>
</h1>
<ol class="breadcrumb">
<li><a href="<?= base_url() ?>"><i class="fa fa-star-o" aria-hidden="true"></i>Home</a></li>
<li><?= $menu ?></li>
<li class="active"><?= $sub_menu ?></li>
</ol>
</section>
<section class="content">
<div class="row">
<div class="col-md-12">
<?php if($this->session->flashdata('message')) {
$flashdata = $this->session->flashdata('message'); ?>
<div class="alert alert-<?= $flashdata['class'] ?>">
<button class="close" data-dismiss="alert" type="button">×</button>
<?= $flashdata['message'] ?>
</div>
<?php } ?>
</div>
</div>
<div class="box box-warning">
<div class="box-header with-border">
<h3 class="box-title">Offer Details</h3>
</div>
<form role="form" action="<?=base_url('Company/addOffer')?>" method="post" class="validate" data-parsley-validate="" enctype="multipart/form-data">
<div class="box-body">
<div class="col-md-12">
<div class="col-md-4">
<div class="form-group has-feedback">
<label for="exampleInputEmail1">Company</label>
<select name="company_id" class="form-control required" data-parsley-trigger="change" required>
<option selected disabled>Select Company</option>
<?php
if(!empty($company_data)){
foreach ($company_data as $company) {
echo '<option value="'.$company->company_id.'">'.$company->company_name.'</option>';
}
}
?>
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group has-feedback">
<label>Offer Activation Date</label>
<div class="input-group date" data-provide="datepicker">
<input id="datepicker" type="text" class="form-control required" data-parsley-trigger="change" data-parsley-minlength="2" required="" name="activation_date" placeholder="Pick Appointment Date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="form-group has-feedback">
<label>Offer Expiry Date</label>
<div class="input-group date" data-provide="datepicker">
<input id="datepicker" type="text" class="form-control required" data-parsley-trigger="change" data-parsley-minlength="2" required="" name="expiry_date" placeholder="Pick Appointment Date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="col-md-4">
<div class="form-group has-feedback">
<label for="exampleInputEmail1">Offer Type</label>
<div class="input-group">
<div class="col-md-12">
<input type="radio" name="offer_type" value="1" class="required" required checked>
&nbsp;&nbsp;Free Trial&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="radio" name="offer_type" value="2" class="required" required >
&nbsp;&nbsp;Discount&nbsp;&nbsp;
</div>
</div>
</div>
</div>
<div class="col-md-4" id="input_discount">
</div>
</div>
<div class="col-md-12">
<div class="box-footer">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
</div>
</section>
</div>
<div id="discount_input_html" class="hide">
<div class="form-group has-feedback" >
<label>Discount</label>
<input type="text" class="form-control required" data-parsley-trigger="change"
data-parsley-minlength="1" data-parsley-pattern="^[0-9]+$" required="" name="discount" placeholder="Discount Per Booking">
<span class="glyphicon form-control-feedback"></span>
</div>
</div>
\ No newline at end of file
<div class="content-wrapper" >
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
<?= $page_title ?>
<small><?= $page_desc ?></small>
</h1>
<ol class="breadcrumb">
<li><a href="<?= base_url() ?>"><i class="fa fa-star-o" aria-hidden="true"></i>Home</a></li>
<li><?= $menu ?></li>
<li class="active"><?= $sub_menu ?></li>
</ol>
</section>
<!-- Main content -->
<section class="content">
<div class="row">
<div class="col-md-12">
<?php if($this->session->flashdata('message')) {
$flashdata = $this->session->flashdata('message'); ?>
<div class="alert alert-<?= $flashdata['class'] ?>">
<button class="close" data-dismiss="alert" type="button">×</button>
<?= $flashdata['message'] ?>
</div>
<?php } ?>
</div>
<div class="col-xs-12">
<div class="box">
<div class="box-header with-border">
<div class="col-md-6"><h3 class="box-title">View Offer Details</h3></div>
</div>
<div class="box-body">
<table id="" class="table table-bordered table-striped datatable ">
<thead>
<tr>
<th width="120px;">Company Name</th>
<th width="150px;">Offer Type</th>
<th width="150px;">Offer Period</th>
<th width="120px;">Status</th>
<th width="150px;">Action</th>
</tr>
</thead>
<tbody>
<?php
if(!empty($offer_data)){
foreach($offer_data AS $offer) {
?>
<tr>
<td class="center"><b><?= $offer->company_name ?></b></th>
<td class="center">
<?=
($offer->offer_type==1)?'Free Trail':$offer->discount.'% Discount Per Booking'
?>
</th>
<td class="center"><b><?= date("d-M-y",strtotime($offer->activation_date)).' - '.date("d-M-y",strtotime($offer->expiry_date)) ?></b></th>
<td class="center">
<strong>
<?php
if($offer->status == 0){
echo 'Offer De-activated';
} else if (date('d-M-y') < date("d-M-y",strtotime($offer->activation_date))){
echo 'Not Yet Activated';
} else if (date('d-M-y') > date("d-M-y",strtotime($offer->expiry_date))){
echo 'Offer Expired';
} else {
echo 'Currently Active';
}
?>
</strong>
</td>
<td class="center">
<a class="btn btn-sm btn-danger"
href="<?= base_url("Company/changeOfferStatus/".encode_param($offer->id))."/2" ?>"onClick="return doconfirm()">
<i class="fa fa-fw fa-trash"></i>Delete
</a>
<?php if($offer->status == 1){ ?>
<a class="btn btn-sm btn-primary" style="width:100px;background-color:#ac2925;" href="<?= base_url("Company/changeOfferStatus/".encode_param($offer->id))."/0" ?>">
<i class="fa fa-cog"></i> De-activate
</a>
<?php } else { ?>
<a class="btn btn-sm btn-success" style="width:100px;" href="<?= base_url("Company/changeOfferStatus/".encode_param($offer->id))."/1" ?>">
<i class="fa fa-cog"></i> Activate
</a>
<?php } ?>
</td>
</tr>
<?php }
}?>
</tbody>
</table>
</div>
</div>
</section>
</div>
\ No newline at end of file
<?php
$loc = $pickup_lat.','.$pickup_lng;
$mapLocData = array();
?>
<div class="content-wrapper" > <div class="content-wrapper" >
<!-- Content Header (Page header) --> <!-- Content Header (Page header) -->
<section class="content-header"> <section class="content-header">
...@@ -28,6 +32,17 @@ ...@@ -28,6 +32,17 @@
<div class="box-header"> <div class="box-header">
<h3 class="box-title">Select Driver</h3> <h3 class="box-title">Select Driver</h3>
</div> </div>
<div "class="col-12">
<div id="map-canvas" style="width: 100%; height: 300px;"></div>
<div "class="col-xs-12">
<img src="<?=base_url('assets/images/mapPickupIcon.png')?>" style="padding-left:230px;">
Patient Pick Up
<img src="<?=base_url('assets/images/mapCarIcon.png')?>" style="padding-left:100px;">
Available Drivers
<img src="<?=base_url('assets/images/mapCarIconPref.png')?>" style="padding-left:100px;">
Preferred Driver
</div>
</div>
<div class="box-body"> <div class="box-body">
<table id="" class="table table-bordered table-striped datatable "> <table id="" class="table table-bordered table-striped datatable ">
<thead> <thead>
...@@ -44,10 +59,13 @@ ...@@ -44,10 +59,13 @@
<?php <?php
$prefDriver = $ride_data->driver_id; $prefDriver = $ride_data->driver_id;
$forceAssign = ($ride_data->status == 7)?1:0; $forceAssign = ($ride_data->status == 7)?1:0;
$mapLocData[] = array('DisplayText'=>'Patient Pick Up',
'LatitudeLongitude'=>$pickup_lat.','.$pickup_lng,
'MarkerId'=>base_url('assets/images/mapPickupIcon.png'));
if(!empty($driver_list)){ if(!empty($driver_list)){
foreach($driver_list as $driver) { foreach($driver_list as $driver) {
?> ?>
<tr <?= ($prefDriver == $driver['driver_id'])?'style="background:#c1ef63;"':'' ?>> <tr <?= ($prefDriver == $driver['driver_id'])?'style="background:#bedef6;"':'' ?>>
<td class="center"> <td class="center">
<img src="<?= base_url($driver['profile_image']) ?>" onerror="this.src='<?=base_url("assets/images/user_avatar.jpg")?>';" height="50" width="50" /> <img src="<?= base_url($driver['profile_image']) ?>" onerror="this.src='<?=base_url("assets/images/user_avatar.jpg")?>';" height="50" width="50" />
</td> </td>
...@@ -64,7 +82,12 @@ ...@@ -64,7 +82,12 @@
</a> </a>
</td> </td>
</tr> </tr>
<?php } <?php
$markIcon = ($prefDriver == $driver['driver_id'])?'mapCarIconPref':'mapCarIcon';
$mapLocData[]=array('DisplayText'=>$driver['first_name'].' '.$driver['last_name'],
'MarkerId'=>base_url('assets/images/'.$markIcon.'.png'),
'LatitudeLongitude'=>$driver['lat_driver'].','.$driver['lng_driver']);
}
}?> }?>
</tbody> </tbody>
</table> </table>
...@@ -75,3 +98,81 @@ ...@@ -75,3 +98,81 @@
</div> </div>
</section> </section>
</div> </div>
<script type="text/javascript">
var map;
var geocoder;
var marker;
var people = new Array();
var latlng;
var infowindow;
$(document).ready(function() {
ViewCustInGoogleMap();
});
function ViewCustInGoogleMap() {
var mapOptions = {
center: new google.maps.LatLng(<?= $loc ?>),
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
var data = '<?= json_encode($mapLocData) ?>';
people = JSON.parse(data);
for (var i = 0; i < people.length; i++) {
setMarker(people[i]);
}
}
function setMarker(people) {
geocoder = new google.maps.Geocoder();
infowindow = new google.maps.InfoWindow();
if ((people["LatitudeLongitude"] == null) || (people["LatitudeLongitude"] == 'null') || (people["LatitudeLongitude"] == '')) {
geocoder.geocode({ 'address': people["Address"] }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latlng = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng());
marker = new google.maps.Marker({
position: latlng,
map: map,
draggable: false,
html: people["DisplayText"],
icon: people["MarkerId"]
});
//marker.setPosition(latlng);
//map.setCenter(latlng);
google.maps.event.addListener(marker, 'click', function(event) {
infowindow.setContent(this.html);
infowindow.setPosition(event.latLng);
infowindow.open(map, this);
});
}
});
}
else {
var latlngStr = people["LatitudeLongitude"].split(",");
var lat = parseFloat(latlngStr[0]);
var lng = parseFloat(latlngStr[1]);
latlng = new google.maps.LatLng(lat, lng);
marker = new google.maps.Marker({
position: latlng,
map: map,
draggable: false, // cant drag it
html: people["DisplayText"], // Content display on marker click
icon: people["MarkerId"] // Give ur own image
});
//marker.setPosition(latlng);
//map.setCenter(latlng);
google.maps.event.addListener(marker, 'click', function(event) {
infowindow.setContent(this.html);
infowindow.setPosition(event.latLng);
infowindow.open(map, this);
});
}
}
</script>
\ No newline at end of file
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
base_url = "<?php echo base_url(); ?>"; base_url = "<?php echo base_url(); ?>";
country_flag = '<?= $this->session->userdata['settings']['country_flag'] ?>'; country_flag = '<?= $this->session->userdata['settings']['country_flag'] ?>';
</script> </script>
<script src="<?php echo base_url(); ?>assets/js/jQuery-2.1.4.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC9JX3BZZfx2S6GQieC_PqjuJdUbZ7_wyM&libraries=places"></script> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC9JX3BZZfx2S6GQieC_PqjuJdUbZ7_wyM&libraries=places"></script>
<script src="<?php echo base_url(); ?>assets/js/bootstrap.min.js"></script> <script src="<?php echo base_url(); ?>assets/js/bootstrap.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/pace.js"></script> <script src="<?php echo base_url(); ?>assets/js/pace.js"></script>
......
...@@ -17,4 +17,6 @@ ...@@ -17,4 +17,6 @@
<link href="<?php echo base_url();?>assets/css/bootstrap-datepicker3.css" rel="stylesheet"> <link href="<?php echo base_url();?>assets/css/bootstrap-datepicker3.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="<?= base_url('assets/css/clockpicker.css') ?>"> <link rel="stylesheet" type="text/css" href="<?= base_url('assets/css/clockpicker.css') ?>">
<script src="<?php echo base_url(); ?>assets/js/jQuery-2.1.4.min.js"></script>
</head> </head>
...@@ -60,6 +60,18 @@ ...@@ -60,6 +60,18 @@
View Company View Company
</a> </a>
</li> </li>
<li>
<a href="<?= base_url('Company/manager_offers') ?>">
<i class="fa fa-circle-o text-aqua"></i>
Manage Offers
</a>
</li>
<li>
<a href="<?= base_url('Company/create_offer') ?>">
<i class="fa fa-circle-o text-aqua"></i>
Create New Offer
</a>
</li>
</ul> </ul>
</li> </li>
<?php } ?> <?php } ?>
......
...@@ -217,3 +217,7 @@ ...@@ -217,3 +217,7 @@
text-decoration: none; text-decoration: none;
color: black; color: black;
} }
.hide {
display:none !important;
}
\ No newline at end of file
...@@ -20,3 +20,12 @@ function initDestination() { ...@@ -20,3 +20,12 @@ function initDestination() {
var autocomplete = new google.maps.places.Autocomplete(input, options); var autocomplete = new google.maps.places.Autocomplete(input, options);
} }
google.maps.event.addDomListener(window, 'load', initDestination); google.maps.event.addDomListener(window, 'load', initDestination);
jQuery('[name="offer_type"]').click(function(){
var offer = jQuery(this).val();
if(offer == 2){
jQuery('[id="input_discount"]').html(jQuery('[id="discount_input_html"]').html());
} else {
jQuery('[id="input_discount"]').html('');
}
});
\ No newline at end of file
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