mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-10 19:01:05 +03:30
fix label and cycle
This commit is contained in:
@@ -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' ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -3,152 +3,132 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\StoreLabelRequest;
|
||||
use App\Http\Resources\LabelResource;
|
||||
use App\Interfaces\LabelRepositoryInterface;
|
||||
use App\Label;
|
||||
use Illuminate\Http\Request;
|
||||
use Packages\Messaging\src\Facades\MessageResponse;
|
||||
|
||||
class LabelController extends Controller
|
||||
{
|
||||
public function index( Request $request )
|
||||
public function index(Request $request)
|
||||
{
|
||||
$user = auth( 'api' )->user();
|
||||
$user = auth('api')->user();
|
||||
|
||||
$Labels = Label::when( $user->cant( 'showAll' , Label::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( 'sterilizer_id' ) && $request->sterilizer_id != '' , function ( $query ) use ( $request ) {
|
||||
$query->where( 'sterilizer_id' , $request->sterilizer_id );
|
||||
} )
|
||||
->when( $request->has( 'cycle_number' ) && $request->cycle_number != '' , function ( $query ) use ( $request ) {
|
||||
$query->where( 'cycle_number' , $request->cycle_number );
|
||||
} )
|
||||
->when( $request->has( 'lot_number' ) && $request->lot_number != '' , function ( $query ) use ( $request ) {
|
||||
$query->where( 'lot_number' , $request->lot_number );
|
||||
} )
|
||||
->when( $request->has( 'label_id' ) && $request->label_id != '' , function ( $query ) use ( $request ) {
|
||||
$query->where( 'id' , $request->label_id );
|
||||
} )
|
||||
->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' );
|
||||
} ,
|
||||
'package' => function ( $query ) {
|
||||
$query->select( 'id' , 'name' );
|
||||
} ,
|
||||
'user.medical_center' => function ( $query ) {
|
||||
$query->select( 'id' , 'name' );
|
||||
} ,
|
||||
] )->orderByDesc( 'id' )->paginate( 10 );
|
||||
if ($user->hasRole('User')) {
|
||||
$Packages = app(LabelRepositoryInterface::class)->indexForUser($request, $user);
|
||||
} elseif ($user->hasRole('Supervisor')) {
|
||||
$Packages = app(LabelRepositoryInterface::class)->indexForSupervisor($request, $user);
|
||||
} else {
|
||||
$Packages = app(LabelRepositoryInterface::class)->indexForAdmin($request, $user);
|
||||
}
|
||||
|
||||
return MessageResponse::data( $Labels );
|
||||
return LabelResource::collection($Packages);
|
||||
}
|
||||
|
||||
public function create()
|
||||
{}
|
||||
|
||||
public function show( Label $Label )
|
||||
{
|
||||
$Label->load( [ 'user' => function ( $query ) {
|
||||
$query->select( 'id' , 'name' , 'medical_center_id' );
|
||||
} ,
|
||||
'user.medical_center' => function ( $query ) {
|
||||
$query->select( 'id' , 'name' );
|
||||
} ,
|
||||
'package' , 'package.items' ] );
|
||||
|
||||
return MessageResponse::data( $Label );
|
||||
}
|
||||
|
||||
public function store( StoreLabelRequest $request )
|
||||
public function show(Label $Label)
|
||||
{
|
||||
$Label->load([
|
||||
'user' => function ($query) {
|
||||
$query->select('id', 'name', 'medical_center_id');
|
||||
},
|
||||
'user.medical_center' => function ($query) {
|
||||
$query->select('id', 'name');
|
||||
},
|
||||
'package', 'package.items'
|
||||
]);
|
||||
|
||||
return MessageResponse::data($Label);
|
||||
}
|
||||
|
||||
public function store(StoreLabelRequest $request)
|
||||
{
|
||||
$LabelData = [
|
||||
'sterile_date' => $request->sterile_date ,
|
||||
'expire_date' => $request->expire_date ,
|
||||
'sterilizer_id' => $request->sterilizer_id ,
|
||||
'cycle_number' => $request->cycle_number ,
|
||||
'lot_number' => $request->lot_number ,
|
||||
'user_id' => auth( 'api' )->user()->id ,
|
||||
'sterile_date' => $request->sterile_date,
|
||||
'expire_date' => $request->expire_date,
|
||||
'sterilizer_id' => $request->sterilizer_id,
|
||||
'cycle_number' => $request->cycle_number,
|
||||
'lot_number' => $request->lot_number,
|
||||
'user_id' => auth('api')->user()->id,
|
||||
'package_id' => $request->package_id
|
||||
];
|
||||
$Label = Label::create( $LabelData );
|
||||
$Label->load( [
|
||||
'user' => function ( $query ) {
|
||||
$query->select( 'id' , 'name' , 'medical_center_id' );
|
||||
} ,
|
||||
'user.medical_center' => function ( $query ) {
|
||||
$query->select( 'id' , 'name' );
|
||||
} ,
|
||||
'package' ,
|
||||
$Label = Label::create($LabelData);
|
||||
$Label->load([
|
||||
'user' => function ($query) {
|
||||
$query->select('id', 'name', 'medical_center_id');
|
||||
},
|
||||
'user.medical_center' => function ($query) {
|
||||
$query->select('id', 'name');
|
||||
},
|
||||
'package',
|
||||
'package.items'
|
||||
] );
|
||||
return MessageResponse::success( trans( 'messages.success' ) , null , $Label );
|
||||
]);
|
||||
return MessageResponse::success(trans('messages.success'), null, $Label);
|
||||
}
|
||||
|
||||
public function edit( Label $Label )
|
||||
public function edit(Label $Label)
|
||||
{
|
||||
$Label->load( 'package' );
|
||||
return MessageResponse::data( $Label );
|
||||
$Label->load('package');
|
||||
return MessageResponse::data($Label);
|
||||
}
|
||||
|
||||
public function update( StoreLabelRequest $request , Label $Label )
|
||||
public function update(StoreLabelRequest $request, Label $Label)
|
||||
{
|
||||
$Label->update( $request->all() );
|
||||
$Label->load( [
|
||||
'user' => function ( $query ) {
|
||||
$query->select( 'id' , 'name' , 'medical_center_id' );
|
||||
} ,
|
||||
'user.medical_center' => function ( $query ) {
|
||||
$query->select( 'id' , 'name' );
|
||||
} ,
|
||||
'package' ,
|
||||
$Label->update($request->all());
|
||||
$Label->load([
|
||||
'user' => function ($query) {
|
||||
$query->select('id', 'name', 'medical_center_id');
|
||||
},
|
||||
'user.medical_center' => function ($query) {
|
||||
$query->select('id', 'name');
|
||||
},
|
||||
'package',
|
||||
'package.items'
|
||||
] );
|
||||
return MessageResponse::success( trans( 'messages.success' ) , null , $Label );
|
||||
]);
|
||||
return MessageResponse::success(trans('messages.success'), null, $Label);
|
||||
}
|
||||
|
||||
public function destroy( Label $Label )
|
||||
public function destroy(Label $Label)
|
||||
{
|
||||
if ( auth( 'api' )->user()->cant( 'delete' , $Label ) ) {
|
||||
return MessageResponse::error( trans( 'messages.access_denied' ) );
|
||||
if (auth('api')->user()->cant('delete', $Label)) {
|
||||
return MessageResponse::error(trans('messages.access_denied'));
|
||||
}
|
||||
if ( count( $Label->cycles ) ) {
|
||||
if (count($Label->cycles)) {
|
||||
$Label->cycles()->detach();
|
||||
}
|
||||
$Label->delete();
|
||||
return MessageResponse::success( trans( 'messages.success' ) );
|
||||
return MessageResponse::success(trans('messages.success'));
|
||||
}
|
||||
|
||||
public function getLabels()
|
||||
{
|
||||
$user = auth( 'api' )->user();
|
||||
$Labels = Label::when( $user->cant( 'showAll' , Label::class ) , function ( $query ) use ( $user ) {
|
||||
if ( $user->hasRole( 'Supervisor|User' ) ) {
|
||||
$query->whereHas( 'user' , function ( $query ) use ( $user ) {
|
||||
$query->where( 'medical_center_id' , $user->medical_center_id );
|
||||
} );
|
||||
$user = auth('api')->user();
|
||||
$Labels = Label::when($user->cant('showAll', Label::class), function ($query) use ($user) {
|
||||
if ($user->hasRole('Supervisor|User')) {
|
||||
$query->whereHas('user', function ($query) use ($user) {
|
||||
$query->where('medical_center_id', $user->medical_center_id);
|
||||
});
|
||||
}
|
||||
} )->get();
|
||||
})->get();
|
||||
|
||||
return MessageResponse::data( $Labels );
|
||||
return MessageResponse::data($Labels);
|
||||
}
|
||||
|
||||
public function showLabel( Label $Label )
|
||||
public function showLabel(Label $Label)
|
||||
{
|
||||
$Label->load( [ 'user' => function ( $query ) {
|
||||
$query->select( 'id' , 'name' , 'medical_center_id' );
|
||||
} ,
|
||||
'user.medical_center' => function ( $query ) {
|
||||
$query->select( 'id' , 'name' );
|
||||
} ,
|
||||
'package' , 'package.items' ] );
|
||||
return MessageResponse::data( $Label );
|
||||
$Label->load([
|
||||
'user' => function ($query) {
|
||||
$query->select('id', 'name', 'medical_center_id');
|
||||
},
|
||||
'user.medical_center' => function ($query) {
|
||||
$query->select('id', 'name');
|
||||
},
|
||||
'package', 'package.items'
|
||||
]);
|
||||
return MessageResponse::data($Label);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class CycleResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'unique_id' => $this->unique_id,
|
||||
'date' => $this->date,
|
||||
'sterilizer_id' => $this->sterilizer_id,
|
||||
'cycle_number' => $this->cycle_number,
|
||||
'note' => $this->note,
|
||||
'verified' => $this->verified,
|
||||
'user_id' => $this->user_id,
|
||||
'user' => UserResource::make($this->whenLoaded('user')),
|
||||
'labels' => LabelResource::collection($this->whenLoaded('labels')),
|
||||
'created_at' => $this->created_at,
|
||||
'updated_at' => $this->updated_at
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class LabelResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'name' => $this->name,
|
||||
'sterile_date' => $this->sterile_date,
|
||||
'expire_date' => $this->expire_date,
|
||||
'sterilizer_id' => $this->sterilizer_id,
|
||||
'cycle_number' => $this->cycle_number,
|
||||
'lot_number' => $this->lot_number,
|
||||
'department' => $this->department,
|
||||
'note' => $this->note,
|
||||
'user_id' => $this->user_id,
|
||||
'user' => UserResource::make($this->whenLoaded('user')),
|
||||
'package_id' => $this->package_id,
|
||||
'package' => PackageResource::make($this->whenLoaded('package')),
|
||||
'created_at' => $this->created_at,
|
||||
'updated_at' => $this->updated_at
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App\Interfaces;
|
||||
|
||||
interface CycleRepositoryInterface
|
||||
{
|
||||
public function indexForUser($request , $user);
|
||||
|
||||
public function indexForSupervisor($request , $user);
|
||||
|
||||
public function indexForAdmin($request , $user);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App\Interfaces;
|
||||
|
||||
interface LabelRepositoryInterface
|
||||
{
|
||||
public function indexForUser($request , $user);
|
||||
|
||||
public function indexForSupervisor($request , $user);
|
||||
|
||||
public function indexForAdmin($request , $user);
|
||||
}
|
||||
@@ -2,7 +2,11 @@
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Interfaces\CycleRepositoryInterface;
|
||||
use App\Interfaces\LabelRepositoryInterface;
|
||||
use App\Interfaces\PackageRepositoryInterface;
|
||||
use App\Repositories\CycleRepository;
|
||||
use App\Repositories\LabelRepository;
|
||||
use App\Repositories\PackageRepository;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
@@ -19,6 +23,14 @@ class AppServiceProvider extends ServiceProvider
|
||||
PackageRepositoryInterface::class,
|
||||
PackageRepository::class
|
||||
);
|
||||
$this->app->bind(
|
||||
CycleRepositoryInterface::class,
|
||||
CycleRepository::class
|
||||
);
|
||||
$this->app->bind(
|
||||
LabelRepositoryInterface::class,
|
||||
LabelRepository::class
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repositories;
|
||||
|
||||
use App\Cycle;
|
||||
use App\Interfaces\CycleRepositoryInterface;
|
||||
|
||||
class CycleRepository implements CycleRepositoryInterface
|
||||
{
|
||||
public function indexForUser($request, $user)
|
||||
{
|
||||
return Cycle::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');
|
||||
},
|
||||
])
|
||||
->whereHas('user', function ($query) use ($user) {
|
||||
$query->where('medical_center_id', $user->medical_center_id);
|
||||
})
|
||||
->where("user_id", $user->id)
|
||||
->orderByDesc('id')
|
||||
->paginate(10);
|
||||
}
|
||||
|
||||
public function indexForSupervisor($request, $user)
|
||||
{
|
||||
return Cycle::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');
|
||||
},
|
||||
])
|
||||
->whereHas('user', function ($query) use ($user) {
|
||||
$query->where('medical_center_id', $user->medical_center_id);
|
||||
})
|
||||
->orderByDesc('id')
|
||||
->paginate(10);
|
||||
}
|
||||
|
||||
public function indexForAdmin($request, $user)
|
||||
{
|
||||
return Cycle::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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repositories;
|
||||
|
||||
use App\Interfaces\LabelRepositoryInterface;
|
||||
use App\Label;
|
||||
|
||||
class LabelRepository implements LabelRepositoryInterface
|
||||
{
|
||||
public function indexForUser($request, $user)
|
||||
{
|
||||
return Label::when($request->has('sterilizer_id') && $request->sterilizer_id != '', function ($query) use ($request) {
|
||||
$query->where('sterilizer_id', $request->sterilizer_id);
|
||||
})
|
||||
->when($request->has('cycle_number') && $request->cycle_number != '', function ($query) use ($request) {
|
||||
$query->where('cycle_number', $request->cycle_number);
|
||||
})
|
||||
->when($request->has('lot_number') && $request->lot_number != '', function ($query) use ($request) {
|
||||
$query->where('lot_number', $request->lot_number);
|
||||
})
|
||||
->when($request->has('label_id') && $request->label_id != '', function ($query) use ($request) {
|
||||
$query->where('id', $request->label_id);
|
||||
})
|
||||
->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');
|
||||
},
|
||||
'package' => function ($query) {
|
||||
$query->select('id', 'name');
|
||||
},
|
||||
'user.medical_center' => function ($query) {
|
||||
$query->select('id', 'name');
|
||||
},
|
||||
])
|
||||
->whereHas('user', function ($query) use ($user) {
|
||||
$query->where('medical_center_id', $user->medical_center_id);
|
||||
})
|
||||
->where("user_id", $user->id)
|
||||
->orderByDesc('id')
|
||||
->paginate(10);
|
||||
}
|
||||
|
||||
public function indexForSupervisor($request, $user)
|
||||
{
|
||||
return Label::when($request->has('sterilizer_id') && $request->sterilizer_id != '', function ($query) use ($request) {
|
||||
$query->where('sterilizer_id', $request->sterilizer_id);
|
||||
})
|
||||
->when($request->has('cycle_number') && $request->cycle_number != '', function ($query) use ($request) {
|
||||
$query->where('cycle_number', $request->cycle_number);
|
||||
})
|
||||
->when($request->has('lot_number') && $request->lot_number != '', function ($query) use ($request) {
|
||||
$query->where('lot_number', $request->lot_number);
|
||||
})
|
||||
->when($request->has('label_id') && $request->label_id != '', function ($query) use ($request) {
|
||||
$query->where('id', $request->label_id);
|
||||
})
|
||||
->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');
|
||||
},
|
||||
'package' => function ($query) {
|
||||
$query->select('id', 'name');
|
||||
},
|
||||
'user.medical_center' => function ($query) {
|
||||
$query->select('id', 'name');
|
||||
},
|
||||
])
|
||||
->whereHas('user', function ($query) use ($user) {
|
||||
$query->where('medical_center_id', $user->medical_center_id);
|
||||
})
|
||||
->orderByDesc('id')
|
||||
->paginate(10);
|
||||
}
|
||||
|
||||
public function indexForAdmin($request, $user)
|
||||
{
|
||||
return Label::when($request->has('sterilizer_id') && $request->sterilizer_id != '', function ($query) use ($request) {
|
||||
$query->where('sterilizer_id', $request->sterilizer_id);
|
||||
})
|
||||
->when($request->has('cycle_number') && $request->cycle_number != '', function ($query) use ($request) {
|
||||
$query->where('cycle_number', $request->cycle_number);
|
||||
})
|
||||
->when($request->has('lot_number') && $request->lot_number != '', function ($query) use ($request) {
|
||||
$query->where('lot_number', $request->lot_number);
|
||||
})
|
||||
->when($request->has('label_id') && $request->label_id != '', function ($query) use ($request) {
|
||||
$query->where('id', $request->label_id);
|
||||
})
|
||||
->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');
|
||||
},
|
||||
'package' => function ($query) {
|
||||
$query->select('id', 'name');
|
||||
},
|
||||
'user.medical_center' => function ($query) {
|
||||
$query->select('id', 'name');
|
||||
},
|
||||
])
|
||||
->orderByDesc('id')
|
||||
->paginate(10);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user