Allow configurable date formats
This commit is contained in:
parent
181ed66405
commit
7d1c1a1e6a
|
|
@ -101,10 +101,8 @@ class EventTicketsController extends MyBaseController
|
|||
$ticket->event_id = $event_id;
|
||||
$ticket->title = strip_tags($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->start_sale_date = $request->get('start_sale_date');
|
||||
$ticket->end_sale_date = $request->get('end_sale_date');
|
||||
$ticket->price = $request->get('price');
|
||||
$ticket->min_per_person = $request->get('min_per_person');
|
||||
$ticket->max_per_person = $request->get('max_per_person');
|
||||
|
|
@ -234,10 +232,8 @@ class EventTicketsController extends MyBaseController
|
|||
$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->start_sale_date = $request->get('start_sale_date');
|
||||
$ticket->end_sale_date = $request->get('end_sale_date');
|
||||
$ticket->description = $request->get('description');
|
||||
$ticket->min_per_person = $request->get('min_per_person');
|
||||
$ticket->max_per_person = $request->get('max_per_person');
|
||||
|
|
|
|||
|
|
@ -27,11 +27,7 @@ class MyBaseController extends Controller
|
|||
'email' => Auth::user()->email,
|
||||
'is_confirmed' => Auth::user()->is_confirmed,
|
||||
],
|
||||
/*
|
||||
* @todo These should be user selectable
|
||||
*/
|
||||
'DateFormat' => 'dd-MM-yyyy',
|
||||
'DateTimeFormat' => 'dd-MM-yyyy hh:mm',
|
||||
'DateTimeFormat' => config('attendize.default_date_picker_format'),
|
||||
'GenericErrorMessage' => trans("Controllers.whoops"),
|
||||
]);
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@ class Event extends MyBaseModel
|
|||
'description' => ['required'],
|
||||
'location_venue_name' => ['required_without:venue_name_full'],
|
||||
'venue_name_full' => ['required_without:location_venue_name'],
|
||||
'start_date' => ['required'],
|
||||
'end_date' => ['required'],
|
||||
'start_date' => ['required|date'],
|
||||
'end_date' => ['required|date'],
|
||||
'organiser_name' => ['required_without:organiser_id'],
|
||||
'event_image' => ['mimes:jpeg,jpg,png', 'max:3000'],
|
||||
];
|
||||
|
|
@ -203,6 +203,15 @@ class Event extends MyBaseModel
|
|||
$this->attributes['start_date'] = Carbon::parse($date);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format start date from user preferences
|
||||
* @return String Formatted date
|
||||
*/
|
||||
public function startDateFormatted()
|
||||
{
|
||||
return $this->start_date->format(config('attendize.default_datetime_format'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse end_date to a Carbon instance
|
||||
*
|
||||
|
|
@ -213,6 +222,15 @@ class Event extends MyBaseModel
|
|||
$this->attributes['end_date'] = Carbon::parse($date);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format end date from user preferences
|
||||
* @return String Formatted date
|
||||
*/
|
||||
public function endDateFormatted()
|
||||
{
|
||||
return $this->end_date->format(config('attendize.default_datetime_format'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether the event is currently happening.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -118,9 +118,13 @@ class MyBaseModel extends \Illuminate\Database\Eloquent\Model
|
|||
*
|
||||
* @return bool|null|string
|
||||
*/
|
||||
public function getFormattedDate($field, $format = 'd-m-Y H:i')
|
||||
public function getFormattedDate($field, $format = false)
|
||||
{
|
||||
return $this->$field === null ? null : date($format, strtotime($this->$field));
|
||||
if (!$format) {
|
||||
$format = config('attendize.default_datetime_format');
|
||||
}
|
||||
|
||||
return $this->$field === null ? null : $this->$field->format($format);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,12 +2,16 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Ticket extends MyBaseModel
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $dates = ['start_sale_date', 'end_sale_date'];
|
||||
|
||||
/**
|
||||
* The rules to validate the model.
|
||||
*
|
||||
|
|
@ -70,6 +74,34 @@ class Ticket extends MyBaseModel
|
|||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse start_sale_date to a Carbon instance
|
||||
*
|
||||
* @param string $date DateTime
|
||||
*/
|
||||
public function setStartSaleDateAttribute($date)
|
||||
{
|
||||
if (!$date) {
|
||||
$this->attributes['start_sale_date'] = Carbon::now();
|
||||
} else {
|
||||
$this->attributes['start_sale_date'] = Carbon::parse($date);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse end_sale_date to a Carbon instance
|
||||
*
|
||||
* @param string|null $date DateTime
|
||||
*/
|
||||
public function setEndSaleDateAttribute($date)
|
||||
{
|
||||
if (!$date) {
|
||||
$this->attributes['end_sale_date'] = null;
|
||||
} else {
|
||||
$this->attributes['end_sale_date'] = Carbon::parse($date);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope a query to only include tickets that are sold out.
|
||||
*
|
||||
|
|
@ -80,16 +112,6 @@ class Ticket extends MyBaseModel
|
|||
$query->where('remaining_tickets', '=', 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* The attributes that should be mutated to dates.
|
||||
*
|
||||
* @return array $dates
|
||||
*/
|
||||
public function getDates()
|
||||
{
|
||||
return ['created_at', 'updated_at', 'start_sale_date', 'end_sale_date'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the number of tickets remaining.
|
||||
*
|
||||
|
|
@ -111,9 +133,9 @@ class Ticket extends MyBaseModel
|
|||
*/
|
||||
public function getQuantityReservedAttribute()
|
||||
{
|
||||
$reserved_total = \DB::table('reserved_tickets')
|
||||
$reserved_total = DB::table('reserved_tickets')
|
||||
->where('ticket_id', $this->id)
|
||||
->where('expires', '>', \Carbon::now())
|
||||
->where('expires', '>', Carbon::now())
|
||||
->sum('quantity_reserved');
|
||||
|
||||
return $reserved_total;
|
||||
|
|
@ -146,8 +168,10 @@ class Ticket extends MyBaseModel
|
|||
*/
|
||||
public function getBookingFeeAttribute()
|
||||
{
|
||||
return (int)ceil($this->price) === 0 ? 0 : round(($this->price * (config('attendize.ticket_booking_fee_percentage') / 100)) + (config('attendize.ticket_booking_fee_fixed')),
|
||||
2);
|
||||
return (int)ceil($this->price) === 0 ? 0 : round(
|
||||
($this->price * (config('attendize.ticket_booking_fee_percentage') / 100)) + (config('attendize.ticket_booking_fee_fixed')),
|
||||
2
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -157,8 +181,10 @@ class Ticket extends MyBaseModel
|
|||
*/
|
||||
public function getOrganiserBookingFeeAttribute()
|
||||
{
|
||||
return (int)ceil($this->price) === 0 ? 0 : round(($this->price * ($this->event->organiser_fee_percentage / 100)) + ($this->event->organiser_fee_fixed),
|
||||
2);
|
||||
return (int)ceil($this->price) === 0 ? 0 : round(
|
||||
($this->price * ($this->event->organiser_fee_percentage / 100)) + ($this->event->organiser_fee_fixed),
|
||||
2
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -206,7 +232,7 @@ class Ticket extends MyBaseModel
|
|||
return config('attendize.ticket_status_sold_out');
|
||||
}
|
||||
|
||||
if ($this->event->start_date->lte(\Carbon::now())) {
|
||||
if ($this->event->start_date->lte(Carbon::now())) {
|
||||
return config('attendize.ticket_status_off_sale');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -61,9 +61,9 @@ return [
|
|||
|
||||
'default_timezone' => 30, #Europe/Dublin
|
||||
'default_currency' => 2, #Euro
|
||||
'default_date_format' => 'Y-m-d',
|
||||
'default_date_picker_format' => 'Y-m-d',
|
||||
'default_datetime_format' => 'Y-m-d, H:i',
|
||||
'default_date_picker_format' => env('DEFAULT_DATEPICKER_FORMAT', 'yyyy-MM-dd HH:mm'),
|
||||
'default_date_picker_seperator' => env('DEFAULT_DATEPICKER_SEPERATOR', '-'),
|
||||
'default_datetime_format' => env('DEFAULT_DATETIME_FORMAT', 'Y-m-d H:i'),
|
||||
'default_query_cache' => 120, #Minutes
|
||||
'default_locale' => 'en',
|
||||
'default_payment_gateway' => 1, #Stripe=1 Paypal=2 BitPay=3 MIGS=4
|
||||
|
|
|
|||
|
|
@ -11,56 +11,56 @@ class TimezoneSeeder extends Seeder
|
|||
*/
|
||||
public function run()
|
||||
{
|
||||
\App\Models\DateTimeFormat::create([
|
||||
'format' => 'd/M/Y g:i a',
|
||||
'picker_format' => '',
|
||||
'label' => '10/Mar/2016'
|
||||
]);
|
||||
\App\Models\DateTimeFormat::create([
|
||||
'format' => 'd-M-Y g:i a',
|
||||
'picker_format' => '',
|
||||
'label' => '10-Mar-2016'
|
||||
]);
|
||||
\App\Models\DateTimeFormat::create([
|
||||
'format' => 'd/F/Y g:i a',
|
||||
'picker_format' => '',
|
||||
'label' => '10/March/2016'
|
||||
]);
|
||||
\App\Models\DateTimeFormat::create([
|
||||
'format' => 'd-F-Y g:i a',
|
||||
'picker_format' => '',
|
||||
'label' => '10-March-2016'
|
||||
]);
|
||||
\App\Models\DateTimeFormat::create([
|
||||
'format' => 'M j, Y g:i a',
|
||||
'picker_format' => '',
|
||||
'label' => 'Mar 10, 2016 6:15 pm'
|
||||
]);
|
||||
\App\Models\DateTimeFormat::create([
|
||||
'format' => 'F j, Y g:i a',
|
||||
'picker_format' => '',
|
||||
'label' => 'March 10, 2016 6:15 pm'
|
||||
]);
|
||||
\App\Models\DateTimeFormat::create([
|
||||
'format' => 'D M jS, Y g:ia',
|
||||
'picker_format' => '',
|
||||
'label' => 'Mon March 10th, 2016 6:15 pm'
|
||||
]);
|
||||
// \App\Models\DateTimeFormat::create([
|
||||
// 'format' => 'd/M/Y g:i a',
|
||||
// 'picker_format' => '',
|
||||
// 'label' => '10/Mar/2016'
|
||||
// ]);
|
||||
// \App\Models\DateTimeFormat::create([
|
||||
// 'format' => 'd-M-Y g:i a',
|
||||
// 'picker_format' => '',
|
||||
// 'label' => '10-Mar-2016'
|
||||
// ]);
|
||||
// \App\Models\DateTimeFormat::create([
|
||||
// 'format' => 'd/F/Y g:i a',
|
||||
// 'picker_format' => '',
|
||||
// 'label' => '10/March/2016'
|
||||
// ]);
|
||||
// \App\Models\DateTimeFormat::create([
|
||||
// 'format' => 'd-F-Y g:i a',
|
||||
// 'picker_format' => '',
|
||||
// 'label' => '10-March-2016'
|
||||
// ]);
|
||||
// \App\Models\DateTimeFormat::create([
|
||||
// 'format' => 'M j, Y g:i a',
|
||||
// 'picker_format' => '',
|
||||
// 'label' => 'Mar 10, 2016 6:15 pm'
|
||||
// ]);
|
||||
// \App\Models\DateTimeFormat::create([
|
||||
// 'format' => 'F j, Y g:i a',
|
||||
// 'picker_format' => '',
|
||||
// 'label' => 'March 10, 2016 6:15 pm'
|
||||
// ]);
|
||||
// \App\Models\DateTimeFormat::create([
|
||||
// 'format' => 'D M jS, Y g:ia',
|
||||
// 'picker_format' => '',
|
||||
// 'label' => 'Mon March 10th, 2016 6:15 pm'
|
||||
// ]);
|
||||
|
||||
\App\Models\DateFormat::create([
|
||||
'format' => 'd/M/Y', 'picker_format' => 'dd/M/yyyy', 'label' => '10/Mar/2013']);
|
||||
\App\Models\DateFormat::create([
|
||||
'format' => 'd-M-Y', 'picker_format' => 'dd-M-yyyy', 'label' => '10-Mar-2013']);
|
||||
\App\Models\DateFormat::create([
|
||||
'format' => 'd/F/Y', 'picker_format' => 'dd/MM/yyyy', 'label' => '10/March/2013']);
|
||||
\App\Models\DateFormat::create([
|
||||
'format' => 'd-F-Y', 'picker_format' => 'dd-MM-yyyy', 'label' => '10-March-2013']);
|
||||
\App\Models\DateFormat::create([
|
||||
'format' => 'M j, Y', 'picker_format' => 'M d, yyyy', 'label' => 'Mar 10, 2013']);
|
||||
\App\Models\DateFormat::create([
|
||||
'format' => 'F j, Y', 'picker_format' => 'MM d, yyyy', 'label' => 'March 10, 2013']);
|
||||
\App\Models\DateFormat::create([
|
||||
'format' => 'D M j, Y', 'picker_format' => 'D MM d, yyyy', 'label' => 'Mon March 10, 2013']);
|
||||
// \App\Models\DateFormat::create([
|
||||
// 'format' => 'd/M/Y', 'picker_format' => 'dd/M/yyyy', 'label' => '10/Mar/2013']);
|
||||
// \App\Models\DateFormat::create([
|
||||
// 'format' => 'd-M-Y', 'picker_format' => 'dd-M-yyyy', 'label' => '10-Mar-2013']);
|
||||
// \App\Models\DateFormat::create([
|
||||
// 'format' => 'd/F/Y', 'picker_format' => 'dd/MM/yyyy', 'label' => '10/March/2013']);
|
||||
// \App\Models\DateFormat::create([
|
||||
// 'format' => 'd-F-Y', 'picker_format' => 'dd-MM-yyyy', 'label' => '10-March-2013']);
|
||||
// \App\Models\DateFormat::create([
|
||||
// 'format' => 'M j, Y', 'picker_format' => 'M d, yyyy', 'label' => 'Mar 10, 2013']);
|
||||
// \App\Models\DateFormat::create([
|
||||
// 'format' => 'F j, Y', 'picker_format' => 'MM d, yyyy', 'label' => 'March 10, 2013']);
|
||||
// \App\Models\DateFormat::create([
|
||||
// 'format' => 'D M j, Y', 'picker_format' => 'D MM d, yyyy', 'label' => 'Mon March 10, 2013']);
|
||||
|
||||
|
||||
$timezones = [
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
@if(!$event->is_live)
|
||||
<section id="goLiveBar">
|
||||
<div class="container">
|
||||
@if(!$event->is_live)
|
||||
@if(!$event->is_live)
|
||||
|
||||
{{ @trans("ManageEvent.event_not_live") }}
|
||||
<a href="{{ route('MakeEventLive' , ['event_id' => $event->id]) }}"
|
||||
style="background-color: green; border-color: green;"
|
||||
class="btn btn-success btn-xs">{{ @trans("ManageEvent.publish_it") }}</a>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
@endif
|
||||
|
|
@ -28,14 +28,14 @@
|
|||
<h1 property="name">{{$event->title}}</h1>
|
||||
<div class="event_venue">
|
||||
<span property="startDate" content="{{ $event->start_date->toIso8601String() }}">
|
||||
{{ $event->start_date->format('d.m H:i') }}
|
||||
{{ $event->startDateFormatted() }}
|
||||
</span>
|
||||
-
|
||||
<span property="endDate" content="{{ $event->end_date->toIso8601String() }}">
|
||||
@if($event->start_date->diffInHours($event->end_date) <= 12)
|
||||
{{ $event->end_date->format('H:i') }}
|
||||
@else
|
||||
{{ $event->end_date->format('d.m H:i') }}
|
||||
{{ $event->endDateFormatted() }}
|
||||
@endif
|
||||
</span>
|
||||
@lang("Public_ViewEvent.at")
|
||||
|
|
|
|||
|
|
@ -58,36 +58,36 @@
|
|||
<div class="ticket">
|
||||
|
||||
<div class='logo'>
|
||||
<img alt="{{$event->organiser->full_logo_path}}" src="data:image/png;base64, {{$image}}" />
|
||||
@if(count($images)>0)
|
||||
<img alt="{{$event->organiser->full_logo_path}}" src="data:image/png;base64, {{$image}}" />
|
||||
@if(isset($images) && count($images) > 0)
|
||||
@foreach($images as $img)
|
||||
<BR><img src="data:image/png;base64, {{$img}}" />
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
<div class="layout_even">
|
||||
<div class="event_details">
|
||||
<div class="event_details">
|
||||
<h4>@lang("Ticket.event")</h4>
|
||||
{{$event->title}}
|
||||
{{$event->title}}
|
||||
<h4>@lang("Ticket.organiser")</h4>
|
||||
{{$event->organiser->name}}
|
||||
{{$event->organiser->name}}
|
||||
<h4>@lang("Ticket.venue")</h4>
|
||||
{{$event->venue_name}}
|
||||
{{$event->venue_name}}
|
||||
<h4>@lang("Ticket.start_date_time")</h4>
|
||||
{{$event->start_date->format('Y-m-d H:i')}}
|
||||
{{$event->startDateFormatted()}}
|
||||
<h4>@lang("Ticket.end_date_time")</h4>
|
||||
{{$event->end_date->format('Y-m-d H:i')}}
|
||||
</div>
|
||||
{{$event->endDateFormatted()}}
|
||||
</div>
|
||||
|
||||
<div class="attendee_details">
|
||||
<div class="attendee_details">
|
||||
<h4>@lang("Ticket.name")</h4>
|
||||
{{$attendee->first_name.' '.$attendee->last_name}}
|
||||
{{$attendee->first_name.' '.$attendee->last_name}}
|
||||
<h4>@lang("Ticket.ticket_type")</h4>
|
||||
{{$attendee->ticket->title}}
|
||||
{{$attendee->ticket->title}}
|
||||
<h4>@lang("Ticket.order_ref")</h4>
|
||||
{{$order->order_reference}}
|
||||
{{$order->order_reference}}
|
||||
<h4>@lang("Ticket.attendee_ref")</h4>
|
||||
{{$attendee->reference}}
|
||||
{{$attendee->reference}}
|
||||
<h4>@lang("Ticket.price")</h4>
|
||||
@php
|
||||
// Calculating grand total including tax
|
||||
|
|
@ -99,7 +99,7 @@
|
|||
<br><br>{{$event->organiser->tax_name}} ID: {{ $event->organiser->tax_id }}
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="barcode">
|
||||
{!! DNS2D::getBarcodeSVG($attendee->private_reference_number, "QRCODE", 6, 6) !!}
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue