Added logic to load options against department in visitor page
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 46s
Gemini PR Review / Gemini PR Review (pull_request) Failing after 20s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 15s
Laravel Pint / pint (pull_request) Successful in 8m56s
Laravel Larastan / larastan (pull_request) Failing after 10m59s

This commit is contained in:
dhanabalan
2026-06-06 19:08:59 +05:30
parent 6bc14a347a
commit 9b10ff0069

View File

@@ -120,6 +120,7 @@ class VisitorEntryResource extends Resource
EmployeeMaster::distinct() EmployeeMaster::distinct()
->pluck('department', 'department') ->pluck('department', 'department')
) )
->searchable()
->required() ->required()
->reactive() ->reactive()
->afterStateUpdated(function (callable $set) { ->afterStateUpdated(function (callable $set) {
@@ -156,6 +157,11 @@ class VisitorEntryResource extends Resource
->searchable() ->searchable()
->options(function (callable $get) { ->options(function (callable $get) {
$department = $get('department'); $department = $get('department');
if (!$department) {
return [];
}
// Always load ALL employees, filter by department if set // Always load ALL employees, filter by department if set
if ($department) { if ($department) {
return EmployeeMaster::where('department', $department) return EmployeeMaster::where('department', $department)
@@ -319,7 +325,7 @@ class VisitorEntryResource extends Resource
->reactive() ->reactive()
->placeholder('Enter Register ID') ->placeholder('Enter Register ID')
->afterStateUpdated(function ($state, callable $set, callable $get) { ->afterStateUpdated(function ($state, callable $set, callable $get) {
$set('Rework', null); $set('type', null);
}), }),
Select::make('type') Select::make('type')
->label('Type') ->label('Type')
@@ -356,7 +362,24 @@ class VisitorEntryResource extends Resource
->reactive() ->reactive()
->placeholder('Enter Visitor Company') ->placeholder('Enter Visitor Company')
->afterStateUpdated(function ($state, callable $set, callable $get) { ->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') Select::make('employee_master_id')
->label('Employee Name') ->label('Employee Name')
@@ -407,6 +430,10 @@ class VisitorEntryResource extends Resource
$query->where('company', 'like', '%'.$data['company'].'%'); $query->where('company', 'like', '%'.$data['company'].'%');
} }
if (! empty($data['employee_department'])) {
$query->where('department', $data['employee_department']);
}
if (! empty($data['employee_master_id'])) { if (! empty($data['employee_master_id'])) {
$query->where('employee_master_id', $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']; $indicators[] = 'Company: '.$data['company'];
} }
if (! empty($data['employee_department'])) {
$indicators[] = 'Employee Department: '.$data['employee_department'];
}
if (! empty($data['employee_master_id'])) { if (! empty($data['employee_master_id'])) {
$indicators[] = 'Employee Name: '.EmployeeMaster::where('id', $data['employee_master_id'])->value('name'); $indicators[] = 'Employee Name: '.EmployeeMaster::where('id', $data['employee_master_id'])->value('name');
} }