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
+13 -9
View File
@@ -16,9 +16,20 @@ class ItemController extends Controller
{ {
public function index( Request $request ) public function index( Request $request )
{ {
$Items = Item::when( $request->has( 'name' ) && $request->name != '' , function ( $query ) use ( $request ) { $Items = Item::with( [
'user' ,
'package' ,
'user.medical_center' => function ( $query ) {
$query->select( 'id' , 'name' , 'address' , 'phone_number' );
} ,
] )->when( $request->has( 'name' ) && $request->name != '' , function ( $query ) use ( $request ) {
$query->where( 'name' , 'LIKE' , '%' . $request->name . '%' ); $query->where( 'name' , 'LIKE' , '%' . $request->name . '%' );
} ) } )
->when($request->filled('user_name'), function ($query) use ($request) {
$query->whereHas('user', function ($q) use ($request) {
$q->where('users.name', 'LIKE', '%' . $request->user_name . '%');
});
})
->when( $request->has( 'udi' ) && $request->udi != '' , function ( $query ) use ( $request ) { ->when( $request->has( 'udi' ) && $request->udi != '' , function ( $query ) use ( $request ) {
$query->where( 'udi' , 'LIKE' , '%' . $request->udi . '%' ); $query->where( 'udi' , 'LIKE' , '%' . $request->udi . '%' );
} ) } )
@@ -35,14 +46,7 @@ class ItemController extends Controller
$query->whereHas( 'user' , function ( $query ) use ( $request ) { $query->whereHas( 'user' , function ( $query ) use ( $request ) {
$query->where( 'medical_center_id' , $request->medical_center_id ); $query->where( 'medical_center_id' , $request->medical_center_id );
} ); } );
} ) } );
->with( [
'user' ,
'package' ,
'user.medical_center' => function ( $query ) {
$query->select( 'id' , 'name' , 'address' , 'phone_number' );
} ,
] );
$user = auth( 'api' )->user(); $user = auth( 'api' )->user();
if ( $user->hasRole( 'User' ) or $user->hasRole( 'Supervisor' ) ) { if ( $user->hasRole( 'User' ) or $user->hasRole( 'Supervisor' ) ) {
@@ -218,6 +218,7 @@ class TestResultController extends Controller
public function edit(TestResult $TestResult) public function edit(TestResult $TestResult)
{ {
$TestResult->load('media');
foreach ($TestResult->input_values as $key => $value) { foreach ($TestResult->input_values as $key => $value) {
$input = $value->input; $input = $value->input;
if ($input->type == 'Checkbox' || $input->type == 'Select' || $input['type'] == 'Radiobutton') { if ($input->type == 'Checkbox' || $input->type == 'Select' || $input['type'] == 'Radiobutton') {
@@ -391,7 +392,7 @@ class TestResultController extends Controller
public function showTestResult($id) public function showTestResult($id)
{ {
$TestResult = TestResult::with('input_values', 'user.medical_center', 'test_type')->select('result', 'verified', 'device_id', 'user_id', 'id', 'test_type_id', 'created_at')->findOrFail($id); $TestResult = TestResult::with('input_values', 'user.medical_center', 'test_type','media')->select('result', 'verified', 'device_id', 'user_id', 'id', 'test_type_id', 'created_at')->findOrFail($id);
$options = []; $options = [];
foreach ($TestResult->input_values as $value) { foreach ($TestResult->input_values as $value) {
$input = $value->input; $input = $value->input;
+2 -2
View File
@@ -412,9 +412,9 @@ class TestTypeController extends Controller
return MessageResponse::error(); return MessageResponse::error();
} }
public function listNames() public function list()
{ {
$testType = TestType::pluck('name'); $testType = TestType::select('id','name')->get();
return MessageResponse::data($testType); return MessageResponse::data($testType);
} }
+42 -24
View File
@@ -10,7 +10,17 @@ class PackageRepository implements PackageRepositoryInterface
{ {
public function indexForUser($request, $user) public function indexForUser($request, $user)
{ {
return Package::when($request->has('name') && $request->name != '', function ($query) use ($request) { 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.'%'); $query->where('name', 'LIKE', '%'.$request->name.'%');
}) })
->when($request->has('package_id') && $request->package_id != '', function ($query) use ($request) { ->when($request->has('package_id') && $request->package_id != '', function ($query) use ($request) {
@@ -21,13 +31,6 @@ class PackageRepository implements PackageRepositoryInterface
$query->where('medical_center_id', $request->medical_center_id); $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); $query->where('users.medical_center_id', $user->medical_center_id);
}) })
@@ -38,7 +41,17 @@ class PackageRepository implements PackageRepositoryInterface
public function indexForSupervisor($request, $user) public function indexForSupervisor($request, $user)
{ {
return Package::when($request->has('name') && $request->name != '', function ($query) use ($request) { 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.'%'); $query->where('name', 'LIKE', '%'.$request->name.'%');
}) })
->when($request->has('package_id') && $request->package_id != '', function ($query) use ($request) { ->when($request->has('package_id') && $request->package_id != '', function ($query) use ($request) {
@@ -49,13 +62,7 @@ class PackageRepository implements PackageRepositoryInterface
$query->where('medical_center_id', $request->medical_center_id); $query->where('medical_center_id', $request->medical_center_id);
}); });
}) })
->with([ ->whereHas('user', function ($query) use ($user) {
'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); $query->where('users.medical_center_id', $user->medical_center_id);
}) })
->orderByDesc('id') ->orderByDesc('id')
@@ -64,7 +71,17 @@ class PackageRepository implements PackageRepositoryInterface
public function indexForAdmin($request, $user) public function indexForAdmin($request, $user)
{ {
return Package::when($request->has('name') && $request->name != '', function ($query) use ($request) { 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.'%'); $query->where('name', 'LIKE', '%'.$request->name.'%');
}) })
->when($request->has('package_id') && $request->package_id != '', function ($query) use ($request) { ->when($request->has('package_id') && $request->package_id != '', function ($query) use ($request) {
@@ -75,14 +92,15 @@ class PackageRepository implements PackageRepositoryInterface
$query->where('medical_center_id', $request->medical_center_id); $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') ->orderByDesc('id')
->paginate(10); ->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 . '%');
});
});
}
} }
+1 -1
View File
@@ -31,7 +31,7 @@ Route::group(['namespace' => 'Api'], function () {
}); });
Route::middleware('auth:api')->group(function () { Route::middleware('auth:api')->group(function () {
Route::get('TestTypes/ListNames', [TestTypeController::class, 'listNames']); Route::get('TestTypes/List', [TestTypeController::class, 'list']);
Route::post('/TestTypes/Barcode/{TestType}', [TestTypeController::class, 'generateBarcode']); Route::post('/TestTypes/Barcode/{TestType}', [TestTypeController::class, 'generateBarcode']);
Route::resource('TestTypes', TestTypeController::class); Route::resource('TestTypes', TestTypeController::class);
Route::resource('MedicalCenters', MedicalCenterController::class); Route::resource('MedicalCenters', MedicalCenterController::class);