where('nID', $id); } $doctorRatings = $query->with([ 'user' => function ($query) { $query->select('nID', 'sFirstName'); // Select only necessary columns } ]) ->select('nIDUser', 'sDate', 'sStatus') ->get(); // $prescriptions->toArray(); // dd($prescriptions); return response()->json($doctorRatings); // return response()->json(Helper::paginateResources(LivechatResource::collection($livechat))); } public function getData(Request $request) { $limit = $request->has('per_page') ? $request->input('per_page') : 50; $results = DB::connection('oldlms')->table('tx_users_online') ->leftJoin('tm_users', 'tx_users_online.nIDUser', '=', 'tm_users.nID') ->leftJoin('tm_dokter', 'tx_users_online.nIDUser', '=', 'tm_dokter.nIDUser') ->when($request->input('search'), function ($query, $search) { $query->where(function ($query) use ($search) { $query->orWhere('tm_users.sFirstname', 'like', "%" . $search . "%"); $query->orWhere('tx_users_online.sStatus', 'like', "%" . $search . "%"); }); }) ->when($request->has('orderBy'), function ($query) use ($request) { $orderBy = $request->orderBy; $direction = $request->order ?? 'asc'; $query->orderBy($orderBy, $direction); }) ->when($request->input('start_date') , function ($query, $start_date) { $query->where(function ($query) use ($start_date) { $query->where('tx_users_online.sDate', '>=', $start_date. ' 00:00:00'); }); }) ->when($request->input('end_date') , function ($query, $end_date) { $query->where(function ($query) use ($end_date) { $query->where('tx_users_online.sDate', '<=', $end_date. ' 23:59:59'); }); }) ->select( DB::connection('oldlms')->raw("CONCAT('dr. ', tm_users.sFirstName, ' ', IFNULL(tm_users.sMiddleName, ''), ' ', IFNULL(tm_users.sLastName, '')) as nama_dokter"), 'tx_users_online.sStatus', 'tx_users_online.sDate' ) ->paginate($limit); return response()->json(Helper::paginateResources($results)); } public function export(Request $request) { $start_date = $request->input('start_date') ? $request->input('start_date') : 'all'; $end_date = $request->input('end_date') ? $request->input('end_date') : 'all'; $writer = WriterEntityFactory::createXLSXWriter(); $writer->openToFile(public_path('files/Report-Data-Rating-Dokter-'.$start_date.'-'.$end_date.'.xlsx')); $header = [ 'No', 'Nama Dokter', 'Date', 'Status', ]; $style = (new StyleBuilder()) ->setFontBold() // ->setFontSize(15) // ->setFontColor(Color::BLUE) // ->setShouldWrapText() ->setCellAlignment(CellAlignment::LEFT) // ->setBackgroundColor(Color::YELLOW) ->build(); $headerRow = WriterEntityFactory::createRowFromArray($header, $style); $writer->addRow($headerRow); // ============================ $results = DB::connection('oldlms')->table('tx_users_online') ->leftJoin('tm_users', 'tx_users_online.nIDUser', '=', 'tm_users.nID') ->when($request->input('search'), function ($query, $search) { $query->where(function ($query) use ($search) { $query->orWhere('tm_users.sFirstname', 'like', "%" . $search . "%"); $query->orWhere('tm_users.sLastname', 'like', "%" . $search . "%"); }); }) ->when($request->has('orderBy'), function ($query) use ($request) { $orderBy = $request->orderBy; $direction = $request->order ?? 'asc'; $query->orderBy($orderBy, $direction); }) ->when($request->input('start_date') , function ($query, $start_date) { $query->where(function ($query) use ($start_date) { $query->where('tx_users_online.sDate', '>=', $start_date. ' 00:00:00'); }); }) ->when($request->input('end_date') , function ($query, $end_date) { $query->where(function ($query) use ($end_date) { $query->where('tx_users_online.sDate', '<=', $end_date. ' 23:59:59'); }); }) // ->when($request->input('provider') , function ($query, $provider) { // $query->where(function ($query) use ($provider) { // $query->where('request_logs.organization_id', '=', $provider); // }); // }) // ->where('files.fileable_type', '=', 'App\Models\RequestLog') // ->where('request_logs.final_log', '=', '1') // ->where('request_logs.status_final_log', '=', 'approved') ->select( DB::connection('oldlms')->raw("CONCAT('dr. ', tm_users.sFirstName, ' ', IFNULL(tm_users.sMiddleName, ''), ' ', IFNULL(tm_users.sLastName, '')) as nama_dokter"), 'tx_users_online.sStatus', 'tx_users_online.sDate' ) ->get(); $no=0; foreach($results as $item) { $no++; $rowData = [ $no, $item->nama_dokter, $item->sDate, $item->sStatus ]; $style = (new StyleBuilder()) //->setFontBold() // ->setFontSize(15) // ->setFontColor(Color::BLUE) // ->setShouldWrapText() ->setCellAlignment(CellAlignment::LEFT) // ->setBackgroundColor(Color::YELLOW) ->build(); $row = WriterEntityFactory::createRowFromArray($rowData, $style); $writer->addRow($row); } $footer = [ '', '', '', '', ]; $style = (new StyleBuilder()) ->setFontBold() // ->setFontSize(15) // ->setFontColor(Color::BLUE) // ->setShouldWrapText() ->setCellAlignment(CellAlignment::LEFT) // ->setBackgroundColor(Color::YELLOW) ->build(); $footerRow = WriterEntityFactory::createRowFromArray($footer, $style); $writer->addRow($footerRow); $writer->close(); return Helper::responseJson([ 'file_name' => 'Report-Data-Dokter-Online'. $start_date.'-'.$end_date, "file_url" => url('files/Report-Data-Dokter-Online-'. $start_date.'-'.$end_date.'.xlsx') ]); } /** * Show the form for creating a new resource. * @return Renderable */ public function create() { return view('internal::create'); } /** * Store a newly created resource in storage. * @param Request $request * @return Renderable */ public function store(Request $request) { } /** * Show the specified resource. * @param int $id * @return Renderable */ public function show($id) { } /** * 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($id) { // } }