update sisa limit
This commit is contained in:
@@ -146,12 +146,13 @@ class MemberController extends Controller
|
||||
->first();
|
||||
|
||||
$res_data['total_premi'] = $corporateEmployee->total_premi ?? 0;
|
||||
$res_data['limit_rules'] = DB::table('member_plans')
|
||||
$limitRules = DB::table('member_plans')
|
||||
->leftJoin('plans', 'plans.id', '=', 'member_plans.plan_id')
|
||||
->where('member_plans.member_id', $members->id)
|
||||
->where('member_plans.status', 'active')
|
||||
->where('plans.active', 1)
|
||||
->value('plans.limit_rules') ?? 0;
|
||||
$res_data['limit_rules'] = $limitRules ?? 0;
|
||||
|
||||
$planMember = MemberPlan::where('member_id', $members->id)->get('plan_id');
|
||||
|
||||
@@ -172,6 +173,31 @@ class MemberController extends Controller
|
||||
$memberUsage = Helper::getUsageMember($corporateEmployee->corporate_id, $members->id, $benefitData);;
|
||||
|
||||
$res_data['used_limit'] = json_decode($memberUsage);
|
||||
|
||||
$usedLimit = json_decode($memberUsage, true);
|
||||
|
||||
$totalUsed = 0;
|
||||
|
||||
if (is_array($usedLimit)) {
|
||||
foreach ($usedLimit as $value) {
|
||||
$totalUsed += (int) $value;
|
||||
}
|
||||
}
|
||||
|
||||
$limitRules = (int) $limitRules;
|
||||
|
||||
// hitung sisa
|
||||
$remainingLimit = $limitRules - $totalUsed;
|
||||
|
||||
// biar gak minus
|
||||
if ($remainingLimit < 0) {
|
||||
$remainingLimit = 0;
|
||||
}
|
||||
|
||||
// set ke response
|
||||
$res_data['remaining_limit'] = $remainingLimit;
|
||||
$res_data['total_used_limit'] = $totalUsed;
|
||||
|
||||
// company
|
||||
$companies = DB::table('corporates')
|
||||
->where('corporates.active', 1)
|
||||
@@ -265,15 +291,21 @@ class MemberController extends Controller
|
||||
// ===============================
|
||||
// Hitung Used Limit (PAKAI HELPER)
|
||||
// ===============================
|
||||
$benefitData = [
|
||||
[
|
||||
'id' => $benefitId,
|
||||
'limit_amount' => $corporateBenefit->limit_amount ?? 0,
|
||||
$allBenefits = CorporateBenefit::with(['benefit', 'plan'])
|
||||
->where('plan_id', $plan->id)
|
||||
->get();
|
||||
|
||||
$benefitData = [];
|
||||
|
||||
foreach ($allBenefits as $data) {
|
||||
$benefitData[] = [
|
||||
'id' => $data->benefit_id,
|
||||
'limit_amount' => $data->limit_amount ?? 0,
|
||||
'limit_amount_plan' => $plan->limit_rules ?? 0,
|
||||
'family_plan' => $plan->family_plan ?? 'S',
|
||||
'max_frequency_period' => $corporateBenefit->max_frequency_period ?? 0
|
||||
]
|
||||
];
|
||||
'max_frequency_period' => $data->max_frequency_period ?? 0
|
||||
];
|
||||
}
|
||||
|
||||
$memberUsage = Helper::getUsageMember(
|
||||
$corporateEmployee->corporate_id,
|
||||
@@ -282,13 +314,22 @@ class MemberController extends Controller
|
||||
);
|
||||
|
||||
$usedLimitArray = json_decode($memberUsage, true);
|
||||
$usedLimit = $usedLimitArray[$benefitId] ?? 0;
|
||||
|
||||
// total semua benefit (INI YANG BENAR)
|
||||
$totalUsedLimit = is_array($usedLimitArray) ? array_sum($usedLimitArray) : 0;
|
||||
|
||||
// tetap ambil per benefit (kalau mau ditampilkan)
|
||||
$usedLimit = $totalUsedLimit;
|
||||
|
||||
// ===============================
|
||||
// Limit Logic
|
||||
// ===============================
|
||||
$limitPlan = $plan->limit_rules ?? 0;
|
||||
$sisaLimit = $limitPlan - $usedLimit;
|
||||
$sisaLimit = $limitPlan - $totalUsedLimit;
|
||||
|
||||
if ($sisaLimit < 0) {
|
||||
$sisaLimit = 0;
|
||||
}
|
||||
|
||||
if ($sisaLimit < 0) {
|
||||
$sisaLimit = 0;
|
||||
|
||||
Reference in New Issue
Block a user