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\Setting; use App\Models\User; use App\Services\SettingService; use App\Traits\Report; use Illuminate\Http\Request; use App\Models\Country; use App\Models\City; use App\Http\Requests\Admin\Notification\StoreOne; class ClientController extends Controller { public function index( $id = null ) { if ( request()->ajax() ) { $rows = User::where( 'type', 'user' )->search( request()->searchArray )->paginate( 10 ); $html = view( 'admin.clients.table', compact( 'rows' ) )->render(); return response()->json( [ 'html' => $html ] ); } return view( 'admin.clients.index'); } /*************************** store **************************/ public function create() { $settings = SettingService::appInformations( Setting::pluck( 'value', 'key' ) ); $countries = Country::get(); $cities = City::get(); return view( 'admin.clients.create', compact( 'settings','countries','cities' ) ); } /*************************** store client **************************/ public function store( AddEditClientRequest $request ) { // dd( $request ); User::create( $request->validated() + ( [ 'active' => $request->status == 'pending' ? 0 : 1 ] ) ); Report::addToLog( ' اضافه مستخدم' ); return response()->json( [ 'url' => route( 'admin.clients.index' ) ] ); } /*************************** store **************************/ public function edit( $id ) { $row = User::findOrFail( $id ); $settings = SettingService::appInformations( Setting::pluck( 'value', 'key' ) ); $countries = Country::get(); $cities = City::get(); return view( 'admin.clients.edit', [ 'row' => $row, 'settings' => $settings,'countries'=>$countries,'cities'=>$cities ] ); } /*************************** update client **************************/ public function update( AddEditClientRequest $request, $id ) { // dd($request->validated()); $user = User::find( $id ); $user->update( $request->validated() ); // dd($user); if ( $request[ 'status' ] == 'block' ) { $user->update(['is_blocked' => true]); dispatch( new BlockUser( $user ) ); } else{ $user->update(['is_blocked' => false]); } Report::addToLog( ' تعديل مستخدم' ); return response()->json( [ 'url' => route( 'admin.clients.index' ) ] ); } /*************** show *************************************/ public function show( $id ) { $row = User::findOrFail( $id ); $countries = Country::get(); return view( 'admin.clients.show', [ 'row' => $row ,'countries'=>$countries] ); } /*************************** 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( StoreOne $request ) { // // dd($request->all()); if ( 'all' == $request->id ) { $clients = User::where( 'type', 'user' )->where( 'status', 'active' )->get(); $count = 'all'; } else { $clients = User::findOrFail( $request->id ); $count = 'one'; } 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' ,'id') ); } public function active() { if ( request()->ajax() ) { $rows = User::where( 'type', 'user')->where('active' , true)->search( request()->searchArray )->paginate( 10 ); $html = view( 'admin.clients.table', compact( 'rows' ) )->render(); return response()->json( [ 'html' => $html ] ); } $url = 'admin/clients/active'; return view( 'admin.clients.index' ,compact('url')); } public function notActive() { if ( request()->ajax() ) { $rows = User::where( 'type', 'user')->where('active' , false)->search( request()->searchArray )->paginate( 10 ); $html = view( 'admin.clients.table', compact( 'rows' ) )->render(); return response()->json( [ 'html' => $html ] ); } $url = 'admin/clients/not-active'; return view( 'admin.clients.index' , compact('url')); } public function block() { if ( request()->ajax() ) { $rows = User::where( 'type', 'user')->where('is_blocked' , true)->search( request()->searchArray )->paginate( 10 ); $html = view( 'admin.clients.table', compact( 'rows' ) )->render(); return response()->json( [ 'html' => $html ] ); } $url = 'admin/clients/block'; return view( 'admin.clients.index' ,compact('url')); } public function notBlock() { if ( request()->ajax() ) { $rows = User::where( 'type', 'user')->where('is_blocked' , false)->search( request()->searchArray )->paginate( 10 ); $html = view( 'admin.clients.table', compact( 'rows' ) )->render(); return response()->json( [ 'html' => $html ] ); } $url = 'admin/clients/not-block'; return view( 'admin.clients.index' ,compact('url')); } }
Back to File Manager