finishing benefit configuration

This commit is contained in:
korospace
2023-11-03 11:32:09 +07:00
parent bc429b6d52
commit 79c8e475e8
11 changed files with 443 additions and 264 deletions

View File

@@ -59,7 +59,7 @@ class ClaimController extends Controller
->where('status', '!=', 'requested') // Penjagaan agar approve baru masuk ke claim management
->latest()
->paginate(10);
return response()->json($claims);
}
@@ -118,8 +118,8 @@ class ClaimController extends Controller
{
$claim = Claim::query()
->with([
'member',
// 'member.currentPlan',
'member',
// 'member.currentPlan',
// 'member.currentPlan.benefits',
'member.currentCorporate',
// 'member.currentPolicy',
@@ -159,9 +159,9 @@ class ClaimController extends Controller
{
$claim = Claim::query()
->with([
'member',
'member',
'plan',
'member.currentPlan',
'member.currentPlan',
'member.currentPlan.benefits',
'member.currentCorporate',
'member.currentPolicy',
@@ -205,7 +205,7 @@ class ClaimController extends Controller
'amount_not_approved' => $request->amount_not_approved,
'excess_paid' => $request->excess_paid,
];
$validator = Validator::make($request->all(), [
'benefit_desc' => 'required',
'amount_incurred' => 'required|numeric',
@@ -213,11 +213,11 @@ class ClaimController extends Controller
'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([
@@ -227,8 +227,8 @@ class ClaimController extends Controller
'amount_not_approved' => $request->amount_not_approved,
'excess_paid' => $request->excess_paid,
])->save();
return $claim;
return $claim;
}
/**
@@ -259,12 +259,12 @@ class ClaimController extends Controller
return $claim;
}
public function updateItems(Request $request, $id)
{
$request->validate([]);
$claim = Claim::findOrFail($id);
$order = 1;
$data = [];
$claim->items()->forceDelete();
@@ -290,7 +290,7 @@ class ClaimController extends Controller
// Update total
$claim->total_claim = $totalClaim;
$claim->save();
return Helper::responseJson([], message: "Item Claim berhasil di update");
}
@@ -304,7 +304,7 @@ class ClaimController extends Controller
foreach ($request->primary as $diagnosisId) {
$claim->diagnoses()->create([
'claim_id' => $claim->id,
'type' => 'primary',
'type' => 'primary',
'diagnosis_id' => $diagnosisId,
'note' => '',
'description' => '',
@@ -316,7 +316,7 @@ class ClaimController extends Controller
foreach ($request->secondary as $diagnosisId) {
$claim->diagnoses()->create([
'claim_id' => $claim->id,
'type' => 'secondary',
'type' => 'secondary',
'diagnosis_id' => $diagnosisId,
'note' => '',
'description' => '',
@@ -433,7 +433,7 @@ class ClaimController extends Controller
// TODO Fix this tipu tipu
$inpationBenefit = $claim->member->currentPlan->benefits()->first();
$pdf = PDF::loadView('pdf.final_log', [
'claim' => $claim,
'member' => $claim->member,
@@ -441,7 +441,7 @@ class ClaimController extends Controller
'hospital' => $hospital,
'inpationBenefit' => $inpationBenefit
]);
return $pdf->download('Final LOG '.$claim->code.'.pdf');
$view = view('pdf.final_log', [
@@ -461,7 +461,7 @@ class ClaimController extends Controller
$writer = WriterEntityFactory::createXLSXWriter();
// Membuka penulis untuk menulis ke file
$writer->openToFile(public_path('files/Benefit Usage Report.xlsx'));
// Sheet 1
$writer->getCurrentSheet()->setName('Worksheet');
$headers_map_to_table_fields = Claim::$listing_doc_headers;
@@ -477,7 +477,7 @@ class ClaimController extends Controller
return $diagnosis->where('type', 'primary');
},
'diagnoses.icd',
'plan',
'plan',
'benefit',
'claimRequest',
'claimRequest.service',
@@ -598,7 +598,7 @@ class ClaimController extends Controller
// ];
// $row = WriterEntityFactory::createRowFromArray($rowData);
// $writer->addRow($row);
// }
$writer->close();
@@ -618,7 +618,7 @@ class ClaimController extends Controller
->select('claim_requests.id')
->first();
$claim_id = $data_claim_requests->id;
$customer_data = DB::table('claim_requests')
->leftJoin('claims', 'claim_requests.id', '=', 'claims.claim_request_id')
->leftJoin('members', 'claim_requests.member_id', '=', 'members.id')
@@ -633,7 +633,7 @@ class ClaimController extends Controller
'members.payor_id',
'members.member_id',
'claim_requests.payment_type',
'corporates.name AS coporate_name',
'corporates.name AS coporate_name',
)
->first();
$results['customer_data'] = $customer_data;
@@ -844,7 +844,7 @@ class ClaimController extends Controller
]);
}
}
return Helper::responseJson([]);
}
@@ -903,7 +903,7 @@ class ClaimController extends Controller
'updated_at' => date('Y-m-d H:i:s'),
];
}
DB::table('claim_request_files')->insert($dataToInsert);
DB::table('claim_request_files')->insert($dataToInsert);
return Helper::responseJson([]);
}
@@ -999,4 +999,81 @@ class ClaimController extends Controller
return Helper::responseJson(message: 'Data Berhasil di update');
}
/**
* Get Benefit Configuration
*
* Bagaskoro, BSD 03 November 2023
*/
public function getBenefitConfiguration(Request $request, $claim_id) {
$benefit_list = DB::table('claims')
->leftJoin('claim_services', 'claims.claim_request_id', '=', 'claim_services.claim_request_id')
->leftJoin('claim_service_benefits', 'claim_services.id', '=', 'claim_service_benefits.claim_service_id')
->leftJoin('benefits', 'claim_service_benefits.benefit_id', '=', 'benefits.id')
->select("claim_service_benefits.id AS claim_service_benefits_id", "benefits.description AS benefit_name", "claim_service_benefits.amount_incurred", "claim_service_benefits.amount_approved", "claim_service_benefits.amount_not_approved", "claim_service_benefits.excess_paid")
->where("claims.id", "=", $claim_id)
->get();
return response()->json([
'error' => false,
'message' => "success",
'data' => [
'benefit_list' => $benefit_list,
]
],200);
}
/**
* Edit Benefit Configuration
*
* Bagaskoro, BSD 03 November 2023
*/
public function editBenefitConfiguration(Request $request, $claim_service_benefits_id) {
$request->merge(['claim_service_benefits_id' => $claim_service_benefits_id]);
// validation rule
$validator = Validator::make($request->all(),[
'claim_service_benefits_id' => 'required|exists:claim_service_benefits,id',
'amount_incurred' => 'required|numeric',
'amount_approved' => 'required|numeric',
'amount_not_approved' => 'required|numeric',
'excess_paid' => 'required|numeric',
],$this->messages());
// validation error
if ($validator->fails()) {
return response()->json([
'error' => true,
'message' => $validator->getMessageBag()
],400);
}
try {
DB::table('claim_service_benefits')->where('id', $claim_service_benefits_id)->update([
'amount_incurred' => $request->amount_incurred,
'amount_approved' => $request->amount_approved,
'amount_not_approved' => $request->amount_not_approved,
'excess_paid' => $request->excess_paid,
]);
}
catch (\Throwable $th) {
return Helper::responseJson(status: 'failed', statusCode: 500, message: $th->getMessage());
}
return Helper::responseJson(status: 'success', statusCode: 200, message: "data berhasil disimpan !");
}
protected function messages()
{
return [
'required' => ':attribute harus diisi',
'integer' => ':attribute harus angka',
'unique' => ':attribute (:input) sudah ada',
'max' => ':attribute maximal :max karakter',
'exists' => ':attribute (:input) tidak ditemukan',
'numeric' => ':attribute harus angka',
'digits_between'=> ':attribute maximal :max digit minimal :min digit'
];
}
}