statePath('filters') ->schema([ Section::make('') ->schema([ Select::make('plant_id') ->label('Plant') ->reactive() ->options(function (callable $get) { $userHas = Filament::auth()->user()->plant_id; return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); }) ->required() ->afterStateUpdated(function ($state, callable $get, $set) { $set('line_id', null); $set('year', null); $set('month', null); $this->dispatch('loadData',$state, '', '', ''); }), Select::make('line_id') ->label('Line') ->required() ->columnSpan(1) ->options(function (callable $get) { if (!$get('plant_id')) { return []; } return \App\Models\Line::where('plant_id', $get('plant_id')) ->pluck('name', 'id') ->toArray(); }) ->reactive() ->afterStateUpdated(function ($state, callable $get, $set) { $plantId = $get('plant_id'); $set('year', null); $set('month', null); $this->dispatch('loadData',$plantId, $state, '', ''); }), Select::make('year') ->label('Year') ->reactive() ->options([ '2026' => '2026', '2027' => '2027', '2028' => '2028', '2029' => '2029', '2030' => '2030', '2031' => '2031', '2032' => '2032', '2033' => '2033', '2034' => '2034', '2035' => '2035', '2036' => '2036', '2037' => '2037', '2038' => '2038', '2039' => '2039', '2040' => '2040', ]) ->required() ->afterStateUpdated(function ($state, callable $get, $set) { $set('month', null); $plantId = $get('plant_id'); $lineId = $get('line_id'); $this->dispatch('loadData',$plantId, $lineId, $state, ''); }), Select::make('month') ->label('Month') ->reactive() ->options([ '01' => 'January', '02' => 'February', '03' => 'March', '04' => 'April', '05' => 'May', '06' => 'June', '07' => 'July', '08' => 'August', '09' => 'September', '10' => 'October', '11' => 'November', '12' => 'December', ]) ->required() ->afterStateUpdated(function ($state, callable $get) { $plantId = $get('plant_id'); $lineId = $get('line_id'); // $month = $get('month'); $year = $get('year'); $month = (int) $get('month'); if (!$month) { return; } $this->dispatch('loadData', $plantId, $lineId, $month, $year); }), ]) ->columns(4) ]); } public function export(){ $plantId = $this->filters['plant_id'] ?? null; $lineId = $this->filters['line_id'] ?? null; $year = $this->filters['year'] ?? null; $month = $this->filters['month'] ?? null; if (! $plantId) { Notification::make() ->title('Plant') ->body("please select plant to export data..!") ->danger() ->send(); return; } else if (! $lineId) { Notification::make() ->title('Line') ->body("please select line to export data..!") ->danger() ->send(); return; } else if (! $year) { Notification::make() ->title('Year') ->body("please select year to export data..!") ->danger() ->send(); return; } else if (! $month) { Notification::make() ->title('Month') ->body("please select month to export data..!") ->danger() ->send(); return; } $this->dispatch('loadData1' ,$plantId, $lineId, $year, $month); } }