2016-02-29 15:59:36 +00:00
< ? php
namespace App\Http\Controllers ;
2016-03-05 00:18:10 +00:00
use App\Commands\OrderTicketsCommand ;
use App\Models\Attendee ;
2016-02-29 15:59:36 +00:00
use App\Models\Event ;
use App\Models\EventStats ;
2016-03-05 00:18:10 +00:00
use App\Models\Message ;
2016-02-29 15:59:36 +00:00
use App\Models\Order ;
use App\Models\OrderItem ;
2016-03-05 00:18:10 +00:00
use App\Models\Ticket ;
use Auth ;
use DB ;
use Excel ;
2016-03-11 01:03:33 +00:00
use Illuminate\Http\Request ;
2016-03-05 00:18:10 +00:00
use Input ;
use Mail ;
use Response ;
use Session ;
use Validator ;
use View ;
class EventAttendeesController extends MyBaseController
{
2016-03-11 01:03:33 +00:00
/**
* Show the attendees list
*
* @ param Request $request
* @ param $event_id
* @ return View
*/
public function showAttendees ( Request $request , $event_id )
2016-03-05 00:18:10 +00:00
{
2016-02-29 15:59:36 +00:00
$allowed_sorts = [ 'first_name' , 'email' , 'ticket_id' , 'order_reference' ];
2016-03-11 01:03:33 +00:00
$searchQuery = $request -> get ( 'q' );
$sort_order = $request -> get ( 'sort_order' ) == 'asc' ? 'asc' : 'desc' ;
$sort_by = ( in_array ( $request -> get ( 'sort_by' ), $allowed_sorts ) ? $request -> get ( 'sort_by' ) : 'created_at' );
2016-02-29 15:59:36 +00:00
$event = Event :: scope () -> find ( $event_id );
if ( $searchQuery ) {
$attendees = $event -> attendees ()
-> withoutCancelled ()
-> join ( 'orders' , 'orders.id' , '=' , 'attendees.order_id' )
2016-03-05 00:18:10 +00:00
-> where ( function ( $query ) use ( $searchQuery ) {
$query -> where ( 'orders.order_reference' , 'like' , $searchQuery . '%' )
-> orWhere ( 'attendees.first_name' , 'like' , $searchQuery . '%' )
-> orWhere ( 'attendees.email' , 'like' , $searchQuery . '%' )
-> orWhere ( 'attendees.last_name' , 'like' , $searchQuery . '%' );
2016-02-29 15:59:36 +00:00
})
2016-03-05 00:18:10 +00:00
-> orderBy (( $sort_by == 'order_reference' ? 'orders.' : 'attendees.' ) . $sort_by , $sort_order )
2016-02-29 15:59:36 +00:00
-> select ( 'attendees.*' , 'orders.order_reference' )
-> paginate ();
} else {
$attendees = $event -> attendees ()
-> join ( 'orders' , 'orders.id' , '=' , 'attendees.order_id' )
-> withoutCancelled ()
2016-03-05 00:18:10 +00:00
-> orderBy (( $sort_by == 'order_reference' ? 'orders.' : 'attendees.' ) . $sort_by , $sort_order )
2016-02-29 15:59:36 +00:00
-> select ( 'attendees.*' , 'orders.order_reference' )
-> paginate ();
}
$data = [
2016-03-05 00:18:10 +00:00
'attendees' => $attendees ,
'event' => $event ,
'sort_by' => $sort_by ,
2016-02-29 15:59:36 +00:00
'sort_order' => $sort_order ,
2016-03-05 00:18:10 +00:00
'q' => $searchQuery ? $searchQuery : '' ,
2016-02-29 15:59:36 +00:00
];
2016-03-11 01:03:33 +00:00
return view ( 'ManageEvent.Attendees' , $data );
2016-02-29 15:59:36 +00:00
}
2016-03-11 01:03:33 +00:00
/**
* Show the 'Create Attendee' modal
*
* @ param Request $request
* @ param $event_id
* @ return string | View
*/
public function showCreateAttendee ( Request $request , $event_id )
2016-03-05 00:18:10 +00:00
{
2016-02-29 15:59:36 +00:00
$event = Event :: scope () -> find ( $event_id );
/*
* If there are no tickets then we can ' t create an attendee
* @ todo This is a bit hackish
*/
2016-03-05 00:18:10 +00:00
if ( $event -> tickets -> count () === 0 ) {
2016-02-29 15:59:36 +00:00
return '<script>showMessage("You need to create a ticket before you can add an attendee.");</script>' ;
}
2016-03-11 01:03:33 +00:00
return view ( 'ManageEvent.Modals.CreateAttendee' , [
2016-03-11 04:25:15 +00:00
'modal_id' => $request -> get ( 'modal_id' ),
'event' => $event ,
'tickets' => $event -> tickets () -> lists ( 'title' , 'id' ),
2016-03-05 00:18:10 +00:00
]);
2016-02-29 15:59:36 +00:00
}
2016-03-11 01:03:33 +00:00
/**
* Create an attendee
*
* @ param Request $request
* @ param $event_id
* @ return mixed
*/
public function postCreateAttendee ( Request $request , $event_id )
2016-03-05 00:18:10 +00:00
{
2016-02-29 15:59:36 +00:00
$rules = [
2016-03-05 00:18:10 +00:00
'first_name' => 'required' ,
'ticket_id' => 'required|exists:tickets,id,account_id,' . \Auth :: user () -> account_id ,
2016-02-29 15:59:36 +00:00
'ticket_price' => 'numeric|required' ,
2016-03-05 00:18:10 +00:00
'email' => 'email|required' ,
2016-02-29 15:59:36 +00:00
];
$messages = [
2016-03-05 00:18:10 +00:00
'ticket_id.exists' => 'The ticket you have selected does not exist' ,
'ticket_id.required' => 'The ticket field is required. ' ,
2016-02-29 15:59:36 +00:00
];
2016-03-11 01:03:33 +00:00
$validator = Validator :: make ( $request -> all (), $rules , $messages );
2016-02-29 15:59:36 +00:00
if ( $validator -> fails ()) {
2016-03-11 01:03:33 +00:00
return response () -> json ([
2016-03-05 00:18:10 +00:00
'status' => 'error' ,
'messages' => $validator -> messages () -> toArray (),
]);
2016-02-29 15:59:36 +00:00
}
2016-03-11 01:03:33 +00:00
$ticket_id = $request -> get ( 'ticket_id' );
$ticket_price = $request -> get ( 'ticket_price' );
$attendee_first_name = $request -> get ( 'first_name' );
$attendee_last_name = $request -> get ( 'last_name' );
$attendee_email = $request -> get ( 'email' );
$email_attendee = $request -> get ( 'email_ticket' );
2016-02-29 15:59:36 +00:00
/*
* Create the order
*/
2016-03-05 00:18:10 +00:00
$order = new Order ();
2016-02-29 15:59:36 +00:00
$order -> first_name = $attendee_first_name ;
$order -> last_name = $attendee_last_name ;
$order -> email = $attendee_email ;
2016-03-04 23:27:13 +00:00
$order -> order_status_id = config ( 'attendize.order_complete' );
2016-02-29 15:59:36 +00:00
$order -> amount = $ticket_price ;
$order -> account_id = Auth :: user () -> account_id ;
$order -> event_id = $event_id ;
$order -> save ();
/*
* Update qty sold
*/
$ticket = Ticket :: scope () -> find ( $ticket_id );
$ticket -> increment ( 'quantity_sold' );
$ticket -> increment ( 'sales_volume' , $ticket_price );
$ticket -> event -> increment ( 'sales_volume' , $ticket_price );
/*
* Insert order item
*/
2016-03-05 00:18:10 +00:00
$orderItem = new OrderItem ();
2016-02-29 15:59:36 +00:00
$orderItem -> title = $ticket -> title ;
$orderItem -> quantity = 1 ;
$orderItem -> order_id = $order -> id ;
$orderItem -> unit_price = $ticket_price ;
$orderItem -> save ();
/*
* Update the event stats
*/
2016-03-05 00:18:10 +00:00
$event_stats = new EventStats ();
2016-02-29 15:59:36 +00:00
$event_stats -> updateTicketsSoldCount ( $event_id , 1 );
$event_stats -> updateTicketRevenue ( $ticket_id , $ticket_price );
/*
* Create the attendee
*/
2016-03-05 00:18:10 +00:00
$attendee = new Attendee ();
2016-02-29 15:59:36 +00:00
$attendee -> first_name = $attendee_first_name ;
$attendee -> last_name = $attendee_last_name ;
$attendee -> email = $attendee_email ;
$attendee -> event_id = $event_id ;
$attendee -> order_id = $order -> id ;
$attendee -> ticket_id = $ticket_id ;
$attendee -> account_id = Auth :: user () -> account_id ;
2016-03-05 00:18:10 +00:00
$attendee -> reference = $order -> order_reference . '-1' ;
2016-02-29 15:59:36 +00:00
$attendee -> save ();
if ( $email_attendee == '1' ) {
$this -> dispatch ( new OrderTicketsCommand ( $order , false ));
}
2016-03-11 01:03:33 +00:00
session () -> flash ( 'message' , 'Attendee Successfully Created' );
2016-02-29 15:59:36 +00:00
2016-03-11 01:03:33 +00:00
return response () -> json ([
2016-03-11 04:25:15 +00:00
'status' => 'success' ,
'id' => $attendee -> id ,
'redirectUrl' => route ( 'showEventAttendees' , [
'event_id' => $event_id ,
]),
2016-03-05 00:18:10 +00:00
]);
2016-02-29 15:59:36 +00:00
}
2016-03-11 01:03:33 +00:00
/**
* Show the printable attendee list
*
* @ param $event_id
* @ return View
*/
2016-03-05 00:18:10 +00:00
public function showPrintAttendees ( $event_id )
{
2016-02-29 15:59:36 +00:00
$data [ 'event' ] = Event :: scope () -> find ( $event_id );
$data [ 'attendees' ] = $data [ 'event' ] -> attendees () -> withoutCancelled () -> orderBy ( 'first_name' ) -> get ();
2016-03-11 01:03:33 +00:00
return view ( 'ManageEvent.PrintAttendees' , $data );
2016-02-29 15:59:36 +00:00
}
2016-03-11 01:03:33 +00:00
/**
* Show the 'Message Attendee' modal
*
* @ param Request $request
* @ param $attendee_id
* @ return View
*/
public function showMessageAttendee ( Request $request , $attendee_id )
2016-03-05 00:18:10 +00:00
{
2016-02-29 15:59:36 +00:00
$attendee = Attendee :: scope () -> findOrFail ( $attendee_id );
$data = [
'attendee' => $attendee ,
2016-03-05 00:18:10 +00:00
'event' => $attendee -> event ,
2016-03-11 01:03:33 +00:00
'modal_id' => $request -> get ( 'modal_id' ),
2016-02-29 15:59:36 +00:00
];
2016-03-11 01:03:33 +00:00
return view ( 'ManageEvent.Modals.MessageAttendee' , $data );
2016-02-29 15:59:36 +00:00
}
2016-03-11 01:03:33 +00:00
/**
* Send a message to an attendee
*
* @ param Request $request
* @ param $attendee_id
* @ return mixed
*/
public function postMessageAttendee ( Request $request , $attendee_id )
2016-03-05 00:18:10 +00:00
{
2016-02-29 15:59:36 +00:00
$rules = [
'subject' => 'required' ,
2016-03-05 00:18:10 +00:00
'message' => 'required' ,
2016-02-29 15:59:36 +00:00
];
2016-03-11 01:03:33 +00:00
$validator = Validator :: make ( $request -> all (), $rules );
2016-02-29 15:59:36 +00:00
if ( $validator -> fails ()) {
2016-03-11 01:03:33 +00:00
return response () -> json ([
2016-03-05 00:18:10 +00:00
'status' => 'error' ,
'messages' => $validator -> messages () -> toArray (),
]);
2016-02-29 15:59:36 +00:00
}
$attendee = Attendee :: scope () -> findOrFail ( $attendee_id );
$data = [
2016-03-05 00:18:10 +00:00
'attendee' => $attendee ,
2016-03-11 01:03:33 +00:00
'message_content' => $request -> get ( 'message' ),
'subject' => $request -> get ( 'subject' ),
2016-03-05 00:18:10 +00:00
'event' => $attendee -> event ,
'email_logo' => $attendee -> event -> organiser -> full_logo_path ,
2016-02-29 15:59:36 +00:00
];
2016-03-05 00:18:10 +00:00
Mail :: send ( 'Emails.messageAttendees' , $data , function ( $message ) use ( $attendee , $data ) {
2016-02-29 15:59:36 +00:00
$message -> to ( $attendee -> email , $attendee -> full_name )
2016-03-04 23:27:13 +00:00
-> from ( config ( 'attendize.outgoing_email_noreply' ), $attendee -> event -> organiser -> name )
2016-02-29 15:59:36 +00:00
-> replyTo ( $attendee -> event -> organiser -> email , $attendee -> event -> organiser -> name )
-> subject ( $data [ 'subject' ]);
});
/* Could bcc in the above? */
if ( Input :: get ( 'send_copy' ) == '1' ) {
2016-03-05 00:18:10 +00:00
Mail :: send ( 'Emails.messageAttendees' , $data , function ( $message ) use ( $attendee , $data ) {
2016-02-29 15:59:36 +00:00
$message -> to ( $attendee -> event -> organiser -> email , $attendee -> event -> organiser -> name )
2016-03-04 23:27:13 +00:00
-> from ( config ( 'attendize.outgoing_email_noreply' ), $attendee -> event -> organiser -> name )
2016-02-29 15:59:36 +00:00
-> replyTo ( $attendee -> event -> organiser -> email , $attendee -> event -> organiser -> name )
2016-03-05 00:18:10 +00:00
-> subject ( $data [ 'subject' ] . '[ORGANISER COPY]' );
2016-02-29 15:59:36 +00:00
});
}
2016-03-11 01:03:33 +00:00
return response () -> json ([
2016-03-11 04:25:15 +00:00
'status' => 'success' ,
'message' => 'Message Successfully Sent' ,
2016-03-05 00:18:10 +00:00
]);
2016-02-29 15:59:36 +00:00
}
2016-03-11 01:03:33 +00:00
/**
* Shows the 'Message Attendees' modal
*
* @ param $event_id
* @ return View
*/
2016-03-05 00:18:10 +00:00
public function showMessageAttendees ( $event_id )
{
2016-02-29 15:59:36 +00:00
$data = [
2016-03-05 00:18:10 +00:00
'event' => Event :: scope () -> find ( $event_id ),
2016-02-29 15:59:36 +00:00
'modal_id' => Input :: get ( 'modal_id' ),
2016-03-05 00:18:10 +00:00
'tickets' => Event :: scope () -> find ( $event_id ) -> tickets () -> lists ( 'title' , 'id' ) -> toArray (),
2016-02-29 15:59:36 +00:00
];
2016-03-11 01:03:33 +00:00
return view ( 'ManageEvent.Modals.MessageAttendees' , $data );
2016-02-29 15:59:36 +00:00
}
2016-03-11 01:03:33 +00:00
/**
* Send a message to attendees
*
* @ param Request $request
* @ param $event_id
* @ return mixed
*/
public function postMessageAttendees ( Request $request , $event_id )
2016-03-05 00:18:10 +00:00
{
2016-02-29 15:59:36 +00:00
$rules = [
2016-03-05 00:18:10 +00:00
'subject' => 'required' ,
'message' => 'required' ,
'recipients' => 'required' ,
2016-02-29 15:59:36 +00:00
];
2016-03-11 01:03:33 +00:00
$validator = Validator :: make ( $request -> all (), $rules );
2016-02-29 15:59:36 +00:00
if ( $validator -> fails ()) {
2016-03-05 00:18:10 +00:00
return Response :: json ([
'status' => 'error' ,
'messages' => $validator -> messages () -> toArray (),
]);
2016-02-29 15:59:36 +00:00
}
$message = Message :: createNew ();
2016-03-11 01:03:33 +00:00
$message -> message = $request -> get ( 'message' );
$message -> subject = $request -> get ( 'subject' );
$message -> recipients = $request -> get ( 'recipients' );
2016-02-29 15:59:36 +00:00
$message -> event_id = $event_id ;
$message -> save ();
/*
* Add to the queue
*/
2016-03-11 01:03:33 +00:00
return response () -> json ([
2016-03-11 04:25:15 +00:00
'status' => 'success' ,
'message' => 'Message Successfully Sent' ,
2016-03-05 00:18:10 +00:00
]);
2016-02-29 15:59:36 +00:00
}
2016-03-11 01:03:33 +00:00
/**
* Downloads an export of attendees
*
* @ param $event_id
* @ param string $export_as ( xlsx , xls , csv , html )
*/
2016-03-05 00:18:10 +00:00
public function showExportAttendees ( $event_id , $export_as = 'xls' )
{
Excel :: create ( 'attendees-as-of-' . date ( 'd-m-Y-g.i.a' ), function ( $excel ) use ( $event_id ) {
2016-02-29 15:59:36 +00:00
$excel -> setTitle ( 'Attendees List' );
// Chain the setters
2016-03-04 23:27:13 +00:00
$excel -> setCreator ( config ( 'attendize.app_name' ))
-> setCompany ( config ( 'attendize.app_name' ));
2016-02-29 15:59:36 +00:00
2016-03-05 00:18:10 +00:00
$excel -> sheet ( 'attendees_sheet_1' , function ( $sheet ) use ( $event_id ) {
2016-02-29 15:59:36 +00:00
DB :: connection () -> setFetchMode ( \PDO :: FETCH_ASSOC );
$data = DB :: table ( 'attendees' )
-> where ( 'attendees.event_id' , '=' , $event_id )
-> where ( 'attendees.is_cancelled' , '=' , 0 )
-> where ( 'attendees.account_id' , '=' , Auth :: user () -> account_id )
-> join ( 'events' , 'events.id' , '=' , 'attendees.event_id' )
-> join ( 'orders' , 'orders.id' , '=' , 'attendees.order_id' )
-> join ( 'tickets' , 'tickets.id' , '=' , 'attendees.ticket_id' )
-> select (
'attendees.first_name' , 'attendees.last_name' , 'attendees.email' , 'attendees.reference' , 'orders.order_reference' , 'tickets.title' , 'orders.created_at' , DB :: raw ( " (CASE WHEN attendees.has_arrived = 1 THEN 'YES' ELSE 'NO' END) AS `attendees.has_arrived` " ), 'attendees.arrival_time' ) -> get ();
//DB::raw("(CASE WHEN UNIX_TIMESTAMP(`attendees.arrival_time`) = 0 THEN '---' ELSE 'd' END) AS `attendees.arrival_time`"))
$sheet -> fromArray ( $data );
2016-03-05 00:18:10 +00:00
$sheet -> row ( 1 , [
'First Name' , 'Last Name' , 'Email' , 'Ticket Reference' , 'Order Reference' , 'Ticket Type' , 'Purchase Date' , 'Has Arrived' , 'Arrival Time' ,
]);
2016-02-29 15:59:36 +00:00
// Set gray background on first row
2016-03-05 00:18:10 +00:00
$sheet -> row ( 1 , function ( $row ) {
2016-02-29 15:59:36 +00:00
$row -> setBackground ( '#f5f5f5' );
});
});
}) -> export ( $export_as );
}
2016-03-11 01:03:33 +00:00
/**
* Show the 'Edit Attendee' modal
*
* @ param Request $request
* @ param $event_id
* @ param $attendee_id
* @ return View
*/
public function showEditAttendee ( Request $request , $event_id , $attendee_id )
2016-03-05 00:18:10 +00:00
{
2016-02-29 15:59:36 +00:00
$attendee = Attendee :: scope () -> findOrFail ( $attendee_id );
$data = [
'attendee' => $attendee ,
2016-03-05 00:18:10 +00:00
'event' => $attendee -> event ,
'tickets' => $attendee -> event -> tickets -> lists ( 'title' , 'id' ),
2016-03-11 01:03:33 +00:00
'modal_id' => $request -> get ( 'modal_id' ),
2016-02-29 15:59:36 +00:00
];
2016-03-11 01:03:33 +00:00
return view ( 'ManageEvent.Modals.EditAttendee' , $data );
2016-02-29 15:59:36 +00:00
}
2016-03-11 01:03:33 +00:00
/**
* Updates an attendee
*
* @ param Request $request
* @ param $event_id
* @ param $attendee_id
* @ return mixed
*/
public function postEditAttendee ( Request $request , $event_id , $attendee_id )
2016-03-05 00:18:10 +00:00
{
2016-02-29 15:59:36 +00:00
$rules = [
'first_name' => 'required' ,
2016-03-05 00:18:10 +00:00
'ticket_id' => 'required|exists:tickets,id,account_id,' . Auth :: user () -> account_id ,
'email' => 'required|email' ,
2016-02-29 15:59:36 +00:00
];
$messages = [
2016-03-05 00:18:10 +00:00
'ticket_id.exists' => 'The ticket you have selected does not exist' ,
'ticket_id.required' => 'The ticket field is required. ' ,
2016-02-29 15:59:36 +00:00
];
2016-03-11 01:03:33 +00:00
$validator = Validator :: make ( $request -> all (), $rules , $messages );
2016-02-29 15:59:36 +00:00
if ( $validator -> fails ()) {
2016-03-11 01:03:33 +00:00
return response () -> json ([
2016-03-05 00:18:10 +00:00
'status' => 'error' ,
'messages' => $validator -> messages () -> toArray (),
]);
2016-02-29 15:59:36 +00:00
}
$attendee = Attendee :: scope () -> findOrFail ( $attendee_id );
2016-03-11 01:03:33 +00:00
$attendee -> update ( $request -> all ());
2016-02-29 15:59:36 +00:00
2016-03-11 01:03:33 +00:00
session () -> flash ( 'message' , 'Successfully Updated Attendee' );
2016-02-29 15:59:36 +00:00
2016-03-11 01:03:33 +00:00
return response () -> json ([
2016-03-11 04:25:15 +00:00
'status' => 'success' ,
'id' => $attendee -> id ,
'redirectUrl' => '' ,
2016-03-05 00:18:10 +00:00
]);
2016-02-29 15:59:36 +00:00
}
2016-03-11 01:03:33 +00:00
/**
* Shows the 'Cancel Attendee' modal
*
* @ param Request $request
* @ param $event_id
* @ param $attendee_id
* @ return View
*/
public function showCancelAttendee ( Request $request , $event_id , $attendee_id )
2016-03-05 00:18:10 +00:00
{
2016-02-29 15:59:36 +00:00
$attendee = Attendee :: scope () -> findOrFail ( $attendee_id );
$data = [
'attendee' => $attendee ,
2016-03-05 00:18:10 +00:00
'event' => $attendee -> event ,
'tickets' => $attendee -> event -> tickets -> lists ( 'title' , 'id' ),
2016-03-11 01:03:33 +00:00
'modal_id' => $request -> get ( 'modal_id' ),
2016-02-29 15:59:36 +00:00
];
2016-03-11 01:03:33 +00:00
return view ( 'ManageEvent.Modals.CancelAttendee' , $data );
2016-02-29 15:59:36 +00:00
}
2016-03-11 01:03:33 +00:00
/**
* Cancels an attendee
*
* @ param Request $request
* @ param $event_id
* @ param $attendee_id
* @ return mixed
*/
public function postCancelAttendee ( Request $request , $event_id , $attendee_id )
2016-03-05 00:18:10 +00:00
{
2016-02-29 15:59:36 +00:00
$attendee = Attendee :: scope () -> findOrFail ( $attendee_id );
2016-03-07 17:37:16 +00:00
if ( $attendee -> is_cancelled ) {
2016-03-06 17:59:19 +00:00
return Response :: json ([
'status' => 'success' ,
'message' => 'Attendee Already Cancelled' ,
]);
}
2016-02-29 15:59:36 +00:00
$attendee -> ticket -> decrement ( 'quantity_sold' );
$attendee -> is_cancelled = 1 ;
$attendee -> save ();
$data = [
2016-03-05 00:18:10 +00:00
'attendee' => $attendee ,
2016-03-06 17:59:19 +00:00
'email_logo' => $attendee -> event -> organiser -> full_logo_path ,
2016-02-29 15:59:36 +00:00
];
2016-03-05 00:18:10 +00:00
2016-03-11 01:03:33 +00:00
if ( $request -> get ( 'notify_attendee' ) == '1' ) {
2016-03-05 00:18:10 +00:00
Mail :: send ( 'Emails.notifyCancelledAttendee' , $data , function ( $message ) use ( $attendee ) {
2016-02-29 15:59:36 +00:00
$message -> to ( $attendee -> email , $attendee -> full_name )
2016-03-04 23:27:13 +00:00
-> from ( config ( 'attendize.outgoing_email_noreply' ), $attendee -> event -> organiser -> name )
2016-02-29 15:59:36 +00:00
-> replyTo ( $attendee -> event -> organiser -> email , $attendee -> event -> organiser -> name )
-> subject ( 'You\'re ticket has been cancelled' );
});
}
2016-03-11 01:03:33 +00:00
session () -> flash ( 'message' , 'Successfully Cancelled Attenddee' );
2016-02-29 15:59:36 +00:00
2016-03-11 01:03:33 +00:00
return response () -> json ([
2016-03-11 04:25:15 +00:00
'status' => 'success' ,
'id' => $attendee -> id ,
'redirectUrl' => '' ,
]);
}
/**
* Show the 'Message Attendee' modal
*
* @ param Request $request
* @ param $attendee_id
* @ return View
*/
public function showResendTicketToAttendee ( Request $request , $attendee_id )
{
$attendee = Attendee :: scope () -> findOrFail ( $attendee_id );
$data = [
'attendee' => $attendee ,
'event' => $attendee -> event ,
'modal_id' => $request -> get ( 'modal_id' ),
];
return view ( 'ManageEvent.Modals.ResendTicketToAttendee' , $data );
}
/**
* Send a message to an attendee
*
* @ param Request $request
* @ param $attendee_id
* @ return mixed
*/
public function postResendTicketToAttendee ( Request $request , $attendee_id )
{
$attendee = Attendee :: scope () -> findOrFail ( $attendee_id );
$order = $attendee -> order ;
$this -> dispatch ( new OrderTicketsCommand ( $order , false ));
return response () -> json ([
'status' => 'success' ,
'message' => 'Ticket Successfully Resent' ,
2016-03-05 00:18:10 +00:00
]);
2016-02-29 15:59:36 +00:00
}
}