BBnepal-Accounts/hr/application/controllers/HRAdmin.php

995 lines
36 KiB
PHP
Raw Permalink Normal View History

2024-07-10 12:43:19 +00:00
<?php
defined('BASEPATH') or exit('No direct script access allowed');
use Nilambar\NepaliDate\NepaliDate;
require_once '../vendor/autoload.php';
class HRAdmin extends CI_Controller
{
private $nepaliDateObject;
private $nepali_current_date;
public function __construct()
{
parent::__construct();
//Load the required models here
$this->load->model('HRAdmin_Model');
$this->load->model('classroom_model');
$this->load->model('School_model');
//Load the required helpers here
$this->load->helper('common_helper');
$this->load->library('upload');
date_default_timezone_set('Asia/Kathmandu');
$this->nepaliDateObject = new NepaliDate();
$this->nepali_current_date = cuurentNepaliDate($this->nepaliDateObject);
}
public function is_valid_admin_emailid($eid)
{
$this->form_validation->set_message('is_valid_admin_emailid', 'This Email Id does not exist. Please check again.');
if ($this->HRAdmin_Model->check_is_emailid_valid($eid))
return true;
else
return false;
}
public function is_valid_admin_credentials()
{
$eid = $_POST['email'];
$encrypt_password = md5($_POST['password']);
$this->form_validation->set_message('is_valid_admin_credentials', 'Invalid password. Please check again.');
if ($this->HRAdmin_Model->check_login_credentials($eid, $encrypt_password))
return true;
else
return false;
}
public function login()
{
$data['title'] = 'Admin Login';
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|callback_is_valid_admin_emailid');
$this->form_validation->set_rules('password', 'Password', 'required');
if (isset($_POST['password']) && $_POST['password'] != '')
$this->form_validation->set_rules('password', 'Password', 'callback_is_valid_admin_credentials');
if ($this->form_validation->run() === FALSE) {
$this->load->view('bustracking-admin/login', $data);
} else {
$encrypt_password = md5($this->input->post('password'));
$where = 'email="' . $this->input->post('email') . '" AND password="' . $encrypt_password . '"';
$loginData = $this->HRAdmin_Model->get_admin_details($where);
if (isset($loginData[0]) && !empty($loginData[0])) {
if ($loginData[0]['status'] == 'Active') {
if (isset($_POST['remember_me']) && $_POST['remember_me'] == 'on') {
//set 0 instead of time to remove the cookie once the browser is closed
setcookie("username", $_POST["email"], time() + 86400); //86400 seconds in a day
setcookie("password", $_POST["password"], time() + 86400);
setcookie("rem_me", 'On', time() + 86400);
} else {
if (isset($_COOKIE['username'])) {
unset($_COOKIE['username']);
setcookie('username', '');
}
if (isset($_COOKIE['password'])) {
unset($_COOKIE['password']);
setcookie('password', '');
}
if (isset($_COOKIE['rem_me'])) {
unset($_COOKIE['rem_me']);
setcookie('rem_me', '');
}
}
$lnData = array(
'bt_lin_id' => $loginData[0]['id'],
'bt_lin_name' => $loginData[0]['admin_name'],
'bt_lin_login' => true,
);
$this->session->set_userdata('hrAULoginData', $lnData);
$this->session->set_userdata('hr_admin_role_ids', $loginData[0]['admin_role_ids']);
$this->session->set_userdata('hr_admin_id', $loginData[0]['id']);
//Set Message
$this->session->set_flashdata('success', 'Welcome To Admin Users Dashboard.');
$redirectToHere = 'dashboard';
$detailsHere = $this->HRAdmin_Model->get_admin_details('', "SELECT admin_role_ids FROM bt_admin WHERE id = " . $loginData[0]['id']);
if (isset($detailsHere[0]['admin_role_ids']) && $detailsHere[0]['admin_role_ids'] != '') {
$permissionDetailsHere = $this->HRAdmin_Model->get_bt_admin_role_permissions('', "SELECT menu_ids FROM bt_admin_role_permissions WHERE admin_role_ids IN(" . $detailsHere[0]['admin_role_ids'] . ")");
$menuIdsHere = explode(',', $permissionDetailsHere[0]['menu_ids']);
if (!empty($menuIdsHere)) {
if (isset($menuDetailsHere[0]['page_link']) && $menuDetailsHere[0]['page_link'] != '')
$redirectToHere = $menuDetailsHere[0]['page_link'];
}
}
redirect(base_url() . $redirectToHere);
} else {
$this->session->set_flashdata('danger', 'Your account is inactive. Please contact the administrator.');
$this->load->view('bustracking-admin/login', $data);
}
} else {
$this->session->set_flashdata('danger', 'Login Credential in invalid!');
$this->load->view('bustracking-admin/login', $data);
}
}
}
/*----------------------------------- SATRT Of Logout --------------------------------------------------------*/
public function logout()
{
$this->common_logout();
//Set Message
$this->session->set_flashdata('success', 'You are logged out successfully.');
redirect(base_url() . 'admin');
}
public function common_logout()
{
$lnEuIdId = 0;
// unset the loggout admin user data
$this->session->unset_userdata('hrAULoginData');
}
public function ajaxLogout()
{
$this->common_logout();
echo 'Success';
exit;
}
/*----------------------------------- ENDDD Of Logout --------------------------------------------------------*/
/*----------------------------- START of Admin User Password Functionality -----------------------------*/
public function fp_check_is_emailid_valid($eid)
{
$this->form_validation->set_message('fp_check_is_emailid_valid', 'This Email Id does not exist. Please check again.');
if ($this->HRAdmin_Model->check_is_emailid_valid($eid))
return true;
else {
return false;
}
}
public function forgot_password()
{
if (!file_exists(APPPATH . 'views/bustracking-admin/forgot-password.php'))
show_404();
$data['title'] = 'Forgot Password';
$this->form_validation->set_rules('email', 'email', 'required|valid_email|callback_fp_check_is_emailid_valid');
if ($this->form_validation->run() === FALSE) {
$this->load->view('bustracking-admin/forgot-password', $data);
} else {
$where = 'email="' . $this->input->post('email') . '" ';
$detailsHere = $this->HRAdmin_Model->get_admin_details($where);
$rpData['nameHere'] = '';
if (isset($detailsHere[0]['admin_name']))
$rpData['nameHere'] = $detailsHere[0]['admin_name'];
$rpData['emailId'] = urlsafe_b64encode($this->input->post('email'));
$emailContent = $this->load->view('bustracking-admin/emails/admin-user-forgot-password.php', $rpData, TRUE);
$emailData['to'] = $this->input->post('email');
$emailData['subject'] = 'Erisn Classroom Bustracking - Admin User Password Recovery Mail';
$emailData['message'] = $emailContent;
//echo $emailContent;exit;
$result = ciSendEmail($emailData);
$this->session->set_userdata('isForgotPasswordSuccess', 'Yes');
$this->load->view('bustracking-admin/forgot-password', $data);
}
}
function reset_password($encodedEmailId)
{
if (isset($encodedEmailId) && $encodedEmailId != '') {
$decodedEmailId = urlsafe_b64decode($encodedEmailId);
$data['encodedEmailId'] = $encodedEmailId;
$data['title'] = 'Reset Password';
$this->form_validation->set_rules('password', 'Enter New Password', 'trim|required');
$this->form_validation->set_rules('conf_password', 'Retype New Password', 'required|matches[password]');
if ($this->form_validation->run() === FALSE) {
$this->load->view('bustracking-admin/reset-password', $data);
} else {
$where = 'email ="' . $decodedEmailId . '"';
$isValidUser = $this->HRAdmin_Model->get_admin_details($where);
if (!empty($isValidUser) && count($isValidUser) == 1) {
$this->HRAdmin_Model->reset_admin_password($isValidUser[0]['id'], $this->input->post('password'));
//Set Message
$this->session->set_userdata('isResetPasswordSuccess', 'Yes');
redirect('reset-password/' . $encodedEmailId);
} else {
$this->session->set_flashdata('danger', 'OOps. Something went wrong.');
redirect('reset-password/' . $encodedEmailId);
}
}
} else {
redirect(base_url() . "admin");
}
}
/*----------------------------- ENDDD of Admin User Password Functionality -----------------------------*/
public function dashboard()
{
// print_r($_SESSION['hrAULoginData']['bt_lin_id']);
// exit();
if (!isset($_SESSION['hrAULoginData']))
redirect(base_url() . 'admin');
$data['currentURL'] = current_url();
$data['title'] = 'Dashboard';
$data['driver_count'] = $this->HRAdmin_Model->count_query('bt_drivers');
$data['bus_count'] = $this->HRAdmin_Model->count_query('bt_buses');
$data['student_count'] = $this->HRAdmin_Model->count_query('bt_students_bus_route_details');
$data['school_info'] = $this->classroom_model->get_logo_from_setting();
$query = $this->db->query('select * from bt_routes');
$data['route_name'] = $query->result_array();
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/dashboard', $data);
}
/*----------------------------------- START Of Admin Roles --------------------------------------------------------*/
public function roles()
{
if (!isset($_SESSION['hr_admin_id']))
redirect(base_url() . 'admin');
$data['currentURL'] = current_url();
$data['title'] = 'Designations';
$data['school_info'] = $this->classroom_model->get_logo_from_setting();
$sqlRole = 'SELECT r.*, rp.menu_ids FROM bt_admin_roles AS r, bt_admin_role_permissions AS rp WHERE r.id = rp.admin_role_ids';
$rolesList = $this->HRAdmin_Model->get_bt_admin_roles('', $sqlRole);
if (!empty($rolesList)) {
foreach ($rolesList as $key => $role) {
$rPs = '';
$sqlRolePermissions = 'SELECT menu_name FROM bt_admin_menu WHERE id IN(' . $role['menu_ids'] . ')';
$rolePermissions = $this->HRAdmin_Model->get_bt_admin_roles('', $sqlRolePermissions);
if (!empty($rolePermissions)) {
foreach ($rolePermissions as $p) {
if ($rPs == '')
$rPs = $p['menu_name'];
else
$rPs .= ',' . $p['menu_name'];
}
}
$rolesList[$key]['permissions'] = $rPs;
}
}
$data['roleList'] = $rolesList;
//echo '<pre>'; print_r($data['roleList']);exit;
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/roles', $data);
}
public function ajaxCheckIsRoleAlreadyExists()
{
$result = 'Insufficient Data';
if (isset($_POST['role_name']) && $_POST['role_name'] != '' && isset($_POST['id']) && $_POST['id'] != '') {
if ($this->HRAdmin_Model->check_role_exists($_POST['id'], $_POST['role_name']))
$result = 'Unique Role';
else
$result = 'Duplicate Role';
}
echo $result;
exit;
}
public function add_edit_role($idVal)
{
$sql = "SELECT * FROM bt_admin_roles WHERE id = $idVal";
$details = $this->HRAdmin_Model->get_bt_admin_roles("id = $idVal");
if (empty($details) && $idVal != 0)
redirect(base_url() . 'roles');
$data['title'] = 'Add New Role';
if ($idVal > 0)
$data['title'] = 'Update Role';
$data['school_info'] = $this->classroom_model->get_logo_from_setting();
$data['details'] = $details;
$data['idVal'] = $idVal;
$data['menus'] = $this->HRAdmin_Model->get_admin_menu_details('', 'SELECT id,menu_name FROM bt_admin_menu WHERE status="Active" AND parent_id=0');
$data['role_permissions'] = $this->HRAdmin_Model->get_bt_admin_role_permissions('', "SELECT menu_ids FROM bt_admin_role_permissions WHERE admin_role_ids = $idVal");
if (count($_POST) > 0) {
$permissions = '';
if (isset($_POST['role_permissions']) && !empty($_POST['role_permissions'])) {
$permissions = implode(',', $_POST['role_permissions']);
unset($_POST['role_permissions']);
}
$res = $this->HRAdmin_Model->add_edit_admin_role($idVal, $_POST);
if ($res) {
if ($permissions != '') {
if ($idVal == 0) {
$rpData['admin_role_ids'] = $res;
$rpData['menu_ids'] = $permissions;
$this->HRAdmin_Model->add_edit_admin_role_permissions(0, $rpData);
} else {
$getRPrid = $this->HRAdmin_Model->get_bt_admin_role_permissions('', "SELECT id FROM bt_admin_role_permissions WHERE admin_role_ids = $idVal");
if (isset($getRPrid[0]['id'])) {
$rpData['admin_role_ids'] = $idVal;
$rpData['menu_ids'] = $permissions;
$this->HRAdmin_Model->add_edit_admin_role_permissions($getRPrid[0]['id'], $rpData);
}
}
}
$this->session->set_flashdata('success', str_replace('%s', 'new role', THE_ADD_SUCCESS_MSG));
if ($idVal > 0)
$this->session->set_flashdata('success', str_replace('%s', 'role', THE_UPDATE_SUCCESS_MSG));
}
redirect(base_url() . 'roles');
}
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/add-edit-role', $data);
}
public function delete_role()
{
$roleId = $_POST['id'];
$sql = "SELECT id FROM bt_admin WHERE admin_role_ids=" . $roleId;
$result = $this->HRAdmin_Model->get_admin_details('', $sql);
//echo '<pre>'; print_r($result);exit;
if (!empty($result))
echo 'Error';
else {
$this->HRAdmin_Model->delete_admin_role($roleId);
echo 'Success';
}
}
/*----------------------------------- ENDDD Of Admin Roles --------------------------------------------------------*/
/*----------------------------------- START Of Admin Users --------------------------------------------------------*/
public function users()
{
$data['title'] = 'Users';
$sql = 'SELECT a.*, ar.role_name FROM bt_admin AS a, bt_admin_roles AS ar WHERE a.admin_role_ids = ar.id';
$data['userList'] = $this->HRAdmin_Model->get_admin_details('', $sql);
$data['school_info'] = $this->classroom_model->get_logo_from_setting();
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/users', $data);
}
public function ajaxCheckIsUserEmailAlreadyExists()
{
$result = 'Insufficient Data';
if (isset($_POST['email']) && $_POST['email'] != '' && isset($_POST['id']) && $_POST['id'] != '') {
if ($this->HRAdmin_Model->check_emailid_exists($_POST['id'], $_POST['email']))
$result = 'Unique Email';
else
$result = 'Duplicate Email';
}
echo $result;
exit;
}
public function add_edit_user($idVal)
{
$sql = "SELECT * FROM bt_admin WHERE id = $idVal";
$details = $this->HRAdmin_Model->get_admin_details("id = $idVal");
if (empty($details) && $idVal != 0)
redirect(base_url() . 'users');
$data['title'] = 'Add New User';
if ($idVal > 0)
$data['title'] = 'Update User';
$data['details'] = $details;
$data['idVal'] = $idVal;
$data['roles'] = $this->HRAdmin_Model->get_bt_admin_roles('', 'SELECT id,role_name FROM bt_admin_roles WHERE status="Active"');
if (count($_POST) > 0) {
if (isset($_POST['password']))
$_POST['password'] = md5($_POST['password']);
if (isset($_POST['confirm_password']))
unset($_POST['confirm_password']);
$res = $this->HRAdmin_Model->add_edit_admin_user($idVal, $_POST);
$this->session->set_flashdata('success', str_replace('%s', 'new user', THE_ADD_SUCCESS_MSG));
if ($idVal > 0)
$this->session->set_flashdata('success', str_replace('%s', 'user', THE_UPDATE_SUCCESS_MSG));
redirect(base_url() . 'users');
}
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/add-edit-user', $data);
}
public function delete_user()
{
$userId = $_POST['id'];
$result = $this->HRAdmin_Model->delete_admin_user($userId);
if ($result)
echo 'Success';
else
echo 'Error';
}
/*----------------------------------- ENDDD Of Admin Users --------------------------------------------------------*/
/*----------Add Bus Code start here from Shankar--------------------------*/
public function designation()
{
if (!isset($_SESSION['hr_admin_id']))
redirect(base_url() . 'admin');
$data['currentURL'] = current_url();
$data['title'] = 'Designations';
$data['school_info'] = $this->classroom_model->get_logo_from_setting();
if (isset($_POST['addDesignation']) && $_POST['addDesignation'] == 'Add') {
$designationTitle = $_POST['title'];
$isUnique = $this->HRAdmin_Model->get_unique_name('title', $designationTitle, 'hr_designation');
echo '<pre>';
print_r($isUnique);
if ($isUnique) {
$in_data['title'] = $designationTitle;
$in_data['is_active'] = 'yes';
$in_data['created_on'] = $this->nepali_current_date;
$in_data['modified_on'] = $this->nepali_current_date;
$this->db->insert('hr_designation', $in_data);
$this->session->set_flashdata('success', str_replace('%s', 'Designation', 'New designation has been added.'));
} else {
$this->session->set_flashdata('danger', str_replace('%s', 'Designation', 'Designation title already exist.'));
}
redirect(base_url() . 'designation');
} else if (isset($_POST['updateDesignation']) && $_POST['updateDesignation'] == 'Update') {
$designationTitle = $_POST['title'];
$designationId = $_POST['designationId'];
$update_data = array(
'title' => $designationTitle,
'is_active' => $_POST['is_active'],
'modified_on' => $this->nepali_current_date,
);
$this->db->where('id', $designationId);
$update = $this->db->update("hr_designation", $update_data);
if ($update) {
$this->session->set_flashdata('success', str_replace('%s', 'Designation', 'Designation has been updated successfully.'));
} else {
$this->session->set_flashdata('danger', str_replace('%s', 'Designation', 'THE_ADD_ERROR_MSG'));
}
redirect(base_url() . 'designation');
}
$query = $this->db->query('select * from hr_designation');
$data['designation_list'] = $query->result_array();
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/designation', $data);
}
public function staff_roles()
{
if (!isset($_SESSION['hr_admin_id']))
redirect(base_url() . 'admin');
$data['currentURL'] = current_url();
$data['title'] = 'Staff Roles';
$data['school_info'] = $this->classroom_model->get_logo_from_setting();
if (isset($_POST['addStaffRole']) && $_POST['addStaffRole'] == 'Add') {
$staffRoleTitle = $_POST['title'];
$isUnique = $this->HRAdmin_Model->get_unique_name('title', $staffRoleTitle, 'staff_roles');
// echo '<pre>';
// print_r($isUnique);
if ($isUnique) {
$in_data['title'] = $staffRoleTitle;
$in_data['is_active'] = 'yes';
$in_data['created_on'] = $this->nepali_current_date;
$in_data['modified_on'] = $this->nepali_current_date;
$this->db->insert('staff_roles', $in_data);
$this->session->set_flashdata('success', str_replace('%s', 'Role', 'New has been added.'));
} else {
$this->session->set_flashdata('danger', str_replace('%s', 'Role', 'Role already exist.'));
}
redirect(base_url() . 'staff-roles');
} else if (isset($_POST['updateStaffRole']) && $_POST['updateStaffRole'] == 'Update') {
// var_dump($_POST);
// exit();
$staffRoleTitle = $_POST['title'];
$staffRoleId = $_POST['roleId'];
$update_data = array(
'title' => $staffRoleTitle,
'is_active' => $_POST['is_active'],
'modified_on' => $this->nepali_current_date,
);
$this->db->where('id', $staffRoleId);
$update = $this->db->update("staff_roles", $update_data);
if ($update) {
$this->session->set_flashdata('success', str_replace('%s', 'Roles', 'Role has been updated successfully.'));
} else {
$this->session->set_flashdata('danger', str_replace('%s', 'Roles', 'THE_ADD_ERROR_MSG'));
}
redirect(base_url() . 'staff-roles');
}
$query = $this->db->query('select * from staff_roles');
$data['staffRole_list'] = $query->result_array();
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/staff-roles', $data);
}
public function department()
{
if (!isset($_SESSION['hr_admin_id']))
redirect(base_url() . 'admin');
$data['currentURL'] = current_url();
$data['title'] = 'Departments';
$data['school_info'] = $this->classroom_model->get_logo_from_setting();
if (isset($_POST['addDepartment']) && $_POST['addDepartment'] == 'Add') {
$departmentTitle = $_POST['title'];
$isUnique = $this->HRAdmin_Model->get_unique_name('title', $departmentTitle, 'hr_department');
echo '<pre>';
print_r($isUnique);
if ($isUnique) {
$in_data['title'] = $departmentTitle;
$in_data['is_active'] = 'yes';
$in_data['created_on'] = $this->nepali_current_date;
$in_data['modified_on'] = $this->nepali_current_date;
$this->db->insert('hr_department', $in_data);
$this->session->set_flashdata('success', str_replace('%s', 'Department', 'New department has been added.'));
} else {
$this->session->set_flashdata('danger', str_replace('%s', 'Department', 'Department title already exist.'));
}
redirect(base_url() . 'department');
} else if (isset($_POST['updateDepartment']) && $_POST['updateDepartment'] == 'Update') {
$departmentTitle = $_POST['title'];
$departmentId = $_POST['departmentId'];
$update_data = array(
'title' => $departmentTitle,
'is_active' => $_POST['is_active'],
'modified_on' => $this->nepali_current_date,
);
$this->db->where('id', $departmentId);
$update = $this->db->update("hr_department", $update_data);
if ($update) {
$this->session->set_flashdata('success', str_replace('%s', 'Department', 'Department has been updated successfully.'));
} else {
$this->session->set_flashdata('danger', str_replace('%s', 'Department', 'THE_ADD_ERROR_MSG'));
}
redirect(base_url() . 'department');
}
$query = $this->db->query('select * from hr_department');
$data['department_list'] = $query->result_array();
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/department', $data);
}
public function staffs()
{
if (!isset($_SESSION['hr_admin_id']))
redirect(base_url() . 'admin');
$data['currentURL'] = current_url();
$data['title'] = 'Staffs';
$data['school_info'] = $this->classroom_model->get_logo_from_setting();
$staffQuery = "select s.*, sr.title as role_title,
IF(des.id is null,'-',des.title) as designation_title,
IF(dep.id is null,'-',dep.title) as department_title,
IF(dep.id is null,'-',dep.title) as department_title
from staffs s JOIN staff_roles sr ON sr.id=s.role
LEFT JOIN hr_designation des ON des.id=s.designations
LEFT JOIN hr_department dep ON dep.id=s.department";
$query = $this->db->query($staffQuery);
$data['staff_list'] = $query->result_array();
// dd($data['staff_list']);
$designation_query = $this->db->query('select * from hr_designation');
$data['designation_list'] = $designation_query->result_array();
$data['provinces'] = $this->School_model->get_table_info('provinces');
$department_query = $this->db->query('select * from hr_department');
$data['department_list'] = $department_query->result_array();
$roles_query = $this->db->query('select * from staff_roles WHERE is_active = "yes"');
$data['staff_roles'] = $roles_query->result_array();
if (isset($_POST['updateStaff']) && $_POST['updateStaff'] == 'Update') {
echo '<pre>';
print_r($_POST);
print_r($_FILES);
$staffId = $_POST['theStaffId'];
$profile = $_POST['staffPhoto'];
$documentImage = $_POST['staffDocImg'];
$otherDocument = $_POST['staffOtherDoc'];
$resume = $_POST['staffResume'];
$joiningLetter = $_POST['staffJoiningLetter'];
if ($_FILES['photo']['size'] != 0) {
$config['upload_path'] = '../assets_admin/images/teacher-profile/';
$config['allowed_types'] = 'gif|jpg|jpeg|png|jiff|jfif|pdf|doc|docx';
if (!empty($profile)) {
unlink('../assets_admin/images/teacher-profile/' . $profile);
}
$config['file_name'] = $staffId . '_profile';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('photo')) {
$profile = "";
} else {
$photo = array('upload_data' => $this->upload->data());
$profile = $photo['upload_data']['file_name'];
}
}
if ($_FILES['document_image']['size'] != 0) {
if (!empty($documentImage)) {
unlink('../assets_admin/docs/staff-documents/' . $documentImage);
}
$config['upload_path'] = '../assets_admin/docs/staff-documents/';
$config['allowed_types'] = 'gif|jpg|jpeg|png|jiff|jfif|pdf|doc|docx';
$config['file_name'] = $staffId . '_doc1';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('document_image')) {
$documentImage = "";
} else {
$photo = array('upload_data' => $this->upload->data());
$documentImage = $photo['upload_data']['file_name'];
}
}
if ($_FILES['other_document']['size'] != 0) {
if (!empty($otherDocument)) {
unlink('../assets_admin/docs/staff-documents/' . $otherDocument);
}
$config['upload_path'] = '../assets_admin/docs/staff-documents/';
$config['allowed_types'] = 'gif|jpg|jpeg|png|jiff|jfif|pdf|doc|docx';
$config['file_name'] = $staffId . '_doc2';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('other_document')) {
$otherDocument = "";
} else {
$photo = array('upload_data' => $this->upload->data());
$otherDocument = $photo['upload_data']['file_name'];
}
}
if ($_FILES['resume']['size'] != 0) {
if (!empty($resume)) {
unlink('../assets_admin/docs/staff-documents/' . $resume);
}
$config['upload_path'] = '../assets_admin/docs/staff-documents/';
$config['allowed_types'] = 'gif|jpg|jpeg|png|jiff|jfif|pdf|doc|docx';
$config['file_name'] = $staffId . '_resume';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('resume')) {
$resume = "";
} else {
$photo = array('upload_data' => $this->upload->data());
$resume = $photo['upload_data']['file_name'];
}
}
if ($_FILES['joining_letter']['size'] != 0) {
if (!empty($joiningLetter)) {
unlink('../assets_admin/docs/staff-documents/' . $joiningLetter);
}
$config['upload_path'] = '../assets_admin/docs/staff-documents/';
$config['allowed_types'] = 'gif|jpg|jpeg|png|jiff|jfif|pdf|doc|docx';
$config['file_name'] = $staffId . '_joining_letter';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('joining_letter')) {
$joiningLetter = "";
} else {
$photo = array('upload_data' => $this->upload->data());
$joiningLetter = $photo['upload_data']['file_name'];
}
}
$data_array = array(
'staffId' => $staffId,
'name' => $_POST['name'],
'gender' => $_POST['gender'],
'dob' => $_POST['sdob'],
'role' => $_POST['role'],
'department' => $_POST['department'],
'designations' => $_POST['designation'],
'father_name' => $_POST['father_name'],
'mother_name' => $_POST['mother_name'],
'email' => $_POST['email'],
'mobile' => $_POST['mobile'],
'martial_status' => $_POST['martial_status'],
'emergency_number' => $_POST['emergency_number'],
'document_type' => $_POST['document_type'],
'document_id' => $_POST['document_id'],
'address' => $_POST['address'],
'province' => $_POST['province'],
'country' => $_POST['country'],
'qualification' => $_POST['qualifications'],
'experience' => $_POST['experience'],
'date_of_joining' => $_POST['date_of_joining'],
'epf_no' => $_POST['epf_no'],
'basic_salary' => $_POST['basic_salary'],
'contract_type' => $_POST['contract_type'],
'bank_account_name' => $_POST['bank_account_name'],
'bank_account_number' => $_POST['bank_account_number'],
'bank_name' => $_POST['bank_name'],
'branch_name' => $_POST['bank_branch'],
'pan' => $_POST['pan'],
'photo' => $profile,
'other_document' => $otherDocument,
'document_photo_1' => $documentImage,
'resume' => $resume,
'joining_letter' => $joiningLetter,
'is_active' => $_POST['is_active'],
'modified_on' => $this->nepali_current_date,
);
print_r($data_array);
$this->db->where('id', $_POST['staffId']);
$update = $this->db->update("staffs", $data_array);
if ($update) {
$this->session->set_flashdata('success', str_replace('%s', $_POST['name'], "Record has been updated successfully."));
redirect(base_url() . 'staffs');
} else {
$this->session->set_flashdata('danger', str_replace('%s', 'Staff', 'Something went wrong. Try again.'));
redirect(base_url() . 'staffs');
}
// exit();
}
$dateTimeArray = explode(' ', $this->nepali_current_date);
$data['today_date'] = $dateTimeArray[0];
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/staffs', $data);
}
public function ae_staff($id)
{
if (!isset($_SESSION['hr_admin_id']))
redirect(base_url() . 'admin');
$data['currentURL'] = current_url();
$data['school_info'] = $this->classroom_model->get_logo_from_setting();
$roles_query = $this->db->query('select * from staff_roles WHERE is_active = "yes"');
$data['staff_roles'] = $roles_query->result_array();
if ($id > 0) {
$staff = $this->db->query('select * from staffs WHERE id = ' . $id)->row_array();
$data['staff_detail'] = $staff;
$data['title'] = 'Update Staff Record';
} else {
$data['title'] = 'Add New Staff';
}
if (isset($_POST['submit']) && $_POST['submit'] == 'Add New Staff') {
echo '<pre>';
print_r($_POST);
print_r($_FILES);
$staffIdPrefix = '';
foreach ($data['staff_roles'] as $roleKey => $role) {
if ($_POST['role'] == $role['id']) {
$staffIdPrefix = substr($role['title'], 0, 1);
}
print_r($role['title']);
}
$this->db->select_max('id');
$query = $this->db->get('staffs');
$res = $query->row_array();
$pid = $res['id'] + 1;
$school_prefix = (!empty($data['school_info']['school_prefix_id'])) ? $data['school_info']['school_prefix_id'] : 'BB';
$staffId = $school_prefix . $staffIdPrefix . date('Ymd', strtotime($this->nepali_current_date)) . '0' . $pid;
$mobile = $_POST['mobile'];
$isUnique = $this->HRAdmin_Model->get_unique_name('mobile', $mobile, 'staffs');
echo '<pre>';
print_r($isUnique);
if ($isUnique) {
$profile = "";
$documentImage = "";
$otherDocument = "";
$resume = "";
$joiningLetter = "";
if ($_FILES['photo']['size'] != 0) {
$config['upload_path'] = '../assets_admin/images/teacher-profile/';
$config['allowed_types'] = 'gif|jpg|jpeg|png|jiff|jfif|pdf|doc|docx';
$config['file_name'] = $staffId . '_profile';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('photo')) {
$profile = "";
} else {
$photo = array('upload_data' => $this->upload->data());
$profile = $photo['upload_data']['file_name'];
}
}
if ($_FILES['document_image']['size'] != 0) {
$config['upload_path'] = '../assets_admin/docs/staff-documents/';
$config['allowed_types'] = 'gif|jpg|jpeg|png|jiff|jfif|pdf|doc|docx';
$config['file_name'] = $staffId . '_doc1';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('document_image')) {
$documentImage = "";
} else {
$photo = array('upload_data' => $this->upload->data());
$documentImage = $photo['upload_data']['file_name'];
}
}
if ($_FILES['other_document']['size'] != 0) {
$config['upload_path'] = '../assets_admin/docs/staff-documents/';
$config['allowed_types'] = 'gif|jpg|jpeg|png|jiff|jfif|pdf|doc|docx';
$config['file_name'] = $staffId . '_doc2';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('other_document')) {
$otherDocument = "";
} else {
$photo = array('upload_data' => $this->upload->data());
$otherDocument = $photo['upload_data']['file_name'];
}
}
if ($_FILES['resume']['size'] != 0) {
$config['upload_path'] = '../assets_admin/docs/staff-documents/';
$config['allowed_types'] = 'gif|jpg|jpeg|png|jiff|jfif|pdf|doc|docx';
$config['file_name'] = $staffId . '_resume';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('resume')) {
$resume = "";
} else {
$photo = array('upload_data' => $this->upload->data());
$resume = $photo['upload_data']['file_name'];
}
}
if ($_FILES['joining_letter']['size'] != 0) {
$config['upload_path'] = '../assets_admin/docs/staff-documents/';
$config['allowed_types'] = 'gif|jpg|jpeg|png|jiff|jfif|pdf|doc|docx';
$config['file_name'] = $staffId . '_joining_letter';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('joining_letter')) {
$joiningLetter = "";
} else {
$photo = array('upload_data' => $this->upload->data());
$joiningLetter = $photo['upload_data']['file_name'];
}
}
$data_array = array(
'staffId' => $staffId,
'name' => $_POST['name'],
'gender' => $_POST['gender'],
'dob' => $_POST['sdob'],
'role' => $_POST['role'],
'department' => $_POST['department'],
'designations' => $_POST['designation'],
'father_name' => $_POST['father_name'],
'mother_name' => $_POST['mother_name'],
'email' => $_POST['email'],
'mobile' => $_POST['mobile'],
'martial_status' => $_POST['martial_status'],
'emergency_number' => $_POST['emergency_number'],
'document_type' => $_POST['document_type'],
'document_id' => $_POST['document_id'],
'address' => $_POST['address'],
'province' => $_POST['province'],
'country' => $_POST['country'],
'qualification' => $_POST['qualifications'],
'experience' => $_POST['experience'],
'date_of_joining' => $_POST['date_of_joining'],
'epf_no' => $_POST['epf_no'],
'basic_salary' => $_POST['basic_salary'],
'contract_type' => $_POST['contract_type'],
'bank_account_name' => $_POST['bank_account_name'],
'bank_account_number' => $_POST['bank_account_number'],
'bank_name' => $_POST['bank_name'],
'branch_name' => $_POST['bank_branch'],
'pan' => $_POST['pan'],
'photo' => $profile,
'other_document' => $otherDocument,
'document_photo_1' => $documentImage,
'resume' => $resume,
'joining_letter' => $joiningLetter,
'created_on' => $this->nepali_current_date,
'modified_on' => $this->nepali_current_date,
);
print_r($data_array);
$insert = $this->db->insert('staffs', $data_array);
if ($insert) {
$this->session->set_flashdata('success', 'New record has been inserted in staff.');
} else {
$this->session->set_flashdata('danger', 'Something went wrong. Please try again');
}
redirect(base_url() . 'staffs');
} else {
$this->session->set_flashdata('danger', str_replace('%s', 'Staff', 'Staff with the contact number already exists.'));
}
// exit();
}
$data['provinces'] = $this->School_model->get_table_info('provinces');
$designation_query = $this->db->query('select * from hr_designation');
$data['designation_list'] = $designation_query->result_array();
$department_query = $this->db->query('select * from hr_department');
$data['department_list'] = $department_query->result_array();
$dateTimeArray = explode(' ', $this->nepali_current_date);
$data['today_date'] = $dateTimeArray[0];
// exit();
$this->load->view('bustracking-admin/common/left-menu', $data);
$this->load->view('bustracking-admin/common/header', $data);
$this->load->view('bustracking-admin/ae-staff', $data);
}
}