get(); $pendingProfileUpdates = \App\Models\UpdateRequest::where('status', 'pending')->count(); return view('admin.requests', compact( 'requests', 'pendingProfileUpdates' )); } // Approve user request public function approve($id) { $requestData = CustomerRequest::findOrFail($id); DB::beginTransaction(); try { // Generate unique Customer ID $latestUser = User::orderBy('id', 'desc')->first(); $nextId = $latestUser ? $latestUser->id + 1 : 1; $customerId = 'CID-' . date('Y') . '-' . str_pad($nextId, 6, '0', STR_PAD_LEFT); // Create user record $user = new User(); $user->customer_id = $customerId; $user->customer_name = $requestData->customer_name; $user->company_name = $requestData->company_name; $user->designation = $requestData->designation; $user->email = $requestData->email; $user->mobile_no = $requestData->mobile_no; $user->address = $requestData->address; $user->pincode = $requestData->pincode; $user->date = now()->format('Y-m-d'); $user->password = Hash::make('123456'); // default password (you can change logic) $user->save(); // Update request status $requestData->status = 'approved'; $requestData->save(); DB::commit(); return redirect()->back()->with('success', 'Request approved and user created successfully.'); } catch (\Exception $e) { DB::rollback(); return redirect()->back()->with('error', 'Something went wrong: ' . $e->getMessage()); } } // Reject request public function reject($id) { $requestData = CustomerRequest::findOrFail($id); $requestData->status = 'rejected'; $requestData->save(); return redirect()->back()->with('info', 'Request rejected successfully.'); } public function profileUpdateRequests() { $requests = \App\Models\UpdateRequest::where('status', 'pending') ->orderBy('id', 'desc') ->get(); return view('admin.profile_update_requests', compact('requests')); } public function approveProfileUpdate($id) { $req = \App\Models\UpdateRequest::findOrFail($id); $user = \App\Models\User::findOrFail($req->user_id); $newData = is_array($req->data) ? $req->data : json_decode($req->data, true); foreach ($newData as $key => $value) { if ($value !== null && $value !== "") { if (in_array($key, ['customer_name','company_name','designation','email','mobile_no','address','pincode'])) { $user->$key = $value; } } } // Update user table $user->save(); // Update mark_list table \App\Models\MarkList::where('customer_id', $user->customer_id) ->update([ 'customer_name' => $user->customer_name, 'company_name' => $user->company_name, 'mobile_no' => $user->mobile_no ]); // Update request status $req->status = 'approved'; $req->admin_note = 'Approved by admin on ' . now(); $req->save(); return back()->with('success', 'Profile updated successfully.'); } public function rejectProfileUpdate($id) { $req = \App\Models\UpdateRequest::findOrFail($id); $req->status = 'rejected'; $req->admin_note = 'Rejected by admin on ' . now(); $req->save(); return back()->with('info', 'Profile update request rejected.'); } }