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.
55 lines
1.6 KiB
PHP
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);
|
|
}
|
|
}
|