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/pmw24/pmw_live_testing/app/application/controllers/admin/Roaster.php
<?php 
defined('BASEPATH') OR exit('No direct script access allowed');

class Roaster extends MY_Controller {
	public function __construct() {
		parent::__construct();
		$this->redirect_guest();
		$this->admin=$this->session->userdata('admin');		
		$this->load->model('admin/mroaster');
	}
	
	public function index() { 				
		$this->_load_list_view();		
	}
	
	private function _load_list_view() {
		$data['admin'] = $this->admin;					
		$data['content'] = 'admin/roaster/list';		
		$this->load->view('admin/layouts/index', $data);
		
	}
	
	public function all_content_list(){
		$role_id = $_POST['role_id'];
		if($role_id == 2)
		{
			$list = $this->mroaster->get_datatables();
			
			$data = array();
			$no = $_POST['start'];
			$i=1;
			
			foreach ($list as $person) {
				$row = array();	
				$row[]=$i;		
				$row[] = $person->name;						
				$row[] = '<a class="cstm_view" id="view" style="padding-left:5px" href="javascript:void(0)" title="'.$person->mechanic_id.'"><i class="glyphicon glyphicon-eye-open"></i></a>';
				
				$admin = $this->admin;
				$CI =& get_instance();
				$CI->db->select('*');
				$CI->db->from('role_menu');	
				$CI->db->join('menu', 'menu.menu_id = role_menu.menu_id', 'left');
				$CI->db->where('role_id',$admin['role_id']);
				$CI->db->where('parent_id',39);					
				$query=$CI->db->get();
				$menus = $query->result_array();
				
				$edit_result = $this->searcharray('Edit', menu_name, $menus);
				
				if(!empty($edit_result)){
				
					$row[] = '<a href="'.base_url('admin/roaster/details/'.$person->mechanic_id).'" title="Edit" class="btn btn-info"><span class="glyphicon glyphicon-pencil"></span></a></a>';
				}
				
				$data[] = $row;
				$i++;
			}	
			
			$output = array(
							"draw" => $_POST['draw'],
							"recordsTotal" => $this->mroaster->count_all(),
							"recordsFiltered" => $this->mroaster->count_filtered(),
							"data" => $data,
					);
			echo json_encode($output);
		}else{
			$admin = $this->admin;
			$list = $this->mroaster->get_datatables_mechanic($admin['admin_id']);
			
			$data = array();
			$no = $_POST['start'];
			$i=1;
			
			foreach ($list as $person) {
				$row = array();	
				$row[]=$i;		
				$row[] = $person->name;						
				$row[] = '<a class="cstm_view" id="view" style="padding-left:5px" href="javascript:void(0)" title="'.$person->mechanic_id.'"><i class="glyphicon glyphicon-eye-open"></i></a>';
				
				$admin = $this->admin;
				$CI =& get_instance();
				$CI->db->select('*');
				$CI->db->from('role_menu');	
				$CI->db->join('menu', 'menu.menu_id = role_menu.menu_id', 'left');
				$CI->db->where('role_id',$admin['role_id']);
				$CI->db->where('parent_id',39);					
				$query=$CI->db->get();
				$menus = $query->result_array();
				
				$edit_result = $this->searcharray('Edit', menu_name, $menus);
				
				if(!empty($edit_result)){
				
					$row[] = '<a href="'.base_url('admin/roaster/details/'.$person->mechanic_id).'" title="Edit" class="btn btn-info"><span class="glyphicon glyphicon-pencil"></span></a></a>';
				}
				
				$data[] = $row;
				$i++;
			}	
			
			$output = array(
							"draw" => $_POST['draw'],
							"recordsTotal" => $this->mroaster->count_all_mechanic($admin['admin_id']),
							"recordsFiltered" => $this->mroaster->count_filtered_mechanic($admin['admin_id']),
							"data" => $data,
					);
			echo json_encode($output);
		}
		
		
	}
	
	private function searcharray($value, $key, $array) {
	   foreach ($array as $k => $val) {
		   if ($val[$key] == $value) {
			   return $val;
		   }
	   }
	   return null;
	}
	
	public function add()
	{
		$this->_load_add_view();
	}
	
	private function _load_add_view(){
		$admin = $this->admin;
		$data['admin'] = $admin;
		if($admin['role_id'] == 2){
			$mechanic_condition = array("role_id"=>14,"status"=>1);
			$data['mechanics'] = $this->mroaster->getRows('admins',$mechanic_condition);
			$data['content']='admin/roaster/add';
			$this->load->view('admin/layouts/index',$data);
		}else{	
			$data['content']='admin/roaster/add_mechanic';
			$this->load->view('admin/layouts/index',$data);
		}
		
	}
	
	public function add_content()
	{
		if($this->input->post()){
			$this->form_validation->set_rules('mechanic','Mechanic','required');
			$this->form_validation->set_rules('available_date','Available Date','required');			
			
			if($this->form_validation->run()==FALSE){			
				$this->_load_add_view();
			}else{
				$mechanic_id = $this->input->post('mechanic');
				
				$condition = array("mechanic_id"=>$mechanic_id);
				$this->mroaster->delete($condition);			               
				
				$available_dates = explode(',',$this->input->post('available_date'));
				$data = array();
				foreach($available_dates as $key=>$available_date)
				{                     
				//   $data[$key]['available_date'] = $available_date;                    
					$data[$key]['mechanic_id'] = $mechanic_id;                     $data[$key]['available_date'] = date("Y-m-d", strtotime($available_date));
					$data[$key]['date_of_creation'] = date('Y-m-d H:i:s');
				}
				
				$this->mroaster->batch_insert('user_roaster',$data);
				
				$this->session->set_flashdata('success_msg','Roaster assigned successfully');
				redirect('admin/roaster/content');
				
			}
		}
	}
	
	public function all_details(){
		$mechanic_id = $this->input->post('mechanic_id');
		$user_rosaters = $this->mroaster->get_details($mechanic_id);
		$roaster = array();
		foreach($user_rosaters as $key=>$user_rosater)
		{
			$roaster[$key] =  date("d/m/Y", strtotime($user_rosater['available_date']));
		}

		$result['roaster'] = implode(',',$roaster);		
		echo json_encode($result);
	}
	
	public function edit($mechanic_id){
		$user_rosaters = $this->mroaster->get_details($mechanic_id);
		$roaster = array();
		foreach($user_rosaters as $key=>$user_rosater)
		{
			$roaster[$key] = $user_rosater['available_date'];
		}
		
		$data['cms'] = implode(',',$roaster);
		$data['mechanic_id'] = $mechanic_id;		
		
		
		if(empty($data['cms'])){
			$this->_load_list_view();
		}else{			
			$this->_load_details_view($data);
		}
	}
	
	private function _load_details_view($parms){		
		$data['cms']['available_date']=$parms['cms'];
		$data['cms']['mechanic_id'] = $parms['mechanic_id'];		
		$data['content'] = 'admin/roaster/detail';
		$this->load->view('admin/layouts/index', $data);
	}
	
	public function update(){
		if($this->input->post()){
			 $mechanic_id = $this->input->post('mechanic_id');
			$this->form_validation->set_rules('available_date','Available Date','required');
			
			if($this->form_validation->run()==FALSE){
				$user_rosaters = $this->mroaster->get_details($mechanic_id);
				
				$roaster = array();
				foreach($user_rosaters as $key=>$user_rosater)
				{
					$roaster[$key] = $user_rosater['available_date'];
				}
				
				$data['cms'] = implode(',',$roaster);
				$data['mechanic_id'] = $mechanic_id;
		
				$this->_load_details_view($data);
			}else{
				$condition = array("mechanic_id"=>$mechanic_id);
				$this->mroaster->delete($condition);
				
				$available_dates = explode(',',$this->input->post('available_date'));
				$data = array();
				foreach($available_dates as $key=>$available_date)
				{
					$data[$key]['available_date'] = $available_date;
					$data[$key]['mechanic_id'] = $mechanic_id;
					$data[$key]['date_of_creation'] = date('Y-m-d H:i:s');
				}		
				
				
				$this->mroaster->batch_insert('user_roaster',$data);
				
				$this->session->set_flashdata('success_msg','Roaster Updated successfully');
				redirect('admin/roaster');
				
			}
		}		
	}
}