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
+118
View File
@@ -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);
}
}