Edit File: CompanyController.php
<?php namespace App\Http\Controllers\Admin; use App\Http\Resources\CompanyResource; use App\Models\Cartype; use App\Models\Category; use App\Models\City; use App\Models\DelegateCompany; use App\Models\Region; 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(); $rows = User::where( 'type', 'company' )->where( 'approve', 'approved' )->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 == 'approved' ) { 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() { $countries = Country::get(); $regions = Region::get(); $types = Cartype::get(); $categories = Category::get(); return view( 'admin.companies.create', compact( 'countries', 'regions','types','categories' ) ); } /*************************** store **************************/ public function store( Store $request ) { $user = User::create([ 'type'=>'company','is_available'=>1,'completed_info'=>'true' , 'phone' => $request['phone'] ,'country_key'=>$request['country_key'],'name'=>$request['name'],'avatar'=>$request['avatar']] ); DelegateCompany::create( $request->only( 'city_id','commercial_image','commercial_number', 'category_id', 'car_type_id', 'car_numbers', 'driving_license_image', 'car_front_image', 'bank_iban_number', 'bank_account_owner', 'bank_name', 'bank_account_number' ) + [ 'user_id' => $user->id, 'name' => $user->name ] ); Report::addToLog( ' اضافه شركة مناديب' ) ; return response()->json( [ 'url' => route( 'admin.companies.index' ) ] ); } /*************************** getCities **************************/ public function getCities( Request $request ) { $cities = City::where( 'region_id', $request[ 'region_id' ] )->get(); $arr = [ 'cities'=>$cities ]; if ( isset( $request->city_id ) ) { $arr[ 'selectedCity' ] = $request[ 'city_id' ]; } $html = view( 'admin.companies.cities' )->with( $arr )->render(); return response()->json( [ 'key'=>'success', 'html'=> $html ] ); } /*************************** edit page **************************/ public function edit( $id ) { $row = User::findOrFail( $id ); $countries = Country::get(); $regions = Region::get(); $company = $row->delegateCompany()->latest()->first(); $types = Cartype::get(); $categories = Category::get(); return view( 'admin.companies.edit', [ 'row' => $row, 'countries' => $countries, 'regions' => $regions,'company'=>$company ,'types'=>$types,'categories'=>$categories] ); } 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 ); $validated = $request->validated(); $company = $user; $company->update($request->only('name', 'avatar', 'city_id')); $company_join = $company->delegateCompany()->latest()->first(); $company_join->update($request->validated() + ['user_id' => $company->id, 'name' => $company->name]); 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 ); $countries = Country::get(); $regions = Region::get(); $company = $row->delegateCompany()->latest()->first(); $types = Cartype::get(); $categories = Category::get(); return view( 'admin.companies.show', [ 'row' => $row,'company'=>$company,'types'=>$types,'categories' => $categories,'countries' => $countries ] ); } /*************************** 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