HEX
Server: Apache/2.4.41 (Amazon) OpenSSL/1.0.2k-fips PHP/5.6.40
System: Linux ip-172-31-40-18 4.14.146-93.123.amzn1.x86_64 #1 SMP Tue Sep 24 00:45:23 UTC 2019 x86_64
User: apache (48)
PHP: 5.6.40
Disabled: NONE
Upload Files
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;
    }

    

    
}