update penjagaan limit level plan
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user