File: //var/www/html/pmw24/driver_settlement/old/application/controllers/admin/Roster.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Roster extends MY_Controller
{
public function __construct()
{
parent::__construct();
ini_set('post_max_size','2000M');
//$this->redirect_guest();
$this->admin = $this->session->userdata('admin');
$this->load->model('admin/mcar');
$this->load->model('admin/mroster');
$this->load->model('admin/mdriver');
if ($this->session->userdata('admin') != 1) {
redirect('admin');
die();
}
}
/*
author: soumya hazra
purpose: Get roster page dashboard.
date: 6-9-2019
*/
public function index()
{
//echo phpinfo();die;
$result = array();
$ddate = date('Y-m-d');
$date = new DateTime($ddate);
$week = $date->format("W");
$get_car_no_view=$this->input->post('get_car_no_view');
$get_week_no_edit=$this->input->post('get_week_no_edit');
$view_roster_week=$this->input->get('view_roster_week');
$view_car_no=$this->input->get('view_car_no');
//echo $view_roster_week;die;
if(isset($view_roster_week) && !empty($view_roster_week)){
$week = $view_roster_week;
}
else{
if(isset($get_week_no_edit) && !empty($get_week_no_edit)){
$week = $get_week_no_edit;
}
}
$car_no='';
if(isset($view_car_no) && !empty($view_car_no)){
$car_no = $view_car_no;
}
else{
if(isset($get_car_no_view) && !empty($get_car_no_view)){
$car_no = $get_car_no_view;
}
}
$result['get_car_by_wk'] = $this->mroster->get_roster_details($week,$car_no);
$result['get_newly_added_car'] = $this->mroster->get_newly_added_car($week,$car_no);
//echo '<pre>'; print_r($result['get_newly_added_car']);die;
$result['week_no']=$week;
$result['car_no']=$car_no;
$result['cars'] = $this->mcar->get_car();
//pr($result['cars']);
$result['weeks'] = $this->mroster->get_all_wk();
$result['driver_list'] = $this->mdriver->get_driver_master_list();
$result['get_car_inactive'] = $this->mcar->get_car_inactive();
$result['content'] = 'admin/roster/roster';
$this->_load_view($result);
}
public function view_roster(){
$ddate = date('Y-m-d');
$date = new DateTime($ddate);
$week = $date->format("W");
$get_week_no_view=$this->input->post('get_week_no_view');
$get_car_no_view=$this->input->post('get_car_no_view');
//echo $get_week_no_edit;die;
if(isset($get_week_no_view) && !empty($get_week_no_view)){
$week = $get_week_no_view;
}
$car_no='';
if(isset($get_car_no_view) && !empty($get_car_no_view)){
$car_no = $get_car_no_view;
}
$result['get_car_by_wk'] = $this->mroster->get_roster_details($week,$car_no);
$result['week_no']=$week;
$result['car_no']=$car_no;
$result['cars'] = $this->mcar->get_car();
$result['weeks'] = $this->mroster->get_all_wk();
$result['driver_list'] = $this->mdriver->get_driver_master_list();
$result['get_car_inactive'] = $this->mcar->get_car_inactive();
$result['content'] = 'admin/roster/view_roster';
$this->_load_view($result);
}
// Default load function for header and footer inculded
private function _load_view($data)
{
$this->load->view('admin/layouts/index', $data);
}
/*
author: soumya hazra
purpose: Add roster
date: 6-9-2019
*/
public function add_roster(){
// echo '<pre>';
// print_r($_POST);
// echo '</pre>';
$data = array();
$result = array();
$car_id = '';
$car_id = $this->input->post('car_id');
$week_no = $this->input->post('week_no');
$breakdown = $this->input->post('breakdown');
//pr($car_id);
$breakdown_reason = $this->input->post('breakdown_reason');
//pr($breakdown_reason);
// echo "</pre>";
// print_r($breakdown);
// die();
$dayname = $this->input->post('dayname');
$day_date = $this->input->post('day_date');
$shift_name = $this->input->post('shift_name');
$driver_id = $this->input->post('driver_id');
$roster_id_hidden = $this->input->post('roster_id_hidden');
$roster_shift_id_hidden = $this->input->post('roster_shift_id_hidden');
$roster_driver_id_hidden = $this->input->post('roster_driver_id_hidden');
//echo "<pre>"; print_r($this->input->post('dayname')); die;
$j = 0;
foreach ($car_id as $key => $car) {
$i = 0;
foreach ($dayname[$j] as $day) {
if (empty($roster_id_hidden[$j][$i])) {
$condition = array('day_date'=>$day_date[$j][$i],'car_id'=>$car);
$roster_data=$this->mcommon->getRow('roster',$condition);
if(empty($roster_data) ){
if(isset($day_date[$j][$i])){
$data = array(
'car_id' => $car,
'week_no' => $week_no,
'dayname' => $day,
'day_date' => $day_date[$j][$i],
'breakdown' => $breakdown[$j][$i],
'breakdown_reason' => $breakdown_reason[$j][$i],
'created_by' => $this->session->userdata('user_data'),
'created_ts' => date('Y-m-d H:i:s'),
);
$result = $this->mroster->insert_roster($data);
}
} else {
$result = $roster_data['roster_id'];
}
} else {
$data = array(
'updated_by' => $this->session->userdata('user_data'),
'updated_ts' => date('Y-m-d H:i:s'),
);
if (!empty($breakdown[$j][$i])) {
$data['breakdown'] = $breakdown[$j][$i];
$data['breakdown_reason'] = $breakdown_reason[$j][$i];
}
else{
$data['breakdown'] = 0;
$data['breakdown_reason'] = '';
}
$result = $roster_id_hidden[$j][$i];
$condition_roster = array('roster_id' => $result);
$this->mcommon->update('roster', $condition_roster, $data);
}
if ($result) {
if (!empty($roster_shift_id_hidden[$j][$i])) {
foreach ($roster_shift_id_hidden[$j][$i] as $key => $shift_id_hidden) {
if (empty($shift_id_hidden)) {
if (!empty($shift_name[$j][$i][$key])) {
$shift_data = array(
'roster_id' => $result,
'shift_name' => $shift_name[$j][$i][$key],
'created_by' => $this->session->userdata('user_data'),
'created_ts' => date('Y-m-d H:i:s'),
);
$result_shift = $this->mroster->insert_shift($shift_data);
}
} else {
if (!empty($shift_name[$j][$i][$key])) {
$shift_data = array(
'shift_name' => $shift_name[$j][$i][$key],
'updated_by' => $this->session->userdata('user_data'),
'updated_ts' => date('Y-m-d H:i:s')
);
$result_shift = $shift_id_hidden;
$condition_roster_shift = array('roster_shift_id' => $result_shift);
$this->mcommon->update('roster_shift_maping', $condition_roster_shift, $shift_data);
} else {
$result_shift = $shift_id_hidden;
$condition_roster_shift = array('roster_shift_id' => $result_shift);
$check_already_exists = $this->mroster->check_already_shift_started($result_shift);
//echo '<pre>';print_r($check_already_exists);die;
if(!empty($check_already_exists) && $check_already_exists['cnt'] == 0){
$this->mcommon->delete('roster_shift_maping', $condition_roster_shift);
}
}
}
if (isset($result_shift) && $result_shift) {
if (empty($roster_driver_id_hidden[$j][$i][$key])) {
if (!empty($driver_id[$j][$i][$key])) {
$driver_data = array(
'roster_id' => $result,
'roster_shift_id' => $result_shift,
'driver_id' => $driver_id[$j][$i][$key],
'created_by' => $this->session->userdata('user_data'),
'created_ts' => date('Y-m-d H:i:s'),
);
$result_driver = $this->mroster->insert_driver($driver_data);
}
} else {
if (!empty($shift_name[$j][$i][$key]) && !empty($driver_id[$j][$i][$key])) {
$driver_data = array(
'driver_id' => $driver_id[$j][$i][$key],
'updated_by' => $this->session->userdata('user_data'),
'updated_ts' => date('Y-m-d H:i:s')
);
$result_driver = $roster_driver_id_hidden[$j][$i][$key];
$condition_roster_driver = array('roster_driver_id' => $result_driver);
$this->mcommon->update('roster_driver_maping', $condition_roster_driver, $driver_data);
} else {
$result_driver = $roster_driver_id_hidden[$j][$i][$key];
$condition_roster_driver = array('roster_driver_id' => $result_driver);
$check_already_exists = $this->mcommon->getRow('driver_shift_details',$condition_roster_driver);
//echo '<pre>';print_r($check_already_exists);die;
if(empty($check_already_exists)){
$this->mcommon->delete('roster_driver_maping', $condition_roster_driver);
}
}
}
}
}
}
}
$i++;
}
$j++;
}
$this->session->set_flashdata('msg', '<div class="alert alert-success alert-dismissible"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>Roster Successfully Set!</div>');
redirect('admin/roster?view_roster_week='.$week_no);
}
public function import_roster_submit(){
$data = array();
$result = array();
$car_id = $this->input->post('car_id');
$week_no = $this->input->post('week_no');
$breakdown = $this->input->post('breakdown');
$breakdown_reason = $this->input->post('breakdown_reason');
$dayname = $this->input->post('dayname');
$day_date = $this->input->post('day_date');
$shift_name = $this->input->post('shift_name');
$driver_id = $this->input->post('driver_id');
$roster_id_hidden = $this->input->post('roster_id_hidden');
$roster_shift_id_hidden = $this->input->post('roster_shift_id_hidden');
$roster_driver_id_hidden = $this->input->post('roster_driver_id_hidden');
//echo '<pre>';
//print_r($breakdown);
// print_r($dayname);
// print_r($day_date);
// print_r($roster_id_hidden);
// print_r($roster_shift_id_hidden);
// print_r($roster_driver_id_hidden);
//die;
$check_already_exists=$this->mcommon->getRow('roster',array('week_no'=>$week_no));
if(empty($check_already_exists)){
$j = 0;
foreach ($car_id as $key => $car) {
$i = 0;
foreach ($dayname[$j] as $day) {
if (empty($roster_id_hidden[$j][$i])) {
$data = array(
'car_id' => $car,
'week_no' => $week_no,
'dayname' => $day,
'day_date' => $day_date[$j][$i],
'breakdown' => isset($breakdown[$j][$i])?$breakdown[$j][$i]:0,
'breakdown_reason' => isset($breakdown_reason[$j][$i])?$breakdown_reason[$j][$i]:'',
'created_by' => $this->session->userdata('user_data'),
'created_ts' => date('Y-m-d H:i:s'),
);
$result = $this->mroster->insert_roster($data);
}
if ($result) {
if (!empty($roster_shift_id_hidden[$j][$i])) {
foreach ($roster_shift_id_hidden[$j][$i] as $key => $shift_id_hidden) {
if (empty($shift_id_hidden)) {
if (!empty($shift_name[$j][$i][$key])) {
$shift_data = array(
'roster_id' => $result,
'shift_name' => $shift_name[$j][$i][$key],
'created_by' => $this->session->userdata('user_data'),
'created_ts' => date('Y-m-d H:i:s'),
);
$result_shift = $this->mroster->insert_shift($shift_data);
}
}
if (isset($result_shift) && $result_shift) {
if (empty($roster_driver_id_hidden[$j][$i][$key])) {
if (!empty($driver_id[$j][$i][$key])) {
$driver_data = array(
'roster_id' => $result,
'roster_shift_id' => $result_shift,
'driver_id' => $driver_id[$j][$i][$key],
'created_by' => $this->session->userdata('user_data'),
'created_ts' => date('Y-m-d H:i:s'),
);
$result_driver = $this->mroster->insert_driver($driver_data);
}
}
}
}
}
}
$i++;
}
$j++;
}
$this->session->set_flashdata('msg', '<div class="alert alert-success alert-dismissible"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>Roster Imported Successfully!</div>');
}
else{
$this->session->set_flashdata('msg', '<div class="alert alert-danger alert-dismissible"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>Roster Already set for selected week</div>');
}
redirect('admin/roster');
}
/*
author: soumya hazra
purpose: Edit roster View
date: 26-9-2019
*/
public function edit_roster()
{
$week_no = '';
$week_no = $this->input->post('get_week_no_edit');
//die();
$result['week_no'] = $week_no;
$result['get_car_by_wk'] = $this->mroster->get_roster_details($week_no);
$result['cars'] = $this->mcar->get_car();
$result['driver_list'] = $this->mdriver->get_driver_master_list();
$result['get_car_inactive'] = $this->mcar->get_car_inactive();
//echo '<pre>';print_r($result);die;
$result['content'] = 'admin/roster/roster_edit';
$this->_load_view($result);
}
/*
author: soumya hazra
purpose: get roster details
date: 6-9-2019
*/
public function get_roster_details()
{
$result = array();
$week_no = $this->input->post('get_week_no');
//$week_no = 39;
$result = $this->mroster->get_roster_details($week_no);
}
/*
author: soumya hazra
purpose: get Driver details
date: 27-9-2019
*/
public function get_driver_details($user_id)
{
$result = array();
$content = '';
$result = $this->mroster->get_driver_data($user_id);
$content .= '<p>DC : ' . $result['dc_no'] . '</p>';
$content .= '<p>Full Name : ' . $result['full_name'] . '</p>';
$content .= '<p>Mobile : ' . $result['mobile'] . '</p>';
$content .= '<p>Commission : ' . $result['commission_name'] . '</p>';
$content .= '<p>Address : ' . $result['address'] . '</p>';
echo $content;
}
/*
author: soumya hazra
purpose: search by date
date: 27-9-2019
*/
public function search_date()
{
$day_date_from = $this->input->post('day_date_from');
$day_date_to = $this->input->post('day_date_to');
$result['day_details'] = $this->mroster->get_roster_by_date($day_date_from);
$result['cars'] = $this->mcar->get_car();
$result['driver_list'] = $this->mdriver->get_driver_master_list();
$result['days_used'] = $this->mroster->days_used();
$result['day_date_from'] = $day_date_from;
$result['day_date_to'] = $day_date_to;
$result['content'] = 'admin/roster/day_roster';
$this->_load_view($result);
}
/*
author: soumya hazra
purpose: Update by date
date: 27-9-2019
*/
public function update_day_roster(){
//echo '<pre>';print_r($this->input->post());die;
$day_date = $this->input->post('day_date');
$day_date = date('Y-m-d', strtotime(str_replace('/', '-', $day_date)));
$dayname = date('l', strtotime($day_date));
$week_no = date('W', strtotime($day_date));
//echo $week_no;die;
$roster_id = $this->input->post('roster_id');
$user_id = $this->input->post('driver_id');
$car_id = $this->input->post('car_id');
$shift_name = $this->input->post('shift_name');
//echo $day_date;die;
$check_already_exists=$this->mroster->check_already_exist_roster($day_date);
if($check_already_exists['cnt'] == 0){
$this->mroster->delete_roster_main($day_date);
$this->mroster->delete_roster_shift_maping($day_date);
$i = 0;
foreach ($roster_id as $roster) {
$result = $this->mroster->update_day_roster($dayname, $week_no, $car_id[$i], $day_date);
if ($result) {
if (!empty($shift_name[$i])) {
$j = 0;
foreach ($shift_name[$i] as $key => $shift) {
$result_add_shift = $this->mroster->update_day_roster_shift($result, $shift);
if ($result_add_shift) {
if (!empty($user_id[$i][$key])) {
$driver_data = array(
'roster_id' => $result,
'roster_shift_id' => $result_add_shift,
'driver_id' => $user_id[$i][$key],
'created_by' => $this->session->userdata('user_data'),
'created_ts' => date('Y-m-d H:i:s'),
);
$result_driver = $this->mroster->insert_driver($driver_data);
}
}
$j++;
}
}
}
$i++;
}
}
else{
$this->session->set_flashdata('msg', '<div class="alert alert-danger alert-dismissible"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>Roster Already set for selected date</div>');
redirect('admin/roster/search_date');
}
redirect('admin/roster');
}
public function import_roster(){
$result = array();
$get_week_no_roster=$this->input->post('get_week_no_roster');
$set_week_no_roster=$this->input->post('set_week_no_roster');
$result['get_car_by_wk'] = $this->mroster->get_roster_details($get_week_no_roster);
$result['get_week_no_roster']=$get_week_no_roster;
$result['set_week_no_roster']=$set_week_no_roster;
$result['cars'] = $this->mcar->get_car();
$result['weeks'] = $this->mroster->get_all_wk();
$result['driver_list'] = $this->mdriver->get_driver_master_list();
$result['get_car_inactive'] = $this->mcar->get_car_inactive();
$result['content'] = 'admin/roster/roster_import';
$this->_load_view($result);
}
}