<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Issue extends CI_Controller { public function __construct() { parent::__construct(); date_default_timezone_set("Asia/Kolkata"); $this->load->model('Issue_model'); if(!$this->session->userdata('logged_in')) { redirect(base_url()); } } public function addIssue(){ $template['page'] = 'Issue/issueForm'; $template['menu'] = 'Issue Management'; $template['smenu'] = 'Add Issue'; $template['pTitle'] = "Add Issue"; $template['pDescription'] = "Create New Issue"; $this->load->view('template',$template); } public function viewIssues(){ $template['page'] = 'Issue/viewIssues'; $template['menu'] = 'Issue Management'; $template['smenu'] = 'View Issues'; $template['pTitle'] = "View Issues"; $template['pDescription'] = "View and Manage Issues"; $template['issue_data'] = $this->Issue_model->getIssues('',1); $this->load->view('template',$template); } function changeStatus($issue_id = '',$status = '1'){ $flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error'); if(empty($issue_id) || !is_numeric($issue_id = decode_param($issue_id))){ $this->session->set_flashdata('message',$flashMsg); redirect(base_url('Issue/viewIssues')); } $status = $this->Issue_model->changeStatus($issue_id,$status); if(!$status){ $this->session->set_flashdata('message',$flashMsg); } redirect(base_url('Issue/viewIssues')); } public function createIssue(){ $err = 0; $errMsg = 'Something went wrong, please try again..!'; $this->load->library('upload',set_upload_service("assets/uploads/services")); $flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error'); if(!isset($_POST) || empty($_POST)){ $this->session->set_flashdata('message',$flashMsg); redirect(base_url('Issue/addIssue')); } if($err == 0 && (!isset($_POST['issue']) || empty($_POST['issue']))){ $err = 1; $errMsg = 'Provide Issue Short Discription'; } else if($err == 0 && (!isset($_FILES['issue_image']) || empty($_FILES['issue_image']))){ $err = 1; $errMsg = 'Provide Issue Icon'; } else if($err == 0 && (empty($_POST['issue_category']) || count($_POST['issue_category']) <= 0)){ $err = 1; $errMsg = 'Provide Issue Category Type'; } else if($err==0&&(empty($_POST['default_description'])||count($_POST['default_description'])<=0)){ $err = 1; $errMsg = 'Provide Issue Category Discription'; } else if($err==0&&(empty($_POST['default_service_fee'])||count($_POST['default_service_fee'])<=0)){ $err = 1; $errMsg = 'Provide Issue Category Service Fee'; } else if($err==0&&(empty($_FILES['issue_cat_image'])||!isset($_FILES['issue_cat_image']['name'])|| count($_FILES['issue_cat_image']['name']) <= 0)){ $err = 1; $errMsg = 'Provide Issue Category Default Icon'; } else if($err==0&&(count($_POST['issue_category']) != count($_POST['default_description']) || count($_POST['issue_category']) != count($_POST['default_service_fee']) || count($_POST['issue_category']) != count($_FILES['issue_cat_image']['name']))){ $err = 1; } $files = $_FILES; if($err == 0){ $typ = 0; $insertSubTyp = array(); for ($typ = 0; $typ < count($_POST['issue_category']); $typ++) { if(!isset($_POST['issue_category'][$typ]) || !isset($_POST['default_description'][$typ]) || !isset($_POST['default_service_fee'][$typ]) || !isset($_FILES['issue_cat_image']['name'][$typ])){ $err = 1; break; } $_FILES['file']['name'] = $files['issue_cat_image']['name'][$typ]; $_FILES['file']['type'] = $files['issue_cat_image']['type'][$typ]; $_FILES['file']['size'] = $files['issue_cat_image']['size'][$typ]; $_FILES['file']['error'] = $files['issue_cat_image']['error'][$typ]; $_FILES['file']['tmp_name'] = $files['issue_cat_image']['tmp_name'][$typ]; if(!$this->upload->do_upload('file')){ $err = 1; $errMsg = $this->upload->display_errors(); break; } $imgData = $this->upload->data(); $image_name = "assets/uploads/services/".$imgData['file_name']; $insertSubTyp[] = array('issue_category' => $_POST['issue_category'][$typ], 'issue_cat_image' => $image_name,'status'=>'1', 'default_service_fee' => $_POST['default_service_fee'][$typ], 'default_description' => $_POST['default_description'][$typ]); } unset($_POST['issue_category']); unset($_POST['default_service_fee']); unset($_POST['default_description']); if($this->upload->do_upload('issue_image')){ $imgData = $this->upload->data(); $_POST['issue_image'] = "assets/uploads/services/".$imgData['file_name']; } else { $err = 1; $errMsg = $this->upload->display_errors(); } } if($err == 1){ $flashMsg['message'] = $errMsg; $this->session->set_flashdata('message',$flashMsg); redirect(base_url('Issue/addIssue')); } $status = $this->Issue_model->addIssue($_POST,$insertSubTyp); if($status == 1){ $flashMsg =array('message'=>'Successfully Updated Issue Details..!','class'=>'success'); $this->session->set_flashdata('message', $flashMsg); redirect(base_url('Issue/viewIssues')); } else { $this->session->set_flashdata('message', $flashMsg); redirect(base_url('Issue/addIssue')); } } public function editIssue($issue_id = ''){ $flashMsg=array('message'=>'Something went wrong, please try again..!','class'=>'error'); if(empty($issue_id) || !is_numeric($issue_id = decode_param($issue_id))){ $this->session->set_flashdata('message',$flashMsg); redirect(base_url('Issue/viewIssues')); } $template['page'] = 'Issue/issueForm'; $template['menu'] = 'Issue Management'; $template['smenu'] = 'Edit Issue'; $template['pTitle'] = "Edit Issue"; $template['pDescription'] = "Update Issue Data"; $template['issue_id'] = encode_param($issue_id); $template['issue_data'] = $this->Issue_model->getIssueDetails($issue_id,1); if(empty($template['issue_data'])){ $this->session->set_flashdata('message',$flashMsg); redirect(base_url('Issue/viewIssues')); } $this->load->view('template',$template); } public function updateIssue($issue_id = ''){ $err = 0; $errMsg = 'Something went wrong, please try again..!'; $this->load->library('upload',set_upload_service("assets/uploads/services")); $flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error'); if(empty($issue_id) || !is_numeric($issue_id = decode_param($issue_id))){ $this->session->set_flashdata('message',$flashMsg); redirect(base_url('Issue/viewIssues')); } if(!isset($_POST) || empty($_POST)){ $err = 1; } if($err == 0 && (!isset($_POST['issue']) || empty($_POST['issue']))){ $err = 1; $errMsg = 'Provide Issue Short Discription'; } $insertSubTyp = array(); $updateSubTyp = array(); $issue_data = array('issue'=>$_POST['issue']); if($err == 0){ if(isset($_POST['extSubTypes']) && !empty($_POST['extSubTypes'])){ foreach ($_POST['extSubTypes'] AS $typ_id) { if(isset($_POST['issue_category_'.$typ_id]) && !empty($_POST['issue_category_'.$typ_id])){ $issue_category = $_POST['issue_category_'.$typ_id]; $updateSubTyp[$typ_id]['issue_category'] = $issue_category; } if(isset($_POST['default_description_'.$typ_id]) && !empty($_POST['default_description_'.$typ_id])){ $default_description = $_POST['default_description_'.$typ_id]; $updateSubTyp[$typ_id]['default_description'] = $default_description; } if(isset($_POST['default_service_fee_'.$typ_id]) && !empty($_POST['default_service_fee_'.$typ_id])){ $default_service_fee = $_POST['default_service_fee_'.$typ_id]; $updateSubTyp[$typ_id]['default_service_fee'] = $default_service_fee; } if(isset($_FILES['issue_cat_image_'.$typ_id]) && isset($_FILES['issue_cat_image_'.$typ_id]['name']) && !empty($_FILES['issue_cat_image_'.$typ_id]['name']) && $this->upload->do_upload('issue_cat_image_'.$typ_id)){ $imgData = $this->upload->data(); $issue_cat_image = "assets/uploads/services/".$imgData['file_name']; $updateSubTyp[$typ_id]['issue_cat_image'] = $issue_cat_image; } } } if(isset($_POST['issue_category']) && count($_POST['issue_category']) > 0 && isset($_POST['default_description']) && count($_POST['default_description']) > 0 && isset($_POST['default_service_fee']) && count($_POST['default_service_fee']) > 0 && isset($_FILES['issue_cat_image']) && isset($_FILES['issue_cat_image']['name']) && count($_FILES['issue_cat_image']['name']) > 0 && count($_POST['issue_category']) == count($_POST['default_description']) && count($_POST['issue_category']) == count($_POST['default_service_fee']) && count($_POST['issue_category']) == count($_FILES['issue_cat_image']['name'])){ $typ = 0; $files = $_FILES; for ($typ = 0; $typ < count($_POST['issue_category']); $typ++) { if(!isset($_POST['issue_category'][$typ]) || !isset($_POST['default_description'][$typ]) || !isset($_POST['default_service_fee'][$typ]) || !isset($_FILES['issue_cat_image']) || !isset($_FILES['issue_cat_image']['name']) || !isset($_FILES['issue_cat_image']['name'][$typ])){ break; } $_FILES['file']['name'] = $files['issue_cat_image']['name'][$typ]; $_FILES['file']['type'] = $files['issue_cat_image']['type'][$typ]; $_FILES['file']['size'] = $files['issue_cat_image']['size'][$typ]; $_FILES['file']['error'] = $files['issue_cat_image']['error'][$typ]; $_FILES['file']['tmp_name'] = $files['issue_cat_image']['tmp_name'][$typ]; if(!$this->upload->do_upload('file')){ continue; } $imgData = $this->upload->data(); $image_name = "assets/uploads/services/".$imgData['file_name']; $insertSubTyp[] = array('issue_category' => $_POST['issue_category'][$typ], 'issue_cat_image' => $image_name,'status'=>'1', 'default_service_fee' => $_POST['default_service_fee'][$typ], 'default_description' => $_POST['default_description'][$typ], 'issue_id'=>$issue_id); } } if(isset($_FILES['issue_image']) && !empty($_FILES['issue_image']['name']) && $this->upload->do_upload('issue_image')){ $imgData = $this->upload->data(); $issue_data['issue_image'] = "assets/uploads/services/".$imgData['file_name']; } } if($err == 1){ $flashMsg['message'] = $errMsg; $this->session->set_flashdata('message',$flashMsg); redirect(base_url('Issue/editIssue/'.encode_param($issue_id))); } $status = $this->Issue_model->updateIssue($issue_id,$issue_data,$updateSubTyp,$insertSubTyp); if($status == 1){ $flashMsg =array('message'=>'Successfully Updated Issue Details..!','class'=>'success'); $this->session->set_flashdata('message', $flashMsg); redirect(base_url('Issue/viewIssues')); } else { $this->session->set_flashdata('message', $flashMsg); redirect(base_url('Issue/editIssue/'.encode_param($issue_id))); } } public function issueMapping(){ if($this->session->userdata('user_type') == 1){ redirect(base_url('Issue/viewIssues')); } $template['page'] = 'Issue/issueMapping'; $template['menu'] = 'Issue Management'; $template['smenu'] = 'Issue Mapping'; $template['pTitle'] = "Issue Mapping"; $template['pDescription'] = "Creating Custom Issues"; $mechanic_id = $this->session->userdata('id'); $template['issue_data'] = $this->Issue_model->getUnMappedIssues($mechanic_id,1); $template['mechanic_id'] = encode_param($mechanic_id); if(empty($template['issue_data'])){ $this->session->set_flashdata('message',array('message'=>'Currently you have mapped all the existing issue categories, add new category or manage mapped issues..!','class'=>'error')); redirect(base_url('Issue/viewMappedIssues/'.$mechanic_id)); } $this->load->view('template',$template); } public function createMechIssue(){ $err = 0; $errMsg = ''; $flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error'); if(!isset($_POST) || empty($_POST) || !isset($_POST['mapping_type']) || !isset($_POST['issue_id']) || empty($_POST['issue_id']) || !isset($_POST['mechanic_id']) || empty($_POST['mechanic_id']) || !is_numeric($_POST['issue_id'] = decode_param($_POST['issue_id'])) || !is_numeric($_POST['mechanic_id'] = decode_param($_POST['mechanic_id'])) || ($_POST['mapping_type'] == 1 && (!isset($_POST['issue_cat_ids']) || empty($_POST['issue_cat_ids'])))){ $this->session->set_flashdata('message',$flashMsg); redirect(base_url('Issue/issueMapping')); } $custom_issue = $this->genIssueMapInsertData($_POST['mapping_type'],$_POST); if(empty($custom_issue)){ $this->session->set_flashdata('message', $flashMsg); redirect(base_url('Issue/issueMapping')); } $status = $this->Issue_model->addMechIssue($custom_issue); if($status == 1){ $flashMsg =array('message'=>'Successfully Created..!','class'=>'success'); $this->session->set_flashdata('message', $flashMsg); redirect(base_url('Issue/viewMappedIssues')); } else { $this->session->set_flashdata('message', $flashMsg); redirect(base_url('Issue/issueMapping')); } } public function viewMappedIssues($mechanic_id = ''){ if(!empty($mechanic_id)){ $mechanic_id = (!is_numeric($mechanic_id))?decode_param($mechanic_id):$mechanic_id; } $mechanic_data = ''; if($this->session->userdata('user_type') == 1){ $this->load->model('Mechanic_model'); $mechanic_data = $this->Mechanic_model->getMechanic('',1); if(isset($_POST['mechanic_id']) && !empty($_POST['mechanic_id'])){ $mechanic_id = $_POST['mechanic_id']; $mechanic_id = (!is_numeric($mechanic_id))?decode_param($mechanic_id):$mechanic_id; } } else { $mechanic_id = $this->session->userdata('id'); } $template['page'] = 'Issue/viewMappedIssues'; $template['menu'] = 'Issue Management'; $template['smenu'] = 'Manage Mapped Issues'; $template['pTitle'] = "Manage Mapped Issues"; $template['pDescription'] = "View and Manage Mapped Issues"; $template['mechanic_id'] = $mechanic_id; $template['mechanic_data'] = $mechanic_data; $template['mechanicIssueData'] = $this->Issue_model->getMechanicIssues($mechanic_id,'',1); $this->load->view('template',$template); } public function changeMappedIssueStatus($mechanic_id = '',$issue_id = '',$status = '1'){ $flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error'); if(empty($issue_id) || !is_numeric($issue_id = decode_param($issue_id)) || empty($mechanic_id) || !is_numeric($mechanic_id = decode_param($mechanic_id))){ $this->session->set_flashdata('message',$flashMsg); redirect(base_url('Issue/viewMappedIssues/'.encode_param($mechanic_id))); } $status = $this->Issue_model->changeMappedIssueStatus($mechanic_id,$issue_id,$status); if(!$status){ $this->session->set_flashdata('message',$flashMsg); } redirect(base_url('Issue/viewMappedIssues/'.encode_param($mechanic_id))); } public function editMechanicIssues($mechanic_id = '',$issue_id = ''){ $flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error'); if(empty($issue_id) || !is_numeric($issue_id = decode_param($issue_id)) || empty($mechanic_id) || !is_numeric($mechanic_id = decode_param($mechanic_id))){ $this->session->set_flashdata('message',$flashMsg); redirect(base_url('Issue/viewMappedIssues')); } $template['page'] = 'Issue/issueMapping'; $template['menu'] = 'Issue Management'; $template['smenu'] = 'Edit Mechanic Issue'; $template['pTitle'] = "Edit Mechanic Issue Management"; $template['pDescription'] = "Update Custom Mechanic Issue Data"; $template['issue_id'] = encode_param($issue_id); $template['mechanic_id'] = encode_param($mechanic_id); $template['issue_data'] = $this->Issue_model->getIssues('',1); $template['mechanicIssueData'] = $this->Issue_model->getMechanicIssues($mechanic_id,$issue_id,1); if(empty($template['mechanicIssueData']) || !isset($template['mechanicIssueData'][$issue_id])){ $this->session->set_flashdata('message',$flashMsg); redirect(base_url('Issue/viewMappedIssues/'.encode_param($mechanic_id))); } $template['mechanicIssueData'] = $template['mechanicIssueData'][$issue_id]; $this->load->view('template',$template); } public function updateMechIssue($mechanic_id = '',$issue_id = ''){ $err = 0; $errMsg = ''; $flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error'); $editPage =base_url('Issue/editMechanicIssues/'.encode_param($mechanic_id).'/'.encode_param($issue_id)); if(!isset($_POST) || empty($_POST) || !isset($_POST['mapping_type']) || !isset($_POST['issue_id']) || empty($_POST['issue_id']) || !isset($_POST['mechanic_id']) || empty($_POST['mechanic_id']) || !is_numeric($_POST['issue_id'] = decode_param($_POST['issue_id'])) || !is_numeric($_POST['mechanic_id'] = decode_param($_POST['mechanic_id'])) || ($_POST['mapping_type']==1&&(!isset($_POST['issue_cat_ids'])||empty($_POST['issue_cat_ids'])))){ $this->session->set_flashdata('message',$flashMsg); redirect(base_url('Issue/viewMappedIssues')); } $custom_issue = $this->genIssueMapInsertData($_POST['mapping_type'],$_POST); if(empty($custom_issue)){ $this->session->set_flashdata('message', $flashMsg); redirect(base_url($editPage)); } $status = $this->Issue_model->updateMechIssue($_POST['mechanic_id'],$_POST['issue_id'],$custom_issue); if($status == 1){ $flashMsg =array('message'=>'Successfully Created..!','class'=>'success'); $this->session->set_flashdata('message', $flashMsg); redirect(base_url('Issue/viewMappedIssues/'.encode_param($mechanic_id))); } else { $this->session->set_flashdata('message', $flashMsg); redirect($editPage); } } function getIssueDetails(){ $resArr = array('status'=>0); if(!isset($_POST)||empty($_POST)||!isset($_POST['issue_id'])||empty($_POST['issue_id']) || !is_numeric($issue_id = decode_param($_POST['issue_id']))){ echo json_encode($resArr);exit; } $issue_data = $this->Issue_model->getIssueDetails($issue_id); if(empty($issue_data)){ echo json_encode($resArr);exit; } $resArr['status'] = 1; $resArr['data'] = $issue_data; echo json_encode($resArr);exit; } function genIssueMapInsertData($mapping_type = '', $mapping_data = ''){ if(empty($mapping_data) || $mapping_type == ''){ return 0; } $custData = array(); foreach($mapping_data['issue_cat_ids'] AS $type_ids) { $issArr = array('issue_id'=>$mapping_data['issue_id'], 'mechanic_id'=>$mapping_data['mechanic_id'], 'issue_cat_id'=>$type_ids); if($mapping_type == 1 && isset($mapping_data['default_service_fee_'.$type_ids]) && isset($mapping_data['default_description_'.$type_ids])){ $issArr['custom_description'] = $mapping_data['default_description_'.$type_ids]; $issArr['custom_service_fee'] = $mapping_data['default_service_fee_'.$type_ids]; } $custData[] = $issArr; } return $custData; } } ?>