This commit is contained in:
mahdi purHosseini
2024-02-10 22:21:41 +03:30
parent d7b97357e3
commit 87c4cf428f
4 changed files with 216 additions and 215 deletions
+113 -113
View File
@@ -5,175 +5,175 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\StoreCycleRequest;
use App\Cycle;
use App\User;
use Packages\Messaging\src\Facades\MessageResponse;
class CycleController extends Controller
{
public function index(Request $request)
public function index( Request $request )
{
$user = auth('api')->user();
$user = auth( 'api' )->user();
$Cycles = Cycle::when($user->cant('showAll', Cycle::class), function($query) use ($user) {
if ($user->hasRole('Supervisor')) {
$query->whereHas('user', function($query) use ($user) {
$query->where('medical_center_id', $user->medical_center_id);
});
$Cycles = Cycle::when( $user->cant( 'showAll' , Cycle::class ) , function ( $query ) use ( $user ) {
if ( $user->hasRole( 'Supervisor' ) ) {
$query->whereHas( 'user' , function ( $query ) use ( $user ) {
$query->where( 'medical_center_id' , $user->medical_center_id );
} );
} else {
$query->where( 'user_id' , $user->id );
}
else{
$query->where('user_id', $user->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);
} )
->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 );
return \MessageResponse::data($Cycles);
return MessageResponse::data( $Cycles );
}
public function create()
{
{}
}
public function show(Cycle $Cycle)
public function show( Cycle $Cycle )
{
$Cycle->load(['user' => function($query){
$query->select('id', 'name', 'medical_center_id');
},
'user.medical_center' => function($query){
$query->select('id', 'name');
},
'labels',
'labels.package', 'labels.package.items']);
return \MessageResponse::data($Cycle);
$Cycle->load( [ 'user' => function ( $query ) {
$query->select( 'id' , 'name' , 'medical_center_id' );
} ,
'user.medical_center' => function ( $query ) {
$query->select( 'id' , 'name' );
} ,
'labels' ,
'labels.package' , 'labels.package.items' ] );
return MessageResponse::data( $Cycle );
}
public function store(StoreCycleRequest $request)
public function store( StoreCycleRequest $request )
{
$UniqueID = substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 10);
$UniqueID = substr( base_convert( sha1( uniqid( mt_rand() ) ) , 16 , 36 ) , 0 , 10 );
$CycleData = [
'unique_id' => $UniqueID,
'date' => $request->date,
'sterilizer_id' => $request->sterilizer_id,
'cycle_number' => $request->cycle_number,
'note' => $request->note,
'user_id' => auth('api')->user()->id,
'verified' => 'NotVerified',
'unique_id' => $UniqueID ,
'date' => $request->date ,
'sterilizer_id' => $request->sterilizer_id ,
'cycle_number' => $request->cycle_number ,
'note' => $request->note ,
'user_id' => auth( 'api' )->user()->id ,
'verified' => 'NotVerified' ,
];
$CycleObj = Cycle::create($CycleData);
$CycleObj = Cycle::create( $CycleData );
$Labels = [];
$count = 1;
foreach ($request->labels as $key => $label) {
foreach ( $request->labels as $key => $label ) {
if (array_key_exists($label['id'], $Labels)) {
$preCount = $Labels[$label['id']];
$Labels[$label['id']] = $preCount + 1;
}
else {
$Labels[$label['id']] = $count;
if ( array_key_exists( $label[ 'id' ] , $Labels ) ) {
$preCount = $Labels[ $label[ 'id' ] ];
$Labels[ $label[ 'id' ] ] = $preCount + 1;
} else {
$Labels[ $label[ 'id' ] ] = $count;
}
}
foreach ($Labels as $Label => $Count) {
$CycleObj->labels()->attach(array($Label), ['count' => $Count]);
foreach ( $Labels as $Label => $Count ) {
$CycleObj->labels()->attach( array( $Label ) , [ 'count' => $Count ] );
}
// $CycleObj->labels()->attach($request->labels);
return \MessageResponse::success(trans('messages.success'));
return MessageResponse::success( trans( 'messages.success' ) );
}
public function edit(Cycle $Cycle)
public function edit( Cycle $Cycle )
{
$Labels = [];
$Cycle->load('labels');
$Cycle->load( 'labels' );
foreach ($Cycle->labels as $label) {
for ($i=0; $i < $label->pivot->count ; $i++) {
$Labels[] = (object) array('id' => $label->id, 'name' => $label->name);
foreach ( $Cycle->labels as $label ) {
for ( $i = 0 ; $i < $label->pivot->count ; $i++ ) {
$Labels[] = (object) array( 'id' => $label->id , 'name' => $label->name );
}
}
unset($Cycle->labels);
unset( $Cycle->labels );
$Cycle->labels = $Labels;
return \MessageResponse::data($Cycle);
return MessageResponse::data( $Cycle );
}
public function update(StoreCycleRequest $request, Cycle $Cycle)
public function update( StoreCycleRequest $request , Cycle $Cycle )
{
$Cycle->update($request->except(['labels']));
$Cycle->update( $request->except( [ 'labels' ] ) );
$Labels = [];
$count = 1;
foreach ($request->labels as $key => $label) {
foreach ( $request->labels as $key => $label ) {
if (array_key_exists($label['id'], $Labels)) {
$preCount = $Labels[$label['id']];
$Labels[$label['id']] = $preCount + 1;
}
else {
$Labels[$label['id']] = $count;
if ( array_key_exists( $label[ 'id' ] , $Labels ) ) {
$preCount = $Labels[ $label[ 'id' ] ];
$Labels[ $label[ 'id' ] ] = $preCount + 1;
} else {
$Labels[ $label[ 'id' ] ] = $count;
}
}
$Cycle->labels()->detach();
foreach ($Labels as $Label => $Count) {
$Cycle->labels()->attach(array($Label), ['count' => $Count]);
foreach ( $Labels as $Label => $Count ) {
$Cycle->labels()->attach( array( $Label ) , [ 'count' => $Count ] );
}
return \MessageResponse::success(trans('messages.success'));
return MessageResponse::success( trans( 'messages.success' ) );
}
public function destroy(Cycle $Cycle)
public function destroy( Cycle $Cycle )
{
if (auth('api')->user()->cant('delete', $Cycle)) {
return \MessageResponse::error(trans('messages.access_denied'));
if ( auth( 'api' )->user()->cant( 'delete' , $Cycle ) ) {
return MessageResponse::error( trans( 'messages.access_denied' ) );
}
if(count($Cycle->labels))
{
if ( count( $Cycle->labels ) ) {
$Cycle->labels()->detach();
}
$Cycle->delete();
return \MessageResponse::success(trans('messages.success'));
return MessageResponse::success( trans( 'messages.success' ) );
}
public function verifyCycle(Cycle $Cycle)
public function verifyCycle( Cycle $Cycle )
{
if (auth('api')->user()->cant('verifyCycle', $Cycle)) {
return \MessageResponse::error(trans('You dont have permission'));
if ( auth( 'api' )->user()->cant( 'verifyCycle' , $Cycle ) ) {
return MessageResponse::error( trans( 'You dont have permission' ) );
}
if ($Cycle->verified == 'Verified') {
if ( $Cycle->verified == 'Verified' ) {
$Cycle->verified = 'NotVerified';
} else {
$Cycle->verified = 'Verified';
}
$Cycle->save();
$Cycle = $Cycle->load('user');
return \MessageResponse::success(trans('messages.success'), null, $Cycle);
$Cycle = $Cycle->load( 'user' );
return MessageResponse::success( trans( 'messages.success' ) , null , $Cycle );
}
public function showCycle(Cycle $Cycle)
public function showCycle( Cycle $Cycle )
{
$Cycle->load(['user' => function($query){
$query->select('id', 'name', 'medical_center_id');
},
'user.medical_center' => function($query){
$query->select('id', 'name');
},
'labels', 'labels.package', 'labels.package.items']);
return \MessageResponse::data($Cycle);
$Cycle->load( [ 'user' => function ( $query ) {
$query->select( 'id' , 'name' , 'medical_center_id' );
} ,
'user.medical_center' => function ( $query ) {
$query->select( 'id' , 'name' );
} ,
'labels' , 'labels.package' , 'labels.package.items' ] );
return MessageResponse::data( $Cycle );
}
}
+95 -98
View File
@@ -2,139 +2,136 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\StoreLabelRequest;
use App\Label;
use App\Package;
use App\User;
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')) {
$query->whereHas('user', function($query) use ($user) {
$query->where('medical_center_id', $user->medical_center_id);
});
$Labels = Label::when( $user->cant( 'showAll' , Label::class ) , function ( $query ) use ( $user ) {
if ( $user->hasRole( 'Supervisor' ) ) {
$query->whereHas( 'user' , function ( $query ) use ( $user ) {
$query->where( 'medical_center_id' , $user->medical_center_id );
} );
} else {
$query->where( 'user_id' , $user->id );
}
else{
$query->where('user_id', $user->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);
} )
->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 );
return \MessageResponse::data($Labels);
return MessageResponse::data( $Labels );
}
public function create()
{
{}
}
public function show(Label $Label)
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']);
$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);
return MessageResponse::data( $Label );
}
public function store(StoreLabelRequest $request)
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,
'package_id' => $request->package_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
];
$LabelObj = Label::create($LabelData);
return \MessageResponse::success(trans('messages.success'), null, $LabelObj);
}
public function edit(Label $Label)
{
$Label->load('package');
return \MessageResponse::data($Label);
$LabelObj = Label::create( $LabelData );
return MessageResponse::success( trans( 'messages.success' ) , null , $LabelObj );
}
public function update(StoreLabelRequest $request, Label $Label)
public function edit( Label $Label )
{
$Label->update($request->all());
return \MessageResponse::success(trans('messages.success'), null, $Label);
$Label->load( 'package' );
return MessageResponse::data( $Label );
}
public function destroy(Label $Label)
public function update( StoreLabelRequest $request , Label $Label )
{
if (auth('api')->user()->cant('delete', $Label)) {
return \MessageResponse::error(trans('messages.access_denied'));
$Label->update( $request->all() );
return MessageResponse::success( trans( 'messages.success' ) , null , $Label );
}
public function destroy( Label $Label )
{
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();
// $admin_users = User::role('Admin')->get()->pluck('id')->toArray();
// $admin_users[] = $user->id;
$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 );
}
}
@@ -106,6 +106,7 @@ class PackageController extends Controller
$Package->load( [
'user' ,
'creator' ,
'items' ,
'user.medical_center' => function ( $query ) {
$query->select( 'id' , 'name' , 'address' , 'phone_number' );
} ,
+7 -4
View File
@@ -6,18 +6,21 @@ use Illuminate\Database\Eloquent\Model;
class Label extends Model
{
public $fillable = ['sterile_date', 'expire_date', 'sterilizer_id', 'cycle_number', 'lot_number', 'user_id', 'package_id'];
public $fillable = [ 'sterile_date' , 'expire_date' , 'sterilizer_id' , 'cycle_number' , 'lot_number' , 'user_id' , 'package_id' ];
public function user()
{
return $this->belongsTo('App\User');
return $this->belongsTo( 'App\User' );
}
public function package()
{
return $this->belongsTo('App\Package');
return $this->belongsTo( 'App\Package' );
}
public function cycles()
{
return $this->belongsToMany('App\Cycle', 'cycle_label')->withPivot('count');
return $this->belongsToMany( 'App\Cycle' , 'cycle_label' )->withPivot( 'count' );
}
}