[WIP] Update Claim Table
This commit is contained in:
@@ -28,6 +28,15 @@ class Claim extends Model
|
||||
'updated_by',
|
||||
'deleted_by',
|
||||
];
|
||||
|
||||
public static $status = [
|
||||
'draft' => 'Draft',
|
||||
'requested' => 'Requested',
|
||||
'received' => 'Received',
|
||||
'approved' => 'Approved',
|
||||
'paid' => 'Paid',
|
||||
'declined' => 'Declined'
|
||||
];
|
||||
|
||||
protected static function boot()
|
||||
{
|
||||
@@ -61,5 +70,12 @@ class Claim extends Model
|
||||
{
|
||||
return $this->belongsTo(Benefit::class, 'benefit_id');
|
||||
}
|
||||
|
||||
public function scopeUsed($query, $startDate, $endDate)
|
||||
{
|
||||
return $query
|
||||
->whereIn('status', ['approved', 'paid'])
|
||||
->whereBetween('requested_at', $startDate, $endDate);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -60,7 +60,8 @@ class Member extends Model
|
||||
protected $appends = [
|
||||
'full_name',
|
||||
'age',
|
||||
'gender_code'
|
||||
'gender_code',
|
||||
''
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
@@ -125,7 +126,7 @@ class Member extends Model
|
||||
{
|
||||
return $this->hasOneThrough(Plan::class, MemberPlan::class, 'member_id', 'id', 'id', 'plan_id')->latest();
|
||||
}
|
||||
|
||||
|
||||
public function policies()
|
||||
{
|
||||
return $this->hasMany(MemberPolicy::class, 'member_id', 'member_id');
|
||||
|
||||
@@ -4,6 +4,8 @@ namespace App\Services;
|
||||
|
||||
use App\Models\Claim;
|
||||
use App\Models\Icd;
|
||||
use App\Models\Member;
|
||||
use Carbon\Carbon;
|
||||
use Str;
|
||||
|
||||
class ClaimService{
|
||||
@@ -24,4 +26,19 @@ class ClaimService{
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user