Class: Effective::EventTicket
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Effective::EventTicket
- Defined in:
- app/models/effective/event_ticket.rb
Constant Summary collapse
- CATEGORIES =
Purchasable by
['Anyone', 'Members']
Instance Method Summary collapse
-
#anyone? ⇒ Boolean
“Anyone” can buy tickets have: Member, Non-member, and Guest of Member pricing.
- #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
- #early_bird? ⇒ Boolean
- #maximum_price ⇒ Object
-
#members? ⇒ Boolean
“Members” can buy tickets have: Member and Guest of Member pricing.
- #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.
- #to_s ⇒ Object
Instance Method Details
#anyone? ⇒ Boolean
“Anyone” can buy tickets have: Member, Non-member, and Guest of Member pricing. Member and Non-member are always required.
150 151 152 |
# File 'app/models/effective/event_ticket.rb', line 150 def anyone? category == 'Anyone' end |
#capacity_available(except: nil) ⇒ Object
93 94 95 96 |
# File 'app/models/effective/event_ticket.rb', line 93 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
86 87 88 89 90 91 |
# File 'app/models/effective/event_ticket.rb', line 86 def capacity_selectable(except: nil) return nil if capacity.blank? return nil if waitlist? capacity_available(except: except) end |
#capacity_taken(except: nil) ⇒ Object
98 99 100 |
# File 'app/models/effective/event_ticket.rb', line 98 def capacity_taken(except: nil) registered_or_selected_event_registrants(except: except).reject { |er| er.waitlisted? && !er.promoted? }.length end |
#early_bird? ⇒ Boolean
141 142 143 |
# File 'app/models/effective/event_ticket.rb', line 141 def early_bird? event&.early_bird_end_at.present? end |
#maximum_price ⇒ Object
145 146 147 |
# File 'app/models/effective/event_ticket.rb', line 145 def maximum_price [non_member_price, member_price, (guest_of_member_price if guest_of_member?)].compact.max end |
#members? ⇒ Boolean
“Members” can buy tickets have: Member and Guest of Member pricing. Member pricing is always required.
155 156 157 |
# File 'app/models/effective/event_ticket.rb', line 155 def members? category == 'Members' end |
#purchased_event_registrants_count ⇒ Object
133 134 135 |
# File 'app/models/effective/event_ticket.rb', line 133 def purchased_event_registrants_count purchased_event_registrants.length end |
#questions ⇒ Object
137 138 139 |
# File 'app/models/effective/event_ticket.rb', line 137 def questions [question1.presence, question2.presence, question3.presence].compact end |
#registered_available_count ⇒ Object
Registered and available count
128 129 130 131 |
# File 'app/models/effective/event_ticket.rb', line 128 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
113 114 115 |
# File 'app/models/effective/event_ticket.rb', line 113 def registered_count registered_event_registrants.length end |
#registered_non_waitlisted_count ⇒ Object
Registered and not waitlisted count
118 119 120 |
# File 'app/models/effective/event_ticket.rb', line 118 def registered_non_waitlisted_count registered_event_registrants.non_waitlisted.length end |
#registered_or_selected_event_registrants(except: nil) ⇒ Object
102 103 104 105 106 107 108 |
# File 'app/models/effective/event_ticket.rb', line 102 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
123 124 125 |
# File 'app/models/effective/event_ticket.rb', line 123 def registered_waitlisted_count registered_event_registrants.waitlisted.length end |
#to_s ⇒ Object
81 82 83 |
# File 'app/models/effective/event_ticket.rb', line 81 def to_s title.presence || 'New Event Ticket' end |