session = session(); } public function dashboard() { $UsersModel = new UsersModel(); $dashboard_data = $UsersModel->dashboard_live_data($this->session->get('logged_user_branch_id')); foreach ($dashboard_data as &$value) { $assigned_ids = !empty(json_decode($value['assigned_to'], true)) ? json_decode($value['assigned_to'], true) : [0]; $user = $UsersModel->select('users.name as username, roles.roles as userrole')->join('roles', 'roles.role_id = users.role', 'left')->whereIn('users.user_id', $assigned_ids)->findAll(); $value['username'] = ''; foreach ($user as $val) { if (isset($val['username'])) { $value['username'] .= $val['username'] . '- ' . $val['userrole'] .'
'; } } } $JobcardModel = new JobcardModel(); $current_date = date('Y-m-d'); $data['delivery_data'] = $JobcardModel->where('DATE(delivery_date)', $current_date)->where('isactive',1)->findAll(); $data['dashboard_data'] = $dashboard_data; return view('dashboard',$data); } ## For User Listing public function index() { $UsersModel = new UsersModel(); $business_id =session()->get('logged_user_business_id'); $branch_id =session()->get('logged_user_branch_id'); $users = $UsersModel->where('business_id',$business_id)->where('branch_id',$branch_id)->findAll(); $data['users']=$users; $roleModel = new RoleModel(); // Assuming $users is an array of user data foreach ($users as $value) { if ($value['isactive'] == 1) { // Call the method from the model to get the role name $roleName = $roleModel->getRoleNameById($value['role']); // Output the role name // echo $roleName; } } return view('user_list',['users' => $users, 'roleModel' => $roleModel]); } public function forgot_password() { $UsersModel = new UsersModel(); if($this->request->getmethod() == 'post') { $email = $this->request->getVar('email'); $staff_data = $UsersModel->where('email', $email)->find(); if ($staff_data) { $otp = rand(1000 , 9999); $MailHelper = new MailHelper(); $mail_send =$MailHelper->send_otp_email($this->request->getVar('email') , $otp ); $data['status'] = 'success'; $data['otp'] = $otp; echo json_encode($data); } else { $data['status'] = 'failed'; echo json_encode($data); } }else{ // print_r("11111111111111111111");die; return view('forgot_password.php'); } } public function verify_otp() { $UsersModel = new UsersModel(); if($this->request->getmethod() == 'post') { $otp = $this->request->getVar('otp'); $verify_otp = $this->request->getVar('verify_otp'); if ($otp == $verify_otp) { $email = $this->request->getVar('email'); $data = $UsersModel->where('email', $email)->find(); if ($data) { $this->session->setTempdata('user_id',$data[0]['user_id'],3); $this->session->setTempdata('email',$data[0]['email'],3); $this->session->setTempdata('mail_success', "OTP verified sucessfully",3); return view('reset_password.php'); } } else { $this->session->setTempdata('error', "You entered wrong OTP.Please retry",3); return view('forgot_password.php'); } } } public function change_password_forget() { $UsersModel = new UsersModel(); if($this->request->getmethod() == 'post') { $userData = $this->request->getVar(); $user_id = $this->request->getVar('user_id'); $userData['password'] = password_hash($userData['password'], PASSWORD_DEFAULT); $UsersModel->where('user_id', $user_id )->set($userData)->update(); $this->session->setTempdata('mail_success', "Password set sucessfully",3); return redirect()->to(base_url()); } } public function user_list($branch_id) { $UsersModel = new UsersModel(); $users = $UsersModel->where('branch_id',$branch_id)->findAll(); $data['users']=$users; $roleModel = new RoleModel(); // Assuming $users is an array of user data foreach ($users as $value) { if ($value['isactive'] == 1) { // Call the method from the model to get the role name $roleName = $roleModel->getRoleNameById($value['role']); // Output the role name // echo $roleName; } } return view('user_list_super_admin',['users' => $users, 'roleModel' => $roleModel, 'branch_id' => $branch_id]); } public function new_user($user_id) { $uri = $this->request->getUri(); // Get the query parameters $queryParams = $uri->getQuery(); if ($user_id === '0') { $BusinessModel=new BusinessModel(); $BranchModel=new BranchModel(); $business=$BusinessModel->findAll(); // print_r(session()->get());die; $business_select = $BusinessModel->where('business_id',session()->get('logged_user_business_id'))->findAll(); $branch_list = $BranchModel->where('branch_id',session()->get('logged_user_branch_id'))->findAll(); $rolemodel = new RoleModel(); $roles =$rolemodel->getRoles(); $data['page_name'] = "Add User"; $data['users'] = []; $data['business'] = $business_select; $data['branch'] = $branch_list; $data['roles'] = $roles; } else if ($user_id !== '0') { $UsersModel = new UsersModel(); $users=$UsersModel->getUserById($user_id); $BusinessModel=new BusinessModel(); $BranchModel=new BranchModel(); $business=$BusinessModel->findAll(); $business_select = $BusinessModel->where('business_id',session()->get('logged_user_business_id'))->findAll(); $branch = $BranchModel->where('branch_id',$users['branch_id'])->findAll(); $rolemodel = new RoleModel(); $roles =$rolemodel->getRoles(); $data['page_name'] = "Edit User"; $data['users']=$users; $data['branch'] = $branch; $data['business'] = $business_select; $data['roles'] = $roles; } $data['user_id'] = $user_id; return view('user_form',$data); } public function new_user_super_admin($branch_id) { $BusinessModel=new BusinessModel(); $BranchModel=new BranchModel(); $branch_list = $BranchModel->where('branch_id',$branch_id)->findAll(); // $business=$BusinessModel->findAll(); $business_select = $BusinessModel->where('business_id', $branch_list[0]['business_id'])->findAll(); $rolemodel = new RoleModel(); $roles =$rolemodel->getRoles(); $data['page_name'] = "Add User"; $data['users'] = []; $data['business'] = $business_select; $data['branch'] = $branch_list; $data['roles'] = $roles; // $data['user_id'] = $user_id; return view('user_form',$data); } public function edit_user_super_admin($user_id) { $UsersModel = new UsersModel(); $users=$UsersModel->getUserById($user_id); $BusinessModel=new BusinessModel(); $BranchModel=new BranchModel(); $business_select = $BusinessModel->where('business_id',$users['business_id'])->findAll(); $branch = $BranchModel->where('branch_id',$users['branch_id'])->findAll(); $rolemodel = new RoleModel(); $roles =$rolemodel->getRoles(); $data['page_name'] = "Edit User"; $data['users']=$users; $data['branch'] = $branch; $data['business'] = $business_select; $data['roles'] = $roles; $data['user_id'] = $user_id; return view('user_form',$data); } public function edit_account($user_id) { $roleModel = new RoleModel(); $businessModel = new BusinessModel(); $usersModel = new UsersModel(); $uri = $this->request->getUri(); // Get the query parameters $queryParams = $uri->getQuery(); $data = []; // Fetch roles once (used in both cases) $data['roles'] = $roleModel->getRoles(); $data['business'] = $businessModel->findAll(); if ($user_id === '0') { // New user $data['users'] = []; $data['role_name'] = ''; } else { // Existing user $users = $usersModel->getUserById($user_id); $data['users'] = $users; $branchModel = new BranchModel(); $data['branches'] = $branchModel->where('business_id', $users['business_id'])->findAll(); $role = $roleModel->where('role_id', $users['role'])->first(); $data['role_name'] = $role['roles'] ?? ''; } $data['user_id'] = $user_id; return view('edit_account_form',$data); } public function add_user() { // Load UsersModel $UsersModel = new UsersModel(); // Get form data $data = [ 'name' => $this->request->getPost('name'), 'email' => $this->request->getPost('email'), 'mobile_no' => $this->request->getPost('mobile'), 'role' => $this->request->getPost('role'), 'business_id' => $this->request->getPost('business'), 'branch_id' => $this->request->getPost('branch'), 'isactive' => 1 // Assuming this is a default value or handled separately ]; $user_id = trim($this->request->getPost('user_id')); // get and trim if (empty($user_id) || $user_id == 0) { // Hash the password $password = $this->request->getPost('password'); $hashedPassword = password_hash($password, PASSWORD_DEFAULT); // Use PASSWORD_DEFAULT for bcrypt hashing // Add hashed password to the data array $data['password'] = $hashedPassword; } // Get user_id from the form // Check if user_id is provided if (!empty($user_id) && $user_id != 0) { // Update existing user $UsersModel->update($user_id, $data); } else { // Insert new user $UsersModel->insert($data); } // Redirect to user listing page or wherever appropriate return redirect()->to('index'); // Change '/users' to your desired redirect URL } public function add_account() { // Load UsersModel $UsersModel = new UsersModel(); // Get form data $data = [ 'name' => $this->request->getPost('name'), 'email' => $this->request->getPost('email'), 'mobile_no' => $this->request->getPost('mobile'), 'role' => $this->request->getPost('role'), 'business_id' => $this->request->getPost('business'), 'branch_id' => $this->request->getPost('branch'), 'isactive' => 1 // Assuming this is a default value or handled separately ]; // Hash the password $password = $this->request->getPost('password'); $hashedPassword = password_hash($password, PASSWORD_DEFAULT); // Use PASSWORD_DEFAULT for bcrypt hashing // Add hashed password to the data array $data['password'] = $hashedPassword; // Get user_id from the form $user_id = $this->request->getPost('user_id'); // Check if user_id is provided if (!empty($user_id)) { // Update existing user $UsersModel->update($user_id, $data); } else { // Insert new user $UsersModel->insert($data); } // Redirect to user listing page or wherever appropriate return redirect()->to('dashboard'); // Change '/users' to your desired redirect URL } public function delete_user($user_id) { $model = new UsersModel(); $where = ['user_id' => $user_id, 'isactive' => 1]; // Assuming 'isactive' is a column in your database $existingUser = $model->where($where)->first(); if ($existingUser) { $data['isactive'] = 0; if ($model->update($user_id, $data)) { session()->setFlashdata('success', 'Deleted successfully.'); $this->logger->info("Users: has been Inactivated successfully. Inactivated ID = ".$user_id); } } // Redirect to the index function return redirect()->to('index'); } public function get_branch() { // Check if business ID is provided via POST request $business_id = $this->request->getPost('business_id'); // Initialize an array to store the branch data $branch_data = []; // Check if business ID is valid and not empty if (!empty($business_id)) { // Load the BranchModel (assuming you have a BranchModel defined) $branchModel = new BranchModel(); // Query the database to retrieve branches associated with the selected business ID $branches = $branchModel->getBranchesByBusinessId($business_id); // Check if branches are found if (!empty($branches)) { // Iterate through branches and store branch ID and name in the branch_data array foreach ($branches as $branch) { $branch_data[] = [ 'branch_id' => $branch['branch_id'], 'branch_name' => $branch['branch_name'] ]; } } } // Return the branch data as a JSON response return $this->response->setJSON($branch_data); } public function edit_mail($user_id){ $UsersModel = new UsersModel(); $data = $this->request->getPost(); $UsersModel->update($user_id, $data); $user_mail =$UsersModel->where('user_id',$user_id)->first(); return json_encode($user_mail); } public function change_password($user_id){ $old_password =$this->request->getPost('old_password'); $new_password =$this->request->getPost('new_password'); $confirm_password =$this->request->getPost('confirm_password'); $type = $this->request->getPost('type') ?? 'change'; $UsersModel = new UsersModel(); if ($type !== 'reset') { $user = $UsersModel->where('user_id',$user_id)->first(); $data_old_password = $user['password']; if (!password_verify($old_password, $data_old_password)) { return $this->response->setJSON([ 'status' => 'error', 'message' => 'Old Password does not match.' ]); } } if($new_password != $confirm_password){ $response = array( 'status' => 'error', 'message' => 'New Password And Confirm Password Not Match...' ); return json_encode($response); } $hashedPassword = password_hash($new_password, PASSWORD_DEFAULT); $data['password'] = $hashedPassword; if ($UsersModel->update($user_id, $data)) { $response = array( 'status' => 'success', 'message' => 'Password Change Succuessfully' ); return json_encode($response); } } public function status_user() { try { $user_id = $this->request->getPost('user_id'); $isactive = $this->request->getPost('isactive'); $UsersModel = new UsersModel(); $data = [ 'isactive' => $isactive ]; $updated = $UsersModel->update($user_id, $data); if ($updated) { $result = $data; return $this->respond(['status' => 'success','code' => 200],200); } else { $result = "No Match's"; return $this->respond(['status' => 'failed','code' => 404],404); } } catch (\Exception $exception) { return $this->respond(['status' => 'failed','code' => 500,'data' => $exception],500); } } }