From ccb374da85b69614e5acef49c3dbfb46268fa207 Mon Sep 17 00:00:00 2001 From: Tb Fajri Date: Tue, 13 Feb 2024 11:32:00 +0700 Subject: [PATCH] update function sort di client portal --- .../Api/CorporateMemberController.php | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/Modules/Client/Http/Controllers/Api/CorporateMemberController.php b/Modules/Client/Http/Controllers/Api/CorporateMemberController.php index d9f40b8f..c97bf934 100644 --- a/Modules/Client/Http/Controllers/Api/CorporateMemberController.php +++ b/Modules/Client/Http/Controllers/Api/CorporateMemberController.php @@ -188,15 +188,26 @@ class CorporateMemberController extends Controller public function showPerMember(Request $request, $corporate_id, $member_id) { $per_page = $request->has('per_page') ? $request->input('per_page') : 10; - - $data = Member::query() - ->with(['requestLogs']) + $member = Member::query() ->whereHas('currentCorporate', function ($query) use ($corporate_id) { $query->where('corporate_id', $corporate_id); }) ->find($member_id); - - return response()->json(['full_name' => $data->full_name ?? null, 'paginations' => Helper::paginateResources(DataListClaimMemberResource::collection($data->requestLogs()->paginate($per_page)))]); + $data = RequestLog::where([ + 'member_id' => $member->id, + 'deleted_at' => null + ]) + ->when($request->has('orderBy'), function ($query) use ($request) { + $orderBy = match ($request->input('orderBy')) { + 'admission_date' => 'request_logs.submission_date', + 'discharge_date' => 'request_logs.discharge_date', + 'code' => 'request_logs.code', + default => '' + }; + $query->getQuery()->orderBy($orderBy, $request->order); + }) + ->paginate($per_page); + return response()->json(['full_name' => $member->full_name?? null, 'paginations' => Helper::paginateResources(DataListClaimMemberResource::collection($data))]); } public function serviceMonitoring(int $corporate_id, int $request_log_id)