From e116fb814ab5f56420122f5117a0a45c9c4b8a4e Mon Sep 17 00:00:00 2001 From: R Date: Fri, 13 Jan 2023 08:19:43 +0700 Subject: [PATCH] [WIP] Fix Medicine --- app/Http/Controllers/Api/OLDLMS/ClaimController.php | 2 +- app/Http/Controllers/Api/OLDLMS/MembershipController.php | 6 +++++- app/Models/CorporateBenefit.php | 5 +++++ app/Services/ClaimService.php | 7 +++---- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Api/OLDLMS/ClaimController.php b/app/Http/Controllers/Api/OLDLMS/ClaimController.php index 588cccf5..9176b9a5 100644 --- a/app/Http/Controllers/Api/OLDLMS/ClaimController.php +++ b/app/Http/Controllers/Api/OLDLMS/ClaimController.php @@ -18,7 +18,7 @@ class ClaimController extends Controller 'member_id' => 'required', 'user_id' => 'required', 'type' => 'required|in:consultation,teleconsultation,medicine', - 'speciality_code' => 'required', + // 'speciality_code' => 'required', 'total_claim' => 'required', 'detail' => 'required', ]); diff --git a/app/Http/Controllers/Api/OLDLMS/MembershipController.php b/app/Http/Controllers/Api/OLDLMS/MembershipController.php index d056534f..8dd2a00a 100644 --- a/app/Http/Controllers/Api/OLDLMS/MembershipController.php +++ b/app/Http/Controllers/Api/OLDLMS/MembershipController.php @@ -97,7 +97,11 @@ class MembershipController extends Controller $limits['postponed_claims_payment_url'] = route('postpone-pay', $member->member_id); $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); if ($currentSpeciality) { diff --git a/app/Models/CorporateBenefit.php b/app/Models/CorporateBenefit.php index c42f2986..8dcd763a 100755 --- a/app/Models/CorporateBenefit.php +++ b/app/Models/CorporateBenefit.php @@ -215,6 +215,11 @@ class CorporateBenefit extends Model return $this->belongsTo(Plan::class); } + public function scopeActive($query) + { + $query->where('active', 1); + } + public function scopeFilter($query, array $filters) { $query->when($filters['search'] ?? false, function ($query, $search) { diff --git a/app/Services/ClaimService.php b/app/Services/ClaimService.php index ac885e66..d132add8 100644 --- a/app/Services/ClaimService.php +++ b/app/Services/ClaimService.php @@ -112,8 +112,7 @@ class ClaimService{ // $policy = $member->currentPolicy; // $corporate = $member->currentCorporate; $benefit = $member->currentPlan->benefits()->where('code', $benefit_code)->first(); - // dd($member->currentPlan->benefits->toArray()); - $corporateBenefit = $member->currentPlan->corporateBenefits()->where('benefit_id', $benefit->id)->first(); + $corporateBenefit = $member->currentPlan->corporateBenefits()->where('benefit_id', $benefit->id)->active()->first(); // dd($benefit->toArray()); // dd(compact(['plan', 'policy', 'corporate', 'benefit'])); @@ -129,7 +128,7 @@ class ClaimService{ 'usage_yearly' => null ]; - switch ($corporateBenefit->max_frequency_period) { + switch ($corporateBenefit->max_frequency_period ?? 0) { 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'); @@ -154,7 +153,7 @@ class ClaimService{ // return null; break; } - $limits['remaining_limit'] = $corporateBenefit->limit_amount - $limits['total_claim']; + $limits['remaining_limit'] = ($corporateBenefit->limit_amount ?? 0) - $limits['total_claim']; return $limits; }