HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
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'));
    }
}