Edit File: ClientController.php
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\Client\AddEditClientRequest; use App\Jobs\BlockUser; use App\Jobs\DeleteUser; use App\Jobs\NotifyUser; use App\Models\User; use App\Traits\Report; use Carbon\Carbon; use Illuminate\Http\Request; use Yajra\DataTables\DataTables; use App\Models\Country; use App\Models\City; class ClientController extends Controller { public function index($id = null) { if (request()->ajax()) { $rows = User::where('type' , 'user')->search(request()->searchArray)->OrderBy('created_at','desc')->paginate(10); $html = view('admin.clients.table' ,compact('rows'))->render() ; return response()->json(['html' => $html]); } return view('admin.clients.index'); } /*************************** get active clients **************************/ public function active(Request $request) { if (request()->ajax()) { $rows = User::where('type' , 'user')->where(['status' => 'active'])->search(request()->searchArray)->OrderBy('created_at','desc')->paginate(10); $html = view('admin.clients.active_table', compact('rows'))->render() ; return response()->json(['html' => $html]); } return view('admin.clients.active'); } /*************************** get not active clients **************************/ public function notActive() { if (request()->ajax()) { $rows = User::where('type' , 'user')->where(['status' => 'pending'])->search(request()->searchArray)->OrderBy('created_at','desc')->paginate(10); $html = view('admin.clients.pending_table' ,compact('rows'))->render() ; return response()->json(['html' => $html]); } return view('admin.clients.pending'); } /*************************** get active clients **************************/ public function block() { if (request()->ajax()) { $rows = User::where('type' , 'user')->where(['status' => 'block'])->search(request()->searchArray)->OrderBy('created_at','desc')->paginate(10); $html = view('admin.clients.block_table' ,compact('rows'))->render() ; return response()->json(['html' => $html]); } return view('admin.clients.block'); } /*************************** get active clients **************************/ public function notBlock() { $rows = User::where('status' ,'!=' , 'block')->latest()->where('type' , 'user')->get(); return view('admin.clients.index', compact('rows')); } /*************************** store **************************/ public function create() { $keys = Country::get(); $cities = City::get(); return view('admin.clients.create' , compact('keys' , 'cities')); } /*************************** store client **************************/ public function store(AddEditClientRequest $request) { User::create($request->validated()); Report::addToLog('اضافه مستخدم'); return response()->json(['url' => route('admin.clients.index')]); } /*************************** store **************************/ public function edit($id) { $row = User::findOrFail($id); $keys = Country::get(); $cities = City::get(); return view('admin.clients.edit', ['row' => $row , 'keys' => $keys , 'cities' => $cities]); } /*************************** update client **************************/ public function update(AddEditClientRequest $request, $id) { $user = User::find($id); $user->update($request->validated()); if($request['status']=='block'){ dispatch(new BlockUser($user)); } Report::addToLog(' تعديل مستخدم'); return response()->json(['url' => route('admin.clients.index')]); } /*************** show *************************************/ public function show($id) { $row = User::findOrFail($id); return view('admin.clients.show', ['row' => $row]); } /*************************** delete client **************************/ public function destroy($id) { $user = User::find($id); dispatch(new DeleteUser($user)); $user->delete(); Report::addToLog(' حذف مستخدم'); return response()->json(['id' => $id ]); } public function blockUser($id) { $user = User::find($id); dispatch(new BlockUser($user)); return redirect()->back()->with('success', 'تم حظر المستخدم بنجاح'); } public function notify(Request $request) { if ('all' == $request->id) { $count ='all'; $clients = User::where('type','user')->where('status','active')->get(); } else { $count ='one'; $clients = User::findOrFail($request->id); } dispatch(new NotifyUser($clients, $request, $request->type ,$count)); return response()->json(); } public function destroyAll(Request $request) { $requestIds = json_decode($request->data); foreach ($requestIds as $id) { $ids[] = $id->id; } $users=User::whereIn('id', $ids)->get(); foreach($users as $user){ dispatch(new DeleteUser($user)); } if (User::whereIn('id', $ids)->delete()) { Report::addToLog(' حذف العديد من المستخدمين'); return response()->json('success'); } else { return response()->json('failed'); } } public function address($id) { $rows = User::findOrFail($id)->addresses->toArray() ; return view('admin.clients.addresses' , compact('rows')); } }
Back to File Manager