[WIP] Claims

This commit is contained in:
R
2022-12-13 12:47:12 +07:00
parent 23468df422
commit 6a4447a549
17 changed files with 192 additions and 9 deletions

View File

@@ -0,0 +1,47 @@
<?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('benefit_code', $benefitCode)->first();
// $diagnosis = Icd::first();
$claim = ClaimService::storeClaim($member, null, $request->total_claim, $benefit, 'approved');
return Helper::responseJson($claim);
}
}

View File

@@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers\Api;
namespace App\Http\Controllers\Api\OLDLMS;
use App\Helpers\Helper;
use App\Http\Controllers\Controller;

View File

@@ -94,6 +94,11 @@ class Corporate extends Model
return $this->hasManyThrough(CorporateService::class, Service::class, 'corporate_id', 'service_code', 'id', 'service_code');
}
// public function claims()
// {
// return $this->hasManyThrough()
// }
public function corporateServices()
{
return $this->hasMany(CorporateService::class, 'corporate_id');

View File

@@ -0,0 +1,25 @@
<?php
namespace App\Models\OLDLMS;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Appointment extends Model
{
use HasFactory, SoftDeletes;
const CREATED_AT = 'dCreateOn';
const UPDATED_AT = 'dUpdateOn';
const DELETED_AT = 'dDeleteOn';
protected $connection = 'oldlms';
protected $table = 'tx_appointment';
public function detail()
{
return $this->hasOne(AppointmentDetail::class, '');
}
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models\OLDLMS;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class AppointmentDetail extends Model
{
use HasFactory;
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models\OLDLMS;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Healthcare extends Model
{
use HasFactory;
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models\OLDLMS;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Insurance extends Model
{
use HasFactory;
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models\OLDLMS;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use HasFactory;
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models\OLDLMS;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UserDetail extends Model
{
use HasFactory;
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models\OLDLMS;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UserInsurance extends Model
{
use HasFactory;
}

View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models\OLDLMS;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UserInsuranceDetail extends Model
{
use HasFactory;
}

View File

@@ -6,6 +6,7 @@ use App\Models\Claim;
use App\Models\Icd;
use App\Models\Member;
use Carbon\Carbon;
use DB;
use Str;
class ClaimService{
@@ -162,7 +163,7 @@ class ClaimService{
$claimData = [
'member_id' => $member->id,
'diagnosis_id' => $diagnosis->id,
'diagnosis_id' => $diagnosis->id ?? null,
'total_claim' => $totalClaim,
'currency' => 'IDR',
'plan_id' => $member->currentPlan->id,