dbfdg
can('manage user')) {
if (\Auth::user()->type == 'super admin') {
$users = User::where('created_by', '=', $user->creatorId())->where('type', '=', 'company')->with(['currentPlan'])->get();
} else {
$users = User::where('created_by', '=', $user->creatorId())->where('type', '!=', 'client')->with(['currentPlan'])->get();
}
return view('user.index')->with('users', $users);
} else {
return redirect()->back();
}
}
public function create()
{
$customFields = CustomField::where('created_by', '=', \Auth::user()->creatorId())->where('module', '=', 'user')->get();
$user = \Auth::user();
$roles = Role::where('created_by', '=', $user->creatorId())->where('name', '!=', 'client')->get()->pluck('name', 'id');
if (\Auth::user()->can('create user')) {
return view('user.create', compact('roles', 'customFields'));
} else {
return redirect()->back();
}
}
public function store(Request $request)
{
if (\Auth::user()->can('create user')) {
$default_language = DB::table('settings')->select('value')->where('name', 'default_language')->where('created_by', '=', \Auth::user()->creatorId())->first();
$objUser = \Auth::user()->creatorId();
if (\Auth::user()->type == 'super admin') {
$validator = \Validator::make(
$request->all(), [
'name' => 'required|max:120',
'email' => 'required|email|unique:users',
]
);
if ($validator->fails()) {
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
$enableLogin = 0;
if (!empty($request->password_switch) && $request->password_switch == 'on') {
$enableLogin = 1;
$validator = \Validator::make(
$request->all(), ['password' => 'required|min:6']
);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first());
}
}
$userpassword = $request->input('password');
$settings = Utility::settings();
do {
$code = rand(100000, 999999);
} while (User::where('referral_code', $code)->exists());
$user = new User();
$user['name'] = $request->name;
$user['email'] = $request->email;
$psw = $request->password;
$user['password'] = !empty($userpassword)?\Hash::make($userpassword) : null;
$user['type'] = 'company';
$user['default_pipeline'] = 1;
$user['plan'] = 1;
$user['lang'] = !empty($default_language) ? $default_language->value : 'en';
$user['referral_code'] = $code;
$user['created_by'] = \Auth::user()->creatorId();
$user['plan'] = Plan::first()->id;
if ($settings['email_verification'] == 'on') {
$user['email_verified_at'] = null;
} else {
$user['email_verified_at'] = date('Y-m-d H:i:s');
}
$user['is_enable_login'] = $enableLogin;
$user->save();
$role_r = Role::findByName('company');
$user->assignRole($role_r);
// $user->userDefaultData();
$user->userDefaultDataRegister($user->id);
$user->userWarehouseRegister($user->id);
//default bank account for new company
$user->userDefaultBankAccount($user->id);
Utility::chartOfAccountTypeData($user->id);
// Utility::chartOfAccountData($user);
// default chart of account for new company
Utility::chartOfAccountData1($user->id);
Utility::pipeline_lead_deal_Stage($user->id);
Utility::project_task_stages($user->id);
Utility::labels($user->id);
Utility::sources($user->id);
Utility::jobStage($user->id);
GenerateOfferLetter::defaultOfferLetterRegister($user->id);
ExperienceCertificate::defaultExpCertificatRegister($user->id);
JoiningLetter::defaultJoiningLetterRegister($user->id);
NOC::defaultNocCertificateRegister($user->id);
} else {
$validator = \Validator::make(
$request->all(), [
'name' => 'required|max:120',
'email' => 'required|email|unique:users',
// 'email' => 'required|email|unique:users,email,NULL,id,created_by,' . $objUser,
'role' => 'required',
]
);
if ($validator->fails()) {
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
$enableLogin = 0;
if (!empty($request->password_switch) && $request->password_switch == 'on') {
$enableLogin = 1;
$validator = \Validator::make(
$request->all(), ['password' => 'required|min:6']
);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first());
}
}
$objUser = User::find($objUser);
$user = User::find(\Auth::user()->created_by);
$total_user = $objUser->countUsers();
$plan = Plan::find($objUser->plan);
$userpassword = $request->input('password');
if ($total_user < $plan->max_users || $plan->max_users == -1) {
$role_r = Role::findById($request->role);
$psw = $request->password;
$request['password'] = !empty($userpassword)?\Hash::make($userpassword) : null;
$request['type'] = $role_r->name;
$request['lang'] = !empty($default_language) ? $default_language->value : 'en';
$request['created_by'] = \Auth::user()->creatorId();
$request['email_verified_at'] = date('Y-m-d H:i:s');
$request['is_enable_login'] = $enableLogin;
$user = User::create($request->all());
$user->assignRole($role_r);
if ($request['type'] != 'client') {
\App\Models\Utility::employeeDetails($user->id, \Auth::user()->creatorId());
}
} else {
return redirect()->back()->with('error', __('Your user limit is over, Please upgrade plan.'));
}
}
// Send Email
$setings = Utility::settings();
if ($setings['new_user'] == 1) {
$user->password = $psw;
$user->type = $role_r->name;
$user->userDefaultDataRegister($user->id);
$userArr = [
'email' => $user->email,
'password' => $user->password,
];
$resp = Utility::sendEmailTemplate('new_user', [$user->id => $user->email], $userArr);
if (\Auth::user()->type == 'super admin') {
return redirect()->route('users.index')->with('success', __('Company successfully created.') . ((!empty($resp) && $resp['is_success'] == false && !empty($resp['error'])) ? '
' . $resp['error'] . '' : ''));
} else {
return redirect()->route('users.index')->with('success', __('User successfully created.') . ((!empty($resp) && $resp['is_success'] == false && !empty($resp['error'])) ? '
' . $resp['error'] . '' : ''));
}
}
if (\Auth::user()->type == 'super admin') {
return redirect()->route('users.index')->with('success', __('Company successfully created.'));
} else {
return redirect()->route('users.index')->with('success', __('User successfully created.'));
}
} else {
return redirect()->back();
}
}
public function show()
{
return redirect()->route('user.index');
}
public function edit($id)
{
$user = \Auth::user();
$roles = Role::where('created_by', '=', $user->creatorId())->where('name', '!=', 'client')->get()->pluck('name', 'id');
if (\Auth::user()->can('edit user')) {
$user = User::findOrFail($id);
$user->customField = CustomField::getData($user, 'user');
$customFields = CustomField::where('created_by', '=', \Auth::user()->creatorId())->where('module', '=', 'user')->get();
return view('user.edit', compact('user', 'roles', 'customFields'));
} else {
return redirect()->back();
}
}
public function update(Request $request, $id)
{
if (\Auth::user()->can('edit user')) {
if (\Auth::user()->type == 'super admin') {
$user = User::findOrFail($id);
$validator = \Validator::make(
$request->all(), [
'name' => 'required|max:120',
'email' => 'required|email|unique:users,email,' . $id,
]
);
if ($validator->fails()) {
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
// $role = Role::findById($request->role);
$role = Role::findByName('company');
$input = $request->all();
$input['type'] = $role->name;
$user->fill($input)->save();
CustomField::saveData($user, $request->customField);
$roles[] = $role->id;
$user->roles()->sync($roles);
return redirect()->route('users.index')->with(
'success', 'company successfully updated.'
);
} else {
$user = User::findOrFail($id);
$validator = \Validator::make(
$request->all(), [
'name' => 'required|max:120',
'email' => 'required|email|unique:users,email,' . $id,
// 'email' => 'required|email|unique:users,email,' . $id . ',id,created_by,' . \Auth::user()->creatorId(),
'role' => 'required',
]
);
if ($validator->fails()) {
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
$role = Role::findById($request->role);
$input = $request->all();
$input['type'] = $role->name;
$user->fill($input)->save();
Utility::employeeDetailsUpdate($user->id, \Auth::user()->creatorId());
CustomField::saveData($user, $request->customField);
$roles[] = $request->role;
$user->roles()->sync($roles);
return redirect()->route('users.index')->with(
'success', 'User successfully updated.'
);
}
} else {
return redirect()->back();
}
}
public function destroy($id)
{
if (\Auth::user()->can('delete user')) {
if ($id == 2) {
return redirect()->back()->with('error', __('You can not delete By default Company'));
}
$user = User::find($id);
if ($user) {
if (\Auth::user()->type == 'super admin') {
// $referralSetting = ReferralSetting::where('created_by' , 1)->first();
// $users = ReferralTransaction::where('company_id' , $id)->first();
// $plan = Plan::find($users->plan_id);
// Utility::commissionAmount($plan , $referralSetting , $users->referral_code , 'minus');
$transaction = ReferralTransaction::where('company_id' , $id)->delete();
$users = User::where('created_by', $id)->delete();
$employee = Employee::where('created_by', $id)->delete();
$user->delete();
return redirect()->back()->with('success', __('Company Successfully deleted'));
}
if (\Auth::user()->type == 'company') {
$employee = Employee::where(['user_id' => $user->id])->delete();
if ($employee) {
$delete_user = User::where(['id' => $user->id])->delete();
if ($delete_user) {
return redirect()->route('users.index')->with('success', __('User successfully deleted .'));
} else {
return redirect()->back()->with('error', __('Something is wrong.'));
}
} else {
return redirect()->back()->with('error', __('Something is wrong.'));
}
}
return redirect()->route('users.index')->with('success', __('User successfully deleted .'));
} else {
return redirect()->back()->with('error', __('Something is wrong.'));
}
} else {
return redirect()->back();
}
}
public function profile()
{
$userDetail = \Auth::user();
$userDetail->customField = CustomField::getData($userDetail, 'user');
$customFields = CustomField::where('created_by', '=', \Auth::user()->creatorId())->where('module', '=', 'user')->get();
return view('user.profile', compact('userDetail', 'customFields'));
}
public function editprofile(Request $request)
{
$userDetail = \Auth::user();
$user = User::findOrFail($userDetail['id']);
$validator = \Validator::make(
$request->all(), [
'name' => 'required|max:120',
'email' => 'required|email|unique:users,email,' . $userDetail['id'],
]
);
if ($validator->fails()) {
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
if ($request->hasFile('profile')) {
$filenameWithExt = $request->file('profile')->getClientOriginalName();
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
$extension = $request->file('profile')->getClientOriginalExtension();
$fileNameToStore = $filename . '_' . time() . '.' . $extension;
$settings = Utility::getStorageSetting();
if ($settings['storage_setting'] == 'local') {
$dir = 'uploads/avatar/';
} else {
$dir = 'uploads/avatar';
}
$image_path = $dir . $userDetail['avatar'];
if (File::exists($image_path)) {
File::delete($image_path);
}
$url = '';
$path = Utility::upload_file($request, 'profile', $fileNameToStore, $dir, []);
if ($path['flag'] == 1) {
$url = $path['url'];
} else {
return redirect()->route('profile', \Auth::user()->id)->with('error', __($path['msg']));
}
}
if (!empty($request->profile)) {
$user['avatar'] = $fileNameToStore;
}
$user['name'] = $request['name'];
$user['email'] = $request['email'];
$user->save();
CustomField::saveData($user, $request->customField);
return redirect()->route('profile', $user)->with(
'success', 'Profile successfully updated.'
);
}
public function updatePassword(Request $request)
{
if (Auth::Check()) {
$validator = \Validator::make(
$request->all(), [
'old_password' => 'required',
'password' => 'required|min:6',
'password_confirmation' => 'required|same:password',
]
);
if ($validator->fails()) {
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
$objUser = Auth::user();
$request_data = $request->All();
$current_password = $objUser->password;
if (Hash::check($request_data['old_password'], $current_password)) {
$user_id = Auth::User()->id;
$obj_user = User::find($user_id);
$obj_user->password = Hash::make($request_data['password']);
$obj_user->save();
return redirect()->route('profile', $objUser->id)->with('success', __('Password successfully updated.'));
} else {
return redirect()->route('profile', $objUser->id)->with('error', __('Please enter correct current password.'));
}
} else {
return redirect()->route('profile', \Auth::user()->id)->with('error', __('Something is wrong.'));
}
}
// User To do module
public function todo_store(Request $request)
{
$request->validate(
['title' => 'required|max:120']
);
$post = $request->all();
$post['user_id'] = Auth::user()->id;
$todo = UserToDo::create($post);
$todo->updateUrl = route(
'todo.update', [
$todo->id,
]
);
$todo->deleteUrl = route(
'todo.destroy', [
$todo->id,
]
);
return $todo->toJson();
}
public function todo_update($todo_id)
{
$user_todo = UserToDo::find($todo_id);
if ($user_todo->is_complete == 0) {
$user_todo->is_complete = 1;
} else {
$user_todo->is_complete = 0;
}
$user_todo->save();
return $user_todo->toJson();
}
public function todo_destroy($id)
{
$todo = UserToDo::find($id);
$todo->delete();
return true;
}
// change mode 'dark or light'
public function changeMode()
{
$usr = \Auth::user();
if ($usr->mode == 'light') {
$usr->mode = 'dark';
$usr->dark_mode = 1;
} else {
$usr->mode = 'light';
$usr->dark_mode = 0;
}
$usr->save();
return redirect()->back();
}
public function upgradePlan($user_id)
{
$user = User::find($user_id);
$plans = Plan::get();
$admin_payment_setting = Utility::getAdminPaymentSetting();
return view('user.plan', compact('user', 'plans', 'admin_payment_setting'));
}
public function activePlan($user_id, $plan_id)
{
$plan = Plan::find($plan_id);
if($plan->is_disable == 0)
{
return redirect()->back()->with('error', __('You are unable to upgrade this plan because it is disabled.'));
}
$user = User::find($user_id);
$assignPlan = $user->assignPlan($plan_id);
if ($assignPlan['is_success'] == true && !empty($plan)) {
$orderID = strtoupper(str_replace('.', '', uniqid('', true)));
Order::create(
[
'order_id' => $orderID,
'name' => null,
'card_number' => null,
'card_exp_month' => null,
'card_exp_year' => null,
'plan_name' => $plan->name,
'plan_id' => $plan->id,
'price' => $plan->price,
'price_currency' => isset(\Auth::user()->planPrice()['currency'])?\Auth::user()->planPrice()['currency'] : '',
'txn_id' => '',
'payment_status' => 'success',
'receipt' => null,
'user_id' => $user->id,
]
);
return redirect()->back()->with('success', 'Plan successfully upgraded.');
} else {
return redirect()->back()->with('error', 'Plan fail to upgrade.');
}
}
public function userPassword($id)
{
$eId = \Crypt::decrypt($id);
$user = User::find($eId);
return view('user.reset', compact('user'));
}
public function userPasswordReset(Request $request, $id)
{
$validator = \Validator::make(
$request->all(), [
'password' => 'required|confirmed|same:password_confirmation',
]
);
if ($validator->fails()) {
$messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first());
}
$user = User::where('id', $id)->first();
$user->forceFill([
'password' => Hash::make($request->password),
'is_enable_login' => 1,
])->save();
if(\Auth::user()->type == 'super admin')
{
return redirect()->route('users.index')->with(
'success', 'Company Password successfully updated.'
);
}
else
{
return redirect()->route('users.index')->with(
'success', 'User Password successfully updated.'
);
}
}
//start for user login details
public function userLog(Request $request)
{
$filteruser = User::where('created_by', \Auth::user()->creatorId())->get()->pluck('name', 'id');
$filteruser->prepend('Select User', '');
$query = DB::table('login_details')
->join('users', 'login_details.user_id', '=', 'users.id')
->select(DB::raw('login_details.*, users.id as user_id , users.name as user_name , users.email as user_email ,users.type as user_type'))
->where(['login_details.created_by' => \Auth::user()->id]);
if (!empty($request->month)) {
$query->whereMonth('date', date('m', strtotime($request->month)));
$query->whereYear('date', date('Y', strtotime($request->month)));
} else {
$query->whereMonth('date', date('m'));
$query->whereYear('date', date('Y'));
}
if (!empty($request->users)) {
$query->where('user_id', '=', $request->users);
}
$userdetails = $query->get();
$last_login_details = LoginDetail::where('created_by', \Auth::user()->creatorId())->get();
return view('user.userlog', compact('userdetails', 'last_login_details', 'filteruser'));
}
public function userLogView($id)
{
$users = LoginDetail::find($id);
return view('user.userlogview', compact('users'));
}
public function userLogDestroy($id)
{
$users = LoginDetail::where('user_id', $id)->delete();
return redirect()->back()->with('success', 'User successfully deleted.');
}
public function LoginWithCompany(Request $request, User $user, $id)
{
$user = User::find($id);
if ($user && auth()->check()) {
Impersonate::take($request->user(), $user);
return redirect('/account-dashboard');
}
}
public function ExitCompany(Request $request)
{
\Auth::user()->leaveImpersonation($request->user());
return redirect('/dashboard');
}
public function companyInfo(Request $request, $id)
{
$user = User::find($request->id);
$status = $user->delete_status;
$userData = User::where('created_by', $id)->where('type', '!=', 'client')->selectRaw('COUNT(*) as total_users, SUM(CASE WHEN is_disable = 0 THEN 1 ELSE 0 END) as disable_users, SUM(CASE WHEN is_disable = 1 THEN 1 ELSE 0 END) as active_users')->first();
return view('user.company_info', compact('userData', 'id', 'status'));
}
public function userUnable(Request $request)
{
User::where('id', $request->id)->update(['is_disable' => $request->is_disable]);
$userData = User::where('created_by', $request->company_id)->where('type', '!=', 'client')->selectRaw('COUNT(*) as total_users, SUM(CASE WHEN is_disable = 0 THEN 1 ELSE 0 END) as disable_users, SUM(CASE WHEN is_disable = 1 THEN 1 ELSE 0 END) as active_users')->first();
if ($request->is_disable == 1) {
return response()->json(['success' => __('User successfully unable.'), 'userData' => $userData]);
} else {
return response()->json(['success' => __('User successfully disable.'), 'userData' => $userData]);
}
}
public function LoginManage($id)
{
$eId = \Crypt::decrypt($id);
$user = User::find($eId);
$authUser = \Auth::user();
if ($user->is_enable_login == 1) {
$user->is_enable_login = 0;
$user->save();
if($authUser->type == 'super admin')
{
return redirect()->back()->with('success', __('Company login disable successfully.'));
}
else
{
return redirect()->back()->with('success', __('User login disable successfully.'));
}
} else {
$user->is_enable_login = 1;
$user->save();
if($authUser->type == 'super admin')
{
return redirect()->back()->with('success', __('Company login enable successfully.'));
}
else
{
return redirect()->back()->with('success', __('User login enable successfully.'));
}
}
}
}