From 9b10ff0069f85dbf6a589719958ad54392ba6c79 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Sat, 6 Jun 2026 19:08:59 +0530 Subject: [PATCH] Added logic to load options against department in visitor page --- .../Resources/VisitorEntryResource.php | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/app/Filament/Resources/VisitorEntryResource.php b/app/Filament/Resources/VisitorEntryResource.php index ec63c3a..acdb23c 100644 --- a/app/Filament/Resources/VisitorEntryResource.php +++ b/app/Filament/Resources/VisitorEntryResource.php @@ -120,6 +120,7 @@ class VisitorEntryResource extends Resource EmployeeMaster::distinct() ->pluck('department', 'department') ) + ->searchable() ->required() ->reactive() ->afterStateUpdated(function (callable $set) { @@ -156,6 +157,11 @@ class VisitorEntryResource extends Resource ->searchable() ->options(function (callable $get) { $department = $get('department'); + + if (!$department) { + return []; + } + // Always load ALL employees, filter by department if set if ($department) { return EmployeeMaster::where('department', $department) @@ -319,7 +325,7 @@ class VisitorEntryResource extends Resource ->reactive() ->placeholder('Enter Register ID') ->afterStateUpdated(function ($state, callable $set, callable $get) { - $set('Rework', null); + $set('type', null); }), Select::make('type') ->label('Type') @@ -356,7 +362,24 @@ class VisitorEntryResource extends Resource ->reactive() ->placeholder('Enter Visitor Company') ->afterStateUpdated(function ($state, callable $set, callable $get) { - $set('Rework', null); + $set('employee_master_id', null); + }), + Select::make('employee_department') + ->label('Employee Department') + ->options(function () { + return EmployeeMaster::query() + ->whereNotNull('department') + ->distinct() + ->orderBy('department') + ->pluck('department', 'department') + ->toArray(); + }) + ->searchable() + ->preload() + ->reactive() + ->placeholder('Select Department') + ->afterStateUpdated(function ($state, callable $set, callable $get) { + $set('employee_master_id', null); }), Select::make('employee_master_id') ->label('Employee Name') @@ -407,6 +430,10 @@ class VisitorEntryResource extends Resource $query->where('company', 'like', '%'.$data['company'].'%'); } + if (! empty($data['employee_department'])) { + $query->where('department', $data['employee_department']); + } + if (! empty($data['employee_master_id'])) { $query->where('employee_master_id', $data['employee_master_id']); } @@ -443,6 +470,10 @@ class VisitorEntryResource extends Resource $indicators[] = 'Company: '.$data['company']; } + if (! empty($data['employee_department'])) { + $indicators[] = 'Employee Department: '.$data['employee_department']; + } + if (! empty($data['employee_master_id'])) { $indicators[] = 'Employee Name: '.EmployeeMaster::where('id', $data['employee_master_id'])->value('name'); }