EVOLUTION-NINJA
Edit File: Roles.php
<?php namespace App\Controllers; class Roles extends BaseController{ public function __construct() { $this->db = \Config\Database::connect(); date_default_timezone_set('Asia/Kolkata'); } public function fetch_roles(){ $builder = $this->db->table('roles'); $builder->select('id ,role,role_name'); $query = $builder->get(); $role = $query->getResultArray(); if ($role) { return $this->response->setJSON($role); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No roles found']); } } public function fetch_roles1() { $currentUserRole = session()->get('role'); // print_r($currentUserRole);die(); $builder = $this->db->table('roles'); $builder->select('id, role, role_name'); if ($currentUserRole == 0) { $query = $builder->get(); } elseif ($currentUserRole == 1) { $query = $builder->whereIn('role', ['2','3','5'])->get(); } elseif ($currentUserRole == 2) { $query = $builder->whereIn('role',['3','5'])->get(); // print_r($query);die(); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Access denied']); } $role = $query->getResultArray(); if ($role) { return $this->response->setJSON($role); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No roles found']); } } public function add_roles_creation() { $role_name = $this->request->getPost('role'); $apm = $this->request->getPost('apm'); $engineer = $this->request->getPost('Engineer'); $supervisor = $this->request->getPost('supervisor'); $firstname = $this->request->getPost('First_Name'); $lastname = $this->request->getPost('Last_Name'); $phoneNo = $this->request->getPost('Phone_Number'); $email = $this->request->getPost('E-Mail'); // $dob = $this->request->getPost('dob'); $gender = $this->request->getPost('gender'); // $department = $this->request->getPost('department'); $DOJ = $this->request->getPost('doj'); // $pan_no = $this->request->getPost('Pan_Number'); // $address = $this->request->getPost('Address'); // $status = $this->request->getPost('status'); date_default_timezone_set('Asia/Kolkata'); $created_at = date('Y-m-d H:i:s'); $created_by = session()->get('username'); $file = $this->request->getFile('file'); $newname = null; if ($file && $file->isValid() && !$file->hasMoved()) { $newname = $file->getRandomName(); $file->move(ROOTPATH . 'public/employeeImages', $newname); } $password = bin2hex(random_bytes(4)); $data = [ 'role' => $role_name, 'created_at' => $created_at, 'created_by' => $created_by, 'first_name' => $firstname, 'last_name' => $lastname, 'phone_no' => $phoneNo, 'email' => $email, // 'dob' => $dob, 'gender' => $gender, // 'department' => $department, 'date_of_joining' => $DOJ, // 'pan_no' => $pan_no, // 'address' => $address, // 'status' => $status ]; if (!empty($newname)) { $data['upload_photo'] = $newname; } if (!empty($apm)) { $data['apm'] = $apm; } if (!empty($engineer)) { $data['Engineer'] = $engineer; } try { $builder = $this->db->table('roles_creation'); if ($builder->insert($data)) { // Send email with generated password // $this->sendEmail($email, $password); // Insert into users table $user_data = [ 'username' => $firstname, 'email' => $email, 'password' => $password, 'role' => $role_name, 'valid_user' => 1, 'created_at' => $created_at, 'created_by' => $created_by, ]; $user_builder = $this->db->table('users'); if ($user_builder->insert($user_data)) { return $this->response->setJSON(['result' => 1, 'message' => 'Role added and user created successfully.']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Failed to create user.']); } } else { return $this->response->setJSON(['result' => 0, 'message' => 'Failed to create role.']); } } catch (\Exception $e) { return $this->response->setJSON(['result' => 0, 'message' => $e->getMessage()]); } } // public function sendEmail($email, $password) { // $email_service = \Config\Services::email(); // $email_service->setTo($email); // $email_service->setSubject('Your Account Details - Nirmithi Kendra'); // $email_service->setMessage("Dear User,\n\nYour account has been successfully created in Nirmithi Kendra.\n\nHere are your login credentials:\n\nEmail: $email\nPassword: $password\n\nPlease keep this information safe and use it to access your account.\n\nThank you,\nNirmithi Kendra Team."); // if ($email_service->send()) { // return true; // } else { // log_message('error', $email_service->printDebugger()); // return false; // } // } public function fetch_admin() { $builder = $this->db->table('roles_creation'); $builder->select('id, first_name,role'); $builder->where('role', '1'); $query = $builder->get(); $role = $query->getResultArray(); if ($role) { return $this->response->setJSON($role); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No roles found']); } } public function fetch_apm() { $builder = $this->db->table('users'); $builder->select('id,username,role'); $builder->where('role','2'); $query = $builder->get(); $role = $query->getResultArray(); if ($role) { return $this->response->setJSON($role); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No roles found']); } } public function fetch_supervisor() { $builder = $this->db->table('users'); $builder->select('id,username,role'); $builder->where('role', '3'); $query = $builder->get(); $role = $query->getResultArray(); if ($role) { return $this->response->setJSON($role); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No roles found']); } } public function checkNameExists() { $selectedRole = $this->request->getPost('selectedRole'); $db = \Config\Database::connect(); $builder = $db->table('roles_creation'); $builder->select('id,first_name'); $builder->like('first_name', $selectedRole, 'after'); $builder->orderBy('id', 'DESC'); $builder->limit(1); $query = $builder->get(); $result = $query->getRowArray(); return $this->response->setJSON($result); } public function role_data() { $builder = $this->db->table('roles_creation'); $builder->select('roles_creation.*, roles.role, roles.role_name, roles.id as role_id, department.department_name, department.id as department_id, apm_user.username as apm_username, engineer_user.username as engineer_username'); $builder->join('roles', 'roles.role = roles_creation.role', 'left'); $builder->join('department', 'department.id = roles_creation.department', 'left'); $builder->join('users as apm_user', 'apm_user.id = roles_creation.apm', 'left'); $builder->join('users as engineer_user', 'engineer_user.id = roles_creation.Engineer', 'left'); $query = $builder->get(); $data = $query->getResultArray(); if ($data) { return $this->response->setJSON($data); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No roles found']); } } // public function role_delete($id){ // try { // $builder = $this->db->table('roles_creation'); // $builder->where('id', $id); // if ($builder->delete()) { // return $this->response->setJSON(['result' => 1, 'message' => 'Role deleted successfully']); // } else { // return $this->response->setJSON(['result' => 0, 'message' => 'Failed to role']); // } // } catch (\Exception $e) { // return $this->response->setJSON(['result' => 0, 'message' => $e->getMessage()]); // } // } public function role_delete($id) { // print_r($id);die(); try { $this->db->transStart(); $builder = $this->db->table('roles_creation'); $role = $builder->where('id', $id)->get()->getRowArray(); if (!$role) { return $this->response->setJSON(['result' => 0, 'message' => 'Role not found']); } $builderUserTable = $this->db->table('users'); $builderUserTable->where('role', $role['role']); $builderUserTable->where('username', $role['first_name']); $userDelete = $builderUserTable->delete(); $roleDelete = $builder->where('id', $id)->delete(); $this->db->transComplete(); if ($this->db->transStatus() === false || !$roleDelete || !$userDelete) { return $this->response->setJSON(['result' => 0, 'message' => 'Failed to delete role or related user']); } else { return $this->response->setJSON(['result' => 1, 'message' => 'Role and associated user deleted successfully']); } } catch (\Exception $e) { $this->db->transRollback(); return $this->response->setJSON(['result' => 0, 'message' => $e->getMessage()]); } } public function edit_roles_data($id) { try { $builder = $this->db->table('roles_creation'); $builder->where('id', $id); $query = $builder->get(); $data = $query->getResult(); $builder = $this->db->table('roles'); $allrolesQuery = $builder->get(); $roles = $allrolesQuery->getResult(); // Fetch APMs (assuming role '2' represents APMs) $builder = $this->db->table('users'); $builder->select('id, username, role'); $builder->where('role', '2'); $apmsQuery = $builder->get(); $apms = $apmsQuery->getResultArray(); $builder = $this->db->table('users'); $builder->select('id,username,role'); $builder->where('role', '3'); $EngineersQuery = $builder->get(); $Engineers = $EngineersQuery->getResultArray(); $builder = $this->db->table('department'); $alldepartmentsQuery = $builder->get(); $departments = $alldepartmentsQuery->getResult(); if ($data) { return $this->response->setJSON([ 'result' => 1, 'data' => $data, 'roles' => $roles, 'apms' => $apms, 'Engineers' => $Engineers, 'departments'=>$departments, ]); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No data found']); } } catch (\Exception $e) { return $this->response->setJSON(['result' => 0, 'message' => $e->getMessage()]); } } public function update_role_creation() { $id = $this->request->getPost('id'); $data = [ 'role' => $this->request->getPost('role'), 'first_name' => $this->request->getPost('first_name'), 'last_name' => $this->request->getPost('last_name'), 'phone_no' => $this->request->getPost('phone_no'), 'apm' => $this->request->getPost('apm'), 'engineer' => $this->request->getPost('engineer'), // 'dob' => $this->request->getPost('dob'), 'email' => $this->request->getPost('email'), 'gender' => $this->request->getPost('gender'), // 'department' => $this->request->getPost('department'), 'date_of_joining' => $this->request->getPost('date_of_joining'), // 'pan_no' => $this->request->getPost('pan_no'), // 'status' => $this->request->getPost('status'), // 'address' => $this->request->getPost('address'), ]; $file = $this->request->getFile('file'); $newname = null; if ($file && $file->isValid() && !$file->hasMoved()) { $newname = $file->getRandomName(); $file->move(ROOTPATH . 'public/employeeImages', $newname); } if (!empty($newname)) { $data['upload_photo'] = $newname; } if (!empty($apm)) { $data['apm'] = $apm; } if (!empty($engineer)) { $data['Engineer'] = $engineer; } $builder = $this->db->table('roles_creation'); $builder->where('id', $id); // specify the condition $update = $builder->update($data); // perform the update if ($update) { return $this->response->setJSON(['status' => 'success','message' => ' Updated Successfully']); } else { // Log the error log_message('error', json_encode($db->error())); return $this->response->setJSON(['status' => 'error', 'message' => 'Unable to update data.']); } } } ?>