Class: Spree::GroupBuy

Inherits:
Base
  • Object
show all
Defined in:
app/models/spree/group_buy.rb

Instance Method Summary collapse

Instance Method Details

#active?Boolean

Returns:

  • (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_ordersObject



16
17
18
# File 'app/models/spree/group_buy.rb', line 16

def completed_orders
  orders.select(&:completed?)
end

#completed_paid_ordersObject



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_ordersObject



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_priceObject



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

Returns:

  • (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

Returns:

  • (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