diff --git a/app/Filament/Exports/MediaMonitoringExcelExport.php b/app/Filament/Exports/MediaMonitoringExcelExport.php index 7a42669..6903947 100644 --- a/app/Filament/Exports/MediaMonitoringExcelExport.php +++ b/app/Filament/Exports/MediaMonitoringExcelExport.php @@ -53,6 +53,10 @@ public function setUp() Column::make('release_date') ->heading('Tgl Rilis'), + + Column::make('issue_management_status') + ->heading('Status Isu') + ->getStateUsing(fn ($record) => $record->issueManagement ? 'Sudah Input' : 'Belum Input'), ]); } @@ -83,7 +87,7 @@ public function registerEvents(): array return [ AfterSheet::class => function (AfterSheet $event) { $sheet = $event->sheet->getDelegate(); - $lastColumn = 'K'; // Based on column count (A-K) + $lastColumn = 'L'; // Based on column count (A-L) $sheet->mergeCells("A1:{$lastColumn}1"); diff --git a/app/Filament/Resources/Monitoring/IssueManagements/Schemas/IssueManagementForm.php b/app/Filament/Resources/Monitoring/IssueManagements/Schemas/IssueManagementForm.php index 0b6f202..dc2e1b8 100644 --- a/app/Filament/Resources/Monitoring/IssueManagements/Schemas/IssueManagementForm.php +++ b/app/Filament/Resources/Monitoring/IssueManagements/Schemas/IssueManagementForm.php @@ -104,7 +104,7 @@ public static function configure(Schema $schema): Schema Select::make('sub_classification_id') ->label('Subklasifikasi') - ->relationship('subClassification', 'name', fn (Builder $query, Get $get): Builder => $query->where('classification_id', $get('location_id'))->active()) + ->relationship('subClassification', 'name', fn (Builder $query, Get $get): Builder => $query->where('classification_id', $get('classification_id'))->active()) ->searchable() ->preload() ->required(), diff --git a/app/Filament/Resources/Monitoring/MediaMonitorings/MediaMonitoringResource.php b/app/Filament/Resources/Monitoring/MediaMonitorings/MediaMonitoringResource.php index a52a617..eab00bb 100644 --- a/app/Filament/Resources/Monitoring/MediaMonitorings/MediaMonitoringResource.php +++ b/app/Filament/Resources/Monitoring/MediaMonitorings/MediaMonitoringResource.php @@ -52,6 +52,13 @@ public static function getPages(): array ]; } + public static function getEloquentQuery(): Builder + { + return parent::getEloquentQuery() + ->with(['issueManagement', 'themes']) + ->withExists('issueManagement'); + } + public static function getRecordRouteBindingEloquentQuery(): Builder { return parent::getRecordRouteBindingEloquentQuery() diff --git a/app/Filament/Resources/Monitoring/MediaMonitorings/Tables/MediaMonitoringsTable.php b/app/Filament/Resources/Monitoring/MediaMonitorings/Tables/MediaMonitoringsTable.php index 4314a1c..f9e9cf0 100644 --- a/app/Filament/Resources/Monitoring/MediaMonitorings/Tables/MediaMonitoringsTable.php +++ b/app/Filament/Resources/Monitoring/MediaMonitorings/Tables/MediaMonitoringsTable.php @@ -96,6 +96,13 @@ public static function configure(Table $table): Table ->sortable() ->date('l, d F Y'), + TextColumn::make('issue_management_exists') + ->label('Status Isu') + ->formatStateUsing(fn ($state) => $state ? 'Sudah Input' : 'Belum Input') + ->badge() + ->color(fn ($state) => $state ? 'success' : 'gray') + ->sortable(), + ...TimestampColumns::make(), ]) ->filters([ @@ -115,6 +122,23 @@ public static function configure(Table $table): Table ->options(Channel::class) ->native(false), + SelectFilter::make('issueManagementStatus') + ->label('Status Isu') + ->options([ + 'sudah' => 'Sudah Input', + 'belum' => 'Belum Input', + ]) + ->query(function (Builder $query, array $data) { + if ($data['value'] === 'sudah') { + return $query->has('issueManagement'); + } elseif ($data['value'] === 'belum') { + return $query->doesntHave('issueManagement'); + } + + return $query; + }) + ->native(false), + Filter::make('date_filter') ->schema([ Select::make('date_type')