Files
MKM/app/Jobs/TransmittalPDFExportJob.php
Jp df66727379 refactor: use correct Filament Action import in export jobs
Update import statements to use Filament\Notifications\Actions\Action instead of the incorrect Actions\Action and NotificationAction aliases. This ensures consistency with the Filament notification system.
2026-02-18 23:07:29 +08:00

55 lines
1.6 KiB
PHP

<?php
namespace App\Jobs;
use App\Models\Transmittal;
use Barryvdh\DomPDF\Facade\Pdf;
use Filament\Forms\Components\Actions;
use Filament\Notifications\Actions\Action;
use Filament\Notifications\Livewire\Notifications;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Foundation\Queue\Queueable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Storage;
class TransmittalPDFExportJob implements ShouldQueue
{
use Queueable, Dispatchable, InteractsWithQueue, SerializesModels;
/**
* Create a new job instance.
*/
public function __construct(private $user, private array $ids)
{}
/**
* Execute the job.
*/
public function handle(): void
{
$transmittals = Transmittal::query()
->with(['client', 'branch', 'files.notes', 'files.remarks'])
->whereIn('id', $this->ids)
->get();
$pdf = Pdf::loadView('transmittal.export.transmittal-export-pdf', [
'transmittals' => $transmittals,
]);
Storage::disk('public')->put('transmittal-export.pdf', $pdf->output());
Notifications::make()
->success()
->title('Export Completed')
->actions([
Action::make('download_transmittal-export.pdf')
->label('Download PDF File')
->url(Storage::url('transmittal-export.pdf'), true)
->markAsRead(),
])
->sendToDatabase($this->user);
}
}