🤩 File Manager - Mr.X
PHP:
8.3.33
Server:
Apache
OS:
Linux 5.14.0-611.49.1.el9_7.x86_64
User:
websparkit
Navigate
Upload:
Upload
New File
New Folder
Editing:SalesController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Lead; use App\Models\LeadUpdate; use Illuminate\Support\Facades\Auth; use Carbon\Carbon; class SalesController extends Controller { public function dashboard() { $leads = Lead::where('sales_person_id', Auth::id()) ->orderByRaw("FIELD(status, 'not_contacted', 'contacted')") ->orderByRaw("FIELD(priority, 'urgent', 'high', 'medium', 'low')") ->orderBy('created_at', 'desc') ->get(); $stats = [ 'total' => $leads->count(), 'contacted' => $leads->where('status', 'contacted')->count(), 'not_contacted' => $leads->where('status', 'not_contacted')->count(), ]; return view('sales.dashboard', compact('leads', 'stats')); } public function storeLead(Request $request) { $request->validate([ 'name' => 'required|string|max:255', 'phone' => 'nullable|string|max:20', 'email' => 'nullable|email|max:255', 'priority' => 'required|in:low,medium,high,urgent', 'remark_1' => 'nullable|string', ]); Lead::create([ 'sales_person_id' => Auth::id(), 'name' => $request->name, 'phone' => $request->phone, 'email' => $request->email, 'priority' => $request->priority, 'remark_1' => $request->remark_1, 'status' => 'not_contacted', ]); return redirect()->back()->with('success', 'Lead added successfully.'); } public function updateLead(Request $request, Lead $lead) { $request->validate([ 'status' => 'required|in:contacted,not_contacted', 'remark' => 'nullable|string', ]); // Check if lead was created more than 3 days ago $daysSinceCreation = Carbon::parse($lead->created_at)->diffInDays(Carbon::now()); if ($daysSinceCreation > 3) { return redirect()->back()->with('error', 'Cannot update lead after 3 days from creation.'); } // Check daily update limit (max 2 updates per day) $todayUpdatesCount = LeadUpdate::where('lead_id', $lead->id) ->whereDate('created_at', Carbon::today()) ->count(); if ($todayUpdatesCount >= 2) { return redirect()->back()->with('error', 'You can only update this lead 2 times per day.'); } // Record the update LeadUpdate::create([ 'lead_id' => $lead->id, 'sales_person_id' => Auth::id(), 'status' => $request->status, 'remark' => $request->remark, ]); // Update lead status $lead->update([ 'status' => $request->status, 'last_contacted_at' => Carbon::now(), ]); // Update remark (append new remark) if ($request->remark) { $existingRemarks = collect([$lead->remark_1, $lead->remark_2])->filter(); $existingRemarks->push($request->remark); $lead->update([ 'remark_1' => $existingRemarks->first() ?? null, 'remark_2' => $existingRemarks->slice(1)->first() ?? null, ]); } return redirect()->back()->with('success', 'Lead updated successfully. (' . ($todayUpdatesCount + 1) . '/2 updates today)'); } }
Save Changes
Cancel
Create New File
Create New Folder