Class: Spree::GroupBuy
- Inherits:
-
Base
- Object
- Base
- Spree::GroupBuy
- Defined in:
- app/models/spree/group_buy.rb
Instance Method Summary collapse
- #active? ⇒ Boolean
- #capture_payments! ⇒ Object
- #completed_orders ⇒ Object
- #completed_paid_orders ⇒ Object
- #completed_pending_orders ⇒ Object
- #display_price ⇒ Object
- #goal_accomplished? ⇒ Boolean
- #is_expired? ⇒ Boolean
- #set_accomplished! ⇒ Object
- #set_failed! ⇒ Object
- #void_payments! ⇒ Object
Instance Method Details
#active? ⇒ Boolean
28 29 30 |
# File 'app/models/spree/group_buy.rb', line 28 def active? state == 'active' end |
#capture_payments! ⇒ Object
32 33 34 35 36 37 38 |
# File 'app/models/spree/group_buy.rb', line 32 def capture_payments! completed_pending_orders.each do |order| order.payments.each do |payment| payment.send("capture!") end end end |
#completed_orders ⇒ Object
16 17 18 |
# File 'app/models/spree/group_buy.rb', line 16 def completed_orders orders.select(&:completed?) end |
#completed_paid_orders ⇒ Object
24 25 26 |
# File 'app/models/spree/group_buy.rb', line 24 def completed_paid_orders orders.select { |o| o.completed? and o.payment_state == "paid" } end |
#completed_pending_orders ⇒ Object
20 21 22 |
# File 'app/models/spree/group_buy.rb', line 20 def completed_pending_orders orders.select { |o| o.completed? and o.payment_state == "balance_due" } end |
#display_price ⇒ Object
12 13 14 |
# File 'app/models/spree/group_buy.rb', line 12 def display_price Spree::Money.new(price || 0, currency: currency) end |
#goal_accomplished? ⇒ Boolean
52 53 54 |
# File 'app/models/spree/group_buy.rb', line 52 def goal_accomplished? completed_pending_orders.length >= quantity end |
#is_expired? ⇒ Boolean
48 49 50 |
# File 'app/models/spree/group_buy.rb', line 48 def is_expired? expires_at < DateTime.now end |
#set_accomplished! ⇒ Object
56 57 58 |
# File 'app/models/spree/group_buy.rb', line 56 def set_accomplished! update_column(:state, 'accomplished') end |
#set_failed! ⇒ Object
60 61 62 |
# File 'app/models/spree/group_buy.rb', line 60 def set_failed! update_column(:state, 'failed') end |
#void_payments! ⇒ Object
40 41 42 43 44 45 46 |
# File 'app/models/spree/group_buy.rb', line 40 def void_payments! completed_pending_orders.each do |order| order.payments.each do |payment| payment.send("void_transaction!") end end end |