173 lines
5.5 KiB
PHP
173 lines
5.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\User;
|
|
use App\Traits\ImageHelper;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Illuminate\Support\Facades\Log;
|
|
use Illuminate\Validation\Rules\Password;
|
|
|
|
class ManagerController extends Controller
|
|
{
|
|
use ImageHelper;
|
|
|
|
|
|
public function create()
|
|
{
|
|
|
|
$pageConfigs = [
|
|
'pageHeader' => true,
|
|
'showMenu' => true
|
|
];
|
|
|
|
$breadcrumbs = [['link' => '/admin/admin/'.auth()->user()->id.'/edit', 'name' => 'Manager'], ['name' => 'Add']];
|
|
|
|
return view('content.admin.managers.create', [
|
|
'pageConfigs' => $pageConfigs,
|
|
'breadcrumbs' => $breadcrumbs,
|
|
]);
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'fullName' => ['required', 'min: 3'],
|
|
'fatherName' => ['nullable', 'min: 3'],
|
|
'email' => ['required', 'email', 'unique:users'],
|
|
'phone' => ['required', 'unique:users'],
|
|
'password' => ['required', 'confirmed', Password::min(8)],
|
|
'cnic' => ['nullable','integer','digits:13'],
|
|
'dob' => ['nullable'],
|
|
'address' => ['nullable'],
|
|
'gender' => ['required'],
|
|
'notes' => ['nullable'],
|
|
'profileImage' => ['nullable', 'image'],
|
|
]);
|
|
try {
|
|
DB::beginTransaction();
|
|
$user = new User();
|
|
$user->name = $request->fullName;
|
|
$user->father_name = $request->fatherName;
|
|
$user->email = $request->email;
|
|
$user->role = 'MANAGER';
|
|
$user->phone = $request->phone;
|
|
$user->dob = $request->dob;
|
|
$user->gender = $request->gender;
|
|
$user->cnic = $request->cnic;
|
|
$user->address = $request->address;
|
|
$user->notes = $request->notes;
|
|
|
|
$user->password = Hash::make($request->password);
|
|
$user->email_verified_at = now();
|
|
$user->save();
|
|
if ($request->profileImage) {
|
|
$prefix = 'profile';
|
|
$profileImagePath = $this->uploadFile($request->profileImage, $prefix, false);
|
|
$user->picture = $profileImagePath;
|
|
$user->save();
|
|
|
|
}
|
|
DB::commit();
|
|
return redirect()->route('admin.edit',auth()->user()->id)->with([
|
|
'success' => "Manager created successfully"
|
|
]);
|
|
} catch (\Throwable $exception) {
|
|
DB::rollBack();
|
|
report($exception);
|
|
Log::info($exception);
|
|
return redirect()->back()->with([
|
|
'error' => $exception->getMessage()
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function edit(User $manager)
|
|
{
|
|
|
|
$pageConfigs = [
|
|
'pageHeader' => true,
|
|
'showMenu' => true
|
|
];
|
|
$breadcrumbs = [['link' => '/admin/admin/'.auth()->id().'/edit', 'name' => 'Manager'], ['name' => 'Edit']];
|
|
return view('content.admin.managers.edit', [
|
|
'pageConfigs' => $pageConfigs,
|
|
'breadcrumbs' => $breadcrumbs,
|
|
'user' => $manager,
|
|
|
|
|
|
]);
|
|
}
|
|
|
|
public function update(Request $request, User $manager)
|
|
{
|
|
|
|
$request->validate([
|
|
'fullName' => ['required', 'min: 3'],
|
|
'fatherName' => ['required', 'min: 3'],
|
|
'email' => ['required', 'email'],
|
|
'phone' => ['required'],
|
|
'password' => ['nullable', 'confirmed', Password::min(8)],
|
|
'cnic' => ['nullable','integer','digits:13'],
|
|
'dob' => ['nullable'],
|
|
'address' => ['nullable'],
|
|
'gender' => ['required'],
|
|
'notes' => ['nullable'],
|
|
'profileImage' => ['nullable', 'image'],
|
|
]);
|
|
try {
|
|
DB::beginTransaction();
|
|
$manager->name = $request->fullName;
|
|
$manager->father_name = $request->fatherName;
|
|
$manager->email = $request->email;
|
|
$manager->phone = $request->phone;
|
|
$manager->dob = $request->dob;
|
|
$manager->gender = $request->gender;
|
|
$manager->cnic = $request->cnic;
|
|
if ($request->password){
|
|
$manager->password = Hash::make($request->password);
|
|
}
|
|
|
|
if ($request->hasFile('profileImage')) {
|
|
$prefix = 'profileImage';
|
|
$bannerImagePath = $this->updateFile($request->profileImage, $manager->picture, $prefix, false);
|
|
|
|
$manager->picture = $bannerImagePath;
|
|
}
|
|
$manager->update();
|
|
DB::commit();
|
|
return redirect()->back()->with([
|
|
'success' => "Manager updated successfully"
|
|
]);
|
|
} catch (\Throwable $exception) {
|
|
DB::rollBack();
|
|
return redirect()->back()->with([
|
|
'error' => $exception->getMessage()
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function destroy(User $manager)
|
|
{
|
|
try {
|
|
DB::beginTransaction();
|
|
if ($manager->picture){
|
|
$this->deleteFile($manager->picture);
|
|
}
|
|
$manager->delete();
|
|
DB::commit();
|
|
return redirect()->back()->with([
|
|
'success' => "Manager deleted successfully"
|
|
]);
|
|
} catch (\Throwable $exception) {
|
|
DB::rollBack();
|
|
return redirect()->back()->with([
|
|
'error' => $exception->getMessage()
|
|
]);
|
|
}
|
|
}
|
|
|
|
}
|