2025-11-07 12:08:34 +05:30
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
|
use App\Models\User;
|
|
|
|
|
use App\Models\RequestModel as CustomerRequest;
|
|
|
|
|
use Illuminate\Support\Facades\Hash;
|
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
|
|
|
|
class UserRequestController extends Controller
|
|
|
|
|
{
|
|
|
|
|
// Show all requests
|
|
|
|
|
public function index()
|
|
|
|
|
{
|
|
|
|
|
$requests = CustomerRequest::orderBy('id', 'desc')->get();
|
2025-12-19 16:08:34 +05:30
|
|
|
$pendingProfileUpdates = \App\Models\UpdateRequest::where('status', 'pending')->count();
|
|
|
|
|
|
|
|
|
|
return view('admin.requests', compact(
|
|
|
|
|
'requests',
|
|
|
|
|
'pendingProfileUpdates'
|
|
|
|
|
));
|
2025-11-07 12:08:34 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 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.');
|
|
|
|
|
}
|
2025-12-02 18:07:15 +05:30
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
// FIX: Ensure data is array
|
|
|
|
|
$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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$user->save();
|
|
|
|
|
|
|
|
|
|
$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.');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2025-11-07 12:08:34 +05:30
|
|
|
}
|