From 3a8a7438ba8728e2b75159e724cbf9cb17104dbb Mon Sep 17 00:00:00 2001 From: kevin Date: Fri, 9 Jun 2023 13:52:54 +0700 Subject: [PATCH] update banyak --- .../Api/CorporateMemberController.php | 3 + .../Http/Controllers/Api/TopUpController.php | 17 +++++ Modules/Client/Routes/api.php | 12 +++- .../Controllers/ClaimEncounterController.php | 24 +++++++ app/Models/Encounter.php | 7 ++ app/Services/CorporateMemberService.php | 6 ++ .../src/pages/AlarmCenter/Index.tsx | 6 +- .../src/pages/AlarmCenter/List.tsx | 4 +- .../pages/AlarmCenter/ServiceMonitoring.tsx | 64 ++++++++++++++--- .../src/pages/AlarmCenter/UserProfile.tsx | 2 +- .../src/pages/Dashboard/Index.tsx | 6 +- .../user-profile/CardPersonalInformation.tsx | 4 +- .../user-profile/CardPolicyNumber.tsx | 72 ++++++++++++++++++- 13 files changed, 204 insertions(+), 23 deletions(-) diff --git a/Modules/Client/Http/Controllers/Api/CorporateMemberController.php b/Modules/Client/Http/Controllers/Api/CorporateMemberController.php index c698b5a8..debec26f 100755 --- a/Modules/Client/Http/Controllers/Api/CorporateMemberController.php +++ b/Modules/Client/Http/Controllers/Api/CorporateMemberController.php @@ -33,6 +33,9 @@ class CorporateMemberController extends Controller case 'alarm-center': $members = $this->corporateMemberService->getAllMemberAlarmCenter($corporate_id, $request); return response()->json(Helper::paginateResources(DashboardMemberAlarmResources::collection($members))); + case 'service-monitoring': + $members = $this->corporateMemberService->getAllEncounter($corporate_id, $request); + return response()->json(Helper::paginateResources(DashboardMemberAlarmResources::collection($members))); default: $members = $this->corporateMemberService->getAllMemberDashboards($corporate_id, $request); return response()->json(Helper::paginateResources(DashboardMemberResources::collection($members))); diff --git a/Modules/Client/Http/Controllers/Api/TopUpController.php b/Modules/Client/Http/Controllers/Api/TopUpController.php index b39832ef..d6b324fc 100755 --- a/Modules/Client/Http/Controllers/Api/TopUpController.php +++ b/Modules/Client/Http/Controllers/Api/TopUpController.php @@ -62,6 +62,23 @@ class TopUpController extends Controller return view('client::show'); } + public function get($corporate_id) + { + $data = CorporatePolicy::query() + ->where('corporate_id', $corporate_id) + ->with(['currentPolicy', 'employees']) + ->withCount(['employees', 'claims' => function ($query) { + $query->where('claims.status', 'paid'); + }]) + ->first(); + + if (!$data) { + return response()->json(['message' => 'Corporate policy not found'], 404); + } + + return Helper::responseJson(TopUpLimitResources::make($data)); + } + /** * Update the specified resource in storage. * @param Request $request diff --git a/Modules/Client/Routes/api.php b/Modules/Client/Routes/api.php index d5f2c2a0..7c964819 100755 --- a/Modules/Client/Routes/api.php +++ b/Modules/Client/Routes/api.php @@ -8,6 +8,9 @@ use Modules\Client\Http\Controllers\Api\CorporatePolicyController; use Modules\Client\Http\Controllers\Api\UserController; use Modules\Client\Http\Controllers\Api\ClaimController; use Modules\Client\Http\Controllers\Api\TopUpController; +use Modules\Internal\Http\Controllers\ClaimEncounterController; +use App\Models\Encounter; +use Modules\Internal\Transformers\EncounterResource; /* |-------------------------------------------------------------------------- @@ -38,11 +41,16 @@ Route::prefix('client')->group(function () { Route::get('members', [CorporateMemberController::class, 'index']); Route::get('claims/status', [ClaimController::class, 'status']); Route::get('claims', [ClaimController::class, 'index']); - + Route::get('claims/{claim_id}/encounters', [ClaimEncounterController::class, 'getEncounterData']); Route::get('topup', [TopUpController::class, 'index']); + // Route::get('topup', [TopUpController::class, 'get']); Route::post('topup', [TopUpController::class, 'store']); }); - Route::get('claims/{id}', [ClaimController::class, 'show']); + + + + + }); }); diff --git a/Modules/Internal/Http/Controllers/ClaimEncounterController.php b/Modules/Internal/Http/Controllers/ClaimEncounterController.php index 0b99058e..9eea7c46 100755 --- a/Modules/Internal/Http/Controllers/ClaimEncounterController.php +++ b/Modules/Internal/Http/Controllers/ClaimEncounterController.php @@ -12,6 +12,7 @@ use Illuminate\Routing\Controller; use Illuminate\Support\Facades\DB; use Modules\Internal\Transformers\EncounterResource; + class ClaimEncounterController extends Controller { /** @@ -31,6 +32,13 @@ class ClaimEncounterController extends Controller { return view('internal::create'); } + public function getAllData() + { + $encounters = Encounter::with('claim.member')->get(); + + return Helper::responseJson(data: EncounterResource::collection($encounters), message: 'Data berhasil diambil'); + } + /** * Store a newly created resource in storage. @@ -255,6 +263,22 @@ class ClaimEncounterController extends Controller } } + public function x`counters($claim_id) + { + $claim = Claim::findOrFail($claim_id); + $encounters = $claim->encounters()->get(); + return response()->json($encounters); + } + + public function getEncounterData($encounter_id) + { + $encounter = Encounter::with('claim.member')->findOrFail($encounter_id); + + return Helper::responseJson(data: EncounterResource::make($encounter), message: 'Data berhasil diambil'); + } + + + /** * Remove the specified resource from storage. * @param int $id diff --git a/app/Models/Encounter.php b/app/Models/Encounter.php index 48cd4819..45b92e64 100755 --- a/app/Models/Encounter.php +++ b/app/Models/Encounter.php @@ -54,6 +54,12 @@ class Encounter extends Model return $this->hasMany(EncounterParticipant::class, 'encounter_id'); } + public function claim() + { + return $this->belongsTo(Claim::class); + } + + public function doctors() { @@ -96,6 +102,7 @@ class Encounter extends Model return $this->belongsTo(Service::class, 'class', 'code'); } + public function getMetaAttribute() { $orgMeta = []; diff --git a/app/Services/CorporateMemberService.php b/app/Services/CorporateMemberService.php index bf715f11..3fe73695 100755 --- a/app/Services/CorporateMemberService.php +++ b/app/Services/CorporateMemberService.php @@ -3,6 +3,7 @@ namespace App\Services; use App\Models\Member; +use App\Models\Encounter; use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Request; @@ -120,4 +121,9 @@ class CorporateMemberService ->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`") ->paginate($limit); } + + public function getAllEncounter(int $corporateId){ + return Encounter::query()->select(['id'])->paginate(10); + + } } diff --git a/frontend/client-portal/src/pages/AlarmCenter/Index.tsx b/frontend/client-portal/src/pages/AlarmCenter/Index.tsx index 5ff13a54..1566fcfe 100755 --- a/frontend/client-portal/src/pages/AlarmCenter/Index.tsx +++ b/frontend/client-portal/src/pages/AlarmCenter/Index.tsx @@ -107,9 +107,9 @@ export default function Drugs() { - - - + + + diff --git a/frontend/client-portal/src/pages/AlarmCenter/List.tsx b/frontend/client-portal/src/pages/AlarmCenter/List.tsx index 298b8146..27c13602 100755 --- a/frontend/client-portal/src/pages/AlarmCenter/List.tsx +++ b/frontend/client-portal/src/pages/AlarmCenter/List.tsx @@ -289,7 +289,7 @@ export default function List() { , status: obj.status === 1 ? ( - ), - action: ( + /* action: ( - ), + ), */ }; }) ); diff --git a/frontend/client-portal/src/sections/alarm-center/user-profile/CardPersonalInformation.tsx b/frontend/client-portal/src/sections/alarm-center/user-profile/CardPersonalInformation.tsx index 79b127cc..3d48429c 100755 --- a/frontend/client-portal/src/sections/alarm-center/user-profile/CardPersonalInformation.tsx +++ b/frontend/client-portal/src/sections/alarm-center/user-profile/CardPersonalInformation.tsx @@ -256,13 +256,13 @@ export default function CardPersonalInformation({data}) { fullWidth sx={{ marginTop: '16px' }} /> - setAddress(e.target.value)} fullWidth sx={{ marginTop: '16px' }} - /> + /> */} {/* Add more fields as needed */} diff --git a/frontend/client-portal/src/sections/alarm-center/user-profile/CardPolicyNumber.tsx b/frontend/client-portal/src/sections/alarm-center/user-profile/CardPolicyNumber.tsx index c95f33d9..118db8cd 100755 --- a/frontend/client-portal/src/sections/alarm-center/user-profile/CardPolicyNumber.tsx +++ b/frontend/client-portal/src/sections/alarm-center/user-profile/CardPolicyNumber.tsx @@ -2,7 +2,10 @@ import { styled } from '@mui/material/styles'; import { Card, Typography, Stack, LinearProgress, linearProgressClasses } from '@mui/material'; import CardBenefitSummary from './CardBenefitSummary'; +import axios from '../../../utils/axios'; +import { useContext, useState, useEffect } from 'react'; +import { UserCurrentCorporateContext } from '../../../contexts/UserCurrentCorporate'; // ---------------------------------------------------------------------- const BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({ @@ -17,10 +20,73 @@ const BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({ }, })); -// ---------------------------------------------------------------------- +type CardPolicyProps = { + limit: { + myLimit: { + balance: number; + total: number; + percentage: number; + }; + lockLimit: { + balance: number; + percentage: number; + }; + }; + topUpLimit: { + companyName: string; + policyNumber: number; + totalMembers: number; + totalCases: number; + totalPersen: number; + myLimit: { + balance: number; + total: number; + percentage: number; + }; + maxTopUp: number; + }; + members?: DataMember[]; +}; + +// ---------------------------------------------------------------------- + export default function CardPolicyNumber() { - return ( + + + const { corporateValue } = useContext(UserCurrentCorporateContext); + const [policyNumber,setPolicyNumber] = useState(''); + const [policyData, setPolicyData] = useState(); + +/* axios.get(`${corporateValue}/topup`) + .then(response => { + console.log(response.data); + }) + .catch(error => { + console.error(error); + }); */ + + useEffect(() => { + axios + .get(`${corporateValue}/topup`) + .then(response => { + const { data } = response.data; // Access the 'data' object from the response + const { policyNumber } = data; // Access the 'policyNumber' field from the 'data' object + setPolicyNumber(policyNumber); + }) + .catch(error => { + console.error(error); + }); + + // const corporatePolicyLimit = axios.get(`${corporateValue}/policy`); + // const corporateTopUpLimit = axios.get(`${corporateValue}/topup`); + // setPolicyData({ + // limit: corporatePolicyLimit.data.data, + // topUpLimit: corporateTopUpLimit.data.data, + // }); + }, [corporateValue]); + + return ( @@ -28,7 +94,7 @@ export default function CardPolicyNumber() { LinkSehat Policy Number - 12345678910 + {policyNumber}