Module: Spree::Order::StoreCredit

Included in:
Spree::Order
Defined in:
app/models/spree/order/store_credit.rb

Instance Method Summary collapse

Instance Method Details

#add_store_credit_payments(amount = nil) ⇒ Object



4
5
6
7
8
9
10
11
# File 'app/models/spree/order/store_credit.rb', line 4

def add_store_credit_payments(amount = nil)
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
    Spree::Order#add_store_credit_payments method is deprecated and will be removed in Spree 4.0.
    Please use Spree::Checkout::AddStoreCredit service to add Store Credit to Order.
  DEPRECATION

  Spree::Checkout::AddStoreCredit.call(order: self, amount: amount)
end

#could_use_store_credit?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'app/models/spree/order/store_credit.rb', line 35

def could_use_store_credit?
  total_available_store_credit > 0
end

#covered_by_store_credit?Boolean Also known as: covered_by_store_credit

Returns:

  • (Boolean)


22
23
24
25
26
# File 'app/models/spree/order/store_credit.rb', line 22

def covered_by_store_credit?
  return false unless user

  user.total_available_store_credit >= total
end

#display_order_total_after_store_creditObject



67
68
69
# File 'app/models/spree/order/store_credit.rb', line 67

def display_order_total_after_store_credit
  Spree::Money.new(order_total_after_store_credit, currency: currency)
end

#display_store_credit_remaining_after_captureObject



75
76
77
# File 'app/models/spree/order/store_credit.rb', line 75

def display_store_credit_remaining_after_capture
  Spree::Money.new(total_available_store_credit - total_applicable_store_credit, currency: currency)
end

#display_total_applicable_store_creditObject



59
60
61
# File 'app/models/spree/order/store_credit.rb', line 59

def display_total_applicable_store_credit
  Spree::Money.new(-total_applicable_store_credit, currency: currency)
end

#display_total_applied_store_creditObject



63
64
65
# File 'app/models/spree/order/store_credit.rb', line 63

def display_total_applied_store_credit
  Spree::Money.new(-total_applied_store_credit, currency: currency)
end

#display_total_available_store_creditObject



71
72
73
# File 'app/models/spree/order/store_credit.rb', line 71

def display_total_available_store_credit
  Spree::Money.new(total_available_store_credit, currency: currency)
end

#order_total_after_store_creditObject



39
40
41
# File 'app/models/spree/order/store_credit.rb', line 39

def order_total_after_store_credit
  total - total_applicable_store_credit
end

#remove_store_credit_paymentsObject



13
14
15
16
17
18
19
20
# File 'app/models/spree/order/store_credit.rb', line 13

def remove_store_credit_payments
  ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
    Spree::Order#remove_store_credit_payments method is deprecated and will be removed in Spree 4.0.
    Please use Spree::Checkout::RemoveStoreCredit service to remove Store Credit from Order.
  DEPRECATION

  Spree::Checkout::RemoveStoreCredit.call(order: self)
end

#total_applicable_store_creditObject



43
44
45
46
47
48
49
# File 'app/models/spree/order/store_credit.rb', line 43

def total_applicable_store_credit
  if payment? || confirm? || complete?
    total_applied_store_credit
  else
    [total, (user.try(:total_available_store_credit) || 0.0)].min
  end
end

#total_applied_store_creditObject



51
52
53
# File 'app/models/spree/order/store_credit.rb', line 51

def total_applied_store_credit
  payments.store_credits.valid.sum(:amount)
end

#total_available_store_creditObject



29
30
31
32
33
# File 'app/models/spree/order/store_credit.rb', line 29

def total_available_store_credit
  return 0.0 unless user

  user.total_available_store_credit
end

#using_store_credit?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'app/models/spree/order/store_credit.rb', line 55

def using_store_credit?
  total_applied_store_credit > 0
end