cssd changes and fixes

This commit is contained in:
ehsan.moradi
2025-05-04 16:42:14 +03:30
parent fee688c183
commit 27cd2292fe
5 changed files with 67 additions and 44 deletions
+48 -30
View File
@@ -10,9 +10,19 @@ class PackageRepository implements PackageRepositoryInterface
{
public function indexForUser($request, $user)
{
return Package::when($request->has('name') && $request->name != '', function ($query) use ($request) {
$query->where('name', 'LIKE', '%'.$request->name.'%');
})
return Package::with([
'user',
'user.medical_center' => function ($query) {
$query->select('id', 'name', 'address', 'phone_number');
},
'items'
])
->tap(function ($query) use ($request) {
$this->applyUserNameFilter($query, $request);
})
->when($request->has('name') && $request->name != '', function ($query) use ($request) {
$query->where('name', 'LIKE', '%'.$request->name.'%');
})
->when($request->has('package_id') && $request->package_id != '', function ($query) use ($request) {
$query->where('id', $request->package_id);
})
@@ -21,13 +31,6 @@ class PackageRepository implements PackageRepositoryInterface
$query->where('medical_center_id', $request->medical_center_id);
});
})
->with([
'user',
'user.medical_center' => function ($query) {
$query->select('id', 'name', 'address', 'phone_number');
},
'items'
])
->whereHas('user', function ($query) use ($user) {
$query->where('users.medical_center_id', $user->medical_center_id);
})
@@ -38,9 +41,19 @@ class PackageRepository implements PackageRepositoryInterface
public function indexForSupervisor($request, $user)
{
return Package::when($request->has('name') && $request->name != '', function ($query) use ($request) {
$query->where('name', 'LIKE', '%'.$request->name.'%');
})
return Package::with([
'user',
'user.medical_center' => function ($query) {
$query->select('id', 'name', 'address', 'phone_number');
},
'items'
])
->tap(function ($query) use ($request) {
$this->applyUserNameFilter($query, $request);
})
->when($request->has('name') && $request->name != '', function ($query) use ($request) {
$query->where('name', 'LIKE', '%'.$request->name.'%');
})
->when($request->has('package_id') && $request->package_id != '', function ($query) use ($request) {
$query->where('id', $request->package_id);
})
@@ -49,13 +62,7 @@ class PackageRepository implements PackageRepositoryInterface
$query->where('medical_center_id', $request->medical_center_id);
});
})
->with([
'user',
'user.medical_center' => function ($query) {
$query->select('id', 'name', 'address', 'phone_number');
},
'items'
])->whereHas('user', function ($query) use ($user) {
->whereHas('user', function ($query) use ($user) {
$query->where('users.medical_center_id', $user->medical_center_id);
})
->orderByDesc('id')
@@ -64,9 +71,19 @@ class PackageRepository implements PackageRepositoryInterface
public function indexForAdmin($request, $user)
{
return Package::when($request->has('name') && $request->name != '', function ($query) use ($request) {
$query->where('name', 'LIKE', '%'.$request->name.'%');
})
return Package::with([
'user',
'user.medical_center' => function ($query) {
$query->select('id', 'name', 'address', 'phone_number');
},
'items'
])
->tap(function ($query) use ($request) {
$this->applyUserNameFilter($query, $request);
})
->when($request->has('name') && $request->name != '', function ($query) use ($request) {
$query->where('name', 'LIKE', '%'.$request->name.'%');
})
->when($request->has('package_id') && $request->package_id != '', function ($query) use ($request) {
$query->where('id', $request->package_id);
})
@@ -75,14 +92,15 @@ class PackageRepository implements PackageRepositoryInterface
$query->where('medical_center_id', $request->medical_center_id);
});
})
->with([
'user',
'user.medical_center' => function ($query) {
$query->select('id', 'name', 'address', 'phone_number');
},
'items'
])
->orderByDesc('id')
->paginate(10);
}
private function applyUserNameFilter($queryBuilder,$request){
return $queryBuilder->when($request->filled('user_name'), function ($query) use ($request) {
$query->whereHas('user', function ($q) use ($request) {
$q->where('users.name', 'LIKE', '%' . $request->user_name . '%');
});
});
}
}