From 96c2461b7c808be464f111d35bea4c254387cf99 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Wed, 12 Nov 2025 20:02:23 +0700 Subject: [PATCH] feat(user): menambahkan scope untuk mengecualikan developer dan menuliskannya di kueri analisa --- app/Livewire/Studio/Dashboard/Analysis.php | 1 + app/Models/User.php | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/app/Livewire/Studio/Dashboard/Analysis.php b/app/Livewire/Studio/Dashboard/Analysis.php index 4074543..c46b9b2 100644 --- a/app/Livewire/Studio/Dashboard/Analysis.php +++ b/app/Livewire/Studio/Dashboard/Analysis.php @@ -108,6 +108,7 @@ protected function loadData() 'value' => User::whereHas('employee') ->when(! empty($outletIds), fn ($q) => $q->whereHas('outlets', fn ($q2) => $q2->whereIn('outlets.id', $outletIds))) ->when($dateQuery || ($startDate && $endDate), $filterDate) + ->withoutDeveloper() ->count(), ], [ diff --git a/app/Models/User.php b/app/Models/User.php index 9f16a51..866bd87 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -49,6 +49,14 @@ protected function active(Builder $query): void $query->where('status', UserStatus::ACTIVE); } + #[Scope] + protected function withoutDeveloper(Builder $query): void + { + $query->whereDoesntHave('roles', function ($q) { + $q->where('name', 'Developer'); + }); + } + public function employee(): HasOne { return $this->hasOne(Employee::class); @@ -118,4 +126,9 @@ public function vouchers(): BelongsToMany { return $this->belongsToMany(Voucher::class); } + + public function pointRecords(): HasMany + { + return $this->hasMany(PointRecord::class); + } }