Files
aso/app/Http/Controllers/Api/OLDLMS/ClaimController.php
2023-01-05 18:28:45 +07:00

50 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers\Api\OLDLMS;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;
use App\Models\Icd;
use App\Models\Member;
use App\Services\ClaimService;
use Illuminate\Http\Request;
class ClaimController extends Controller
{
public function store(Request $request)
{
$request->validate([
'member_id' => 'required',
'user_id' => 'required',
'type' => 'required|in:consultation-gp,consultation-specialist,medicine',
'total_claim' => 'required',
'detail' => 'required',
]);
if ($request->type == 'consultation-gp') {
$benefitCode = 'OPCONS1';
}
if ($request->type == 'consultation-specialist') {
$benefitCode = 'OPCONS2';
}
if ($request->type == 'medicine') {
$benefitCode = 'OPMEDI1';
}
$member = Member::query()
->where('member_id', $request->member_id)
->with([
'currentPlan',
])
->firstOrFail();
$benefit = $member->currentPlan->benefits()->where('code', $benefitCode)->first();
// $diagnosis = Icd::first();
$claim = ClaimService::storeClaim($member, null, $request->total_claim, $benefit, 'requested');
$claim->status = 'approved';
$claim->save();
return Helper::responseJson($claim);
}
}