where('business_id', auth()->user()->business_id) ->where('type', '=', 'Supplier') ->whereHas('purchases') ->when(request('search'), function ($q) use ($request) { $q->where(function ($q) use ($request) { $q->where('name', 'like', '%' . $request->search . '%') ->orWhere('phone', 'like', '%' . $request->search . '%') ->orWhere('email', 'like', '%' . $request->search . '%') ->orWhere('type', 'like', '%' . $request->search . '%'); }); }) ->withCount('purchases') ->withSum('purchases', 'totalAmount') ->orderByDesc('purchases_count') ->orderByDesc('purchases_sum_total_amount') ->take(5) ->get(); if ($request->ajax()) { return response()->json([ 'data' => view('business::party-reports.top-suppliers.datas', compact('suppliers'))->render() ]); } return view('business::party-reports.top-suppliers.index', compact('suppliers')); } public function exportExcel() { return Excel::download(new ExportTopSupplier, 'top-suppliers.xlsx'); } public function exportCsv() { return Excel::download(new ExportTopSupplier, 'top-suppliers.csv'); } public function exportPdf() { $suppliers = Party::with('purchases') ->where('business_id', auth()->user()->business_id) ->where('type', '=', 'Supplier') ->whereHas('purchases') ->withCount('purchases') ->withSum('purchases', 'totalAmount') ->orderByDesc('purchases_count') ->orderByDesc('purchases_sum_total_amount') ->take(5) ->get(); return PdfService::render('business::party-reports.top-suppliers.pdf', compact('suppliers'),'top-supplier-report.pdf'); } }