[WIP] Claim

This commit is contained in:
R
2022-12-08 12:26:29 +07:00
parent 7d8a60f207
commit 32efc28043
7 changed files with 217 additions and 29 deletions

View File

@@ -10,23 +10,6 @@ use Str;
class ClaimService{
public function storeClaim($member, $icd, $benefit, $totalClaim)
{
$claim = Claim::create([
'code' => Str::random('16'),
'member_id' => $member->id,
'diagnosis_id' => $icd,
'total_claim' => $totalClaim,
'currency' => 'IDR',
'plan_id' => $member->currentPlan->id,
'benefit_id' => $benefit->id,
]);
$corporate = $member->asd;
return $claim;asldkmalskdmalksmdalksmd
}
public static function getMemberTotalUsage(Member $member, $startDate = null, $endDate = null)
{
$startDate = empty($startDate) ? Carbon::now()->startOfMonth() : $startDate;
@@ -116,6 +99,62 @@ class ClaimService{
];
}
public static function getMemberUsageByBenefitLimit($member, $benefit)
{
}
public static function showMemberBenefitLimit($member, $benefit_code)
{
// $plan = $member->currentPlan;
// $policy = $member->currentPolicy;
// $corporate = $member->currentCorporate;
$benefit = $member->currentPlan->benefits()->where('code', $benefit_code)->first();
// dd($benefit->toArray());
// dd(compact(['plan', 'policy', 'corporate', 'benefit']));
$limits = [
'total_limit' => $benefit->limit_amount,
'frequency_limit_name' => $benefit->max_frequency_period_name,
'frequency_limit' => $benefit->max_frequency,
'total_claim' => 0,
'remaining_limit' => $benefit->limit_amount,
'usage_daily' => null,
'usage_weekly' => null,
'usage_monthly' => null,
'usage_yearly' => null
];
switch ($benefit->max_frequency_period) {
case(0) :
$limits['usage_yearly'] = $member->claims()->used(Carbon::now()->firstOfYear(), now())->count();
$limits['total_claim'] = $member->claims()->used(Carbon::now()->firstOfYear(), now())->sum('total_claim');
break;
case(1) :
$limits['usage_daily'] = $member->claims()->used(now()->format('Y-m-d'), now()->addDay(1)->format('Y-m-d'))->count();
$limits['total_claim'] = $member->claims()->used(now()->format('Y-m-d'), now()->addDay(1)->format('Y-m-d'))->sum('total_claim');
break;
case(2) :
$limits['usage_weekly'] = $member->claims()->used(Carbon::parse('Previous Sunday'), now())->count();
$limits['total_claim'] = $member->claims()->used(Carbon::parse('Previous Sunday'), now())->sum('total_claim');
break;
case(3) :
$limits['usage_monthly'] = $member->claims()->used(Carbon::now()->firstOfMonth(), now())->count();
$limits['total_claim'] = $member->claims()->used(Carbon::now()->firstOfMonth(), now())->sum('total_claim');
break;
case(4) :
$limits['usage_yearly'] = $member->claims()->used(Carbon::now()->firstOfYear(), now())->count();
$limits['total_claim'] = $member->claims()->used(Carbon::now()->firstOfYear(), now())->sum('total_claim');
break;
default :
// return null;
break;
}
$limits['remaining_limit'] = $benefit->limit_amount - $limits['total_claim'];
return $limits;
}
public static function storeClaim($member, $diagnosis, $totalClaim, $benefit, $status)
{
try {