Переглянути джерело

dashboard - modificate query statistiche

ferrari 2 тижнів тому
батько
коміт
542f5a7d0b

+ 61 - 5
app/Http/Livewire/Dashboard.php

@@ -136,9 +136,33 @@ class Dashboard extends Component
         $startTime = microtime(true);
 
         try {
-            $this->activeUsers = \App\Models\Member::where('is_archived', 0)->orWhere('is_archived', NULL)->count();
-            $this->registeredUsers = \App\Models\Member::where('current_status', 2)->count();
-            $this->suspendedSubscriptions = \App\Models\Member::where('current_status', 1)->count();
+            $this->activeUsers = \App\Models\Member::query()
+                ->where(function($query) {
+                    $query->where('is_archived', false)
+                        ->orWhereNull('is_archived');
+                })
+                ->where(function($query) {
+                    $query->where('is_deleted', false)
+                        ->orWhereNull('is_deleted');
+                })->count();
+            $this->registeredUsers = \App\Models\Member::where('current_status', 2)
+                ->where(function($query) {
+                    $query->where('is_archived', false)
+                        ->orWhereNull('is_archived');
+                })
+                ->where(function($query) {
+                    $query->where('is_deleted', false)
+                        ->orWhereNull('is_deleted');
+                })->count();
+            $this->suspendedSubscriptions = \App\Models\Member::where('current_status', 1)
+                ->where(function($query) {
+                    $query->where('is_archived', false)
+                        ->orWhereNull('is_archived');
+                })
+                ->where(function($query) {
+                    $query->where('is_deleted', false)
+                        ->orWhereNull('is_deleted');
+                })->count();
 
             Log::info('User counts loaded', [
                 'active_users' => $this->activeUsers,
@@ -155,22 +179,54 @@ class Dashboard extends Component
             Log::info('Expired certificates count', ['expired_certificates' => $this->expiredCertificates]);
 
             // Calculate changes from last month
-            $lastMonth = now()->subMonth();
+            $lastMonth = now()->subMonthNoOverflow();
             $endOfLastMonth = $lastMonth->copy()->endOfMonth();
 
-            $lastMonthActiveUsers = \App\Models\Member::where('is_archived', false)
+            $lastMonthActiveUsers = \App\Models\Member::query()
+                ->where(function($query) {
+                    $query->where('is_archived', false)
+                        ->orWhereNull('is_archived');
+                })
+                ->where(function($query) {
+                    $query->where('is_deleted', false)
+                        ->orWhereNull('is_deleted');
+                })
                 ->where('created_at', '<=', $endOfLastMonth)
                 ->count();
             $lastMonthRegisteredUsers = \App\Models\Member::where('current_status', 2)
+                ->where(function($query) {
+                    $query->where('is_archived', false)
+                        ->orWhereNull('is_archived');
+                })
+                ->where(function($query) {
+                    $query->where('is_deleted', false)
+                        ->orWhereNull('is_deleted');
+                })
                 ->where('updated_at', '<=', $endOfLastMonth)
                 ->count();
             $lastMonthSuspendedSubscriptions = \App\Models\Member::where('current_status', 1)
+                ->where(function($query) {
+                    $query->where('is_archived', false)
+                        ->orWhereNull('is_archived');
+                })
+                ->where(function($query) {
+                    $query->where('is_deleted', false)
+                        ->orWhereNull('is_deleted');
+                })
                 ->where('updated_at', '<=', $endOfLastMonth)
                 ->count();
             $lastMonthExpiredCertificates = \App\Models\Member::whereHas('certificates', function ($query) use ($endOfLastMonth) {
                 $query->where('expire_date', '<', $endOfLastMonth);
             })->whereDoesntHave('certificates', function ($query) use ($endOfLastMonth) {
                 $query->where('expire_date', '>=', $endOfLastMonth);
+            })
+            ->where(function($query) {
+                $query->where('is_archived', false)
+                    ->orWhereNull('is_archived');
+            })
+            ->where(function($query) {
+                $query->where('is_deleted', false)
+                    ->orWhereNull('is_deleted');
             })->count();
 
             $this->activeUsersChange = $this->activeUsers - $lastMonthActiveUsers;

+ 4 - 4
resources/views/livewire/dashboard.blade.php

@@ -36,7 +36,7 @@
                     <i class="dashboard-card-icon fa-solid fa-user"></i>
                 </div>
                 <div class="dashboard-card-value">{{$activeUsers}}</div>
-                <div class="dashboard-card-info"><span {{$activeUsers> 0 ? 'class=more' : 'class=less'}}>{{$activeUsers}}</span> dal mese scorso</div>
+                <div class="dashboard-card-info"><span {{$activeUsersChange>= 0 ? 'class=more' : 'class=less'}}>{{$activeUsersChange}}</span> dal mese scorso</div>
             </div>
 
             <div class="dashboard-card dashboard-stat">
@@ -45,7 +45,7 @@
                     <i class="dashboard-card-icon fa-solid fa-address-card"></i>
                 </div>
                 <div class="dashboard-card-value">{{$registeredUsers}}</div>
-                <div class="dashboard-card-info"><span {{$registeredUsers> 0 ? 'class=more' : 'class=less'}}>{{$registeredUsers}}</span> dal mese scorso</div>
+                <div class="dashboard-card-info"><span {{$registeredUsersChange>= 0 ? 'class=more' : 'class=less'}}>{{$registeredUsersChange}}</span> dal mese scorso</div>
             </div>
 
             <div class="dashboard-card dashboard-stat">
@@ -54,7 +54,7 @@
                     <i class="dashboard-card-icon fa-solid fa-file-lines"></i>
                 </div>
                 <div class="dashboard-card-value">{{$expiredCertificates}}</div>
-                <div class="dashboard-card-info"><span {{$expiredCertificates> 0 ? 'class=more' : 'class=less'}}>{{$expiredCertificates}}</span> dal mese scorso</div>
+                <div class="dashboard-card-info"><span {{$expiredCertificatesChange>= 0 ? 'class=more' : 'class=less'}}>{{$expiredCertificatesChange}}</span> dal mese scorso</div>
             </div>
 
             <div class="dashboard-card dashboard-stat">
@@ -63,7 +63,7 @@
                     <i class="dashboard-card-icon fa-solid fa-user-xmark"></i>
                 </div>
                 <div class="dashboard-card-value">{{$suspendedSubscriptions}}</div>
-                <div class="dashboard-card-info"><span {{$suspendedSubscriptions> 0 ? 'class=more' : 'class=less'}}>{{$suspendedSubscriptions}}</span> dal mese scorso</div>
+                <div class="dashboard-card-info"><span {{$suspendedSubscriptionsChange>= 0 ? 'class=more' : 'class=less'}}>{{$suspendedSubscriptionsChange}}</span> dal mese scorso</div>
             </div>
     
             <!-- Corsi Section -->