File: /var/www/html/owlcrm/app/Http/Controllers/DashboardController.php
<?php
namespace App\Http\Controllers;
use App\Models\Lead;
use App\Models\leadActivityLog;
use App\Models\Project;
use App\Models\Reminder;
use App\Models\Task;
use App\Models\UserActivityLog;
use Illuminate\Http\Request;
use Carbon\Carbon;
class DashboardController extends Controller
{
public function index()
{
if (!$authUserId = auth()->id()) {
return redirect()->route('login');
}
$sevenDaysAgo = Carbon::now()->subDays(7);
$newLeadCount = Lead::where('status',Lead::NewLead)
->where('created_at', '>=', $sevenDaysAgo)
->where('user_id', $authUserId)
->count();
$hotLeadCount = Lead::where('status',Lead::HotLead)
->where('created_at', '>=', $sevenDaysAgo)
->where(function ($query) use ($authUserId) {
$query->where('user_id', $authUserId)
->orWhere('assigned_to', $authUserId);
})
->count();
$convertedLeadsCount = Lead::where('status',Lead::FinalHandover)
->where('created_at', '>=', $sevenDaysAgo)
->where(function ($query) use ($authUserId) {
$query->where('user_id', $authUserId)
->orWhere('assigned_to', $authUserId);
})
->count();
// $convertedLeadsCount = Lead::where('user_id', $authUserId)
// ->where('created_at', '>=', Carbon::now()->subDay(7))
// ->count();
// $projectCount = Project::where('status','project')
// ->where('created_at', '>=', Carbon::now()->subDay(7))
// ->where('user_id', auth()->id())
// ->count();
// dd($convertedLeadsCount);
$leadCount = Lead::where('user_id',$authUserId)->orWhere('assigned_to', $authUserId)->count();
$coldLeadCount = Lead::where('user_id',$authUserId)->where('status', Lead::ColdLead)->count();
$finalLead = Lead::where(function($query) use ($authUserId) {
$query->where('user_id', $authUserId)
->orWhere('assigned_to', $authUserId);
})
->where('status', Lead::FinalHandover)
->count();
// $finalLead = Lead::where('user_id',$authUserId)->orWhere('assigned_to', $authUserId)->where('status', Lead::FinalHandover)->count();
// for reminders
// $reminderCount = Reminder::where('user_id',$authUserId)->where('entity_type', 'lead')->where('created_at', '>=', Carbon::now()->subDay(7))
// ->count();
// dd($reminderCount);
// $leadReminderCount = Reminder::where('user_id',$authUserId)->where('entity_type', 'lead')
// ->where('created_at', '>=', Carbon::now()->subDay(7))
// ->count();
$reminders = Reminder::with('user','created_by_user')->where('entity_type',Reminder::Lead)
->where('created_at', '>=', $sevenDaysAgo)
->where(function ($query) use ($authUserId) {
$query->where('user_id', $authUserId)
->orWhere('reminder_to', $authUserId);
})
->orderBy('created_at', 'desc')->take(4)->get();
// $userReminderCount = Reminder::where('entity_type', 'user')
// ->where('created_at', '>=', Carbon::now()->subDay(7))
// ->count();
// $companyReminderCount = Reminder::where('entity_type', 'company')
// ->where('created_at', '>=', Carbon::now()->subDay(7))
// ->count();
// $projectReminderCount = Reminder::where('entity_type', 'project')
// ->where('created_at', '>=', Carbon::now()->subDay(7))
// ->count();
// for tasks
// $leadTaskCount = Task::where('entity_type', Task::Lead)
// ->where('assigned_to', $authUserId)
// ->where('created_at', '>=', Carbon::now()->subDay(7))
// ->count();
$leadTaskCount = Task::where('entity_type', Task::Lead)
->where('created_at', '>=', $sevenDaysAgo)
->where(function ($query) use ($authUserId) {
$query->where('created_by', $authUserId)
->orWhere('assigned_to', $authUserId);
})->count();
// $userTaskCount = Task::where('entity_type', Task::User)
// ->where('created_at', '>=', Carbon::now()->subDay(7))
// ->count();
$userTaskCount = Task::where('entity_type', Task::User)
->where('created_at', '>=', $sevenDaysAgo)
->where(function ($query) use ($authUserId) {
$query->where('created_by', $authUserId)
->orWhere('assigned_to', $authUserId);
})->count();
// $companyTaskCount = Task::where('entity_type', 'company')
// ->where('created_at', '>=', Carbon::now()->subDay(7))
// ->count();
// $projectTaskCount = Task::where('entity_type', 'project')
// ->where('created_at', '>=', Carbon::now()->subDay(7))
// ->count();
//activity
// $taskCount = Task::where('entity_type', 'task')
// ->where('created_at', '>=', Carbon::now()->subDay(7))
// ->count();
// $user_activity_logs = UserActivityLog::with(['user', 'get_created_by'])
// ->orderBy('created_at', 'asc')
// ->take(2)
// ->get();
$user_activity_logs = UserActivityLog::with('user','get_created_by')
->where(function ($query) use ($authUserId) {
$query->where('user_id', $authUserId)
->orWhere('created_by', $authUserId);
})
->orderBy('created_at', 'desc')->take(2)->get();
// dd($user_activity_logs);
$lead_activity_logs = leadActivityLog::with(['lead', 'user'])
->where('created_by', $authUserId)
->orderBy('created_at', 'asc')
->take(2)
->get();
$all_activity_logs = $user_activity_logs->concat($lead_activity_logs);
$latest_activities = $all_activity_logs->sortByDesc('created_at')->take(10);
return view('users.dashboard', compact('newLeadCount', 'hotLeadCount', 'coldLeadCount','reminders',
'convertedLeadsCount', 'leadCount', 'leadTaskCount', 'userTaskCount',
'latest_activities','finalLead'));
// return view('users.dashboard', compact('newLeadCount', 'hotLeadCount', 'coldLeadCount',
// 'convertedLeadsCount', 'leadCount', 'leadReminderCount', 'userReminderCount', 'companyReminderCount',
// 'projectReminderCount', 'leadTaskCount', 'userTaskCount', 'companyTaskCount', 'projectTaskCount',
// 'latest_activities','taskCount','finalLead'));
}
}