Class: SpreeCmCommissioner::ConversionPreCalculator
- Inherits:
-
BaseInteractor
- Object
- BaseInteractor
- SpreeCmCommissioner::ConversionPreCalculator
- Defined in:
- app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb
Instance Method Summary collapse
- #call ⇒ Object
- #event_id ⇒ Object
- #generate_guests_bib_number ⇒ Object
-
#reassign_guests_event_id ⇒ Object
reassign event_id if it’s wrong.
- #revenue ⇒ Object
- #total_count ⇒ Object
- #update_conversion ⇒ Object
Instance Method Details
#call ⇒ Object
5 6 7 8 9 |
# File 'app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb', line 5 def call update_conversion reassign_guests_event_id generate_guests_bib_number end |
#event_id ⇒ Object
41 42 43 44 45 |
# File 'app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb', line 41 def event_id return nil unless product_taxon.taxon&.event? context.event_id ||= product_taxon.taxon&.parent_id end |
#generate_guests_bib_number ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb', line 31 def generate_guests_bib_number return if event_id.blank? SpreeCmCommissioner::Guest .complete .where(event_id: event_id) .none_bib .find_each(&:generate_bib!) end |
#reassign_guests_event_id ⇒ Object
reassign event_id if it’s wrong.
19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb', line 19 def reassign_guests_event_id return if event_id.blank? SpreeCmCommissioner::Guest .where(line_item_id: product_taxon.line_items.pluck(:id)) .where('event_id IS NULL OR event_id != ?', event_id) .find_each do |guest| guest.event_id = event_id guest.save! end end |
#revenue ⇒ Object
51 52 53 |
# File 'app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb', line 51 def revenue product_taxon.complete_line_items.map(&:amount).compact.sum end |
#total_count ⇒ Object
47 48 49 |
# File 'app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb', line 47 def total_count product_taxon.complete_line_items.pluck(:quantity).compact.sum end |
#update_conversion ⇒ Object
11 12 13 14 15 16 |
# File 'app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb', line 11 def update_conversion product_taxon.update( total_count: total_count, revenue: revenue ) end |