Class: Spree::VirtualGiftCard

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
ActionView::Helpers::NumberHelper
Defined in:
app/models/spree/virtual_gift_card.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.active_by_redemption_code(redemption_code) ⇒ Object



52
53
54
# File 'app/models/spree/virtual_gift_card.rb', line 52

def self.active_by_redemption_code(redemption_code)
  Spree::VirtualGiftCard.unredeemed.by_redemption_code(redemption_code).first
end

Instance Method Details

#formatted_amountObject



44
45
46
# File 'app/models/spree/virtual_gift_card.rb', line 44

def formatted_amount
  number_to_currency(amount, precision: 0)
end

#formatted_redemption_codeObject



40
41
42
# File 'app/models/spree/virtual_gift_card.rb', line 40

def formatted_redemption_code
  redemption_code.scan(/.{4}/).join('-')
end

#memoObject



36
37
38
# File 'app/models/spree/virtual_gift_card.rb', line 36

def memo
  "Gift Card ##{self.redemption_code}"
end

#redeem(redeemer) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/models/spree/virtual_gift_card.rb', line 22

def redeem(redeemer)
  return false if redeemed?
  create_store_credit!({
    amount: amount,
    currency: currency,
    memo: memo,
    user: redeemer,
    created_by: redeemer,
    action_originator: self,
    category: store_credit_category,
  })
  self.update_attributes( redeemed_at: Time.now, redeemer: redeemer )
end

#redeemed?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'app/models/spree/virtual_gift_card.rb', line 18

def redeemed?
  redeemed_at.present?
end

#store_credit_categoryObject



48
49
50
# File 'app/models/spree/virtual_gift_card.rb', line 48

def store_credit_category
  Spree::StoreCreditCategory.where(name: Spree::StoreCreditCategory::GIFT_CARD_CATEGORY_NAME).first
end