Claim Services

This commit is contained in:
ivan-sim
2023-10-31 09:25:33 +07:00
parent de476ad3be
commit c38167a50a
5 changed files with 568 additions and 10 deletions

View File

@@ -565,9 +565,162 @@ class ClaimController extends Controller
->get();
$results['request_documents'] = $request_documents;
$claim_services = DB::table('claim_services')
->where('claim_services.claim_request_id', $claim_id)
->select(
'claim_services.id',
'claim_services.addmission_date',
'claim_services.discharge_date',
'claim_services.service_id',
DB::raw('(SELECT services.name FROM services WHERE id = claim_services.service_id LIMIT 1) AS name_services'),
'claim_services.hospital_id',
DB::raw('(SELECT corporate_hospitals.name FROM corporate_hospitals WHERE id = claim_services.hospital_id LIMIT 1) AS name_hospitals'),
)
->groupBy('claim_services.id')
->first();
$results['claim_services'] = $claim_services;
$claim_service_benefits = DB::table('claim_service_benefits')
->where('claim_service_id', $claim_services->id)
->select(
'claim_service_benefits.claim_service_id',
'claim_service_benefits.benefit_id',
DB::raw('(SELECT benefits.description FROM benefits WHERE id = claim_service_benefits.benefit_id LIMIT 1) AS name_benefits')
)
->get();
foreach ($claim_service_benefits as $item) {
$claimServiceId = $item->claim_service_id;
$nameBenefits = $item->name_benefits;
$benefitId = $item->benefit_id."";
if (!isset($output[$claimServiceId])) {
$output[$claimServiceId] = (object)[
"claim_service_id" => $claimServiceId,
"name_benefits" => $nameBenefits,
"benefit_id" => [$benefitId],
];
} else {
$output[$claimServiceId]->name_benefits .= ", " . $nameBenefits;
$output[$claimServiceId]->benefit_id[] = $benefitId."";
}
}
$output = array_values($output);
$results['claim_service_benefits'] = $output[0];
return Helper::responseJson($results);
}
public function getServices($claim_id)
{
//Corporate_id
$corporate_id = DB::table('claim_requests')
->leftJoin('claims', 'claim_requests.id', '=', 'claims.claim_request_id')
->leftJoin('members', 'claim_requests.member_id', '=', 'members.id')
->leftJoin('corporate_employees', 'members.id', '=', 'corporate_employees.member_id')
->leftJoin('corporates', 'corporate_employees.corporate_id', '=', 'corporates.id')
->where('claim_requests.id', '=', $claim_id)
->select('corporates.id')
->first();
//Service Type
$service_type = DB::table('corporate_services')
->leftJoin('services','corporate_services.service_code', 'services.code')
->where('corporate_services.corporate_id', $corporate_id->id)
->select('services.name', 'services.code', 'services.id')
->get();
$results['service_type'] = $service_type;
//Benefit Name
$benefit_name = DB::table('corporate_benefits')
->leftJoin('benefits', 'corporate_benefits.benefit_id', 'benefits.id')
->where('corporate_benefits.corporate_id', $corporate_id->id)
->select('benefits.code', 'benefits.description', 'benefits.id')
->get();
$results['benefit_name'] = $benefit_name;
//Hospital
$hospital = DB::table('corporate_hospitals')
->where('corporate_hospitals.corporate_id', $corporate_id->id)
->where('corporate_hospitals.active', 1)
->select('corporate_hospitals.code', 'corporate_hospitals.name', 'corporate_hospitals.id')
->get();
$results['hospital'] = $hospital;
return Helper::responseJson($results);
}
public function saveServices(Request $request)
{
$request->validate([
'claim_request_id' => 'required',
'dateAdd' => 'required',
'dateDisc' => 'required',
'serviceType' => 'required',
'hospital' => 'required',
'benefitName' => 'required',
]);
if($request->flagAddService === 'add')
{
$data = [
'claim_request_id' => $request->claim_request_id,
'service_id' => $request->serviceType,
'hospital_id' => $request->hospital,
'addmission_date' => $request->dateAdd,
'discharge_date' => $request->dateDisc,
'created_by' =>auth()->user()->id,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => null,
];
$id = DB::table('claim_services')
->insertGetId($data);
foreach ($request->benefitName as $value)
{
DB::table('claim_service_benefits')
->insert([
'claim_service_id' => $id,
'benefit_id' => $value,
'created_by' =>auth()->user()->id,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
]);
}
}
else if($request->flagAddService === 'edit')
{
$data = [
'claim_request_id' => $request->claim_request_id,
'service_id' => $request->serviceType,
'hospital_id' => $request->hospital,
'addmission_date' => $request->dateAdd,
'discharge_date' => $request->dateDisc,
'created_by' =>auth()->user()->id,
'created_at' => null,
'updated_at' => date('Y-m-d H:i:s'),
];
DB::table('claim_services')
->where('claim_services.id', $request->idService)
->update($data);
DB::table('claim_service_benefits')
->where('claim_service_id', $request->idService)
->delete();
foreach ($request->benefitName as $value)
{
DB::table('claim_service_benefits')
->insert([
'claim_service_id' => $request->idService,
'benefit_id' => $value,
'created_by' =>auth()->user()->id,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
]);
}
}
return Helper::responseJson([]);
}
public function requestDocuments(Request $request)
{
$request->validate([