Attendize/app/Handlers/QueueHandler.php

92 lines
2.5 KiB
PHP
Raw Normal View History

2016-03-05 00:18:10 +00:00
<?php
2016-06-09 12:19:53 +00:00
namespace App\Handlers;
2016-02-29 15:59:36 +00:00
2016-06-09 12:19:53 +00:00
use App\Mailers\OrderMailer;
2016-02-29 15:59:36 +00:00
use Attendee;
2016-03-05 00:18:10 +00:00
use Order;
2016-02-29 15:59:36 +00:00
2016-03-05 00:18:10 +00:00
//use PDF;
2016-02-29 15:59:36 +00:00
2016-03-05 00:18:10 +00:00
class QueueHandler
{
2016-02-29 15:59:36 +00:00
protected $orderMailer;
2016-03-05 00:18:10 +00:00
public function __construct(OrderMailer $orderMailer)
{
2016-02-29 15:59:36 +00:00
$this->orderMailer = $orderMailer;
}
2016-03-05 00:18:10 +00:00
public function handleOrder($job, $data)
{
2016-02-29 15:59:36 +00:00
echo "Starting Job {$job->getJobId()}\n";
2016-03-05 00:18:10 +00:00
2016-02-29 15:59:36 +00:00
$order = Order::findOrfail($data['order_id']);
2016-03-05 00:18:10 +00:00
2016-02-29 15:59:36 +00:00
/*
* Steps :
* 1 Notify event organiser
* 2 Order Confirmation email to buyer
* 3 Generate / Send Tickets
*/
2016-03-05 00:18:10 +00:00
2016-02-29 15:59:36 +00:00
$data = [
2016-03-05 00:18:10 +00:00
'order' => $order,
'event' => $order->event,
'tickets' => $order->event->tickets,
'attendees' => $order->attendees,
2016-02-29 15:59:36 +00:00
];
2016-09-06 20:39:27 +00:00
$pdf_file = storage_path() . '/' . $order->order_reference;
2016-03-05 00:18:10 +00:00
exit($pdf_file);
2016-02-29 15:59:36 +00:00
PDF::setOutputMode('F'); // force to file
2016-03-05 00:18:10 +00:00
PDF::html('Public.ViewEvent.Partials.PDFTicket', $data, $pdf_file);
2016-02-29 15:59:36 +00:00
//1
$this->orderMailer->sendOrderNotification($order);
//2
$this->orderMailer->sendOrderConfirmation($order);
//3
2016-03-05 00:18:10 +00:00
2016-02-29 15:59:36 +00:00
$this->orderMailer->sendTickets($order);
2016-03-05 00:18:10 +00:00
2016-02-29 15:59:36 +00:00
$job->delete();
}
2016-03-05 00:18:10 +00:00
public function messageAttendees($job, $data)
{
echo "Starting Job {$job->getJobId()}\n";
2016-02-29 15:59:36 +00:00
$message_object = Message::find($data['message_id']);
$event = $message_object->event;
2016-09-06 20:39:27 +00:00
$attendees = ($message_object->recipients == 0) ? $event->attendees : Attendee::where('ticket_id', '=',
$message_object->recipients)->where('account_id', '=', $message_object->account_id)->get();
2016-02-29 15:59:36 +00:00
$toFields = [];
foreach ($attendees as $attendee) {
$toFields[$attendee->email] = $attendee->full_name;
}
$data = [
2016-03-05 00:18:10 +00:00
'event' => $event,
2016-02-29 15:59:36 +00:00
'message_content' => $message_object->message,
2016-03-05 00:18:10 +00:00
'subject' => $message_object->subject,
2016-02-29 15:59:36 +00:00
];
2016-03-05 00:18:10 +00:00
Mail::send('Emails.messageAttendees', $data, function ($message) use ($toFields, $event, $message_object) {
2016-02-29 15:59:36 +00:00
$message->to($toFields)
2016-09-06 20:39:27 +00:00
->from(config('attendize.outgoing_email_noreply'), $event->organiser->name)
->replyTo($event->organiser->email, $event->organiser->name)
->subject($message_object->subject);
2016-02-29 15:59:36 +00:00
});
$message_object->is_sent = 1;
$message_object->save();
//$message->sent
$job->delete();
}
}