fix label and cycle

This commit is contained in:
mahdi purHosseini
2024-09-02 12:28:51 +03:30
parent 156e30a595
commit fd59106db8
9 changed files with 444 additions and 144 deletions
+16 -40
View File
@@ -2,54 +2,29 @@
namespace App\Http\Controllers;
use App\Http\Resources\CycleResource;
use App\Interfaces\CycleRepositoryInterface;
use Illuminate\Http\Request;
use App\Http\Requests\StoreCycleRequest;
use App\Cycle;
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
use Packages\Messaging\src\Facades\MessageResponse;
class CycleController extends Controller
{
public function index( Request $request )
public function index( Request $request ): AnonymousResourceCollection
{
$user = auth( 'api' )->user();
$user = auth('api')->user();
$Cycles = Cycle::when( $user->cant( 'showAll' , Cycle::class ) , function ( $query ) use ( $user ) {
if ( $user->hasRole( 'Supervisor' ) and $user->hasRole( 'User' ) ) {
$query->whereHas( 'user' , function ( $query ) use ( $user ) {
$query->where( 'medical_center_id' , $user->medical_center_id );
} );
}
} )
->when( $request->has( 'cycle_id' ) && $request->cycle_id != '' , function ( $query ) use ( $request ) {
$query->where( 'id' , $request->cycle_id );
} )
->when( $request->has( 'sterilizer_id' ) && $request->sterilizer_id != '' , function ( $query ) use ( $request ) {
$query->where( 'sterilizer_id' , $request->sterilizer_id );
} )
->when( $request->has( 'date' ) && $request->date != '' , function ( $query ) use ( $request ) {
$query->where( 'date' , $request->date );
} )
->when( $request->has( 'cycle_number' ) && $request->cycle_number != '' , function ( $query ) use ( $request ) {
$query->where( 'cycle_number' , $request->cycle_number );
} )
->when( $request->has( 'medical_center_id' ) && $request->medical_center_id != '' && $request->medical_center_id != 'undefined' , function ( $query ) use ( $request ) {
$query->whereHas( 'user' , function ( $query ) use ( $request ) {
$query->where( 'medical_center_id' , $request->medical_center_id );
} );
} )
->with( [ 'user' => function ( $query ) {
$query->select( 'id' , 'name' , 'medical_center_id' );
} ,
'user.medical_center' => function ( $query ) {
$query->select( 'id' , 'name' );
} ,
'labels' ,
'labels.package' => function ( $query ) {
$query->select( 'id' , 'name' );
} ,
] )->orderByDesc( 'id' )->paginate( 10 );
if ($user->hasRole('User')) {
$Packages = app(CycleRepositoryInterface::class)->indexForUser($request, $user);
} elseif ($user->hasRole('Supervisor')) {
$Packages = app(CycleRepositoryInterface::class)->indexForSupervisor($request, $user);
} else {
$Packages = app(CycleRepositoryInterface::class)->indexForAdmin($request, $user);
}
return MessageResponse::data( $Cycles );
return CycleResource::collection($Packages);
}
public function create()
@@ -64,7 +39,9 @@ class CycleController extends Controller
$query->select( 'id' , 'name' );
} ,
'labels' ,
'labels.package' , 'labels.package.items' ] );
'labels.package' ,
'labels.package.items'
] );
return MessageResponse::data( $Cycle );
}
@@ -95,7 +72,6 @@ class CycleController extends Controller
foreach ( $Labels as $Label => $Count ) {
$CycleObj->labels()->attach( array( $Label ) , [ 'count' => $Count ] );
}
// $CycleObj->labels()->attach($request->labels);
return MessageResponse::success( trans( 'messages.success' ) );
}