File: /var/www/html/owlcrm/app/Http/Controllers/PostSalesController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\PostSale; // Add this line to import the PostSale model
use App\Models\Country;
use App\Models\LeadSource;
use App\Models\LeadNote;
use App\Models\Lead;
use App\Models\User;
use Auth;
use Illuminate\Support\Facades\Auth as FacadesAuth;
class PostSalesController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index(Request $request)
{
$user = FacadesAuth::user();
$assigned = $request->boolean('assigned', false); // Correctly check if 'assigned' is passed
// Fetch leads by status
$query = Lead::where('type', 'postSales');
$paymentProcessingQuery = Lead::where('type', 'postSales');
$handoverpreparationQuery = Lead::where('type', 'postSales');
$finalhandoverQuery = Lead::where('type', 'postSales');
// Apply assigned filter if needed
if ($assigned) {
$query->where('assigned_to', $user->id);
}
// Fetch leads for each status
$documentation_leads = $query->where('status', 'documentation')->take(10)->get();
$payment_processing_leads = $paymentProcessingQuery->where('status', 'payment-processing')->take(10)->get();
// $payment_processing_leads = $query->where('status', 'payment-processing')->take(10)->get();
// dd($payment_processing_leads);
$handover_preparation_leads = $handoverpreparationQuery->where('status', 'handover-preparation')->take(10)->get();
$final_handover_leads = $finalhandoverQuery->where('status', 'final-handover')->take(10)->get();
// Pass the filtered leads to the view
return view('users.posts.index', compact(
'documentation_leads',
'payment_processing_leads',
'handover_preparation_leads',
'final_handover_leads'
));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
// dd(123);
$countries = Country::all();
$lead_sources = LeadSource::all();
$users = User::all();
// $adminIds = getAdminId();
// $users = User::where('parent_id', $adminIds->parent_id)->get();
$currentUser = Auth::user();
return view('users.posts.create', compact('countries', 'lead_sources', 'users', 'currentUser'));
}
/**
* Store a newly created resource in storage.
*/
public function getStates(Request $request, $id)
{
// dd(123);
$states = States::where('country_id', $id)->pluck('name', 'id');
return response()->json($states);
}
public function getCities(Request $request, $id)
{
$cities = City::where('state_id', $id)->pluck('name', 'id');
return response()->json($cities);
}
public function store(Request $request)
{
$request->validate(['minBudget' => ['required', 'numeric', function ($attribute, $value, $fail) use ($request) {if ($value >= $request->input('maxBudget')) {$fail('The minimum budget must be less than the maximum budget.');}}], 'maxBudget' => 'required|numeric']);
$lead = new Lead();
if (isset($lead)) {
$lead->title = $request->title;
$lead->source = $request->lead_source;
$lead->assigned_to = $request->assign_to;
$lead->customer_id = $request->customer_id;
$lead->salutation = $request->salutation;
$lead->first_name = $request->first_name;
$lead->last_name = $request->last_name;
$lead->gender = $request->gender;
$lead->property_interest_type = $request->property_interest_type;
$lead->is_organization = $request->is_organization;
$lead->organization_name = $request->organization_name;
$lead->tags = $request->input;
$lead->designation = $request->designation;
$lead->budget = $request->budget;
$lead->email_address = $request->email;
$lead->website = $request->website;
$lead->phone = $request->phone_number;
$lead->mobile_number = $request->mobile_number;
$lead->description = $request->description;
$lead->last_contacted = $request->last_contacted;
$lead->next_followup = $request->next_follow_up;
$lead->address_line_1 = $request->address_line_1;
$lead->address_line_2 = $request->address_line_2;
$lead->country = $request->country;
$lead->state = $request->state;
$lead->city = $request->city;
$lead->postal_code = $request->postal_code;
$lead->status = $request->post_status;
// $lead->type = 'postSale';
$lead->type = $request->type;
$lead->save();
return redirect()->route('post-sales.index')->with('success', 'Lead Add Successfully');
} else {
return back()->with('error', 'Lead does not exist');
}
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
$lead = Lead::with('city', 'state', 'country', 'user')->findOrFail($id);
$post_status = LeadSource::all();
$users = User::all();
$countries = Country::all();
$states = States::all();
$cities = City::all();
$currentUser = Auth::user();
return view('users.leads.edit', compact('lead', 'lead_sources', 'users', 'countries', 'states', 'cities', 'currentUser'));
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
public function convert_to_Payment($postSales_id)
{
$lead = Lead::findOrFail($postSales_id);
// Debugging log
\Log::info("Converting Lead ID {$postSales_id} to payment-processing");
$lead->status = 'payment-processing';
$lead->save();
// Log after saving
\Log::info("Lead ID {$postSales_id} status updated to: " . $lead->status);
return redirect()->route('post-sales.index')->with('success', 'Lead converted to Payment Processing.');
}
public function convert_to_Handoverpreparation($postSales_id)
{
$lead = Lead::findOrFail($postSales_id);
$lead->status = 'handover-preparation';
$lead->save();
return redirect()->route('post-sales.index')->with('success', 'Lead converted to Handover Preparation.');
}
public function convert_to_FinalHandover($postSales_id)
{
$lead = Lead::findOrFail($postSales_id);
$lead->status = 'final-handover';
$lead->save();
return redirect()->route('post-sales.index')->with('success', 'Lead converted to Final Handover.');
}
}