diff --git a/app/controllers/ticket_requests_controller.rb b/app/controllers/ticket_requests_controller.rb index c0649fe4..3ddb9de9 100644 --- a/app/controllers/ticket_requests_controller.rb +++ b/app/controllers/ticket_requests_controller.rb @@ -24,8 +24,8 @@ def index requests: requests.count, adults: requests.sum(&:adults), kids: requests.sum(&:kids), - addon_passes: requests.sum(&:active_addon_pass_count), - addon_camping: requests.sum(&:active_addon_camp_count), + addon_passes: requests.sum(&:active_addon_pass_sum), + addon_camping: requests.sum(&:active_addon_camp_sum), raised: requests.sum(&:price) } end diff --git a/app/models/ticket_request.rb b/app/models/ticket_request.rb index 003ad4b1..1cadb4d4 100644 --- a/app/models/ticket_request.rb +++ b/app/models/ticket_request.rb @@ -357,20 +357,24 @@ def active_addons ticket_request_event_addons.where('quantity > ?', 0) end + def active_addons_sum + active_addons.sum { |a| a.quantity } + end + def active_sorted_addons active_addons.sort_by { |e| [e.category, e.price, e.name] } end - def active_addon_pass_count - @active_addon_pass_count ||= active_addon_by_category(Addon::CATEGORY_PASS).count + def active_addon_pass_sum + active_addon_sum_quantity_by_category(Addon::CATEGORY_PASS) end - def active_addon_camp_count - @active_addon_camp_count ||= active_addon_by_category(Addon::CATEGORY_CAMP).count + def active_addon_camp_sum + active_addon_sum_quantity_by_category(Addon::CATEGORY_CAMP) end - def active_addon_by_category(category) - active_addons.select { |addon| addon.category == category } + def active_addon_sum_quantity_by_category(category) + active_addons.select { |addon| addon.category == category }.sum { |a| a.quantity } end def ticket_request_event_addons? diff --git a/app/views/ticket_requests/_table_ticket_requests.html.haml b/app/views/ticket_requests/_table_ticket_requests.html.haml index befa8ec9..17904965 100644 --- a/app/views/ticket_requests/_table_ticket_requests.html.haml +++ b/app/views/ticket_requests/_table_ticket_requests.html.haml @@ -41,11 +41,11 @@ - if ticket_request.needs_assistance = tooltip_box('Financial Assistance was requested.') do = image_tag('icons/dollar.png', width: 20, class: 'hover-tooltip') - - if ticket_request.active_addon_camp_count - = tooltip_box(ticket_request.active_addon_camp_count, title: "Camping:") do + - if ticket_request.active_addon_camp_sum + = tooltip_box(ticket_request.active_addon_camp_sum, title: "Camping:") do = image_tag('icons/car.png', width: 20, class: 'hover-tooltip') - - if ticket_request.active_addon_pass_count - = tooltip_box(ticket_request.active_addon_pass_count, title: "Passes:") do + - if ticket_request.active_addon_pass_sum + = tooltip_box(ticket_request.active_addon_pass_sum, title: "Passes:") do = image_tag('icons/pass.png', width: 20, class: 'hover-tooltip') - if ticket_request.admin_notes.present? = tooltip_box(ticket_request.admin_notes, title: "Admin Notes") do @@ -57,7 +57,7 @@ %td.align-content-center.text-end.optional-medium= ticket_request.kids - if event.active_event_addons? - %td.align-content-center.text-end.optional-medium= ticket_request.active_addons.count + %td.align-content-center.text-end.optional-medium= ticket_request.active_addons_sum %td.align-content-center.text-end %span{ class: ('label label-info' if ticket_request.special_price) }