update listing dan edit claim management
This commit is contained in:
@@ -12,9 +12,13 @@ use App\Services\ClaimService;
|
||||
use Illuminate\Contracts\Support\Renderable;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Modules\HospitalPortal\Helpers\ApiResponse;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Modules\Internal\Transformers\ClaimShowResource;
|
||||
use Modules\Internal\Transformers\ClaimEditResource;
|
||||
use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
|
||||
use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
|
||||
|
||||
use PDF;
|
||||
|
||||
class ClaimController extends Controller
|
||||
@@ -23,22 +27,35 @@ class ClaimController extends Controller
|
||||
* Display a listing of the resource.
|
||||
* @return Renderable
|
||||
*/
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
$claims = Claim::with([
|
||||
'member',
|
||||
'diagnoses' => function ($diagnosis) {
|
||||
return $diagnosis->where('type', 'primary');
|
||||
},
|
||||
'diagnoses.icd',
|
||||
'plan',
|
||||
'benefit',
|
||||
'claimRequest',
|
||||
'claimRequest.service'
|
||||
])
|
||||
->where('status', '!=', 'requested') // penjagaan agar approve baru masuk ke claim management
|
||||
->latest()
|
||||
->paginate(10);
|
||||
'member',
|
||||
'member.currentCorporate',
|
||||
'member.currentCorporate.currentPolicy',
|
||||
'member.currentPlan',
|
||||
'diagnoses' => function ($diagnosis) {
|
||||
$diagnosis->where('type', 'primary');
|
||||
},
|
||||
'diagnoses.icd',
|
||||
'benefit',
|
||||
'claimRequest',
|
||||
'claimRequest.service',
|
||||
])
|
||||
->when($request->search, function ($q, $search) {
|
||||
$q->where(function ($subQuery) use ($search) {
|
||||
$subQuery->whereHas('claimRequest', function ($claimRequest) use ($search) {
|
||||
$claimRequest->where('code', 'LIKE', "%" . $search . "%");
|
||||
})
|
||||
->orWhereHas('member', function ($member) use ($search) {
|
||||
$member->where('name', 'LIKE', "%" . $search . "%");
|
||||
});
|
||||
});
|
||||
})
|
||||
->where('status', '!=', 'requested') // Penjagaan agar approve baru masuk ke claim management
|
||||
->latest()
|
||||
->paginate(10);
|
||||
|
||||
|
||||
return response()->json($claims);
|
||||
}
|
||||
@@ -129,7 +146,32 @@ class ClaimController extends Controller
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
return view('internal::edit');
|
||||
$claim = Claim::query()
|
||||
->with([
|
||||
'member',
|
||||
'plan',
|
||||
'member.currentPlan',
|
||||
'member.currentPlan.benefits',
|
||||
'member.currentCorporate',
|
||||
'member.currentPolicy',
|
||||
// 'diagnosis',
|
||||
'diagnoses',
|
||||
'diagnoses.icd',
|
||||
'benefit',
|
||||
'files',
|
||||
'claimRequest',
|
||||
'claimRequest.files',
|
||||
'items',
|
||||
'items.claim_itemable',
|
||||
'encounters',
|
||||
'encounters.doctors',
|
||||
'encounters.primaryDiagnoses',
|
||||
'encounters.primaryDiagnoses.diagnosis',
|
||||
'encounters.healthcare'
|
||||
])
|
||||
->findOrFail($id);
|
||||
|
||||
return Helper::responseJson(ClaimEditResource::make($claim));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -140,7 +182,42 @@ class ClaimController extends Controller
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
$customMessages = [
|
||||
'required' => 'Kolom :attribute wajib diisi.',
|
||||
'numeric' => 'Kolom :attribute harus berupa angka.',
|
||||
];
|
||||
|
||||
$data = [
|
||||
'benefit_desc' => $request->benefit_desc,
|
||||
'amount_incurred' => $request->amount_incurred,
|
||||
'amount_approved' => $request->amount_approved,
|
||||
'amount_not_approved' => $request->amount_not_approved,
|
||||
'excess_paid' => $request->excess_paid,
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'benefit_desc' => 'required',
|
||||
'amount_incurred' => 'required|numeric',
|
||||
'amount_approved' => 'required|numeric',
|
||||
'amount_not_approved' => 'required|numeric',
|
||||
'excess_paid' => 'required|numeric',
|
||||
], $customMessages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return ApiResponse::apiResponse('Bad Request', $data, $validator->errors(), 400);
|
||||
}
|
||||
|
||||
// Validasi berhasil, lanjutkan dengan pembaruan data
|
||||
$claim = Claim::findOrFail($id);
|
||||
$claim->fill([
|
||||
'benefit_desc' => $request->benefit_desc,
|
||||
'amount_incurred' => $request->amount_incurred,
|
||||
'amount_approved' => $request->amount_approved,
|
||||
'amount_not_approved' => $request->amount_not_approved,
|
||||
'excess_paid' => $request->excess_paid,
|
||||
])->save();
|
||||
|
||||
return $claim;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user