From 618841cb7478a44c6e8bfc795d0f08c6cf9b20d1 Mon Sep 17 00:00:00 2001 From: mahdi purHosseini Date: Wed, 28 Feb 2024 16:42:23 +0330 Subject: [PATCH] fix some problems --- app/Http/Controllers/TransferItemController.php | 17 +++++++++++------ .../Controllers/TransferPackageController.php | 17 +++++++++++------ app/Http/Controllers/UserController.php | 6 ++---- app/Policies/UserPolicy.php | 1 - 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/app/Http/Controllers/TransferItemController.php b/app/Http/Controllers/TransferItemController.php index 531c44c8..c0c6ce77 100644 --- a/app/Http/Controllers/TransferItemController.php +++ b/app/Http/Controllers/TransferItemController.php @@ -15,22 +15,25 @@ class TransferItemController extends Controller { public function getSuspendedTransfer() { - $data = Transfer::where( "transferable_type" , "App\\Item" ) + $data = Transfer::query() + ->whereHasMorph( 'transferable' , [ Item::class ] ) ->where( "status" , StatusTypeEnum::SUSPENDED ) - ->with( [ "user" , "transferable" , "transferable.user" ] ); + ->with( [ "user" , "transferable" , "transferable.user" ] ); $user = auth( 'api' )->user(); if ( $user->hasRole( 'User' ) ) { $data = $data->where( "user_id" , $user->id ); } elseif ( $user->hasRole( 'Supervisor' ) ) { - $data = $data->whereHas( 'transferable.user' , function ( $query ) use ( $user ) { - $query->where( 'medical_center_id' , $user->medical_center_id ); + $data = $data->whereHasMorph( 'transferable' , [ Item::class ] , function ( $query ) use ( $user ) { + $query->whereHas( 'user' , function ( $query1 ) use ( $user ) { + $query1->where( 'medical_center_id' , $user->medical_center_id ); + } ); } ); } $data = $data->get(); - return TransferResource::collection($data); + return TransferResource::collection( $data ); } public function changeStatus( ChangeStatusRequest $request , Transfer $Transfer ) @@ -62,8 +65,10 @@ class TransferItemController extends Controller $Item->transfers()->create( [ "user_id" => $request->user_id , "from_date" => Carbon::now() , - "status" => StatusTypeEnum::SUSPENDED + "status" => StatusTypeEnum::APPROVED ] ); + if ( $Item->transferActive ) $Item->transferActive()->update( [ "to_date" => Carbon::now() ] ); + $Item->update( [ "user_id" => $request->user_id ] ); } else { return MessageResponse::error( trans( 'messages.user_denied_transfer' ) ); } diff --git a/app/Http/Controllers/TransferPackageController.php b/app/Http/Controllers/TransferPackageController.php index 14dd8a79..c84bfdc0 100644 --- a/app/Http/Controllers/TransferPackageController.php +++ b/app/Http/Controllers/TransferPackageController.php @@ -15,22 +15,25 @@ class TransferPackageController extends Controller { public function getSuspendedTransfer() { - $data = Transfer::where( "transferable_type" , "App\\Package" ) + $data = Transfer::query() + ->whereHasMorph( 'transferable' , [ Package::class ] ) ->where( "status" , StatusTypeEnum::SUSPENDED ) - ->with( [ "user" , "transferable" , "transferable.user" ] ); + ->with( [ "user" , "transferable" , "transferable.user" ] ); $user = auth( 'api' )->user(); if ( $user->hasRole( 'User' ) ) { $data = $data->where( "user_id" , $user->id ); } elseif ( $user->hasRole( 'Supervisor' ) ) { - $data = $data->whereHas( 'transferable.user' , function ( $query ) use ( $user ) { - $query->where( 'medical_center_id' , $user->medical_center_id ); + $data = $data->whereHasMorph( 'transferable' , [ Package::class ] , function ( $query ) use ( $user ) { + $query->whereHas( 'user' , function ( $query1 ) use ( $user ) { + $query1->where( 'medical_center_id' , $user->medical_center_id ); + } ); } ); } $data = $data->get(); - return TransferResource::collection($data); + return TransferResource::collection( $data ); } public function changeStatus( ChangeStatusRequest $request , Transfer $Transfer ) @@ -65,8 +68,10 @@ class TransferPackageController extends Controller $Package->transfers()->create( [ "user_id" => $request->user_id , "from_date" => Carbon::now() , - "status" => StatusTypeEnum::SUSPENDED + "status" => StatusTypeEnum::APPROVED ] ); + if ( $Package->transferActive ) $Package->transferActive()->update( [ "to_date" => Carbon::now() ] ); + $Package->update( [ "user_id" => $request->user_id ] ); } else { return MessageResponse::error( trans( 'messages.user_denied_transfer' ) ); } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index bdf8d07b..8115f9c7 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -16,17 +16,15 @@ class UserController extends Controller public function index( Request $request ) { $user = auth( 'api' )->user(); - if ( $user->cant( 'list' , User::class ) ) { - return MessageResponse::error( trans( 'messages.access_denied' ) ); - } - if ( $user->hasRole( 'Supervisor' ) ) { + if ( $user->hasRole( 'User' ) or $user->hasRole( 'Supervisor' ) ) { $medical_center_id = $user->medical_center_id; } elseif ( $request->has( 'medical_center_id' ) && $request->medical_center_id ) { $medical_center_id = $request->medical_center_id; } else { $medical_center_id = null; } + $Users = User::when( $request->has( 'name' ) && $request->name , function ( $query ) use ( $request ) { $query->where( 'name' , 'LIKE' , '%' . $request->name . '%' ); } ) diff --git a/app/Policies/UserPolicy.php b/app/Policies/UserPolicy.php index ca99c983..a852852e 100644 --- a/app/Policies/UserPolicy.php +++ b/app/Policies/UserPolicy.php @@ -3,7 +3,6 @@ namespace App\Policies; use App\User; -use Doctrine\Tests\Common\Inflector\InflectorTest; class UserPolicy {