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.
52 lines
1.5 KiB
PHP
52 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Jobs;
|
|
|
|
use App\Models\Transmittal;
|
|
use Barryvdh\DomPDF\Facade\Pdf;
|
|
use Filament\Notifications\Actions\Action;
|
|
use Filament\Notifications\Notification;
|
|
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 ExportCompleteJob implements ShouldQueue
|
|
{
|
|
use Dispatchable;
|
|
use InteractsWithQueue;
|
|
use Queueable;
|
|
use SerializesModels;
|
|
|
|
public function __construct(private $user, private array $ids)
|
|
{
|
|
}
|
|
|
|
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());
|
|
|
|
Notification::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);
|
|
}
|
|
}
|