44 lines
1.1 KiB
PHP
44 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Services;
|
|
|
|
use App\Models\Claim;
|
|
use App\Models\Icd;
|
|
use App\Models\Member;
|
|
use Carbon\Carbon;
|
|
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;
|
|
}
|
|
|
|
public static function getMemberTotalUsage(Member $member, $startDate = null, $endDate = null)
|
|
{
|
|
$startDate = empty($startDate) ? Carbon::now()->startOfMonth() : $startDate;
|
|
$endDate = empty($endDate) ? Carbon::now()->startOfMonth() : $endDate;
|
|
|
|
$claims = $member->claims()
|
|
->used($startDate, $endDate)
|
|
->get();
|
|
$total = $claims->sum(function($claim){
|
|
return $claim->total_claim;
|
|
});
|
|
|
|
return $total;
|
|
}
|
|
} |