diff --git a/Modules/Client/Transformers/AlarmCenter/DataListClaimMemberResource.php b/Modules/Client/Transformers/AlarmCenter/DataListClaimMemberResource.php index 338621dc..9b815b95 100644 --- a/Modules/Client/Transformers/AlarmCenter/DataListClaimMemberResource.php +++ b/Modules/Client/Transformers/AlarmCenter/DataListClaimMemberResource.php @@ -3,6 +3,7 @@ namespace Modules\Client\Transformers\AlarmCenter; use Illuminate\Http\Resources\Json\JsonResource; +use App\Models\Service; class DataListClaimMemberResource extends JsonResource { @@ -14,13 +15,27 @@ class DataListClaimMemberResource extends JsonResource */ public function toArray($request) { + $serviceData = Service::where('code', $this->service_code)->first(); + if ($serviceData) { + $serviceName = $serviceData->name; + } else { + $serviceName = $this->service_cod; + } + + if ($this->status == 'approved' && $this->status_final_log ){ + $status = 'Done'; + } else if ($this->status == 'declined' || $this->status_final_log == 'declined') { + $status = 'Declined'; + } else { + $status = 'Ongoing'; + } return [ 'id' => $this->id, 'admission_date' => $this->submission_date ?? null, 'discharge_date' => $this->discharge_date ?? null, 'code' => $this->code ?? null, - 'service_type' => $this->service_code == 'IP' ? 'Inpatient' : 'Outpatient', - 'status' => $this->status === 'requested' || ($this->status === 'approved' && $this->status_final_log) || ($this->status_final_log === 'requested' && $this->status === 'requested') ? 'Ongoing' : ($this->status === 'approved' && $this->status_final_log === 'approved' ? 'Approved' : 'Declined') + 'service_type' => $serviceName, + 'status' => $status, ]; } } diff --git a/Modules/Client/Transformers/AlarmCenter/DataServiceMonitoring.php b/Modules/Client/Transformers/AlarmCenter/DataServiceMonitoring.php index eebb2cea..686829aa 100644 --- a/Modules/Client/Transformers/AlarmCenter/DataServiceMonitoring.php +++ b/Modules/Client/Transformers/AlarmCenter/DataServiceMonitoring.php @@ -3,6 +3,7 @@ namespace Modules\Client\Transformers\AlarmCenter; use App\Helpers\Helper; +use App\Models\Service; use Illuminate\Http\Resources\Json\JsonResource; class DataServiceMonitoring extends JsonResource @@ -15,6 +16,12 @@ class DataServiceMonitoring extends JsonResource */ public function toArray($request) { + $serviceData = Service::where('code', $this->service_code)->first(); + if ($serviceData) { + $serviceName = $serviceData->name; + } else { + $serviceName = $this->service_cod; + } return [ 'companyName' => $this->member->currentCorporate->name ?? null, 'memberId' => $this->member->member_id ?? null, @@ -23,8 +30,9 @@ class DataServiceMonitoring extends JsonResource 'dateOfBirth' => $this->member->birth_date ?? null, 'phoneNumber' => $this->person->phone ?? null, 'email' => $this->member->email ?? ($this->member->person->email ?? null), - 'serviceName' => $this->service_code === 'IP' ? 'Inpatient' : ($this->service_code === 'OP' ? 'Outpatient' : null), + 'serviceName' => $serviceName, 'benefitName' => $this->requestLogBenefit->benefit->description ?? null, + 'benefit' => $this->requestLogBenefit ?? null, 'hospital' => $this->organization->name ?? null, 'admissionDate' => $this->submission_date ?? null, 'dischargeDate' => $this->discharge_date ?? null, diff --git a/app/Services/CorporateMemberService.php b/app/Services/CorporateMemberService.php index 7ba99da8..2a851546 100644 --- a/app/Services/CorporateMemberService.php +++ b/app/Services/CorporateMemberService.php @@ -5,6 +5,7 @@ namespace App\Services; use App\Models\CorporateEmployee; use App\Models\Member; use App\Models\Encounter; +use App\Models\RequestLog; use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; @@ -152,8 +153,61 @@ class CorporateMemberService // $end_date = date('Y-m-d', strtotime($request->input('end_date') . ' +1 day')); // dd($request); - return Member::query() - // ->joinCorporateEmployees('left') + + // return Member::query() + // // ->joinCorporateEmployees('left') + // // ->joinMemberPlans('left') + // // ->joinPlans('left') + // // ->with(['currentPlan', 'person']) + // // ->where('corporate_employees.corporate_id', $corporateId) + // ->when($request->input('search'), function (Builder $query, $search) { + // $query->where(function (Builder $query) use ($search) { + // $query->orWhere('members.member_id', 'like', "%" . $search . "%") + // ->orWhere('members.name', 'like', "%" . $search . "%"); + // }); + // }) + // ->when($request->input('start_date'), function (Builder $query, $start_date) { + // $query->where('members.members_effective_date', '>=', $start_date); + // }) + // ->when($request->input('end_date'), function (Builder $query, $end_date) { + // $query->where('members.members_expire_date', '<', $end_date); + // }) + // ->when($request->input('division'), function (Builder $query, $value) { + // $query->where('corporate_employees.division_id', $value); + // }) + // ->when($request->input('status'), function (Builder $query, $value) { + // $query->where('plans.active', $value); + // }) + // ->when($request->has('orderBy'), function (Builder $query) use ($request) { + // $orderBy = match ($request->input('orderBy')) { + // 'memberId' => 'member_id', + // 'fullName' => 'name', + // // 'status' => 'active', + // 'start_date' => 'member_plans.members_effective_date', + // 'end_date' => 'member_plans.members_expire_date', + // // 'service' => 'plans.service_code', + + // default => '' + // }; + + // $query->getQuery()->orderBy($orderBy, $request->order); + // }) + // ->select([ + // 'members.id', + // 'members.person_id', + // 'members.member_id', + // 'members.name', + // 'members.members_effective_date', // Use the actual property name + // 'members.members_expire_date', // Use the actual property name + // // 'plans.active', + // // 'plans.service_code' + // ]) + // // ->selectRaw("(select sum(`claims`.`total_claim`) from `claims` where `members`.`id` = `claims`.`member_id` AND `claims`.`deleted_at` IS NULL) AS `claims_sum_total_claim`") + // // ->groupBy('member_id') + // ->paginate($limit); + + return RequestLog::query() + ->leftJoin('members', 'request_logs.member_id', '=', 'members.id') // ->joinMemberPlans('left') // ->joinPlans('left') // ->with(['currentPlan', 'person']) @@ -180,10 +234,10 @@ class CorporateMemberService $orderBy = match ($request->input('orderBy')) { 'memberId' => 'member_id', 'fullName' => 'name', - // 'status' => 'active', + 'status' => 'active', 'start_date' => 'member_plans.members_effective_date', 'end_date' => 'member_plans.members_expire_date', - // 'service' => 'plans.service_code', + 'request_date' => 'request_logs.submission_date', default => '' }; @@ -194,15 +248,17 @@ class CorporateMemberService 'members.id', 'members.person_id', 'members.member_id', - 'members.name', + 'members.name as full_name', 'members.members_effective_date', // Use the actual property name 'members.members_expire_date', // Use the actual property name - // 'plans.active', - // 'plans.service_code' + 'members.active', + 'request_logs.service_code', ]) // ->selectRaw("(select sum(`claims`.`total_claim`) from `claims` where `members`.`id` = `claims`.`member_id` AND `claims`.`deleted_at` IS NULL) AS `claims_sum_total_claim`") - // ->groupBy('member_id') + ->groupBy('member_id') ->paginate($limit); + + } public function getAllMemberEmployeeData(int $corporateId, Request $request) diff --git a/frontend/client-portal/src/pages/AlarmCenter/List.tsx b/frontend/client-portal/src/pages/AlarmCenter/List.tsx index 7c711714..edfa33d0 100644 --- a/frontend/client-portal/src/pages/AlarmCenter/List.tsx +++ b/frontend/client-portal/src/pages/AlarmCenter/List.tsx @@ -51,8 +51,8 @@ export default function List() { /* -------------------------------------------------------------------------- */ /* ------------------------------ handle order ------------------------------ */ - const [order, setOrder] = useState('asc'); - const [orderBy, setOrderBy] = useState('fullName'); + const [order, setOrder] = useState('desc'); + const [orderBy, setOrderBy] = useState('request_date'); const orders = { order: order,