Merge remote-tracking branch 'origin/master'
# Conflicts: # app/Http/Controllers/EventCheckoutController.php
This commit is contained in:
commit
39fb757926
|
|
@ -18,6 +18,7 @@ use Auth;
|
|||
use DB;
|
||||
use Excel;
|
||||
use Mail;
|
||||
use Omnipay\Omnipay;
|
||||
use Response;
|
||||
use Validator;
|
||||
use Config;
|
||||
|
|
@ -717,6 +718,62 @@ class EventAttendeesController extends MyBaseController
|
|||
});
|
||||
}
|
||||
|
||||
if($request->get('refund_attendee') == '1') {
|
||||
|
||||
try {
|
||||
// This does not account for an increased/decreased ticket price
|
||||
// after the original purchase.
|
||||
$refund_amount = $attendee->ticket->price;
|
||||
$data['refund_amount'] = $refund_amount;
|
||||
|
||||
$gateway = Omnipay::create($attendee->order->payment_gateway->name);
|
||||
|
||||
// Only works for stripe
|
||||
$gateway->initialize($attendee->order->account->getGateway($attendee->order->payment_gateway->id)->config);
|
||||
|
||||
$request = $gateway->refund([
|
||||
'transactionReference' => $attendee->order->transaction_id,
|
||||
'amount' => $refund_amount,
|
||||
'refundApplicationFee' => false,
|
||||
]);
|
||||
|
||||
$response = $request->send();
|
||||
|
||||
if ($response->isSuccessful()) {
|
||||
|
||||
// Update the attendee and their order
|
||||
$attendee->is_refunded = 1;
|
||||
$attendee->order->is_partially_refunded = 1;
|
||||
$attendee->order->amount_refunded += $refund_amount;
|
||||
|
||||
$attendee->order->save();
|
||||
$attendee->save();
|
||||
|
||||
// Let the user know that they have received a refund.
|
||||
Mail::send('Emails.notifyRefundedAttendee', $data, function ($message) use ($attendee) {
|
||||
$message->to($attendee->email, $attendee->full_name)
|
||||
->from(config('attendize.outgoing_email_noreply'), $attendee->event->organiser->name)
|
||||
->replyTo($attendee->event->organiser->email, $attendee->event->organiser->name)
|
||||
->subject('You have received a refund from ' . $attendee->event->organiser->name);
|
||||
});
|
||||
} else {
|
||||
$error_message = $response->getMessage();
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
\Log::error($e);
|
||||
$error_message = 'There has been a problem processing your refund. Please check your information and try again.';
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if ($error_message) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => $error_message,
|
||||
]);
|
||||
}
|
||||
|
||||
session()->flash('message', 'Successfully Cancelled Attenddee');
|
||||
|
||||
return response()->json([
|
||||
|
|
|
|||
|
|
@ -102,8 +102,8 @@ class EventController extends MyBaseController
|
|||
|
||||
if ($validator->fails()) {
|
||||
return Response::json([
|
||||
'status' => 'error',
|
||||
'messages' => $validator->messages()->toArray(),
|
||||
'status' => 'error',
|
||||
'messages' => $validator->messages()->toArray(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -118,6 +118,10 @@ class EventController extends MyBaseController
|
|||
} elseif ($request->get('organiser_id')) {
|
||||
$event->organiser_id = $request->get('organiser_id');
|
||||
} else { /* Somethings gone horribly wrong */
|
||||
return Response::json([
|
||||
'status' => 'error',
|
||||
'messages' => 'There was an issue finding the organiser.',
|
||||
]);
|
||||
}
|
||||
|
||||
$event->save();
|
||||
|
|
@ -149,12 +153,12 @@ class EventController extends MyBaseController
|
|||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'id' => $event->id,
|
||||
'redirectUrl' => route('showEventTickets', [
|
||||
'event_id' => $event->id,
|
||||
'first_run' => 'yup',
|
||||
]),
|
||||
'status' => 'success',
|
||||
'id' => $event->id,
|
||||
'redirectUrl' => route('showEventTickets', [
|
||||
'event_id' => $event->id,
|
||||
'first_run' => 'yup',
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -256,10 +260,10 @@ class EventController extends MyBaseController
|
|||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'id' => $event->id,
|
||||
'message' => 'Event Successfully Updated',
|
||||
'redirectUrl' => '',
|
||||
'status' => 'success',
|
||||
'id' => $event->id,
|
||||
'message' => 'Event Successfully Updated',
|
||||
'redirectUrl' => '',
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -76,11 +76,11 @@ class EventCustomizeController extends MyBaseController
|
|||
$event = Event::scope()->findOrFail($event_id);
|
||||
|
||||
$rules = [
|
||||
'social_share_text' => ['max:3000'],
|
||||
'social_show_facebook' => ['boolean'],
|
||||
'social_show_twitter' => ['boolean'],
|
||||
'social_show_linkedin' => ['boolean'],
|
||||
'social_show_email' => ['boolean'],
|
||||
'social_share_text' => ['max:3000'],
|
||||
'social_show_facebook' => ['boolean'],
|
||||
'social_show_twitter' => ['boolean'],
|
||||
'social_show_linkedin' => ['boolean'],
|
||||
'social_show_email' => ['boolean'],
|
||||
'social_show_googleplus' => ['boolean'],
|
||||
];
|
||||
|
||||
|
|
@ -97,13 +97,13 @@ class EventCustomizeController extends MyBaseController
|
|||
]);
|
||||
}
|
||||
|
||||
$event->social_share_text = $request->get('social_share_text');
|
||||
$event->social_show_facebook = $request->get('social_show_facebook');
|
||||
$event->social_show_linkedin = $request->get('social_show_linkedin');
|
||||
$event->social_show_twitter = $request->get('social_show_twitter');
|
||||
$event->social_show_email = $request->get('social_show_email');
|
||||
$event->social_share_text = $request->get('social_share_text');
|
||||
$event->social_show_facebook = $request->get('social_show_facebook');
|
||||
$event->social_show_linkedin = $request->get('social_show_linkedin');
|
||||
$event->social_show_twitter = $request->get('social_show_twitter');
|
||||
$event->social_show_email = $request->get('social_show_email');
|
||||
$event->social_show_googleplus = $request->get('social_show_googleplus');
|
||||
$event->social_show_whatsapp = $request->get('social_show_whatsapp');
|
||||
$event->social_show_whatsapp = $request->get('social_show_whatsapp');
|
||||
$event->save();
|
||||
|
||||
return response()->json([
|
||||
|
|
@ -125,10 +125,9 @@ class EventCustomizeController extends MyBaseController
|
|||
$event = Event::scope()->findOrFail($event_id);
|
||||
|
||||
$rules = [
|
||||
//'barcode_type' => ['required'],
|
||||
'ticket_border_color' => ['required'],
|
||||
'ticket_bg_color' => ['required'],
|
||||
'ticket_text_color' => ['required'],
|
||||
'ticket_border_color' => ['required'],
|
||||
'ticket_bg_color' => ['required'],
|
||||
'ticket_text_color' => ['required'],
|
||||
'ticket_sub_text_color' => ['required'],
|
||||
];
|
||||
$messages = [
|
||||
|
|
@ -144,7 +143,6 @@ class EventCustomizeController extends MyBaseController
|
|||
]);
|
||||
}
|
||||
|
||||
//$event->barcode_type = $request->get('barcode_type');
|
||||
$event->ticket_border_color = $request->get('ticket_border_color');
|
||||
$event->ticket_bg_color = $request->get('ticket_bg_color');
|
||||
$event->ticket_text_color = $request->get('ticket_text_color');
|
||||
|
|
@ -171,12 +169,12 @@ class EventCustomizeController extends MyBaseController
|
|||
|
||||
$rules = [
|
||||
'organiser_fee_percentage' => ['numeric', 'between:0,100'],
|
||||
'organiser_fee_fixed' => ['numeric', 'between:0,100'],
|
||||
'organiser_fee_fixed' => ['numeric', 'between:0,100'],
|
||||
];
|
||||
$messages = [
|
||||
'organiser_fee_percentage.numeric' => 'Please enter a value between 0 and 100',
|
||||
'organiser_fee_fixed.numeric' => 'Please check the format. It should be in the format 0.00.',
|
||||
'organiser_fee_fixed.between' => 'Please enter a value between 0 and 100.',
|
||||
'organiser_fee_fixed.numeric' => 'Please check the format. It should be in the format 0.00.',
|
||||
'organiser_fee_fixed.between' => 'Please enter a value between 0 and 100.',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
|
@ -222,7 +220,7 @@ class EventCustomizeController extends MyBaseController
|
|||
]);
|
||||
}
|
||||
|
||||
$event->pre_order_display_message = trim($request->get('pre_order_display_message'));
|
||||
$event->pre_order_display_message = trim($request->get('pre_order_display_message'));
|
||||
$event->post_order_display_message = trim($request->get('post_order_display_message'));
|
||||
$event->save();
|
||||
|
||||
|
|
@ -248,7 +246,7 @@ class EventCustomizeController extends MyBaseController
|
|||
];
|
||||
$messages = [
|
||||
'bg_image_path.mimes' => 'Please ensure you are uploading an image (JPG, PNG, JPEG)',
|
||||
'bg_image_path.max' => 'Please ensure the image is not larger than 2.5MB',
|
||||
'bg_image_path.max' => 'Please ensure the image is not larger than 2.5MB',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
|
|
|||
|
|
@ -37,17 +37,15 @@ class EventDashboardController extends MyBaseController
|
|||
|
||||
$startDate = new DateTime("-$num_days days");
|
||||
$dateItter = new DatePeriod(
|
||||
$startDate, new DateInterval('P1D'), $num_days
|
||||
$startDate, new DateInterval('P1D'), $num_days
|
||||
);
|
||||
|
||||
$original = $chartData;
|
||||
|
||||
/*
|
||||
* I have no idea what I was doing here, but it seems to work;
|
||||
* Iterate through each possible date, if no stats exist for this date set default values
|
||||
* Otherwise, if a date does exist use these values
|
||||
*/
|
||||
$result = [];
|
||||
$tickets_data = [];
|
||||
$i = 0;
|
||||
foreach ($dateItter as $date) {
|
||||
$views = 0;
|
||||
$sales_volume = 0;
|
||||
|
|
@ -55,15 +53,16 @@ class EventDashboardController extends MyBaseController
|
|||
$tickets_sold = 0;
|
||||
$organiser_fees_volume = 0;
|
||||
|
||||
foreach ($original as $item) {
|
||||
foreach ($chartData as $item) {
|
||||
if ($item['date'] == $date->format('Y-m-d')) {
|
||||
$views = $item['views'];
|
||||
$sales_volume = $item['sales_volume'];
|
||||
$views = $item['views'];
|
||||
$sales_volume = $item['sales_volume'];
|
||||
$organiser_fees_volume = $item['organiser_fees_volume'];
|
||||
$unique_views = $item['unique_views'];
|
||||
$tickets_sold = $item['tickets_sold'];
|
||||
$unique_views = $item['unique_views'];
|
||||
$tickets_sold = $item['tickets_sold'];
|
||||
|
||||
break;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
|
||||
$result[] = [
|
||||
|
|
@ -78,7 +77,7 @@ class EventDashboardController extends MyBaseController
|
|||
foreach($event->tickets as $ticket) {
|
||||
$tickets_data[] = [
|
||||
'value' => $ticket->quantity_sold,
|
||||
'label' => $ticket->title,
|
||||
'label' => $ticket->title,
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -90,5 +89,4 @@ class EventDashboardController extends MyBaseController
|
|||
|
||||
return view('ManageEvent.Dashboard', $data);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,13 +29,12 @@ class EventOrdersController extends MyBaseController
|
|||
$allowed_sorts = ['first_name', 'email', 'order_reference', 'order_status_id', 'created_at'];
|
||||
|
||||
$searchQuery = $request->get('q');
|
||||
$sort_by = (in_array($request->get('sort_by'), $allowed_sorts) ? $request->get('sort_by') : 'created_at');
|
||||
$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');
|
||||
$sort_order = $request->get('sort_order') == 'asc' ? 'asc' : 'desc';
|
||||
|
||||
$event = Event::scope()->find($event_id);
|
||||
|
||||
if ($searchQuery) {
|
||||
|
||||
/*
|
||||
* Strip the hash from the start of the search term in case people search for
|
||||
* order references like '#EDGC67'
|
||||
|
|
@ -78,7 +77,7 @@ class EventOrdersController extends MyBaseController
|
|||
public function manageOrder(Request $request, $order_id)
|
||||
{
|
||||
$data = [
|
||||
'order' => Order::scope()->find($order_id),
|
||||
'order' => Order::scope()->find($order_id),
|
||||
];
|
||||
|
||||
return view('ManageEvent.Modals.ManageOrder', $data);
|
||||
|
|
@ -131,10 +130,11 @@ class EventOrdersController extends MyBaseController
|
|||
}
|
||||
|
||||
$order = Order::scope()->findOrFail($order_id);
|
||||
$refund_order = ($request->get('refund_order') === 'on') ? true : false;
|
||||
$refund_type = $request->get('refund_type');
|
||||
|
||||
$refund_order = ($request->get('refund_order') === 'on') ? true : false;
|
||||
$refund_type = $request->get('refund_type');
|
||||
$refund_amount = round(floatval($request->get('refund_amount')), 2);
|
||||
$attendees = $request->get('attendees');
|
||||
$attendees = $request->get('attendees');
|
||||
$error_message = false;
|
||||
|
||||
if ($refund_order && $order->payment_gateway->can_refund) {
|
||||
|
|
@ -257,6 +257,7 @@ class EventOrdersController extends MyBaseController
|
|||
|
||||
$sheet->fromArray($data);
|
||||
|
||||
// Add headings to first row
|
||||
$sheet->row(1, [
|
||||
'First Name', 'Last Name', 'Email', 'Order Reference', 'Amount', 'Fully Refunded', 'Partially Refunded', 'Amount Refunded', 'Order Date',
|
||||
]);
|
||||
|
|
@ -328,7 +329,7 @@ class EventOrdersController extends MyBaseController
|
|||
->subject($data['subject']);
|
||||
});
|
||||
|
||||
/* Could bcc in the above? */
|
||||
/* Send a copy to the Organiser with a different subject */
|
||||
if ($request->get('send_copy') == '1') {
|
||||
Mail::send('Emails.messageOrder', $data, function ($message) use ($order, $data) {
|
||||
$message->to($order->event->organiser->email)
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ class EventQrcodeCheckInController extends Controller
|
|||
'tickets.title as ticket',
|
||||
])->first();
|
||||
|
||||
if(is_null($attendee)){
|
||||
if (is_null($attendee)){
|
||||
return response()->json(['status' => 'error', 'message' => "Invalid Ticket! Please try again."]);
|
||||
}
|
||||
|
||||
|
|
@ -69,27 +69,26 @@ class EventQrcodeCheckInController extends Controller
|
|||
'has_arrived' => false
|
||||
])->count();
|
||||
|
||||
if($relatedAttendesCount >= 1){
|
||||
$appendedText = '';
|
||||
if ($relatedAttendesCount >= 1){
|
||||
$confirmOrderTicketsRoute = route('confirmCheckInOrderTickets', [$event->id, $attendee->order_id]);
|
||||
|
||||
$appendedText = '<br><br><form class="ajax" action="'. $confirmOrderTicketsRoute .'" method="POST">'. csrf_field() .'<button class="btn btn-primary btn-sm" type="submit"><i class="ico-ticket"></i> Check in all tickets associated to this order</button></form>';
|
||||
} else {
|
||||
$appendedText = '';
|
||||
}
|
||||
|
||||
if ($attendee->has_arrived) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => 'Warning: This attendee has already been checked in at '. $attendee->arrival_time->format('H:i A, F j'). '.' . $appendedText
|
||||
'status' => 'error',
|
||||
'message' => 'Warning: This attendee has already been checked in at '. $attendee->arrival_time->format('H:i A, F j'). '.' . $appendedText
|
||||
]);
|
||||
}
|
||||
|
||||
Attendee::find($attendee->id)->update(['has_arrived' => true, 'arrival_time' => Carbon::now()]);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Success !<br>Name: ' . $attendee->first_name . ' ' . $attendee->last_name . '<br>Reference: '. $attendee->reference . '<br>Ticket: '. $attendee->ticket . '.' . $appendedText
|
||||
]);
|
||||
'status' => 'success',
|
||||
'message' => 'Success !<br>Name: ' . $attendee->first_name . ' ' . $attendee->last_name . '<br>Reference: '. $attendee->reference . '<br>Ticket: '. $attendee->ticket . '.' . $appendedText
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -102,16 +101,15 @@ class EventQrcodeCheckInController extends Controller
|
|||
public function confirmOrderTickets($event_id, $order_id)
|
||||
{
|
||||
$updateRowsCount = Attendee::scope()->where([
|
||||
'event_id' => $event_id,
|
||||
'order_id' => $order_id,
|
||||
'event_id' => $event_id,
|
||||
'order_id' => $order_id,
|
||||
'has_arrived' => false,
|
||||
'arrival_time' => Carbon::now(),
|
||||
])
|
||||
->update(['has_arrived' => true, 'arrival_time' => Carbon::now()]);
|
||||
|
||||
return response()->json([
|
||||
|
||||
'message' => $updateRowsCount . ' Attendee(s) Checked in.'
|
||||
'message' => $updateRowsCount . ' Attendee(s) Checked in.'
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ use Excel;
|
|||
|
||||
class EventSurveyController extends MyBaseController
|
||||
{
|
||||
|
||||
/**
|
||||
* Show the event survey page
|
||||
*
|
||||
|
|
@ -28,7 +27,6 @@ class EventSurveyController extends MyBaseController
|
|||
*/
|
||||
public function showEventSurveys(Request $request, $event_id)
|
||||
{
|
||||
|
||||
$event = Event::scope()->findOrFail($event_id);
|
||||
|
||||
JavaScript::put([
|
||||
|
|
@ -70,7 +68,6 @@ class EventSurveyController extends MyBaseController
|
|||
*/
|
||||
public function postCreateEventQuestion(StoreEventQuestionRequest $request, $event_id)
|
||||
{
|
||||
|
||||
// Get the event or display a 'not found' warning.
|
||||
$event = Event::findOrFail($event_id);
|
||||
|
||||
|
|
@ -324,7 +321,7 @@ class EventSurveyController extends MyBaseController
|
|||
return response()->json([
|
||||
'status' => 'error',
|
||||
'id' => $question->id,
|
||||
'message' => 'Whoops!, looks like something went wrong. Please try again.',
|
||||
'message' => 'Whoops! Looks like something went wrong. Please try again.',
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -337,7 +334,6 @@ class EventSurveyController extends MyBaseController
|
|||
*/
|
||||
public function postUpdateQuestionsOrder(Request $request)
|
||||
{
|
||||
|
||||
$question_ids = $request->get('question_ids');
|
||||
$sort = 1;
|
||||
|
||||
|
|
@ -352,7 +348,5 @@ class EventSurveyController extends MyBaseController
|
|||
'status' => 'success',
|
||||
'message' => 'Question Order Successfully Updated',
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,13 +31,15 @@ class EventTicketsController extends MyBaseController
|
|||
// Getting get parameters.
|
||||
$q = $request->get('q', '');
|
||||
$sort_by = $request->get('sort_by');
|
||||
if (isset($allowed_sorts[$sort_by]) === false)
|
||||
if (isset($allowed_sorts[$sort_by]) === false) {
|
||||
$sort_by = 'title';
|
||||
}
|
||||
|
||||
// Find event or return 404 error.
|
||||
$event = Event::scope()->find($event_id);
|
||||
if ($event === null)
|
||||
if ($event === null) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
// Get tickets for event.
|
||||
$tickets = empty($q) === false
|
||||
|
|
@ -58,8 +60,8 @@ class EventTicketsController extends MyBaseController
|
|||
public function showEditTicket($event_id, $ticket_id)
|
||||
{
|
||||
$data = [
|
||||
'event' => Event::scope()->find($event_id),
|
||||
'ticket' => Ticket::scope()->find($ticket_id),
|
||||
'event' => Event::scope()->find($event_id),
|
||||
'ticket' => Ticket::scope()->find($ticket_id),
|
||||
];
|
||||
|
||||
return view('ManageEvent.Modals.EditTicket', $data);
|
||||
|
|
@ -74,7 +76,7 @@ class EventTicketsController extends MyBaseController
|
|||
public function showCreateTicket($event_id)
|
||||
{
|
||||
return view('ManageEvent.Modals.CreateTicket', [
|
||||
'event' => Event::scope()->find($event_id),
|
||||
'event' => Event::scope()->find($event_id),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -90,31 +92,32 @@ class EventTicketsController extends MyBaseController
|
|||
|
||||
if (!$ticket->validate($request->all())) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'messages' => $ticket->errors(),
|
||||
'status' => 'error',
|
||||
'messages' => $ticket->errors(),
|
||||
]);
|
||||
}
|
||||
|
||||
$ticket->event_id = $event_id;
|
||||
$ticket->title = $request->get('title');
|
||||
$ticket->event_id = $event_id;
|
||||
$ticket->title = $request->get('title');
|
||||
$ticket->quantity_available = !$request->get('quantity_available') ? null : $request->get('quantity_available');
|
||||
$ticket->start_sale_date = $request->get('start_sale_date') ? Carbon::createFromFormat('d-m-Y H:i', $request->get('start_sale_date')) : null;
|
||||
$ticket->end_sale_date = $request->get('end_sale_date') ? Carbon::createFromFormat('d-m-Y H:i', $request->get('end_sale_date')) : null;
|
||||
$ticket->price = $request->get('price');
|
||||
$ticket->min_per_person = $request->get('min_per_person');
|
||||
$ticket->max_per_person = $request->get('max_per_person');
|
||||
$ticket->description = $request->get('description');
|
||||
$ticket->start_sale_date = $request->get('start_sale_date') ? Carbon::createFromFormat('d-m-Y H:i', $request->get('start_sale_date')) : null;
|
||||
$ticket->end_sale_date = $request->get('end_sale_date') ? Carbon::createFromFormat('d-m-Y H:i', $request->get('end_sale_date')) : null;
|
||||
$ticket->price = $request->get('price');
|
||||
$ticket->min_per_person = $request->get('min_per_person');
|
||||
$ticket->max_per_person = $request->get('max_per_person');
|
||||
$ticket->description = $request->get('description');
|
||||
|
||||
$ticket->save();
|
||||
|
||||
session()->flash('message', 'Successfully Created Ticket');
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'id' => $ticket->id,
|
||||
'message' => 'Refreshing...',
|
||||
'redirectUrl' => route('showEventTickets', [
|
||||
'event_id' => $event_id,
|
||||
]),
|
||||
'status' => 'success',
|
||||
'id' => $ticket->id,
|
||||
'message' => 'Refreshing...',
|
||||
'redirectUrl' => route('showEventTickets', [
|
||||
'event_id' => $event_id,
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -134,9 +137,9 @@ class EventTicketsController extends MyBaseController
|
|||
|
||||
if ($ticket->save()) {
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Ticket Successfully Updated',
|
||||
'id' => $ticket->id,
|
||||
'status' => 'success',
|
||||
'message' => 'Ticket Successfully Updated',
|
||||
'id' => $ticket->id,
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -145,9 +148,9 @@ class EventTicketsController extends MyBaseController
|
|||
]);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'id' => $ticket->id,
|
||||
'message' => 'Whoops!, looks like something went wrong. Please try again.',
|
||||
'status' => 'error',
|
||||
'id' => $ticket->id,
|
||||
'message' => 'Whoops! Looks like something went wrong. Please try again.',
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -168,17 +171,17 @@ class EventTicketsController extends MyBaseController
|
|||
*/
|
||||
if ($ticket->quantity_sold > 0) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => 'Sorry, you can\'t delete this ticket as some have already been sold',
|
||||
'id' => $ticket->id,
|
||||
'status' => 'error',
|
||||
'message' => 'Sorry, you can\'t delete this ticket as some have already been sold',
|
||||
'id' => $ticket->id,
|
||||
]);
|
||||
}
|
||||
|
||||
if ($ticket->delete()) {
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Ticket Successfully Deleted',
|
||||
'id' => $ticket->id,
|
||||
'status' => 'success',
|
||||
'message' => 'Ticket Successfully Deleted',
|
||||
'id' => $ticket->id,
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -187,9 +190,9 @@ class EventTicketsController extends MyBaseController
|
|||
]);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'id' => $ticket->id,
|
||||
'message' => 'Whoops!, looks like something went wrong. Please try again.',
|
||||
'status' => 'error',
|
||||
'id' => $ticket->id,
|
||||
'message' => 'Whoops! Looks like something went wrong. Please try again.',
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -216,29 +219,29 @@ class EventTicketsController extends MyBaseController
|
|||
|
||||
if (!$ticket->validate($request->all())) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'messages' => $ticket->errors(),
|
||||
'status' => 'error',
|
||||
'messages' => $ticket->errors(),
|
||||
]);
|
||||
}
|
||||
|
||||
$ticket->title = $request->get('title');
|
||||
$ticket->title = $request->get('title');
|
||||
$ticket->quantity_available = !$request->get('quantity_available') ? null : $request->get('quantity_available');
|
||||
$ticket->price = $request->get('price');
|
||||
$ticket->start_sale_date = $request->get('start_sale_date') ? Carbon::createFromFormat('d-m-Y H:i', $request->get('start_sale_date')) : null;
|
||||
$ticket->end_sale_date = $request->get('end_sale_date') ? Carbon::createFromFormat('d-m-Y H:i', $request->get('end_sale_date')) : null;
|
||||
$ticket->description = $request->get('description');
|
||||
$ticket->min_per_person = $request->get('min_per_person');
|
||||
$ticket->max_per_person = $request->get('max_per_person');
|
||||
$ticket->price = $request->get('price');
|
||||
$ticket->start_sale_date = $request->get('start_sale_date') ? Carbon::createFromFormat('d-m-Y H:i', $request->get('start_sale_date')) : null;
|
||||
$ticket->end_sale_date = $request->get('end_sale_date') ? Carbon::createFromFormat('d-m-Y H:i', $request->get('end_sale_date')) : null;
|
||||
$ticket->description = $request->get('description');
|
||||
$ticket->min_per_person = $request->get('min_per_person');
|
||||
$ticket->max_per_person = $request->get('max_per_person');
|
||||
|
||||
$ticket->save();
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'id' => $ticket->id,
|
||||
'message' => 'Refreshing...',
|
||||
'redirectUrl' => route('showEventTickets', [
|
||||
'event_id' => $event_id,
|
||||
]),
|
||||
'status' => 'success',
|
||||
'id' => $ticket->id,
|
||||
'message' => 'Refreshing...',
|
||||
'redirectUrl' => route('showEventTickets', [
|
||||
'event_id' => $event_id,
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ use Validator;
|
|||
|
||||
class EventViewController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* Show the homepage for an event
|
||||
*
|
||||
|
|
|
|||
|
|
@ -70,10 +70,12 @@ class ManageAccountController extends MyBaseController
|
|||
}
|
||||
|
||||
$account = Account::find(\Auth::user()->account_id);
|
||||
$account->stripe_access_token = $content->access_token;
|
||||
$account->stripe_refresh_token = $content->refresh_token;
|
||||
|
||||
$account->stripe_access_token = $content->access_token;
|
||||
$account->stripe_refresh_token = $content->refresh_token;
|
||||
$account->stripe_publishable_key = $content->stripe_publishable_key;
|
||||
$account->stripe_data_raw = json_encode($content);
|
||||
$account->stripe_data_raw = json_encode($content);
|
||||
|
||||
$account->save();
|
||||
|
||||
\Session::flash('message', 'You have successfully connected your Stripe account.');
|
||||
|
|
@ -98,9 +100,9 @@ class ManageAccountController extends MyBaseController
|
|||
]);
|
||||
}
|
||||
|
||||
$account->first_name = Input::get('first_name');
|
||||
$account->last_name = Input::get('last_name');
|
||||
$account->email = Input::get('email');
|
||||
$account->first_name = Input::get('first_name');
|
||||
$account->last_name = Input::get('last_name');
|
||||
$account->email = Input::get('email');
|
||||
$account->timezone_id = Input::get('timezone_id');
|
||||
$account->currency_id = Input::get('currency_id');
|
||||
$account->save();
|
||||
|
|
@ -167,9 +169,9 @@ class ManageAccountController extends MyBaseController
|
|||
];
|
||||
|
||||
$messages = [
|
||||
'email.email' => 'Please enter a valid E-mail address.',
|
||||
'email.email' => 'Please enter a valid E-mail address.',
|
||||
'email.required' => 'E-mail address is required.',
|
||||
'email.unique' => 'E-mail already in use for this account.',
|
||||
'email.unique' => 'E-mail already in use for this account.',
|
||||
];
|
||||
|
||||
$validation = Validator::make(Input::all(), $rules, $messages);
|
||||
|
|
@ -184,9 +186,11 @@ class ManageAccountController extends MyBaseController
|
|||
$temp_password = str_random(8);
|
||||
|
||||
$user = new User();
|
||||
$user->email = Input::get('email');
|
||||
$user->password = Hash::make($temp_password);
|
||||
|
||||
$user->email = Input::get('email');
|
||||
$user->password = Hash::make($temp_password);
|
||||
$user->account_id = Auth::user()->account_id;
|
||||
|
||||
$user->save();
|
||||
|
||||
$data = [
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ use View;
|
|||
|
||||
class MyBaseController extends Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
/*
|
||||
|
|
@ -25,11 +24,11 @@ class MyBaseController extends Controller
|
|||
'is_confirmed' => Auth::user()->is_confirmed,
|
||||
],
|
||||
/*
|
||||
* @todo These should be user selectable
|
||||
* @todo These should be user selectable
|
||||
*/
|
||||
'DateFormat' =>'dd-MM-yyyy',
|
||||
'DateFormat' => 'dd-MM-yyyy',
|
||||
'DateTimeFormat' => 'dd-MM-yyyy hh:mm',
|
||||
'GenericErrorMessage' => 'Whoops!, An unknown error has occurred. Please try again or contact support if the problem persists.'
|
||||
'GenericErrorMessage' => 'Whoops! An unknown error has occurred. Please try again or contact support if the problem persists.'
|
||||
]);
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ class OrganiserController extends MyBaseController
|
|||
return view('ManageOrganiser.SelectOrganiser');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show the create organiser page
|
||||
*
|
||||
|
|
@ -41,16 +40,16 @@ class OrganiserController extends MyBaseController
|
|||
|
||||
if (!$organiser->validate($request->all())) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'messages' => $organiser->errors(),
|
||||
'status' => 'error',
|
||||
'messages' => $organiser->errors(),
|
||||
]);
|
||||
}
|
||||
|
||||
$organiser->name = $request->get('name');
|
||||
$organiser->about = $request->get('about');
|
||||
$organiser->email = $request->get('email');
|
||||
$organiser->facebook = $request->get('facebook');
|
||||
$organiser->twitter = $request->get('twitter');
|
||||
$organiser->name = $request->get('name');
|
||||
$organiser->about = $request->get('about');
|
||||
$organiser->email = $request->get('email');
|
||||
$organiser->facebook = $request->get('facebook');
|
||||
$organiser->twitter = $request->get('twitter');
|
||||
$organiser->confirmation_key = str_random(15);
|
||||
|
||||
if ($request->hasFile('organiser_logo')) {
|
||||
|
|
@ -73,16 +72,17 @@ class OrganiserController extends MyBaseController
|
|||
$organiser->logo_path = config('attendize.organiser_images_path').'/'.$filename;
|
||||
}
|
||||
}
|
||||
|
||||
$organiser->save();
|
||||
|
||||
session()->flash('message', 'Successfully Created Organiser');
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Refreshing..',
|
||||
'redirectUrl' => route('showOrganiserDashboard', [
|
||||
'organiser_id' => $organiser->id,
|
||||
]),
|
||||
'status' => 'success',
|
||||
'message' => 'Refreshing..',
|
||||
'redirectUrl' => route('showOrganiserDashboard', [
|
||||
'organiser_id' => $organiser->id,
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,12 +43,12 @@ class OrganiserCustomizeController extends MyBaseController
|
|||
]);
|
||||
}
|
||||
|
||||
$organiser->name = $request->get('name');
|
||||
$organiser->about = $request->get('about');
|
||||
$organiser->email = $request->get('email');
|
||||
$organiser->name = $request->get('name');
|
||||
$organiser->about = $request->get('about');
|
||||
$organiser->email = $request->get('email');
|
||||
$organiser->enable_organiser_page = $request->get('enable_organiser_page');
|
||||
$organiser->facebook = $request->get('facebook');
|
||||
$organiser->twitter = $request->get('twitter');
|
||||
$organiser->facebook = $request->get('facebook');
|
||||
$organiser->twitter = $request->get('twitter');
|
||||
|
||||
if ($request->get('remove_current_image') == '1') {
|
||||
$organiser->logo_path = '';
|
||||
|
|
@ -97,13 +97,13 @@ class OrganiserCustomizeController extends MyBaseController
|
|||
$event = Organiser::scope()->findOrFail($organiser_id);
|
||||
|
||||
$rules = [
|
||||
'page_bg_color' => ['required'],
|
||||
'page_bg_color' => ['required'],
|
||||
'page_header_bg_color' => ['required'],
|
||||
'page_text_color' => ['required'],
|
||||
'page_text_color' => ['required'],
|
||||
];
|
||||
$messages = [
|
||||
'page_header_bg_color.required' => 'Please enter a header background color.',
|
||||
'page_bg_color.required' => 'Please enter a background color.',
|
||||
'page_bg_color.required' => 'Please enter a background color.',
|
||||
];
|
||||
|
||||
$validator = Validator::make($request->all(), $rules, $messages);
|
||||
|
|
@ -115,14 +115,14 @@ class OrganiserCustomizeController extends MyBaseController
|
|||
]);
|
||||
}
|
||||
|
||||
$event->page_bg_color = $request->get('page_bg_color');
|
||||
$event->page_bg_color = $request->get('page_bg_color');
|
||||
$event->page_header_bg_color = $request->get('page_header_bg_color');
|
||||
$event->page_text_color = $request->get('page_text_color');
|
||||
$event->page_text_color = $request->get('page_text_color');
|
||||
|
||||
$event->save();
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'status' => 'success',
|
||||
'message' => 'Organiser Design Successfully Updated',
|
||||
]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ class OrganiserDashboardController extends MyBaseController
|
|||
$calendar_events = [];
|
||||
|
||||
/* Prepare JSON array for events for use in the dashboard calendar */
|
||||
foreach($organiser->events as $event) {
|
||||
$calendar_events[] =[
|
||||
foreach ($organiser->events as $event) {
|
||||
$calendar_events[] = [
|
||||
'title' => $event->title,
|
||||
'start' => $event->start_date->toIso8601String(),
|
||||
'end' => $event->end_date->toIso8601String(),
|
||||
|
|
|
|||
|
|
@ -41,6 +41,4 @@ class OrganiserEventsController extends MyBaseController
|
|||
|
||||
return view('ManageOrganiser.Events', $data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,11 +42,11 @@ class OrganiserViewController extends Controller
|
|||
$past_events = $organiser->events()->where('end_date', '<', Carbon::now())->limit(10)->get();
|
||||
|
||||
$data = [
|
||||
'organiser' => $organiser,
|
||||
'tickets' => $organiser->events()->orderBy('created_at', 'desc')->get(),
|
||||
'is_embedded' => 0,
|
||||
'upcoming_events' => $upcoming_events,
|
||||
'past_events' => $past_events,
|
||||
'organiser' => $organiser,
|
||||
'tickets' => $organiser->events()->orderBy('created_at', 'desc')->get(),
|
||||
'is_embedded' => 0,
|
||||
'upcoming_events' => $upcoming_events,
|
||||
'past_events' => $past_events,
|
||||
];
|
||||
|
||||
return view('Public.ViewOrganiser.OrganiserPage', $data);
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ class RemindersController extends Controller
|
|||
]);
|
||||
|
||||
$credentials = $request->only(
|
||||
'email', 'password', 'password_confirmation', 'token'
|
||||
'email', 'password', 'password_confirmation', 'token'
|
||||
);
|
||||
|
||||
$response = $this->passwords->reset($credentials, function ($user, $password) {
|
||||
|
|
@ -121,8 +121,8 @@ class RemindersController extends Controller
|
|||
|
||||
default:
|
||||
return redirect()->back()
|
||||
->withInput($request->only('email'))
|
||||
->withErrors(['email' => trans($response)]);
|
||||
->withInput($request->only('email'))
|
||||
->withErrors(['email' => trans($response)]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ class UserController extends Controller
|
|||
public function showEditUser()
|
||||
{
|
||||
$data = [
|
||||
'user' => Auth::user(),
|
||||
'user' => Auth::user(),
|
||||
];
|
||||
|
||||
return view('ManageUser.Modals.EditUser', $data);
|
||||
|
|
@ -52,8 +52,8 @@ class UserController extends Controller
|
|||
|
||||
if ($validation->fails()) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'messages' => $validation->messages()->toArray(),
|
||||
'status' => 'error',
|
||||
'messages' => $validation->messages()->toArray(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -64,13 +64,13 @@ class UserController extends Controller
|
|||
}
|
||||
|
||||
$user->first_name = $request->get('first_name');
|
||||
$user->last_name = $request->get('last_name');
|
||||
$user->last_name = $request->get('last_name');
|
||||
|
||||
$user->save();
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Successfully Edited User',
|
||||
'status' => 'success',
|
||||
'message' => 'Successfully Edited User',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ class UserLoginController extends Controller
|
|||
*/
|
||||
if ($request->ajax()) {
|
||||
return Response::json([
|
||||
'status' => 'success',
|
||||
'redirectUrl' => route('login'),
|
||||
'status' => 'success',
|
||||
'redirectUrl' => route('login'),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ class UserLogoutController extends Controller
|
|||
}
|
||||
|
||||
/**
|
||||
* Log a use out and redirect them
|
||||
* Log a user out and redirect them
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -95,8 +95,6 @@ class UserSignupController extends Controller
|
|||
|
||||
session()->flash('message', 'Success! Your email is now verified. You can now login.');
|
||||
|
||||
//$this->auth->login($user);
|
||||
|
||||
return redirect()->route('login');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ class Kernel extends HttpKernel
|
|||
*/
|
||||
protected $middlewareGroups = [
|
||||
'web' => [
|
||||
\App\Http\Middleware\EncryptCookies::class,
|
||||
\Illuminate\Cookie\Middleware\EncryptCookies::class,
|
||||
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
|
||||
\Illuminate\Session\Middleware\StartSession::class,
|
||||
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -36,5 +36,9 @@ return [
|
|||
|
||||
'twitter' => [
|
||||
'widget_id' => env('TWITTER_WIDGET_ID'),
|
||||
],
|
||||
|
||||
'sparkpost' => [
|
||||
'secret' => env('SPARKPOST_SECRET')
|
||||
]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddIsRefundedColumnToAttendees extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('attendees', function($t)
|
||||
{
|
||||
$t->boolean('is_refunded')->default(0);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('attendees', function($t)
|
||||
{
|
||||
$t->dropColumn('is_refunded');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
@extends('Emails.Layouts.Master')
|
||||
|
||||
@section('message_content')
|
||||
|
||||
<p>Hi there,</p>
|
||||
<p>
|
||||
You have received a refund on behalf of your cancelled ticket for <b>{{{$attendee->event->title}}}</b>.
|
||||
<b>{{{ $refund_amount }}} has been refunded to the original payee, you should see the payment in a few days.</b>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You can contact <b>{{{ $attendee->event->organiser->name }}}</b> directly at <a href='mailto:{{{$attendee->event->organiser->email}}}'>{{{$attendee->event->organiser->email}}}</a> or by replying to this email should you require any more information.
|
||||
</p>
|
||||
@stop
|
||||
|
||||
@section('footer')
|
||||
|
||||
@stop
|
||||
|
|
@ -24,6 +24,14 @@
|
|||
<label for="notify_attendee"> Notify <b>{{$attendee->full_name}}</b> their ticket has been cancelled.</label>
|
||||
</div>
|
||||
</div>
|
||||
@if(config('attendize.default_payment_gateway') == config('attendize.payment_gateway_stripe'))
|
||||
<div class="form-group">
|
||||
<div class="checkbox custom-checkbox">
|
||||
<input type="checkbox" name="refund_attendee" id="refund_attendee" value="1">
|
||||
<label for="refund_attendee"> Refund <b>{{$attendee->full_name}}</b> for their ticket.</label>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div> <!-- /end modal body-->
|
||||
<div class="modal-footer">
|
||||
{!! Form::hidden('attendee_id', $attendee->id) !!}
|
||||
|
|
|
|||
|
|
@ -157,6 +157,11 @@
|
|||
Cancelled
|
||||
</span>
|
||||
@endif
|
||||
@if($attendee->is_refunded)
|
||||
<span class="label label-danger">
|
||||
Refunded
|
||||
</span>
|
||||
@endif
|
||||
{{$attendee->first_name}}
|
||||
{{$attendee->last_name}}
|
||||
</td>
|
||||
|
|
|
|||
Loading…
Reference in New Issue