diff --git a/Modules/HospitalPortal/Http/Controllers/Api/ClaimRequestController.php b/Modules/HospitalPortal/Http/Controllers/Api/ClaimRequestController.php index 8d37763a..62fc3e95 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/ClaimRequestController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/ClaimRequestController.php @@ -17,6 +17,7 @@ use Modules\HospitalPortal\Transformers\ClaimRequestResource; use Modules\HospitalPortal\Transformers\ClaimRequestShowResource; use PDF; use Illuminate\Support\Facades\DB; +use Modules\HospitalPortal\Helpers\ApiResponse; class ClaimRequestController extends Controller { @@ -64,7 +65,7 @@ class ClaimRequestController extends Controller { $request->validate([ 'member_id' => 'required', - 'service_code' => 'required|in:OP,IP' + 'service_code' => 'required' ]); $code = $this->getNextCode(); $member = Member::find($request->member_id); @@ -145,7 +146,7 @@ class ClaimRequestController extends Controller } } - return Helper::responseJson(data: $request->toArray(), message: 'Claim Request berhasil ajukan!'); + return ApiResponse::apiResponse("Success", [], trans('message.success'), 200); } /** @@ -226,7 +227,8 @@ class ClaimRequestController extends Controller public static function getNextCode() { $last_number = ClaimRequest::withTrashed()->max('code'); - $next_number = empty($last_number) ? 1 : ((int) explode('-', $last_number)[2] + 1); + $last_number_parts = explode('-', $last_number); + $next_number = count($last_number_parts) < 3 ? 1 : ((int) $last_number_parts[2] + 1); return self::makeCode($next_number); } diff --git a/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php b/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php index caf855fd..f2df36dc 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php @@ -9,6 +9,7 @@ use Illuminate\Http\Request; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Validator; use Modules\HospitalPortal\Helpers\ApiResponse; +use Illuminate\Support\Facades\DB; class MemberController extends Controller { @@ -35,20 +36,43 @@ class MemberController extends Controller } else { - $res_data = Member::query() - ->where('member_id', $request->no_polis) - ->where('birth_date', $request->birth_date) - ->with(['person', 'currentCorporate', - // 'currentCorporate.corporateServices' => function ($corporateService) { - // $corporateService->where('status', 'active'); - // }, - // 'currentCorporate.corporateServices.service' - // 'currentPlan.benefits', - // 'currentPlan.corporateBenefit.plan', - 'currentPolicy', - 'currentPlan.corporateBenefits.benefit' - ]) - ->firstOrFail(); + $members = DB::table('members') + ->leftJoin('member_policies', 'member_policies.member_id','=', 'members.member_id') + ->leftJoin('persons', 'persons.id', '=', 'members.person_id') + ->where('members.member_id', '=', $request->no_polis) + ->where('members.birth_date', '=', $request->birth_date) + ->select( + 'members.id', + 'members.member_id', + 'member_policies.policy_id', + 'persons.nik', + 'members.email', + 'members.birth_date', + 'members.gender', + 'members.marital_status', + 'members.language', + 'members.race', + 'members.relation_with_principal') + ->first(); + $res_data['members'] = $members; + + $benefits = DB::table('member_plans') + ->leftJoin('corporate_benefits','corporate_benefits.plan_id', '=', 'member_plans.plan_id') + ->leftJoin('benefits', 'benefits.id', '=', 'corporate_benefits.benefit_id') + ->where('member_plans.member_id', '=', $members->id) + ->select('benefits.description','benefits.code','corporate_benefits.corporate_id') + ->get(); + $res_data['benefits'] = $benefits; + + $services = DB::table('member_plans') + ->leftJoin('plans', 'plans.id', '=', 'member_plans.plan_id') + ->leftJoin('services', 'services.code', '=', 'plans.service_code') + ->where('member_plans.member_id', $members->id) + ->select('plans.service_code', 'services.name') + ->get(); + $res_data['services'] = $services; + + return ApiResponse::apiResponse("Success", $res_data, trans('message.success'), 200); } } diff --git a/Modules/Internal/Http/Controllers/Api/ClaimController.php b/Modules/Internal/Http/Controllers/Api/ClaimController.php index eb300347..200d50a8 100644 --- a/Modules/Internal/Http/Controllers/Api/ClaimController.php +++ b/Modules/Internal/Http/Controllers/Api/ClaimController.php @@ -723,7 +723,7 @@ class ClaimController extends Controller $data_claim_requests = DB::table('claim_requests') ->leftJoin('claims', 'claim_requests.id', '=', 'claims.claim_request_id') ->where('claims.id', $claim_id) - ->select('claim_requests.id') + ->select('claim_requests.id', 'claim_requests.member_id') ->first(); $claim_id = $data_claim_requests->id; @@ -738,9 +738,9 @@ class ClaimController extends Controller ->first(); //Service Type - $service_type = DB::table('corporate_services') - ->leftJoin('services','corporate_services.service_code', 'services.code') - ->where('corporate_services.corporate_id', $corporate_id->id) + $service_type = DB::table('claim_requests') + ->leftJoin('services','claim_requests.service_code', 'services.code') + ->where('claim_requests.id', $claim_id) ->select('services.name', 'services.code', 'services.id') ->get(); $results['service_type'] = $service_type; @@ -751,14 +751,13 @@ class ClaimController extends Controller ->select('claims.plan_id') ->first(); - //Benefit Name - $benefit_name = DB::table('corporate_benefits') - ->leftJoin('benefits', 'corporate_benefits.benefit_id', 'benefits.id') - ->where('corporate_benefits.corporate_id', $corporate_id->id) - ->where('corporate_benefits.plan_id', $plan_id->plan_id) - ->select('benefits.code', 'benefits.description', 'benefits.id') - ->get(); + $benefit_name = DB::table('member_plans') + ->leftJoin('corporate_benefits','corporate_benefits.plan_id', '=', 'member_plans.plan_id') + ->leftJoin('benefits', 'benefits.id', '=', 'corporate_benefits.benefit_id') + ->where('member_plans.member_id', '=', $data_claim_requests->member_id) + ->select('benefits.code', 'benefits.description', 'benefits.id') + ->get(); $results['benefit_name'] = $benefit_name; //Hospital diff --git a/frontend/dashboard/src/pages/Claims/Detail.tsx b/frontend/dashboard/src/pages/Claims/Detail.tsx index 64af0228..f3ca0f13 100644 --- a/frontend/dashboard/src/pages/Claims/Detail.tsx +++ b/frontend/dashboard/src/pages/Claims/Detail.tsx @@ -1327,7 +1327,7 @@ export default function Detail() {