update penjagaan limit level plan

This commit is contained in:
2024-07-01 10:52:58 +07:00
parent 4ceaf41a7d
commit 97b1b841d3
6 changed files with 208 additions and 59 deletions

View File

@@ -536,32 +536,106 @@ class Helper
}
}
public static function getLimitMember($corporateId, $id, $benefitData) {
public static function getUsageMember($corporateId, $id, $benefitData) {
// Menghitung jumlah total approved dan mengkategorikan berdasarkan benefit_id
$amountApprovedByBenefit = [];
foreach($benefitData as $benefit) {
if ($benefit['family_plan'] == 'S' || $benefit['family_plan'] == 'F'){ // Menghitung usage per family
$memberFamilys = Helper::getMemberFamily($id);
$usageLogs = RequestLogBenefit::query()
->whereHas('requestLog', function ($query) use ($benefit, $memberFamilys) {
$query->where('benefit_id', $benefit['id'])
->whereIn('member_id', $memberFamilys);
})
->sum('amount_approved');
// Mengkategorikan sum berdasarkan benefit_id
$amountApprovedByBenefit[$benefit['id']] = $usageLogs;
} else { // Menghitung usage permember
$usageLog = RequestLogBenefit::query()
->whereHas('requestLog', function ($query) use ($benefit, $id) {
$query->where('benefit_id', $benefit['id'])
->where('member_id', $id);
})
->sum('amount_approved');
// Mengkategorikan sum berdasarkan benefit_id
$amountApprovedByBenefit[$benefit['id']] = $usageLog;
}
if ($benefit['limit_amount'] != 999999999) {
if ($benefit['family_plan'] == 'S' || $benefit['family_plan'] == 'F'){ // Menghitung usage per family
$memberFamilys = Helper::getMemberFamily($id);
$usageLogs = 0;
$today = date('Y-m-d');
$periods = [
0 => [
'start' => '2024-01-05',
'end' => '2025-01-05'
],
1 => [
'start' => $today,
'end' => $today
]
// Tambahkan kondisi lainnya jika diperlukan
];
if (array_key_exists($benefit['max_frequency_period'], $periods)) {
$usageLogs = RequestLogBenefit::query()
->whereHas('requestLog', function ($query) use ($benefit, $memberFamilys, $periods) {
$period = $periods[$benefit['max_frequency_period']];
$query->where('benefit_id', $benefit['id'])
// ->where('submission_date', '>=', $period['start'])
// ->where('submission_date', '<=', $period['end'])
->whereIn('member_id', $memberFamilys);
})
->sum('amount_approved');
}
// Mengkategorikan sum berdasarkan benefit_id
$amountApprovedByBenefit[$benefit['id']] = $usageLogs;
} else { // Menghitung usage permember
$usageLog = RequestLogBenefit::query()
->whereHas('requestLog', function ($query) use ($benefit, $id) {
$query->where('benefit_id', $benefit['id'])
->where('member_id', $id);
})
->sum('amount_approved');
// Mengkategorikan sum berdasarkan benefit_id
$amountApprovedByBenefit[$benefit['id']] = $usageLog;
}
}
}
return json_encode($amountApprovedByBenefit);
}
public static function getLimitMemberService($corporateId, $id, $benefitData) {
// Menghitung jumlah total approved dan mengkategorikan berdasarkan benefit_id
$amountApprovedByBenefit = [];
foreach($benefitData as $benefit) {
if ($benefit['limit_amount'] != 999999999) {
if ($benefit['family_plan'] == 'S' || $benefit['family_plan'] == 'F'){ // Menghitung usage per family
$memberFamilys = Helper::getMemberFamily($id);
$usageLogs = 0;
$today = date('Y-m-d');
$periods = [
0 => [
'start' => '2024-01-05',
'end' => '2025-01-05'
],
1 => [
'start' => $today,
'end' => $today
]
// Tambahkan kondisi lainnya jika diperlukan
];
if (array_key_exists($benefit['max_frequency_period'], $periods)) {
$usageLogs = RequestLogBenefit::query()
->whereHas('requestLog', function ($query) use ($benefit, $memberFamilys, $periods) {
$period = $periods[$benefit['max_frequency_period']];
$query->where('benefit_id', $benefit['id'])
// ->where('submission_date', '>=', $period['start'])
// ->where('submission_date', '<=', $period['end'])
->whereIn('member_id', $memberFamilys);
})
->sum('amount_approved');
}
// Mengkategorikan sum berdasarkan benefit_id
$amountApprovedByBenefit[$benefit['id']] = $usageLogs;
} else { // Menghitung usage permember
$usageLog = RequestLogBenefit::query()
->whereHas('requestLog', function ($query) use ($benefit, $id) {
$query->where('benefit_id', $benefit['id'])
->where('member_id', $id);
})
->sum('amount_approved');
// Mengkategorikan sum berdasarkan benefit_id
$amountApprovedByBenefit[$benefit['id']] = $usageLog;
}
}
}
return json_encode($amountApprovedByBenefit);