[WIP] Claims

This commit is contained in:
R
2022-12-07 12:00:58 +07:00
parent 670ffa8702
commit aac9fcf58b
17 changed files with 238 additions and 203 deletions

View File

@@ -65,7 +65,7 @@ class ClaimController extends Controller
// Store Claim
if ($validation['isEligible']) {
$claim = ClaimService::storeClaim($member, $diagnosis, $request->total_claim, $benefit);
$claim = ClaimService::storeClaim($member, $diagnosis, $request->total_claim, $benefit, 'requested');
} else {
return response()->json([
'data' => $validation,
@@ -83,7 +83,11 @@ class ClaimController extends Controller
*/
public function show($id)
{
return view('internal::show');
$claim = Claim::query()
->with(['member', 'member.currentPlan'])
->findOrFail($id);
return response()->json($claim);
}
/**

View File

@@ -120,7 +120,14 @@ class CorporateController extends Controller
*/
public function show($id)
{
return view('internal::show');
$corporate = Corporate::query()
->with(['currentPolicy'])
->withCount('corporatePlans')
->withCount('employees')
// ->withCount('employees.claims')
->findOrFail($id);
return response()->json($corporate);
}
/**

View File

@@ -3,6 +3,8 @@
namespace Modules\Internal\Http\Controllers\Api;
use App\Exceptions\ImportRowException;
use App\Helpers\Helper;
use App\Http\Resources\MemberDataTableResource;
use App\Models\Corporate;
use App\Models\Member;
use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
@@ -35,15 +37,18 @@ class CorporateMemberController extends Controller
->with([
'employeds',
'currentPolicy',
// 'claims',
'claims' => function ($claim) {
return $claim->used();
return $claim->whereBetween('requested_at', [now()->startOfYear(), now()->endOfYear()]);
// return $claim->used(now()->startOfYear(), now()->endOfYear());
}
])
->with('currentPlan')
// ->with
->paginate()
->appends($request->all());
return $members;
return Helper::paginateResources(MemberDataTableResource::collection($members));
}
/**

View File

@@ -100,6 +100,7 @@ Route::prefix('internal')->group(function () {
Route::get('claims', [ClaimController::class, 'index']);
Route::post('claims', [ClaimController::class, 'store']);
Route::get('claims/{id}', [ClaimController::class, 'show']);
Route::post('check-limit', [ClaimController::class, 'checkLimit']);
});

View File

@@ -81,19 +81,24 @@ class ClaimService
];
}
public static function storeClaim($member, $diagnosis, $totalClaim, $benefit)
public static function storeClaim($member, $diagnosis, $totalClaim, $benefit, $status)
{
try {
DB::beginTransaction();
$claim = Claim::create([
$claimData = [
'member_id' => $member->id,
'diagnosis_id' => $diagnosis->id,
'total_claim' => $totalClaim,
'currency' => 'IDR',
'plan_id' => $member->currentPlan->id,
'benefit_id' => $benefit->id,
]);
'status' => $status
];
$claimData[$status.'_at'] = now();
$claimData[$status.'_by'] = auth()->user()->id ?? null;
$claim = Claim::create($claimData);
$policy = $member->currentPolicy;
$policy->limitJournals()->create([
@@ -109,7 +114,7 @@ class ClaimService
} catch (\Exception $error) {
DB::rollBack();
return false;
throw new \Exception($error);
}
}
}