| Server IP : 139.59.63.204 / Your IP : 216.73.217.62 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ubuntu-s-1vcpu-1gb-blr1-01 6.8.0-110-generic #110-Ubuntu SMP PREEMPT_DYNAMIC Thu Mar 19 15:09:20 UTC 2026 x86_64 User : root ( 0) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/crmapp/app/Http/Controllers/ |
Upload File : |
<?php
// app/Http/Controllers/LeadController.php
namespace App\Http\Controllers;
use App\Models\Lead;
use App\Models\Deal;
use App\Models\LeadActivity;
use App\Models\User;
use App\Services\LeadConversionService;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use App\Imports\LeadsImport;
class LeadController extends Controller
{
public function index() {
$leads = Lead::with('user')->paginate(10);
return view('leads.index', compact('leads'));
}
public function create() {
$users = User::all();
return view('leads.create', compact('users'));
}
public function store(Request $request) {
$request->validate([
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'email' => 'nullable|email',
'phone' => 'nullable|string',
'status' => 'required|string',
]);
Lead::create($request->all());
return redirect()->route('leads.index')->with('success', 'Lead created successfully');
}
public function show(Lead $lead) {
return view('leads.show', compact('lead'));
}
public function edit(Lead $lead) {
$users = User::all();
return view('leads.edit', compact('lead','users'));
}
public function update(Request $request, Lead $lead) {
$lead->update($request->all());
return redirect()->route('leads.index')->with('success', 'Lead updated successfully');
}
public function destroy(Lead $lead) {
$lead->delete();
return redirect()->route('leads.index')->with('success', 'Lead deleted successfully');
}
public function storeActivity(Request $request, $leadId)
{
$request->validate([
'type' => 'required|string',
'description' => 'nullable|string',
]);
LeadActivity::create([
'lead_id' => $leadId,
'user_id' => auth()->id(),
'type' => $request->type,
'description' => $request->description,
]);
return redirect()->route('leads.show', $leadId)->with('success', 'Activity added.');
}
/**
* Convert qualified lead into a deal
*/
public function qualify(Lead $lead)
{
if ($lead->status !== 'Qualified') {
return redirect()->back()->with('error', 'Lead must be qualified first');
}
$service = new LeadConversionService();
$convertedLead = $service->convert($lead, auth()->id());
return redirect()->route('deals.index')->with('success', 'Lead converted to Deal');
}
/** Import from excel */
public function import(Request $request)
{
$request->validate([
'file' => 'required|mimes:xlsx,xls,csv'
]);
Excel::import(new LeadsImport, $request->file('file'));
return back()->with('success', 'Leads imported successfully.');
}
}