[WIP] Fix Medicine

This commit is contained in:
R
2023-01-13 08:19:43 +07:00
parent 2f10f913c0
commit e116fb814a
4 changed files with 14 additions and 6 deletions

View File

@@ -18,7 +18,7 @@ class ClaimController extends Controller
'member_id' => 'required', 'member_id' => 'required',
'user_id' => 'required', 'user_id' => 'required',
'type' => 'required|in:consultation,teleconsultation,medicine', 'type' => 'required|in:consultation,teleconsultation,medicine',
'speciality_code' => 'required', // 'speciality_code' => 'required',
'total_claim' => 'required', 'total_claim' => 'required',
'detail' => 'required', 'detail' => 'required',
]); ]);

View File

@@ -97,7 +97,11 @@ class MembershipController extends Controller
$limits['postponed_claims_payment_url'] = route('postpone-pay', $member->member_id); $limits['postponed_claims_payment_url'] = route('postpone-pay', $member->member_id);
$limits['postponed_claims_unpaid_total'] = $member->postponedClaims->sum('total_claim'); $limits['postponed_claims_unpaid_total'] = $member->postponedClaims->sum('total_claim');
$coverage['medicine_benefit'] = $benefitCode == 'OPMEDI1'; // TODO Make this into setting ? $coverage['medicine_benefit'] = false;
if ($benefitCode = 'OPMEDI1') {
$medicineBenefit = $member->currentPlan->benefits()->where('code', $benefitCode)->wherePivot('active', 1)->first();
$coverage['medicine_benefit'] = !empty($medicineBenefit);
}
$coverage['medicine_delivery_fee'] = (($configs['delivery_fee']['value'] ?? 1) == 1); $coverage['medicine_delivery_fee'] = (($configs['delivery_fee']['value'] ?? 1) == 1);
if ($currentSpeciality) { if ($currentSpeciality) {

View File

@@ -215,6 +215,11 @@ class CorporateBenefit extends Model
return $this->belongsTo(Plan::class); return $this->belongsTo(Plan::class);
} }
public function scopeActive($query)
{
$query->where('active', 1);
}
public function scopeFilter($query, array $filters) public function scopeFilter($query, array $filters)
{ {
$query->when($filters['search'] ?? false, function ($query, $search) { $query->when($filters['search'] ?? false, function ($query, $search) {

View File

@@ -112,8 +112,7 @@ class ClaimService{
// $policy = $member->currentPolicy; // $policy = $member->currentPolicy;
// $corporate = $member->currentCorporate; // $corporate = $member->currentCorporate;
$benefit = $member->currentPlan->benefits()->where('code', $benefit_code)->first(); $benefit = $member->currentPlan->benefits()->where('code', $benefit_code)->first();
// dd($member->currentPlan->benefits->toArray()); $corporateBenefit = $member->currentPlan->corporateBenefits()->where('benefit_id', $benefit->id)->active()->first();
$corporateBenefit = $member->currentPlan->corporateBenefits()->where('benefit_id', $benefit->id)->first();
// dd($benefit->toArray()); // dd($benefit->toArray());
// dd(compact(['plan', 'policy', 'corporate', 'benefit'])); // dd(compact(['plan', 'policy', 'corporate', 'benefit']));
@@ -129,7 +128,7 @@ class ClaimService{
'usage_yearly' => null 'usage_yearly' => null
]; ];
switch ($corporateBenefit->max_frequency_period) { switch ($corporateBenefit->max_frequency_period ?? 0) {
case(0) : case(0) :
$limits['usage_yearly'] = $member->claims()->used(Carbon::now()->firstOfYear(), now())->count(); $limits['usage_yearly'] = $member->claims()->used(Carbon::now()->firstOfYear(), now())->count();
$limits['total_claim'] = $member->claims()->used(Carbon::now()->firstOfYear(), now())->sum('total_claim'); $limits['total_claim'] = $member->claims()->used(Carbon::now()->firstOfYear(), now())->sum('total_claim');
@@ -154,7 +153,7 @@ class ClaimService{
// return null; // return null;
break; break;
} }
$limits['remaining_limit'] = $corporateBenefit->limit_amount - $limits['total_claim']; $limits['remaining_limit'] = ($corporateBenefit->limit_amount ?? 0) - $limits['total_claim'];
return $limits; return $limits;
} }