user()->hasRole(RoleEnum::PERUSAHAAN->value)) { return $ownerRecord->cooperationMedia() ->whereHas('partnerMedia', function ($query) { $query->whereHas('company', function ($query) { $query->where('user_id', auth()->id()); }); }) ->where('status', ApprovalStatus::ACCEPTED) ->exists(); } return true; } public function table(Table $table): Table { return $table ->columns([ ...RowIndexColumn::make(), TextColumn::make('start_date') ->label('Mulai') ->date('l, d F Y'), TextColumn::make('end_date') ->label('Selesai') ->date('l, d F Y'), TextColumn::make('task_description') ->label('Deskripsi Tugas') ->limit(50), TextColumn::make('report_amount') ->label('Jumlah Laporan'), ]) ->filters([ // ]) ->headerActions([ CreateAction::make() ->label('Buat Penugasan') ->visible(function (): bool { $cooperation = $this->getOwnerRecord(); return $cooperation->proposal()->accepted()->exists() && ! $cooperation->taskAssignment()->exists(); }) ->successNotification(fn () => CheerfulNotification::success( CheerfulNotification::getMessage('Penugasan Dibuat! ๐Ÿš€โœจ', 'Penugasan Berhasil'), CheerfulNotification::getMessage('Tugas baru berhasil ditetapkan. Media terkait akan segera mengetahuinya! ๐Ÿ’ช', 'Tugas baru telah berhasil ditetapkan untuk pihak media.') ) ), ]) ->recordActions([ EditAction::make() ->successNotification(fn () => CheerfulNotification::success( CheerfulNotification::getMessage('Penugasan Diperbarui! โœ…', 'Penugasan Diperbarui'), CheerfulNotification::getMessage('Perubahan pada penugasan berhasil disimpan dengan aman. ๐Ÿ‘', 'Perubahan pada detail penugasan telah berhasil disimpan.') ) ), DeleteAction::make() ->successNotification(fn () => CheerfulNotification::success( CheerfulNotification::getMessage('Penugasan Dihapus! ๐Ÿ—‘๏ธ', 'Penugasan Dihapus'), CheerfulNotification::getMessage('Penugasan telah berhasil dihapus dari sistem. ๐Ÿ‘‹', 'Data penugasan telah berhasil dihapus dari sistem.') ) ), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make() ->successNotification(fn () => CheerfulNotification::success( CheerfulNotification::getMessage('Banyak Penugasan Dihapus! ๐Ÿ—‘๏ธ๐Ÿ‘‹', 'Penugasan Berhasil Dihapus'), CheerfulNotification::getMessage('Semua penugasan yang dipilih telah dihapus dari sistem. ๐Ÿงน', 'Seluruh data penugasan yang dipilih telah berhasil dihapus.') ) ), ]), ]) ->emptyStateIcon(Heroicon::OutlinedArchiveBoxXMark) ->emptyStateDescription('Tidak ada penugasan yang ditugaskan.'); } }