update sisa limit
This commit is contained in:
@@ -146,12 +146,13 @@ class MemberController extends Controller
|
|||||||
->first();
|
->first();
|
||||||
|
|
||||||
$res_data['total_premi'] = $corporateEmployee->total_premi ?? 0;
|
$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')
|
->leftJoin('plans', 'plans.id', '=', 'member_plans.plan_id')
|
||||||
->where('member_plans.member_id', $members->id)
|
->where('member_plans.member_id', $members->id)
|
||||||
->where('member_plans.status', 'active')
|
->where('member_plans.status', 'active')
|
||||||
->where('plans.active', 1)
|
->where('plans.active', 1)
|
||||||
->value('plans.limit_rules') ?? 0;
|
->value('plans.limit_rules') ?? 0;
|
||||||
|
$res_data['limit_rules'] = $limitRules ?? 0;
|
||||||
|
|
||||||
$planMember = MemberPlan::where('member_id', $members->id)->get('plan_id');
|
$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);;
|
$memberUsage = Helper::getUsageMember($corporateEmployee->corporate_id, $members->id, $benefitData);;
|
||||||
|
|
||||||
$res_data['used_limit'] = json_decode($memberUsage);
|
$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
|
// company
|
||||||
$companies = DB::table('corporates')
|
$companies = DB::table('corporates')
|
||||||
->where('corporates.active', 1)
|
->where('corporates.active', 1)
|
||||||
@@ -265,15 +291,21 @@ class MemberController extends Controller
|
|||||||
// ===============================
|
// ===============================
|
||||||
// Hitung Used Limit (PAKAI HELPER)
|
// Hitung Used Limit (PAKAI HELPER)
|
||||||
// ===============================
|
// ===============================
|
||||||
$benefitData = [
|
$allBenefits = CorporateBenefit::with(['benefit', 'plan'])
|
||||||
[
|
->where('plan_id', $plan->id)
|
||||||
'id' => $benefitId,
|
->get();
|
||||||
'limit_amount' => $corporateBenefit->limit_amount ?? 0,
|
|
||||||
|
$benefitData = [];
|
||||||
|
|
||||||
|
foreach ($allBenefits as $data) {
|
||||||
|
$benefitData[] = [
|
||||||
|
'id' => $data->benefit_id,
|
||||||
|
'limit_amount' => $data->limit_amount ?? 0,
|
||||||
'limit_amount_plan' => $plan->limit_rules ?? 0,
|
'limit_amount_plan' => $plan->limit_rules ?? 0,
|
||||||
'family_plan' => $plan->family_plan ?? 'S',
|
'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(
|
$memberUsage = Helper::getUsageMember(
|
||||||
$corporateEmployee->corporate_id,
|
$corporateEmployee->corporate_id,
|
||||||
@@ -282,13 +314,22 @@ class MemberController extends Controller
|
|||||||
);
|
);
|
||||||
|
|
||||||
$usedLimitArray = json_decode($memberUsage, true);
|
$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
|
// Limit Logic
|
||||||
// ===============================
|
// ===============================
|
||||||
$limitPlan = $plan->limit_rules ?? 0;
|
$limitPlan = $plan->limit_rules ?? 0;
|
||||||
$sisaLimit = $limitPlan - $usedLimit;
|
$sisaLimit = $limitPlan - $totalUsedLimit;
|
||||||
|
|
||||||
|
if ($sisaLimit < 0) {
|
||||||
|
$sisaLimit = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if ($sisaLimit < 0) {
|
if ($sisaLimit < 0) {
|
||||||
$sisaLimit = 0;
|
$sisaLimit = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user