Class: Effective::EventTicket
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Effective::EventTicket
- Defined in:
- app/models/effective/event_ticket.rb
Constant Summary collapse
- CATEGORIES =
['Regular', 'Member Only', 'Member or Non-Member']
Instance Method Summary collapse
- #capacity_available(except: nil) ⇒ Object
-
#capacity_selectable(except: nil) ⇒ Object
These capacity methods are used by the front end EventRegistrations screens.
- #capacity_taken(except: nil) ⇒ Object
- #member_only? ⇒ Boolean
- #member_or_non_member? ⇒ Boolean
- #purchased_event_registrants_count ⇒ Object
- #questions ⇒ Object
-
#registered_available_count ⇒ Object
Registered and available count.
-
#registered_count ⇒ Object
Total registered count, including waitlisted and non waitlisted.
-
#registered_non_waitlisted_count ⇒ Object
Registered and not waitlisted count.
- #registered_or_selected_event_registrants(except: nil) ⇒ Object
-
#registered_waitlisted_count ⇒ Object
Registered and waitlisted count.
- #regular? ⇒ Boolean
- #to_s ⇒ Object
Instance Method Details
#capacity_available(except: nil) ⇒ Object
88 89 90 91 |
# File 'app/models/effective/event_ticket.rb', line 88 def capacity_available(except: nil) return nil if capacity.blank? [(capacity - capacity_taken(except: except)), 0].max end |
#capacity_selectable(except: nil) ⇒ Object
These capacity methods are used by the front end EventRegistrations screens
81 82 83 84 85 86 |
# File 'app/models/effective/event_ticket.rb', line 81 def capacity_selectable(except: nil) return nil if capacity.blank? return nil if waitlist? capacity_available(except: except) end |
#capacity_taken(except: nil) ⇒ Object
93 94 95 |
# File 'app/models/effective/event_ticket.rb', line 93 def capacity_taken(except: nil) registered_or_selected_event_registrants(except: except).reject { |er| er.waitlisted? && !er.promoted? }.length end |
#member_only? ⇒ Boolean
140 141 142 |
# File 'app/models/effective/event_ticket.rb', line 140 def member_only? category == 'Member Only' end |
#member_or_non_member? ⇒ Boolean
144 145 146 |
# File 'app/models/effective/event_ticket.rb', line 144 def member_or_non_member? category == 'Member or Non-Member' end |
#purchased_event_registrants_count ⇒ Object
128 129 130 |
# File 'app/models/effective/event_ticket.rb', line 128 def purchased_event_registrants_count purchased_event_registrants.length end |
#questions ⇒ Object
132 133 134 |
# File 'app/models/effective/event_ticket.rb', line 132 def questions [question1.presence, question2.presence, question3.presence].compact end |
#registered_available_count ⇒ Object
Registered and available count
123 124 125 126 |
# File 'app/models/effective/event_ticket.rb', line 123 def registered_available_count return nil if capacity.blank? [capacity - registered_non_waitlisted_count, 0].max end |
#registered_count ⇒ Object
Total registered count, including waitlisted and non waitlisted
108 109 110 |
# File 'app/models/effective/event_ticket.rb', line 108 def registered_count registered_event_registrants.length end |
#registered_non_waitlisted_count ⇒ Object
Registered and not waitlisted count
113 114 115 |
# File 'app/models/effective/event_ticket.rb', line 113 def registered_non_waitlisted_count registered_event_registrants.non_waitlisted.length end |
#registered_or_selected_event_registrants(except: nil) ⇒ Object
97 98 99 100 101 102 103 |
# File 'app/models/effective/event_ticket.rb', line 97 def registered_or_selected_event_registrants(except: nil) raise('expected except to be an EventRegistration') if except && !except.class.try(:effective_events_event_registration?) event_registrants.select do |er| (er.registered? || er.selected_not_expired?) && (except.blank? || er.event_registration_id != except.id) && !er.archived? end end |
#registered_waitlisted_count ⇒ Object
Registered and waitlisted count
118 119 120 |
# File 'app/models/effective/event_ticket.rb', line 118 def registered_waitlisted_count registered_event_registrants.waitlisted.length end |
#regular? ⇒ Boolean
136 137 138 |
# File 'app/models/effective/event_ticket.rb', line 136 def regular? category == 'Regular' end |
#to_s ⇒ Object
76 77 78 |
# File 'app/models/effective/event_ticket.rb', line 76 def to_s title.presence || 'New Event Ticket' end |