filled('search')) { $search = $request->input('search'); $query->where('name', 'like', "%{$search}%") ->orWhere('contact_person_email', 'like', "%{$search}%") ->orWhere('support_phones', 'like', "%{$search}%"); } if ($request->filled('country')) { $query->where('country', $request->input('country')); } if ($request->filled('connection_status')) { $query->where('connection_status', 'like', "%{$request->input('connection_status')}%"); } // Paginate instead of getting all records at once (e.g., 10 per page) $operators = $query->latest('id')->paginate(10)->withQueryString(); // dd($operators); $totalActive = NetworkOperator::where('connection_status', 'Active')->count(); $totalSipLinks = NetworkOperator::where('connection_type', 'like', '%VPN%')->count(); $totalOperators = NetworkOperator::count(); return view('network_operators.index', compact('operators', 'totalActive', 'totalSipLinks', 'totalOperators')); } public function store(Request $request) { $request->validate([ 'name' => 'required|string|max:200', 'country' => 'required|string', ]); NetworkOperator::create([ 'name' => $request->name, 'country' => $request->country, 'connection_status' => $request->connection_status ?? 'Online', 'contact_person' => $request->contact_person, 'contact_person_phone' => $request->contact_person_phone, 'contact_person_email' => $request->contact_person_email, 'technical_support_person' => $request->technical_support_person, 'support_skype' => $request->support_skype, 'mno_account_manager' => $request->mno_account_manager, 'services' => $request->services, 'support_emails' => $request->support_emails, 'finance_emails' => $request->finance_emails, 'buying_rate' => $request->buying_rate ?? 0, 'rate_type' => $request->rate_type, 'payment_terms' => $request->payment_terms, 'connection_type' => $request->connection_type, ]); return response()->json(['message' => 'MNO Partner created successfully!']); } public function update(Request $request, $id) { $operator = NetworkOperator::findOrFail($id); $request->validate([ 'name' => 'required|string|max:200', 'country' => 'required|string', ]); $operator->update([ 'name' => $request->name, 'country' => $request->country, 'connection_status' => $request->connection_status, 'contact_person' => $request->contact_person, 'contact_person_phone' => $request->contact_person_phone, 'contact_person_email' => $request->contact_person_email, 'technical_support_person' => $request->technical_support_person, 'support_skype' => $request->support_skype, 'mno_account_manager' => $request->mno_account_manager, 'services' => $request->services, 'support_emails' => $request->support_emails, 'finance_emails' => $request->finance_emails, 'buying_rate' => $request->buying_rate, 'rate_type' => $request->rate_type, 'payment_terms' => $request->payment_terms, 'connection_type' => $request->connection_type, ]); return response()->json(['message' => 'MNO Partner updated successfully!']); } // Fetch single record JSON for editing modal public function getJson($id) { $operator = NetworkOperator::findOrFail($id); return response()->json($operator); } public function show($id) { $operator = NetworkOperator::findOrFail($id); return view('network_operators.show', compact('operator')); } }