Edit File: CompanyController.php
<?php namespace App\Http\Controllers\Admin; use App\Models\City; use App\Models\User; use App\Traits\Report; use App\Models\Country; use App\Traits\Uploadable; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\Company\Store; use App\Jobs\DeleteUser; use App\Jobs\NotifyUser; use App\Jobs\BlockUser; use App\Jobs\CompanyAcceptNotify; class CompanyController extends Controller { use Uploadable ; /*************************** get all **************************/ public function index() { $rows = User::where('type' , 'company')->latest()->get(); $status = 'all' ; return view('admin.companies.index', compact('rows' , 'status')); } /*************************** accept**************************/ public function accept() { $rows = User::where('type' , 'company')->where('approve' , 'accept')->latest()->get(); $status = 'accept' ; return view('admin.companies.index', compact('rows', 'status')); } /*************************** accept**************************/ public function pending() { $rows = User::where('type' , 'company')->where('approve' , 'pending')->latest()->get(); $status = 'pending' ; return view('admin.companies.index', compact('rows', 'status')); } /*************************** accept**************************/ public function notAccepted() { $rows = User::where('type' , 'company')->where('approve' , 'refused')->latest()->get(); $status = 'refused' ; return view('admin.companies.index', compact('rows', 'status')); } public function acceptOrRefuse(Request $request) { $row = User::find($request->id); $row->update(['approve' => $request->status]) ; if ($request->status == 'accept') { dispatch(new CompanyAcceptNotify($row,'accept')); return response()->json(['status' => 'accept' , 'message' => awtTrans('تم قبول الشركه بنجاح')]) ; } dispatch(new CompanyAcceptNotify($row,'refuse')); return response()->json(['status' => 'refused' ,'message' => awtTrans('تم رفض الشركه بنجاح')]) ; } /*************************** store **************************/ public function create() { $keys = Country::get(); $cities = City::get(); return view('admin.companies.create' , compact('keys' , 'cities')); } /*************************** store **************************/ public function store(Store $request) { $user = User::create($request->except('avatar') + ([ 'type' => 'company' , 'approve' => 'accept' , ])); $user->delegateCompany()->create([ 'city_id' => $request->city_id , 'commercial_number' => $request->commercial_number , 'bank_account_number' => $request->bank_account_number , ]); Report::addToLog(' اضافه شركة مناديب') ; return response()->json(['url' => route('admin.companies.index')]); } /*************************** edit page **************************/ public function edit($id) { $row = User::findOrFail($id); $keys = Country::get(); $cities = City::get(); return view('admin.companies.edit' , ['row' => $row , 'keys' => $keys , 'cities' => $cities]); } public function notify(Request $request) { if ('all' == $request->id) { $clients = User::where('type','company')->where('status','active')->get(); } else { $clients = User::findOrFail($request->id); } dispatch(new NotifyUser($clients, $request, $request->type)); return response()->json(); } /*************************** update **************************/ public function update(Store $request, $id) { $user = User::findOrFail($id); $user->update($request->validated(),['block'=>$request['block']]); $user->delegateCompany()->update([ 'city_id' => $request->city_id , 'commercial_number' => $request->commercial_number , 'bank_account_number' => $request->bank_account_number , 'commercial_image' => $request->commercial_image , ]); if($request['block']==1){ dispatch(new BlockUser($user)); } Report::addToLog(' تعديل شركة مناديب') ; return response()->json(['url' => route('admin.companies.index')]); } /*************** show *************************************/ public function show($id) { $row = User::findOrFail($id); $keys = Country::get(); $cities = City::get(); return view('admin.companies.show' , ['row' => $row, 'keys' => $keys , 'cities' => $cities]); } /*************************** delete **************************/ public function destroy($id) { $row = User::findOrFail($id)->delete(); dispatch(new DeleteUser($row)); Report::addToLog(' حذف شركة مناديب') ; return response()->json(['id' =>$id]); } 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'); } } }
Back to File Manager