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 (