529 lines
17 KiB
PHP
Executable File
529 lines
17 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use App\Models\UsersModel;
|
|
use App\Models\RoleModel;
|
|
use App\Models\BusinessModel;
|
|
use App\Models\BranchModel;
|
|
use App\Models\JobcardProductModel;
|
|
use App\Models\JobcardModel;
|
|
use App\Models\BikemodelsModel;
|
|
use App\Models\BikemakeModel;
|
|
|
|
use App\Helpers\MailHelper;
|
|
use CodeIgniter\API\ResponseTrait;
|
|
|
|
|
|
class Users extends BaseController
|
|
{
|
|
|
|
public $session;
|
|
|
|
use ResponseTrait;
|
|
|
|
public function __construct()
|
|
{
|
|
|
|
$this->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'] .'<br>';
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
$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);
|
|
}
|
|
}
|
|
} |