where('deleted_at', null) ->when($request->final_log, function($q, $final_log) { $q->where('final_log', $final_log); }) ->when($request->search, function ($q, $search) { $q->where('code', 'LIKE', "%".$search."%"); $q->orWhereHas('member', function ($subQuery) use ($search) { $subQuery->where('name', 'LIKE', "%".$search."%"); }); }) ->when($request->orderBy, function ($q, $orderBy) use ($request) { if (in_array($orderBy, ['submission_date', 'code', 'service_code', 'status'])) { $q->orderBy($orderBy, $request->order); } }) ->when(empty($request->orderBy), function ($q) { $q->orderBy('submission_date', 'desc'); }) ->when($request->service_code, function($q, $service_code) { if ($service_code == 'IP'){ // Penjagaan sementara agar ini hanya muncul di inpatient monitoring $q->where('service_code', $service_code); } else { $q->where('service_code', '!=', 'IP'); // Dan selain IP muncul di final LOG } }) // ->where('status', $request->status) ->with(['member', 'files', 'service', 'member.currentPolicy']) ->paginate(); return Helper::paginateResources(ReportLogResource::collection($requestLog)); } /** * 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) { $claimRequest = RequestLog::findOrFail($id); $claimRequest->load([ 'histories' => function ($history) { $history->latest(); }, 'files', 'member', 'member.currentPlan' => function($memberPlan) { $memberPlan->join('request_logs', 'request_logs.service_code', '=', 'plans.service_code'); }, // 'member.current_policy', 'claim', 'organization', ]); return Helper::responseJson(data: RequestLogShowResource::make($claimRequest)); } /** * 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) { } /** * Remove the specified resource from storage. * @param int $id * @return Renderable */ public function destroy(Request $request, $id) { } /** * Generate Export Excel Request LOG */ public function generateDataRequestLogExcel(){ $file_name = 'Data Request LOG'; // Membuat penulis entitas Spout $writer = WriterEntityFactory::createXLSXWriter(); // Membuka penulis untuk menulis ke file $writer->openToFile(public_path('files/Data Request LOG.xlsx')); // Sheet 1 $writer->getCurrentSheet()->setName('Data'); $headers_map_to_table_fields = RequestLog::$listing_data_doc_headers; $headerRow = WriterEntityFactory::createRowFromArray($headers_map_to_table_fields); $writer->addRow($headerRow); $dataRequestLog = RequestLog::query() // ->whereHas('corporatePlan', function ($corporatePlan) use ($corporate_id) { // $corporatePlan->where('corporate_id', $corporate_id); // }) ->with('member') ->orderBy('id', 'desc') ->get()->toArray(); // dd($dataRequestLog); foreach ($dataRequestLog as $index => $row){ $serviceType = $this->getServiceName($row['service_code']); $rowData = [ $row['id'], // id $row['code'], // code $row['member']['name'], // name $row['submission_date'], // submission date $serviceType, // service type $row['payment_type_name'], // service type $row['status'], // service type ]; $row = WriterEntityFactory::createRowFromArray($rowData); $writer->addRow($row); } $writer->close(); return Helper::responseJson([ 'file_name' => "Data Request Log " . date('Y-m-d h:i:s'), "file_url" => url('files/Data Request LOG.xlsx') ]); } }