diff --git a/Modules/Internal/Http/Controllers/Api/ClaimController.php b/Modules/Internal/Http/Controllers/Api/ClaimController.php index 7c358d90..e0bfec89 100644 --- a/Modules/Internal/Http/Controllers/Api/ClaimController.php +++ b/Modules/Internal/Http/Controllers/Api/ClaimController.php @@ -42,13 +42,15 @@ class ClaimController extends Controller public function index(Request $request) { $limit = $request->has('per_page') ? $request->input('per_page') : 10; - $results = DB::table('claims') - ->leftJoin('claim_requests', 'claims.claim_request_id','=', 'claim_requests.id') + $results = DB::table('claim_requests') ->leftJoin('request_logs', 'claim_requests.request_log_id','=', 'request_logs.id') ->leftJoin('members', 'request_logs.member_id', '=', 'members.id') + ->leftJoin('member_plans', 'member_plans.member_id', '=', 'members.id') ->when($request->input('search'), function ($query, $search) { $query->where(function ($query) use ($search) { $query->orWhere('members.name', 'like', "%" . $search . "%"); + $query->orWhere('claim_requests.code', 'like', "%" . $search . "%"); + $query->orWhere('members.member_id', 'like', "%" . $search . "%"); }); }) ->when($request->has('orderBy'), function ($query) use ($request) { @@ -59,12 +61,12 @@ class ClaimController extends Controller }) ->when($request->input('start_date') , function ($query, $start_date) { $query->where(function ($query) use ($start_date) { - $query->where('claims.created_at', '>=', $start_date); + $query->where('claim_requests.created_at', '>=', $start_date); }); }) ->when($request->input('end_date') , function ($query, $end_date) { $query->where(function ($query) use ($end_date) { - $query->where('claims.created_at', '<=', $end_date); + $query->where('claim_requests.created_at', '<=', $end_date); }); }) ->when($request->input('provider') , function ($query, $provider) { @@ -72,17 +74,18 @@ class ClaimController extends Controller $query->where('request_logs.organization_id', '=', $provider); }); }) + ->where('claim_management', '=', 1) ->select( - 'claims.id', + 'claim_requests.id', 'request_logs.id AS id_log', - 'claims.code', + 'claim_requests.code as code', 'members.name', DB::raw(' - (SELECT members.member_id FROM members WHERE members.id = claims.member_id LIMIT 1) AS member_id + (SELECT members.member_id FROM members WHERE members.id = claim_requests.member_id LIMIT 1) AS member_id '), - 'claims.created_at', + 'claim_requests.created_at', DB::raw(' - (SELECT plans.code FROM plans WHERE plans.id = claims.plan_id LIMIT 1) AS plan_code + (SELECT plans.code FROM plans WHERE plans.id = member_plans.plan_id LIMIT 1) AS plan_code '), DB::raw(' (SELECT services.description FROM services WHERE services.code = claim_requests.service_code LIMIT 1) AS service_code @@ -97,7 +100,7 @@ class ClaimController extends Controller (Select SUM(request_log_benefits.amount_approved) as tot_bill FROM request_log_benefits WHERE request_log_benefits.request_log_id = request_logs.id LIMIT 1) AS tot_bill '), - 'claims.status', + 'claim_requests.status_claim_management as status', ) ->paginate($limit); @@ -136,13 +139,15 @@ class ClaimController extends Controller $headerRow = WriterEntityFactory::createRowFromArray($header, $style); $writer->addRow($headerRow); // ============================ - $results = DB::table('claims') - ->leftJoin('claim_requests', 'claims.claim_request_id','=', 'claim_requests.id') + $results = DB::table('claim_requests') ->leftJoin('request_logs', 'claim_requests.request_log_id','=', 'request_logs.id') ->leftJoin('members', 'request_logs.member_id', '=', 'members.id') + ->leftJoin('member_plans', 'member_plans.member_id', '=', 'members.id') ->when($request->input('search'), function ($query, $search) { $query->where(function ($query) use ($search) { $query->orWhere('members.name', 'like', "%" . $search . "%"); + $query->orWhere('claim_requests.code', 'like', "%" . $search . "%"); + $query->orWhere('members.member_id', 'like', "%" . $search . "%"); }); }) ->when($request->has('orderBy'), function ($query) use ($request) { @@ -153,12 +158,12 @@ class ClaimController extends Controller }) ->when($request->input('start_date') , function ($query, $start_date) { $query->where(function ($query) use ($start_date) { - $query->where('claims.created_at', '>=', $start_date); + $query->where('claim_requests.created_at', '>=', $start_date); }); }) ->when($request->input('end_date') , function ($query, $end_date) { $query->where(function ($query) use ($end_date) { - $query->where('claims.created_at', '<=', $end_date); + $query->where('claim_requests.created_at', '<=', $end_date); }); }) ->when($request->input('provider') , function ($query, $provider) { @@ -166,17 +171,18 @@ class ClaimController extends Controller $query->where('request_logs.organization_id', '=', $provider); }); }) + ->where('claim_management', '=', 1) ->select( - 'claims.id', + 'claim_requests.id', 'request_logs.id AS id_log', - 'claims.code', + 'claim_requests.code as code', 'members.name', DB::raw(' - (SELECT members.member_id FROM members WHERE members.id = claims.member_id LIMIT 1) AS member_id + (SELECT members.member_id FROM members WHERE members.id = claim_requests.member_id LIMIT 1) AS member_id '), - 'claims.created_at', + 'claim_requests.created_at', DB::raw(' - (SELECT plans.code FROM plans WHERE plans.id = claims.plan_id LIMIT 1) AS plan_code + (SELECT plans.code FROM plans WHERE plans.id = member_plans.plan_id LIMIT 1) AS plan_code '), DB::raw(' (SELECT services.description FROM services WHERE services.code = claim_requests.service_code LIMIT 1) AS service_code @@ -191,7 +197,7 @@ class ClaimController extends Controller (Select SUM(request_log_benefits.amount_approved) as tot_bill FROM request_log_benefits WHERE request_log_benefits.request_log_id = request_logs.id LIMIT 1) AS tot_bill '), - 'claims.status', + 'claim_requests.status_claim_management as status', ) ->get(); $no=0; @@ -271,19 +277,18 @@ class ClaimController extends Controller public function cekStatus($id) { - $cek = DB::table('claims') - ->where('claims.id', '=', $id) - ->select('claims.status') + $cek = DB::table('claim_requests') + ->where('claim_requests.id', '=', $id) + ->select('claim_requests.status_claim_management as status') ->first(); $data['cek'] = $cek; - $member = DB::table('claims') - ->join('claim_requests', 'claims.claim_request_id','=', 'claim_requests.id') + $member = DB::table('claim_requests') ->join('request_logs', 'claim_requests.request_log_id','=', 'request_logs.id') ->join('members', 'request_logs.member_id', '=', 'members.id') - ->where('claims.id', '=', $id) - ->select('claims.code','members.name','claims.created_at', DB::raw(' + ->where('claim_requests.id', '=', $id) + ->select('claim_requests.code','members.name','claim_requests.created_at', DB::raw(' (SELECT services.name FROM services WHERE services.code = request_logs.service_code LIMIT 1) AS service_type '),) ->first(); @@ -559,20 +564,15 @@ class ClaimController extends Controller public function decline(Request $request, $id) { - //Get claim request id - $data_claim_requests = DB::table('claim_requests') - ->leftJoin('claims', 'claim_requests.id', '=', 'claims.claim_request_id') - ->where('claims.id', $id) - ->select('claim_requests.id') - ->first(); - $id = $data_claim_requests->id; - DB::table('claims') - ->where('claim_request_id', $id) + DB::table('claim_requests') + ->where('claim_requests.id', $id) ->update( [ - 'status' => 'declined', - 'reason_decline' => $request->reasonDecline ? $request->reasonDecline : '' + 'status_claim_management' => 'declined', + 'reason_decline' => $request->reasonDecline ? $request->reasonDecline : '', + 'approval_date_claim_management' => date('Y-m-d H:i:s'), + 'approval_by_claim_management' => auth()->user()->id ] ); @@ -594,19 +594,13 @@ class ClaimController extends Controller public function approve($id) { - //Get claim request id - $data_claim_requests = DB::table('claim_requests') - ->leftJoin('claims', 'claim_requests.id', '=', 'claims.claim_request_id') - ->where('claims.id', $id) - ->select('claim_requests.id') - ->first(); - $id = $data_claim_requests->id; - - DB::table('claims') - ->where('claim_request_id', $id) + DB::table('claim_requests') + ->where('claim_requests.id', $id) ->update( [ - 'status' => 'approved' + 'status_claim_management' => 'approved', + 'approval_date_claim_management' => date('Y-m-d H:i:s'), + 'approval_by_claim_management' => auth()->user()->id ] ); diff --git a/database/migrations/2024_02_23_091725_add_coloumn_to_claim_request_table.php b/database/migrations/2024_02_23_091725_add_coloumn_to_claim_request_table.php index be2a049e..09501950 100644 --- a/database/migrations/2024_02_23_091725_add_coloumn_to_claim_request_table.php +++ b/database/migrations/2024_02_23_091725_add_coloumn_to_claim_request_table.php @@ -17,7 +17,7 @@ return new class extends Migration $table->integer('claim_management') ->default(0) ->after('status') - ->comment('untuk flag request masuk ke final, jika 0 masih request dan 1 itu sudah masuk ke finallog'); + ->comment('0=claim request, 1=claim management'); $table->string('status_claim_management')->after('claim_management')->nullable(); $table->dateTime('submission_date_claim_management')->after('status_claim_management')->nullable(); $table->string('submission_by_claim_management')->after('submission_date_claim_management')->nullable(); diff --git a/frontend/dashboard/src/pages/Claims/Detail.tsx b/frontend/dashboard/src/pages/Claims/Detail.tsx index 98af659a..cef407f5 100644 --- a/frontend/dashboard/src/pages/Claims/Detail.tsx +++ b/frontend/dashboard/src/pages/Claims/Detail.tsx @@ -331,7 +331,7 @@ export default function Detail() { {item.benefit?.description} - + {/* { @@ -353,7 +353,7 @@ export default function Detail() { } /> - + */} diff --git a/frontend/dashboard/src/pages/Claims/List.tsx b/frontend/dashboard/src/pages/Claims/List.tsx index 06791385..455c3dfe 100644 --- a/frontend/dashboard/src/pages/Claims/List.tsx +++ b/frontend/dashboard/src/pages/Claims/List.tsx @@ -532,7 +532,7 @@ const dummyServices = [ {row?.service_code} {row?.corporate_policies} {row?.provider} - Rp. {row?.tot_bill?.toLocaleString('id-ID')} + Rp. {row?.tot_bill?.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".")} {row.status == 'draft' && ()} {row.status == 'requested' && ()}