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');
}
}
}
}