From b05f0528487f7af1d89f72aa2c7f3f864caf9a1e Mon Sep 17 00:00:00 2001 From: kevin Date: Fri, 16 Jun 2023 10:26:56 +0700 Subject: [PATCH] request --- app/Http/Resources/OLDLMS/MemberResource.php | 6 ++- .../2022_06_23_083834_create_plans_table.php | 1 + ...dd_column_limit_telecon_to_table_plans.php | 32 +++++++++++ .../user-profile/CardPolicyNumber.tsx | 54 +++++++++++++++++++ 4 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 database/migrations/2023_06_13_103859_add_column_limit_telecon_to_table_plans.php diff --git a/app/Http/Resources/OLDLMS/MemberResource.php b/app/Http/Resources/OLDLMS/MemberResource.php index 4f4edc7e..ec10b1b9 100755 --- a/app/Http/Resources/OLDLMS/MemberResource.php +++ b/app/Http/Resources/OLDLMS/MemberResource.php @@ -17,6 +17,8 @@ class MemberResource extends JsonResource { // $data = parent::toArray($request); $currentMemberPlan = $this->memberPlans?->first(); + $limitTelecon = $currentMemberPlan->plan->limit_telecon ?? null; + $limitTelecon = $this->totalUsage >= 6 ? null : $limitTelecon; $data = [ 'member_id' => $this->member_id, @@ -29,7 +31,9 @@ class MemberResource extends JsonResource 'code' => $currentMemberPlan->plan->code ?? null, 'start' => $currentMemberPlan->start, 'end' => $currentMemberPlan->end, - 'limit' => $this->currentPlan->limit_rules + 'limit' => $this->currentPlan->limit_rules, + 'limit_telecon' => $limitTelecon, + ] : null, 'policy_code' => $this->currentPolicy?->code ?? null, 'corporate' => [ diff --git a/database/migrations/2022_06_23_083834_create_plans_table.php b/database/migrations/2022_06_23_083834_create_plans_table.php index ee148e63..7321d863 100755 --- a/database/migrations/2022_06_23_083834_create_plans_table.php +++ b/database/migrations/2022_06_23_083834_create_plans_table.php @@ -64,6 +64,7 @@ return new class extends Migration $table->string('currency')->nullable(); $table->float('max_surgery_reinstatement_days')->nullable(); $table->float('max_surgery_periode_days')->nullable(); + $table->timestamps(); $table->softDeletes(); diff --git a/database/migrations/2023_06_13_103859_add_column_limit_telecon_to_table_plans.php b/database/migrations/2023_06_13_103859_add_column_limit_telecon_to_table_plans.php new file mode 100644 index 00000000..b58063dc --- /dev/null +++ b/database/migrations/2023_06_13_103859_add_column_limit_telecon_to_table_plans.php @@ -0,0 +1,32 @@ +string('limit_telecon')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('plans', function (Blueprint $table) { + $table->dropColumn('limit_telecon'); + }); + } +}; 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 118db8cd..e8ce1a2e 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 @@ -21,6 +21,22 @@ const BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({ })); +type DataMember = { + id: number; + fullName: string; + memberId: string; + limit: { + current: number; + total: number; + percentage: number; + }; + avatar: { + url: string; + title: string; + }; + status: JSX.Element; +}; + type CardPolicyProps = { limit: { myLimit: { @@ -49,6 +65,8 @@ type CardPolicyProps = { members?: DataMember[]; }; + + // ---------------------------------------------------------------------- export default function CardPolicyNumber() { @@ -85,6 +103,42 @@ export default function CardPolicyNumber() { // topUpLimit: corporateTopUpLimit.data.data, // }); }, [corporateValue]); + + const calculateProgressValue = (current:number,total:number) => { + return (current/total) * 100; + }; + + const getMemberLimitUsage = (memberId: string) => { + if (policyData?.members) { + const member = policyData.members.find(member => member.memberId === memberId); + if (member) { + return member.limit; + } + } + return null; + }; + + const renderYearlyLimit = () => { + if (policyData) { + const { myLimit } = policyData.limit; + const { balance, total, percentage } = myLimit; + const progressValue = calculateProgressValue(balance, total); + + return ( + + Yearly Limit + + + {balance.toLocaleString()} /{' '} + + {total.toLocaleString()} + + + + ); + } + return null; + }; return (