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
|
|
|
];
|
|
|
|
|
|
|
|
|
|
$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;
|
|
|
|
|
|
|
|
|
|
$attendees = ($message_object->recipients == 0) ? $event->attendees : Attendee::where('ticket_id', '=', $message_object->recipients)->where('account_id', '=', $message_object->account_id)->get();
|
|
|
|
|
|
|
|
|
|
$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-03-04 23:27:13 +00:00
|
|
|
->from(config('attendize.outgoing_email_noreply'), $event->organiser->name)
|
2016-02-29 15:59:36 +00:00
|
|
|
->replyTo($event->organiser->email, $event->organiser->name)
|
|
|
|
|
->subject($message_object->subject);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$message_object->is_sent = 1;
|
|
|
|
|
$message_object->save();
|
|
|
|
|
//$message->sent
|
|
|
|
|
|
|
|
|
|
$job->delete();
|
|
|
|
|
}
|
|
|
|
|
}
|