Файловый менеджер - Редактировать - /home/clickysoft/public_html/rgr.clickysoft.net/app/Http/Controllers/DashboardController1.php
Назад
<?php namespace App\Http\Controllers; use App\Models\InvitationForm; use App\Models\JobTitle; use App\Models\OpeningHour; use App\Models\Practice; use App\Models\PracticeSpeciality; use App\Models\ReferralPatient; use App\Models\Speciality; use App\Models\User; use App\Models\UserDetail; use Illuminate\Http\Request; use Illuminate\Support\Str; use Illuminate\Validation\Rule; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Validator; use DataTables; use Illuminate\Support\Facades\Password; use Session; class DashboardController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('auth')->except('invitationAccept', 'invitationAcceptPost'); } /** * Show the application dashboard. * * @return \Illuminate\Contracts\Support\Renderable */ public function index() { if (Auth::user()->is_admin == 1) { $userRegisters = User::where('approved', 0)->count(); $referrals = ReferralPatient::All()->count(); $practices = Practice::All(); $specialities = Speciality::where('status', 'Active')->get(); return view('admin.dashboard', compact('userRegisters', 'referrals', 'practices', 'specialities')); } else { return redirect('/'); } } public function setting() { $user = Auth::user(); $userDetail = UserDetail::getByUserId($user->id); return view('admin.setting', compact('user', 'userDetail')); } public function profileUpload(Request $request) { $data = $request->all(); $request->validate([ 'file' => 'mimes:png,jpg,jpeg', ]); $file_name = $request->file('file'); $fileName = time() . rand(0, 1000); $fileName = $fileName . '.' . $file_name->getClientOriginalExtension(); $file_name->move(public_path('profiles/users'), $fileName); $userDetail = UserDetail::getByUserId(Auth::user()->id); if ($userDetail->profile_name != NULL && file_exists(public_path('profiles/users/' . $userDetail->profile_name))) { if ($userDetail->profile_name == 'avatar1.png') { } else { unlink(public_path('profiles/users/' . $userDetail->profile_name)); } } $userDetail->profile_name = $fileName; $userDetail->update(); return config('global.users_upload') . $fileName; } public function profileUpdate(Request $request) { $data = $request->all(); // var_dump($data); // exit; if (Auth::user()->is_admin == 1) { $request->validate([ 'first_name' => ['required', 'string', 'max:255'], 'last_name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email,' . Auth::user()->id,], 'phone' => ['required', 'numeric'], ]); } else { $request->validate([ 'first_name' => ['required', 'string', 'max:255'], 'last_name' => ['required', 'string', 'max:255'], 'address' => ['required', 'string', 'max:255'], 'city' => ['required', 'string', 'max:255'], 'state' => ['required', 'string', 'max:255'], 'phone' => ['required', 'numeric'], ]); } $user = User::find(Auth::user()->id); $user->first_name = $data['first_name']; $user->last_name = $data['last_name']; if (Auth::user()->is_admin == 1) { $user->email = $data['email']; } if ($data['password'] != NULL) { if ($data['password'] == $data['password_confirmation']) { $user->password = Hash::make($data['password']); } else { if (Auth::user()->is_admin == 1) { return redirect('/admin/setting')->with('danger', 'Password Confirmation does not match'); } else { return redirect('/profile')->with('danger', 'Password Confirmation does not match'); } } } $user->update(); $userDetail = UserDetail::getByUserId($user->id); $userDetail->phone = $data['phone']; if (Auth::user()->is_admin == 1) { $userDetail->update(); return redirect('/admin/setting')->with('success', 'Profile Update Successfully'); } else { $userDetail->address = $data['address']; $userDetail->address_2 = $data['address_2']; $userDetail->city = $data['city']; $userDetail->state = $data['state']; $userDetail->zip_code = $data['zip_code']; $userDetail->update(); return redirect('/profile')->with('success', 'Profile Update Successfully'); } } public function emailResend() { $token = Str::random(40); $user = User::find(Auth::user()->id); $user->remember_token = $token; $user->update(); // exit; $data = array("id" => $user->id, "token" => $user->remember_token); $subject = "Verify Your Email for " . env('APP_NAME'); Mail::send("emails.confirm", $data, function ($message) use ($user, $subject) { $message->to($user->email)->subject($subject); }); Session::flush(); // Auth::logout(); return redirect('/login')->with('success', 'A fresh verification link has been sent to your email address.'); } public function users(Request $request) { if ($request->ajax()) { $data = User::latest()->where('is_admin', '<>', 1)->get(); return Datatables::of($data) ->addIndexColumn() ->addColumn('practice_id', function ($row) { $practice = Practice::find($row['practice_id']); return $practice->name; }) ->addColumn('name', function ($row) { return $row['first_name'] . " " . $row['last_name']; }) ->addColumn('email', function ($row) { return $row['email']; }) ->addColumn('job_title', function ($row) { $userDetail = UserDetail::getByUserId($row['id']); $job = JobTitle::find($userDetail->job_id); return $job->title; }) ->addColumn('status', function ($row) { return $row['approved'] == 1 ? '<span class="badge badge-success" >Approved</span>' : '<span class="badge badge-danger" >Rejected</span>'; }) ->addColumn('action', function ($row) { if ($row['approved'] == 1) { $view = '<a href="#' . $row['id'] . '" id="' . $row['id'] . '" class="btn btn-danger reject">Decline</a>'; } else { $view = '<a href="#' . $row['id'] . '" id="' . $row['id'] . '" class="btn btn-success accept ">Accept</a>'; } return $view; }) ->rawColumns(['job_title', 'practice_id', 'status', 'name', 'email', 'action']) ->make(true); } $users = User::latest()->paginate(5); return view('admin.users', compact('users')) ->with('i', (request()->input('page', 1) - 1) * 5); } public function invitationForm() { $practices = Practice::All(); $jobTitles = JobTitle::All(); return view('invitation-form', compact('practices', 'jobTitles')); } public function invitationList(Request $request) { if ($request->ajax()) { $data = InvitationForm::latest()->get(); return Datatables::of($data) ->addIndexColumn() ->addColumn('practice_id', function ($row) { $practice = Practice::find($row['practice_id']); return $practice->name; }) ->addColumn('job_title', function ($row) { $job = JobTitle::find($row['job_title']); return $job->title; }) ->addColumn('status', function ($row) { return $row['invite'] == 1 ? 'Accepted' : 'Pending'; }) ->rawColumns(['job_title', 'practice_id', 'status']) ->make(true); } $invities = InvitationForm::latest()->paginate(5); return view('invitation-list', compact('invities')) ->with('i', (request()->input('page', 1) - 1) * 5); } public function usersRequestList(Request $request) { if ($request->ajax()) { $data = User::latest()->where('is_admin', '0')->where('approved', '0')->get(); return Datatables::of($data) ->addIndexColumn() ->addColumn('practice_id', function ($row) { $practice = Practice::find($row['practice_id']); return $practice->name; }) ->addColumn('name', function ($row) { return $row['first_name'] . " " . $row['last_name']; }) ->addColumn('email', function ($row) { return $row['email']; }) ->addColumn('job_title', function ($row) { $userDetail = UserDetail::getByUserId($row['id']); $job = JobTitle::find($userDetail->job_id); return $job->title; }) ->addColumn('status', function ($row) { return $row['remember_token'] == null ? 'Email Verified' : 'Email not Verified'; }) ->addColumn('action', function ($row) { $view = '<a href="/admin/user/request/' . $row['id'] . '/accept" class="btn btn-success mr-2">Accept</a>'; $view .= '<a href="/admin/user/request/' . $row['id'] . '/reject" class="btn btn-danger">Decline</a>'; return $view; }) ->rawColumns(['job_title', 'practice_id', 'status', 'name', 'email', 'action']) ->make(true); } $users = User::latest()->where('is_admin', '0')->where('approved', '0')->paginate(5); return view('admin.users-request-list', compact('users')) ->with('i', (request()->input('page', 1) - 1) * 5); } public function invitationFormPost(Request $request) { $data = $request->all(); $request->validate([ 'practice_id' => 'required', 'email' => 'required', 'job_title' => 'required' ]); $user = User::where('email', $data['email'])->first(); if (!empty($user)) { return redirect('/admin/invitation-form')->with('danger', 'This User Already Registered'); } $invitationForm = InvitationForm::where('email', $data['email'])->first(); if (!empty($invitationForm)) { $token = Str::random(40); $invitationForm->token = $token; $invitationForm->update(); $practice = Practice::find($data['practice_id']); $data = array("email" => $invitationForm->email, "token" => $token); $subject = "Invitation from " . env('APP_NAME'); Mail::send("emails.invitation", $data, function ($message) use ($invitationForm, $subject) { $message->to($invitationForm->email, $invitationForm->email)->subject($subject); }); return redirect('/admin/invitation-list')->with('success', 'Invite has been sent successfully.'); } $token = Str::random(40); $invitationForm = new InvitationForm; $invitationForm->practice_id = $data['practice_id']; $invitationForm->email = $data['email']; $invitationForm->job_title = $data['job_title']; $invitationForm->token = $token; $invitationForm->invite = 0; $invitationForm->save(); $practice = Practice::find($data['practice_id']); $data = array("email" => $invitationForm->email, "token" => $token); $subject = "Invitation from " . env('APP_NAME'); Mail::send("emails.invitation", $data, function ($message) use ($invitationForm, $subject) { $message->to($invitationForm->email, $invitationForm->email)->subject($subject); }); return redirect('/admin/invitation-list')->with('success', 'Invite has been sent successfully.'); } public function referNow($id) { $user = Auth::user(); if (Auth::user()->is_admin == 1) { return redirect('/admin'); } $userDetail = UserDetail::getByUserId(Auth::user()->id); $jobTitle = JobTitle::find($userDetail->job_id); $practice = Practice::find($id); if (Auth::user()->practice_id == $practice->id) { return redirect('/'); } $practiceUser = Practice::find(Auth::user()->practice_id); $treatmentIds = PracticeSpeciality::getByPracticeId($practice->id); $treatmentsAll = ''; foreach ($treatmentIds as $treatmentId) { $treatmentsAll .= $treatmentId->speciality_id . " ,"; } $treatmentsAll = rtrim($treatmentsAll, ' ,'); $treatments = Speciality::whereRaw('id IN (' . $treatmentsAll . ')')->get(); return view('refer-now', compact('user', 'userDetail', 'jobTitle', 'practice', 'practiceUser', 'treatments')); } public function referNowPost(Request $request) { $data = $request->all(); $request->validate([ 'first_name' => 'required', 'last_name' => 'required', 'date_of_birth' => 'required', 'phone' => 'required', 'address' => 'required', 'email' => 'required', 'treatment_type' => 'required', 'referral_notes' => 'required', 'medical_history' => 'required', 'to_practice' => 'required', 'file_name.*' => 'mimes:png,txt,jpg,jpeg,gif,doc,docx,pdf', ]); $files = ""; if ($request->hasfile('file_name')) { $totalfiles = count($request->file('file_name')); $totalfiles = $totalfiles - 1; foreach ($request->file('file_name') as $key => $file_name) { $fileName = time() . rand(0, 1000); $fileName = $fileName . '.' . $file_name->getClientOriginalExtension(); $file_name->move(public_path('referral-documents'), $fileName); $files .= ($totalfiles == $key) ? $fileName : $fileName . " ,"; } $files = explode(' ,', $files); } else { $files = ''; } $referralPatient = new ReferralPatient; $referralPatient->first_name = $data['first_name']; $referralPatient->last_name = $data['last_name']; $referralPatient->date_of_birth = $data['date_of_birth']; $referralPatient->phone = $data['phone']; $referralPatient->address = $data['address']; $referralPatient->email = $data['email']; $referralPatient->treatment_type = $data['treatment_type']; $referralPatient->referral_notes = $data['referral_notes']; $referralPatient->medical_history = $data['medical_history']; $referralPatient->to_practice_id = $data['to_practice']; $referralPatient->from_practice_id = Auth::user()->practice_id; $referralPatient->user_id = Auth::user()->id; $referralPatient->file_name = $files; $referralPatient->save(); $emails = []; $toPracticeUsers = User::where('practice_id', $data['to_practice'])->pluck('id')->toArray(); $fromPracticeUsers = User::where('practice_id', Auth::user()->practice_id)->pluck('id')->toArray(); $allUsers = array_merge($fromPracticeUsers, $toPracticeUsers); $userDetails = UserDetail::whereIn('job_id', [1, 2, 5])->whereIn('user_id', $allUsers)->pluck('user_id')->toArray(); $emailUsers = User::whereIn('id', $userDetails)->pluck('email')->toArray(); $adminEmail = User::where('is_admin', 1)->first(); $emailUsers[count($emailUsers)] = $adminEmail->email; $patientEmail = $data['email']; $to_practice = Practice::find($data['to_practice']); $from_practice_id = Practice::find(Auth::user()->practice_id); $treatment = Speciality::find($data['treatment_type']); $subject = $from_practice_id->name . " to " . $to_practice->name . " Patients Referred"; $data = [ 'name' => $data['first_name'] . " " . $data['last_name'], 'date_of_birth' => $data['date_of_birth'], 'phone' => $data['phone'], 'address' => $data['address'], 'email' => $data['email'], 'referral_notes' => $data['referral_notes'], 'medical_history' => $data['medical_history'], 'treatment' => $treatment->title, 'toPractice' => $to_practice->name, 'formPractice' => $from_practice_id->name, 'subject' => $subject, 'files' => $files, ]; Mail::send("emails.referral", $data, function ($message) use ($emailUsers, $patientEmail, $subject, $files) { $message->to($patientEmail)->bcc($emailUsers)->subject($subject); if (isset($files) && $files <> '') { foreach ($files as $file) { $message->attach(public_path('referral-documents/' . $file)); } } }); return redirect('/thank-you'); } public function userRequest($user_id, $type) { $user = User::find($user_id); if ($type == 'accept') { $user->approved = 1; $user->update(); $subject = "Admin Approved your request"; $data = array("email" => $user->email, "status" => 'Approved'); Mail::send("emails.request", $data, function ($message) use ($user, $subject) { $message->to($user->email, $user->email)->subject($subject); }); $adminEmail = Auth::user()->email; Mail::send("emails.request", $data, function ($message) use ($adminEmail, $subject) { $message->to($adminEmail)->subject($subject); }); return redirect()->back()->with('success', 'User Approved successfully.'); } else { $user->approved = 2; $user->update(); $subject = "Admin Rejected your request "; $data = array("email" => $user->email, "status" => 'Rejected'); Mail::send("emails.request", $data, function ($message) use ($user, $subject) { $message->to($user->email, $user->email)->subject($subject); }); $adminEmail = Auth::user()->email; Mail::send("emails.request", $data, function ($message) use ($adminEmail, $subject) { $message->to($adminEmail)->subject($subject); }); return redirect()->back()->with('danger', 'User Rejected.'); } } public function invitationAccept($token) { // dd($token); if (Auth::check()) { return redirect('/'); } $invitationForm = InvitationForm::where('token', $token)->where('invite', 0)->first(); $jobTitles = JobTitle::All(); $practice = Practice::find($invitationForm->practice_id); return view('invitation-form-link', compact('invitationForm', 'jobTitles', 'practice')); } public function invitationAcceptPost(Request $request) { $data = $request->all(); $request->validate([ 'first_name' => ['required', 'string', 'max:255'], 'last_name' => ['required', 'string', 'max:255'], 'password' => ['required', 'string', 'min:6', 'confirmed'], 'address' => 'required', 'city' => 'required', 'country' => 'required', ]); $invitationForm = InvitationForm::where('token', $data['token'])->where('invite', 0)->first(); if ($invitationForm->job_title == 2) { $treatments = ''; $gdc_no = $data['gdc_no']; // $treatments = []; foreach ($data['treatments'] as $key => $value) { $treatments .= $value . ','; } $treatments = rtrim($treatments, ',');; // $treatments .= ']'; $description = isset($data['description']) ? $data['description'] : ''; } else { $gdc_no = ''; $treatments = ''; $description = ''; } $user = User::create([ 'first_name' => $data['first_name'], 'last_name' => $data['last_name'], 'email' => $invitationForm->email, 'is_admin' => 0, 'approved' => 1, 'password' => Hash::make($data['password']), 'practice_id' => $invitationForm->practice_id, 'email_verified_at' => date('Y-m-d H:i:s'), ]); $user = UserDetail::create([ 'job_id' => $invitationForm->job_title, 'phone' => $data['phone'], 'address' => $data['address'], 'address_2' => $data['address_2'], 'country' => $data['country'], 'city' => $data['city'], 'zip_code' => $data['zip_code'], 'user_id' => $user->id, 'profile_name' => 'avatar1.png', 'gdc_no' => $gdc_no, 'treatments' => $treatments, 'description' => $description, ]); return redirect('/login')->with('success', 'Registration Successfully. Please Login'); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка