ticketOrder = $attendee->order; $this->attendee = $attendee; } /** * @param AttendeeMailer $mailer */ public function handle(AttendeeMailer $mailer) { Log::info(date('d m y H:i')." - Starting Job {$this->job->getJobId()} ".__CLASS__); //1 - Generate PDF Tickets $ticket_path = $this->generateAttendeeTicket(); //2 - Send Tickets / Order confirmation $mailer->sendAttendeeTicket($this->attendee, $this->ticketOrder, $ticket_path); Log::info(date('d m y H:i')." - Finished Job {$this->job->getJobId()} ".__CLASS__); $this->delete(); } /** * Create a ticket for an attendee * * @todo should the path to the PDF be stored in the DB? * @todo This probably shouldn't be done here * @return bool|string */ public function generateAttendeeTicket() { $data = [ 'order' => $this->ticketOrder, 'event' => $this->attendee->event, 'tickets' => $this->attendee->event->tickets, 'attendees' => [$this->attendee], ]; $pdf_file_name = $this->ticketOrder->order_reference.'-'.$this->attendee->id; $pdf_file_path = public_path(config('attendize.event_pdf_tickets_path')).'/'.$pdf_file_name; $pdf_file = $pdf_file_path.'.pdf'; if (file_exists($pdf_file)) { return $pdf_file; } PDF::setOutputMode('F'); // force to file PDF::html('Public.ViewEvent.Partials.PDFTicket', $data, $pdf_file_path); return $pdf_file; } }