diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 8404233..8390b18 100755 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -71,23 +71,12 @@ class PagesController < ApplicationController @monthly_revenue = (0..5).map do |months_ago| start_date = months_ago.months.ago.beginning_of_month end_date = months_ago.months.ago.end_of_month -<<<<<<< HEAD - - revenue = current_user.events - .joins(:orders) - .where(orders: { status: ['paid', 'completed'] }) - .where(orders: { created_at: start_date..end_date }) - .sum('orders.total_amount_cents') / 100.0 - -======= - revenue = current_user.events .joins(:orders) .where(orders: { status: [ "paid", "completed" ] }) .where(orders: { created_at: start_date..end_date }) .sum("orders.total_amount_cents") / 100.0 ->>>>>>> develop { month: start_date.strftime("%B %Y"), revenue: revenue diff --git a/app/controllers/promoter/events_controller.rb b/app/controllers/promoter/events_controller.rb index ac68538..170fa13 100644 --- a/app/controllers/promoter/events_controller.rb +++ b/app/controllers/promoter/events_controller.rb @@ -111,7 +111,7 @@ class Promoter::EventsController < ApplicationController params.require(:event).permit( :name, :slug, :description, :image, :venue_name, :venue_address, :latitude, :longitude, - :start_time, :end_time, :featured + :start_time, :end_time, :featured, :allow_booking_during_event ) end end diff --git a/app/models/event.rb b/app/models/event.rb index db5dac0..1bcb193 100755 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -70,6 +70,32 @@ class Event < ApplicationRecord "Les coordonnées exactes n'ont pas pu être déterminées automatiquement. Une localisation approximative a été utilisée." end + # Check if ticket booking is currently allowed for this event + def booking_allowed? + return false unless published? + return false if sold_out? + return false if canceled? + + # Check if event has started and if booking during event is disabled + if event_started? && !allow_booking_during_event? + return false + end + + true + end + + # Check if the event has already started + def event_started? + return false if start_time.blank? + Time.current >= start_time + end + + # Check if the event has ended + def event_ended? + return false if end_time.blank? + Time.current >= end_time + end + private # Determine if we should perform server-side geocoding diff --git a/app/views/promoter/events/edit.html.erb b/app/views/promoter/events/edit.html.erb index 57c906b..7e7f578 100644 --- a/app/views/promoter/events/edit.html.erb +++ b/app/views/promoter/events/edit.html.erb @@ -163,11 +163,24 @@
Les événements mis en avant apparaissent en premier sur la page d'accueil.
+ ++ Si activé, les participants pourront acheter des billets même après le début de l'événement. + Si désactivé, la vente de billets s'arrêtera automatiquement à l'heure de début. +
+Les événements mis en avant apparaissent en premier sur la page d'accueil.
L'événement a commencé et les nouvelles réservations sont désactivées.
+<%= @event.updated_at.strftime("%d/%m/%Y à %H:%M") %>
++ <% if @event.allow_booking_during_event? %> + + Autorisée + <% else %> + + Interdite + <% end %> +
+