This commit is contained in:
R
2023-03-01 12:07:03 +07:00
parent ce0fde18dc
commit 89cd2a9d37
36 changed files with 1366 additions and 206 deletions

View File

@@ -0,0 +1,39 @@
<?php
namespace App\Services;
use App\Events\ClaimApproved;
use App\Events\ClaimRequested;
use App\Models\Claim;
use App\Models\ClaimRequest;
use App\Models\Icd;
use App\Models\Member;
use Carbon\Carbon;
use DB;
use Str;
class ClaimRequestService{
public static function storeClaimRequest($member, $submissionDate = null, $status = 'requested')
{
try {
DB::beginTransaction();
$claimRequestData = [
'member_id' => $member->id,
'submission_date' => $submissionDate ?? now(),
'status' => $status
];
$claimRequest = ClaimRequest::create($claimRequestData);
DB::commit();
return $claimRequest;
} catch (\Exception $error) {
DB::rollBack();
throw new \Exception($error);
}
}
}

View File

@@ -119,8 +119,6 @@ class ClaimService{
->active()
->first();
// dd($benefit->toArray());
// dd(compact(['plan', 'policy', 'corporate', 'benefit']));
$limits = [
'total_limit' => $corporateBenefit ? $corporateBenefit->limit_amount : 0,
'frequency_limit_name' => $corporateBenefit ? $corporateBenefit->max_frequency_period_name : null,
@@ -163,22 +161,21 @@ class ClaimService{
return $limits;
}
public static function storeClaim($member, $diagnosis, $totalClaim, $benefit, $status)
public static function storeClaim($member, $diagnosis = null, $totalClaim = null, $benefit = null, $status = 'requested', $claimRequest = null)
{
try {
DB::beginTransaction();
$claimData = [
'member_id' => $member->id,
'claim_request_id' => $claimRequest->id ?? null,
'diagnosis_id' => $diagnosis->id ?? null,
'total_claim' => $totalClaim,
'total_claim' => $totalClaim ?? null,
'currency' => 'IDR',
'plan_id' => $member->currentPlan->id,
'benefit_id' => $benefit->id,
'plan_id' => $member->currentPlan->id ?? null,
'benefit_id' => $benefit->id ?? null,
'status' => $status
];
// $claimData[$status.'_at'] = now();
// $claimData[$status.'_by'] = auth()->user()->id ?? null;
$claim = Claim::create($claimData);