Merge remote-tracking branch 'origin/master'

# Conflicts:
#	app/Http/Controllers/EventCheckoutController.php
This commit is contained in:
Dave Earley 2016-06-15 11:23:32 +01:00
commit 39fb757926
28 changed files with 657 additions and 390 deletions

View File

@ -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([

View File

@ -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' => '',
]);
}

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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)

View File

@ -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.'
]);
}
}

View File

@ -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',
]);
}
}

View File

@ -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,
]),
]);
}
}

View File

@ -13,7 +13,6 @@ use Validator;
class EventViewController extends Controller
{
/**
* Show the homepage for an event
*

View File

@ -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 = [

View File

@ -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.'
]);
/*

View File

@ -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,
]),
]);
}
}

View File

@ -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',
]);
}

View File

@ -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(),

View File

@ -41,6 +41,4 @@ class OrganiserEventsController extends MyBaseController
return view('ManageOrganiser.Events', $data);
}
}

View File

@ -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);

View File

@ -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)]);
}
}
}

View File

@ -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',
]);
}
}

View File

@ -34,8 +34,8 @@ class UserLoginController extends Controller
*/
if ($request->ajax()) {
return Response::json([
'status' => 'success',
'redirectUrl' => route('login'),
'status' => 'success',
'redirectUrl' => route('login'),
]);
}

View File

@ -14,7 +14,7 @@ class UserLogoutController extends Controller
}
/**
* Log a use out and redirect them
* Log a user out and redirect them
*
* @return mixed
*/

View File

@ -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');
}
}

View File

@ -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,

552
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -36,5 +36,9 @@ return [
'twitter' => [
'widget_id' => env('TWITTER_WIDGET_ID'),
],
'sparkpost' => [
'secret' => env('SPARKPOST_SECRET')
]
];

View File

@ -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');
});
}
}

View File

@ -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

View File

@ -24,6 +24,14 @@
<label for="notify_attendee">&nbsp;&nbsp;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">&nbsp;&nbsp;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) !!}

View File

@ -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>