File: //var/www/html/taxicamera/pmw_live_testing/application/controllers/admin/Shiftcron.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Shiftcron extends MY_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('admin/mshiftcron');
}
public function automated_start_shift()
{
$ddate = date('Y-m-d');
$date = new DateTime($ddate);
$week = $date->format("W");
//echo $week;die;
$drivers = $this->mcommon->getDetails('master_user', array('role_id' => 2, 'is_active' => 1));
foreach ($drivers as $driver) {
$shift_info = array();
$shift_info = $this->get_shift_details($driver['user_id'],$week);
//$shift_info = $this->get_shift_details(50,50);
//echo '<pre>';print_r($shift_info);die;
if (!empty($shift_info) && $shift_info['status_code'] == 1) {
$shift_details = $this->mcommon->getDetails('driver_shift_details', array('roster_driver_id' => $shift_info['roster_driver_id']));
if (empty($shift_details)) {
$shift_number = $this->mshiftcron->get_shift_number($shift_info['roster_driver_id']);
if (!empty($shift_number)) {
$shift_data = array();
$shift_data['roster_driver_id'] = $shift_info['roster_driver_id'];
$shift_data['shift_no'] = $shift_number['shift_no'];
$shift_data['shift_start_time'] = date('Y-m-d H:i:s');
$shift_data['shift_status'] = 1;
$shift_data['week_no'] = $shift_info['week_no'];
$shift_data['created_ts'] = date('Y-m-d H:i:s');
//echo '<pre>'; print_r($shift_info);die;
if($shift_info['shift_name'] == 'H' && date('H:i:s') >=date('00:00:00')){//echo 1;
$this->mcommon->insert('driver_shift_details', $shift_data);
} elseif($shift_info['shift_name'] == 'D' && date('H:i:s') >=date('04:00:00')){//echo 2;
$this->mcommon->insert('driver_shift_details', $shift_data);
} elseif($shift_info['shift_name'] == 'N' && date('H:i:s') >=date('16:00:00')){//echo 3;
$this->mcommon->insert('driver_shift_details', $shift_data);
}
}
}
}
}
echo 'success';die;
}
public function get_shift_details($driver_id,$week_no)
{
//--------------------------------------------------Shift Details-------------------------------------------------------------//
$shift_details = array();
$ongoing_shift_details = $this->mshiftcron->get_ongoing_shift_details($driver_id,$week_no);
if (!empty($ongoing_shift_details)) {
$today_shift_details = $this->mshiftcron->get_today_shift_details($driver_id);
// '<pre>';print_r($today_shift_details);
$check_double_shift = array();
if(!empty($today_shift_details)){
$check_double_shift = $this->mshiftcron->get_today_double_shift($today_shift_details['car_id'],$today_shift_details['day_date']);
}
//echo '<pre>';print_r($check_double_shift);die;
if(($today_shift_details['car_id'] != $ongoing_shift_details['car_id']) || (($today_shift_details['car_id'] == $ongoing_shift_details['car_id']) && (count($check_double_shift) > 1))){
$shift_details['status_code'] = 1;
$shift_details['status'] = 'Shift Available Today';
$shift_details['shift_id'] = '';
$shift_details['shift_no'] = '';
$shift_details['car_id'] = $today_shift_details['car_id'];
$shift_details['car_no'] = $today_shift_details['registration_no'];
$shift_details['roster_id'] = $today_shift_details['roster_id'];
$shift_details['roster_driver_id'] = $today_shift_details['roster_driver_id'];
$shift_details['week_no'] = $today_shift_details['week_no'];
$shift_details['shift_name'] = $today_shift_details['shift_name'];
$shift_details['day_date'] = $today_shift_details['day_date'];
$shift_details['dayname'] = $today_shift_details['dayname'];
$this->mcommon->update('driver_shift_details',array('shift_id'=>$ongoing_shift_details['shift_id']),array('scheduled_end_time'=>date("Y-m-d", strtotime("- 1 days"))));
// echo $this->db->last_query();die;
}
elseif ($ongoing_shift_details['shift_status'] == 1) {
$shift_details['status_code'] = 2;
$shift_details['status'] = 'Ongoing Shift';
$shift_details['shift_id'] = $ongoing_shift_details['shift_id'];
$shift_details['shift_no'] = $ongoing_shift_details['shift_no'];
$shift_details['car_id'] = $ongoing_shift_details['car_id'];
$shift_details['car_no'] = $ongoing_shift_details['registration_no'];
$shift_details['roster_id'] = $ongoing_shift_details['roster_id'];
$shift_details['week_no'] = $ongoing_shift_details['week_no'];
$shift_details['roster_driver_id'] = $ongoing_shift_details['roster_driver_id'];
$shift_details['shift_name'] = $ongoing_shift_details['shift_name'];
$shift_details['day_date'] = $ongoing_shift_details['day_date'];
$shift_details['dayname'] = $ongoing_shift_details['dayname'];
} else {
$shift_details['status_code'] = 0;
$shift_details['status'] = 'Shift Ended';
$shift_details['shift_id'] = '';
$shift_details['shift_no'] = '';
$shift_details['car_id'] = '';
$shift_details['car_no'] = $ongoing_shift_details['registration_no'];
$shift_details['roster_id'] = $ongoing_shift_details['roster_id'];
$shift_details['roster_driver_id'] = $ongoing_shift_details['roster_driver_id'];
$shift_details['week_no'] = $ongoing_shift_details['week_no'];
$shift_details['shift_name'] = $ongoing_shift_details['shift_name'];
$shift_details['day_date'] = $ongoing_shift_details['day_date'];
$shift_details['dayname'] = $ongoing_shift_details['dayname'];
$today_shift_details = $this->mshiftcron->get_today_shift_details($driver_id);
if (!empty($today_shift_details)) {
$shift_details['status_code'] = 1;
$shift_details['status'] = 'Shift Available Today';
$shift_details['shift_id'] = '';
$shift_details['shift_no'] = '';
$shift_details['car_id'] = $today_shift_details['car_id'];
$shift_details['car_no'] = $today_shift_details['registration_no'];
$shift_details['roster_id'] = $today_shift_details['roster_id'];
$shift_details['roster_driver_id'] = $today_shift_details['roster_driver_id'];
$shift_details['week_no'] = $today_shift_details['week_no'];
$shift_details['shift_name'] = $today_shift_details['shift_name'];
$shift_details['day_date'] = $today_shift_details['day_date'];
$shift_details['dayname'] = $today_shift_details['dayname'];
}
}
} else {
$today_shift_details = $this->mshiftcron->get_today_shift_details($driver_id);
if (empty($today_shift_details)) {
$shift_details['status_code'] = 0;
$shift_details['status'] = 'No Shift Available Today';
$shift_details['shift_id'] = '';
$shift_details['shift_no'] = '';
$shift_details['car_id'] = '';
$shift_details['car_no'] = '';
$shift_details['roster_id'] = '';
$shift_details['roster_driver_id'] = '';
$shift_details['week_no'] = '';
$shift_details['shift_name'] = '';
$shift_details['day_date'] = '';
$shift_details['dayname'] = '';
} else {
$shift_details['status_code'] = 1;
$shift_details['status'] = 'Shift Available Today';
$shift_details['shift_id'] = '';
$shift_details['shift_no'] = '';
$shift_details['car_id'] = $today_shift_details['car_id'];
$shift_details['car_no'] = $today_shift_details['registration_no'];
$shift_details['roster_id'] = $today_shift_details['roster_id'];
$shift_details['roster_driver_id'] = $today_shift_details['roster_driver_id'];
$shift_details['week_no'] = $today_shift_details['week_no'];
$shift_details['shift_name'] = $today_shift_details['shift_name'];
$shift_details['day_date'] = $today_shift_details['day_date'];
$shift_details['dayname'] = $today_shift_details['dayname'];
//print_r($today_shift_details);die;
}
}
//---------------------------------------------------END---------------------------------------------------------------//
return $shift_details;
}
}