update final log
This commit is contained in:
@@ -23,6 +23,7 @@ class AuthController extends Controller
|
||||
'email' => $request->email,
|
||||
'password' => $request->password
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'email' => 'required|email',
|
||||
'password' => 'required'
|
||||
@@ -38,7 +39,7 @@ class AuthController extends Controller
|
||||
}
|
||||
else
|
||||
{
|
||||
$user = User::where('email', $request->email)->first();
|
||||
$user = User::with('getOrganization.organization')->where('email', $request->email)->first();
|
||||
if (!$user) {
|
||||
return ApiResponse::apiResponse('Not Found', $data, trans('message.not_found'), 404);
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ class ClaimController extends Controller
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$serviceCode = 'IP';
|
||||
// $serviceCode = 'IP';
|
||||
$claims = Claim::with([
|
||||
'member',
|
||||
'member.currentCorporate',
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Internal\Http\Controllers\Api;
|
||||
|
||||
use App\Helpers\Helper;
|
||||
use App\Models\RequestLogBenefit;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
|
||||
class RequestLogBenefitController extends Controller
|
||||
{
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
* @return Renderable
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('internal::create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the specified resource.
|
||||
* @param int $id
|
||||
* @return Renderable
|
||||
*/
|
||||
public function show($id)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
* @param Request $request
|
||||
* @return Renderable
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
|
||||
$customMessages = [
|
||||
'required' => 'Kolom :attribute wajib diisi.',
|
||||
'numeric' => 'Kolom :attribute harus berupa angka.',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'benefit_data' => 'required|array',
|
||||
'benefit_data.*' => 'required',
|
||||
], $customMessages);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return Helper::responseJson([],'error', 400, $validator->errors());
|
||||
} else {
|
||||
$benefitData = $request->benefit_data;
|
||||
|
||||
if (count($benefitData)>0){
|
||||
// BeginTransaction
|
||||
DB::beginTransaction();
|
||||
foreach($benefitData as $key => $value){
|
||||
$data = [
|
||||
'request_log_id' => $value['request_log_id'],
|
||||
'benefit_id' => $value['benefit_id'],
|
||||
'amount_incurred' => $value['amount_incurred'],
|
||||
'amount_approved' => $value['amount_approved'],
|
||||
'amount_not_approved' => $value['amount_not_approved'],
|
||||
'excess_paid' => $value['excess_paid'],
|
||||
'keterangan' => $value['keterangan'],
|
||||
|
||||
];
|
||||
// Insert Data
|
||||
try {
|
||||
RequestLogBenefit::create($data);
|
||||
} catch (\Throwable $th) {
|
||||
DB::rollBack();
|
||||
return Helper::responseJson(status: 'failed', statusCode: 500, message: $th->getMessage());
|
||||
}
|
||||
}
|
||||
DB::commit();
|
||||
return Helper::responseJson(status: 'success', statusCode: 201, message: 'success', data: $request->toArray());
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
$requestLogBenefit = RequestLogBenefit::insert($data);
|
||||
return $requestLogBenefit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
* @param int $id
|
||||
* @return Renderable
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
return view('internal::edit');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
* @param Request $request
|
||||
* @param int $id
|
||||
* @return Renderable
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$requestLogBenefit = requestLogBenefit::findOrFail($id);
|
||||
$requestLogBenefit->amount_approved = $request->amount_approved;
|
||||
$requestLogBenefit->amount_incurred = $request->amount_incurred;
|
||||
$requestLogBenefit->amount_not_approved = $request->amount_not_approved;
|
||||
$requestLogBenefit->excess_paid = $request->excess_paid;
|
||||
$requestLogBenefit->keterangan = $request->keterangan;
|
||||
|
||||
$requestLogBenefit->save();
|
||||
|
||||
return response()->json([
|
||||
'error' => false,
|
||||
'message' => 'Update succses',
|
||||
'data' => $requestLogBenefit],
|
||||
200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
* @param int $id
|
||||
* @return Renderable
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
$requestLogBenefit = RequestLogBenefit::findOrFail($id);
|
||||
$requestLogBenefit->delete();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -57,8 +57,11 @@ class RequestLogController extends Controller
|
||||
->when(empty($request->orderBy), function ($q) {
|
||||
$q->orderBy('created_at', 'desc');
|
||||
})
|
||||
->when($request->status, function($q, $status) {
|
||||
$q->where('status', $status);
|
||||
->when($request->final_log, function($q, $final_log) {
|
||||
$q->where('final_log', $final_log);
|
||||
})
|
||||
->when($request->service_code, function($q, $service_code) {
|
||||
$q->where('service_code', $service_code);
|
||||
})
|
||||
// ->where('status', $request->status)
|
||||
->with(['member', 'files', 'service', 'member.currentPolicy'])
|
||||
@@ -165,6 +168,9 @@ class RequestLogController extends Controller
|
||||
},
|
||||
'files',
|
||||
'member',
|
||||
'member.currentPlan' => function($memberPlan) {
|
||||
$memberPlan->join('request_logs', 'request_logs.service_code', '=', 'plans.service_code');
|
||||
},
|
||||
'claim',
|
||||
'organization',
|
||||
]);
|
||||
@@ -293,10 +299,20 @@ class RequestLogController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function updateFinalLog(Request $request, $id)
|
||||
/**
|
||||
* Submit Request LOG to Final LOG
|
||||
*/
|
||||
public function updateFinalLog(Request $request)
|
||||
{
|
||||
$id = $request->id;
|
||||
$requestLog = RequestLog::findOrFail($id);
|
||||
|
||||
// Update Request LOG untuk lanjut ke Final LOG
|
||||
$requestLog->final_log = 1;
|
||||
$requestLog->status_final_log = 'requested';
|
||||
$requestLog->save();
|
||||
|
||||
|
||||
if ($request->hasFile('result_files')) {
|
||||
foreach ($request->result_files as $file) {
|
||||
$pathFile = File::storeFile('final-log-result', $id, $file);
|
||||
@@ -335,7 +351,7 @@ class RequestLogController extends Controller
|
||||
'name' => File::getFileName('final-log-kondisi', $id, $file),
|
||||
'original_name' => $file->getClientOriginalName(),
|
||||
'extension' => $file->getClientOriginalExtension(),
|
||||
'path' => $pathFile,
|
||||
'path' => $pathFile,
|
||||
'created_by' => auth()->user()->id,
|
||||
'updated_by' => auth()->user()->id,
|
||||
]);
|
||||
@@ -345,7 +361,7 @@ class RequestLogController extends Controller
|
||||
return response()->json([
|
||||
'error' => false,
|
||||
'message' => 'Update succses',
|
||||
'data' => $updateClaimRequest],
|
||||
'data' => $requestLog],
|
||||
200);
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ use Modules\Internal\Http\Controllers\Api\BenefitController;
|
||||
use Modules\Internal\Http\Controllers\Api\CityController;
|
||||
use Modules\Internal\Http\Controllers\Api\ClaimController;
|
||||
use Modules\Internal\Http\Controllers\Api\RequestLogController;
|
||||
use Modules\Internal\Http\Controllers\Api\RequestLogBenefitController;
|
||||
use Modules\Internal\Http\Controllers\Api\ClaimRequestController;
|
||||
use Modules\Internal\Http\Controllers\Api\CorporateBenefitController;
|
||||
use Modules\Internal\Http\Controllers\Api\CorporateController;
|
||||
@@ -251,11 +252,17 @@ Route::prefix('internal')->group(function () {
|
||||
Route::get('customer-service/request', [RequestLogController::class, 'index']);
|
||||
Route::post('customer-service/request', [RequestLogController::class, 'createNew']);
|
||||
Route::put('customer-service/request/{id}', [RequestLogController::class, 'update']);
|
||||
Route::get('customer-service/request/{id}', [RequestLogController::class, 'show']);
|
||||
Route::get('customer-service/request/{id}/download', [RequestLogController::class, 'generateRequestLog']);
|
||||
Route::post('customer-service/request/import', [RequestLogController::class, 'importRequestLog']);
|
||||
Route::get('customer-service/request/data', [RequestLogController::class, 'generateDataRequestLogExcel']);
|
||||
|
||||
|
||||
Route::post('customer-service/request/final-log', [RequestLogController::class, 'updateFinalLog']);
|
||||
// insert benefit
|
||||
Route::post('customer-service/request/insert-benefit', [RequestLogBenefitController::class, 'store']);
|
||||
Route::delete('customer-service/request/benefit_data/{id}', [RequestLogBenefitController::class, 'destroy']);
|
||||
Route::put('customer-service/request/benefit_data/{id}', [RequestLogBenefitController::class, 'update']);
|
||||
|
||||
|
||||
Route::get('search-organizations', [OrganizationController::class, 'searchOrganization']);
|
||||
Route::get('search-specialities', [SpecialityController::class, 'searchSpeciality']);
|
||||
|
||||
@@ -23,8 +23,9 @@ class RequestLogResource extends JsonResource
|
||||
'id' => $this->id,
|
||||
'code' => $this->code,
|
||||
'submission_date' => $this->submission_date,
|
||||
'member' => $this->member,
|
||||
'member_name' => $this->member->name,
|
||||
'status' => $this->status ?? 'unknown',
|
||||
'status_final_log' => $this->status_final_log ?? 'unknown',
|
||||
'service_name' => $this->service ? $this->service->name : '',
|
||||
'payment_type' => $this->payment_type,
|
||||
'payment_type_name' => $this->payment_type_name,
|
||||
|
||||
80
Modules/Internal/Transformers/RequestLogShowResource.php
Normal file
80
Modules/Internal/Transformers/RequestLogShowResource.php
Normal file
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Internal\Transformers;
|
||||
|
||||
use App\Models\Benefit;
|
||||
use App\Models\CorporateBenefit;
|
||||
use App\Models\ClaimRequest;
|
||||
use App\Models\CorporateService;
|
||||
use App\Models\RequestLogBenefit;
|
||||
use App\Models\Exclusion;
|
||||
use App\Models\Icd;
|
||||
use App\Helpers\Helper;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class RequestLogShowResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
$requestLog = parent::toArray($request);
|
||||
$corporateId = $requestLog['member']['current_plan']['corporate_id'] ?? 0;
|
||||
$benefit = CorporateBenefit::with('benefit')->where('plan_id', $corporateId)->get()->toArray();
|
||||
$benefitDetailLog = RequestLogBenefit::with('benefit')->where('request_log_id', $requestLog['id'])->get()->toArray();
|
||||
$benefitData = [];
|
||||
if (count($benefit)){
|
||||
foreach($benefit as $data){
|
||||
array_push($benefitData, $data['benefit']);
|
||||
}
|
||||
}
|
||||
|
||||
// Service Rule
|
||||
$corporateService = CorporateService::query()
|
||||
->where('corporate_id', $corporateId)
|
||||
->where('service_code', $requestLog['service_code'])
|
||||
->with(['configs'])
|
||||
->first();
|
||||
$config = $corporateService->configs->pluck('value', 'name')->toArray();
|
||||
|
||||
// Exclusion Service or diagnosis
|
||||
$exclusions = Exclusion::query()
|
||||
->where('corporate_id', $corporateId)
|
||||
->where('type', 'diagnosis')
|
||||
->with(['exclusionable', 'rules'])
|
||||
->get()->toArray();
|
||||
|
||||
$data = [
|
||||
'id' => $requestLog['id'],
|
||||
'code' => $requestLog['code'],
|
||||
'member_id' => $requestLog['member']['member_id'],
|
||||
'policy_number' => $requestLog['member']['current_policy']['code'],
|
||||
'name' => $requestLog['member']['name'],
|
||||
'date_of_birth' => $requestLog['member']['birth_date'],
|
||||
'gender' => $requestLog['member']['gender'],
|
||||
'marital_status' => Helper::maritalNormalization($requestLog['member']['marital_status']),
|
||||
'member_type' => Helper::memberType($requestLog['member']['record_type']),
|
||||
'principal_id' => $requestLog['member']['principal_id'] ? $requestLog['member']['principal_id'] : '-',
|
||||
'principal_name' => $requestLog['member']['principal_id'] ? Helper::principalName($requestLog['member']['principal_id']) : '-',
|
||||
'relation_with_principal' => Helper::relationWithPrincipal($requestLog['member']['relation_with_principal']),
|
||||
'submission_date' => $requestLog['submission_date'],
|
||||
'service_type' => Helper::serviceName($requestLog['service_code']),
|
||||
'claim_method' => $requestLog['payment_type'],
|
||||
'status' => $requestLog['status'],
|
||||
'status_final_log' => $requestLog['status_final_log'],
|
||||
'benefit' => $benefitData,
|
||||
'benefit_data' => $benefitDetailLog,
|
||||
'config_service' => $config,
|
||||
'exclusion' => $exclusions,
|
||||
'files' => $requestLog['files'],
|
||||
|
||||
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user