diff --git a/app/Http/Controllers/EventAttendeesController.php b/app/Http/Controllers/EventAttendeesController.php index e3b19c9a..87a69189 100644 --- a/app/Http/Controllers/EventAttendeesController.php +++ b/app/Http/Controllers/EventAttendeesController.php @@ -19,6 +19,7 @@ use DB; use Excel; use Mail; use Omnipay\Omnipay; +use PDF; use Response; use Validator; use Config; @@ -820,4 +821,33 @@ class EventAttendeesController extends MyBaseController 'message' => 'Ticket Successfully Resent', ]); } + + + /** + * Show an attendee ticket + * + * @param Request $request + * @param $attendee_id + * @return bool + */ + public function showAttendeeTicket(Request $request, $attendee_id) + { + $attendee = Attendee::scope()->findOrFail($attendee_id); + + $data = [ + 'order' => $attendee->order, + 'event' => $attendee->event, + 'tickets' => $attendee->ticket, + 'attendees' => [$attendee], + 'css' => file_get_contents(public_path('assets/stylesheet/ticket.css')), + 'image' => base64_encode(file_get_contents(public_path($attendee->event->organiser->full_logo_path))), + + ]; + + if ($request->get('download') == '1') { + return PDF::html('Public.ViewEvent.Partials.PDFTicket', $data, 'Tickets'); + } + return view('Public.ViewEvent.Partials.PDFTicket', $data); + } + } diff --git a/app/Http/routes.php b/app/Http/routes.php index 0bcd3ff5..3ca9cdcf 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -443,6 +443,11 @@ Route::group(['middleware' => ['auth', 'first.run']], function () { 'uses' => 'EventAttendeesController@showExportTicket', ]); + Route::get('{event_id}/attendees/{attendee_id}/ticket', [ + 'as' => 'showAttendeeTicket', + 'uses' => 'EventAttendeesController@showAttendeeTicket', + ]); + Route::get('{event_id}/attendees/export/{export_as?}', [ 'as' => 'showExportAttendees', 'uses' => 'EventAttendeesController@showExportAttendees', diff --git a/app/Jobs/SendAttendeeTicket.php b/app/Jobs/SendAttendeeTicket.php index d9ae2555..f788a413 100644 --- a/app/Jobs/SendAttendeeTicket.php +++ b/app/Jobs/SendAttendeeTicket.php @@ -4,15 +4,15 @@ namespace App\Jobs; use App\Jobs\Job; use App\Mailers\AttendeeMailer; -use App\Mailers\TicketMailer; use App\Models\Attendee; +use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; class SendAttendeeTicket extends Job implements ShouldQueue { - use InteractsWithQueue, SerializesModels; + use InteractsWithQueue, SerializesModels, DispatchesJobs; public $attendee; @@ -33,6 +33,7 @@ class SendAttendeeTicket extends Job implements ShouldQueue */ public function handle(AttendeeMailer $attendeeMailer) { + $this->dispatchNow(new GenerateTicket($this->attendee->reference)); $attendeeMailer->sendAttendeeTicket($this->attendee); } } diff --git a/app/Jobs/SendOrderTickets.php b/app/Jobs/SendOrderTickets.php index f2f6aa9a..1a483ce9 100644 --- a/app/Jobs/SendOrderTickets.php +++ b/app/Jobs/SendOrderTickets.php @@ -5,13 +5,14 @@ namespace App\Jobs; use App\Jobs\Job; use App\Mailers\OrderMailer; use App\Models\Order; +use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; class SendOrderTickets extends Job implements ShouldQueue { - use InteractsWithQueue, SerializesModels; + use InteractsWithQueue, SerializesModels, DispatchesJobs; public $order; @@ -32,6 +33,7 @@ class SendOrderTickets extends Job implements ShouldQueue */ public function handle(OrderMailer $orderMailer) { + $this->dispatchNow(new GenerateTicket($this->order->order_reference)); $orderMailer->sendOrderTickets($this->order); } } diff --git a/app/Listeners/OrderCompletedListener.php b/app/Listeners/OrderCompletedListener.php index cc03c180..a5dce35f 100644 --- a/app/Listeners/OrderCompletedListener.php +++ b/app/Listeners/OrderCompletedListener.php @@ -37,7 +37,7 @@ class OrderCompletedListener implements ShouldQueue /** * Generate the PDF tickets and send notification emails etc. */ - Log::info('Processing Order: ' . $event->order->order_reference); + Log::info('Begin Processing Order: ' . $event->order->order_reference); $this->dispatchNow(new GenerateTicket($event->order->order_reference)); $this->dispatch(new SendOrderTickets($event->order)); $this->dispatch(new SendOrderNotification($event->order)); diff --git a/app/Mailers/AttendeeMailer.php b/app/Mailers/AttendeeMailer.php index 4e612cbe..0a2e45c7 100644 --- a/app/Mailers/AttendeeMailer.php +++ b/app/Mailers/AttendeeMailer.php @@ -9,6 +9,7 @@ use Carbon\Carbon; use Mail; use Log; + class AttendeeMailer extends Mailer { @@ -25,7 +26,7 @@ class AttendeeMailer extends Mailer $message->to($attendee->email); $message->subject('Your ticket for the event ' . $attendee->order->event->title); - $file_name = $attendee->getReferenceAttribute(); + $file_name = $attendee->reference; $file_path = public_path(config('attendize.event_pdf_tickets_path')) . '/' . $file_name . '.pdf'; $message->attach($file_path);