Class: Spree::Refund

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

display_includes

Methods included from Core::Permalinks

#generate_permalink, #save_permalink

Instance Attribute Details

#perform_responseObject (readonly)

Returns the value of attribute perform_response.



17
18
19
# File 'app/models/spree/refund.rb', line 17

def perform_response
  @perform_response
end

Class Method Details

.total_amount_reimbursed_for(reimbursement) ⇒ Object



29
30
31
# File 'app/models/spree/refund.rb', line 29

def total_amount_reimbursed_for(reimbursement)
  reimbursement.refunds.to_a.sum(&:amount)
end

Instance Method Details

#descriptionObject



34
35
36
# File 'app/models/spree/refund.rb', line 34

def description
  payment.payment_method.name
end

#moneyObject Also known as: display_amount



23
24
25
# File 'app/models/spree/refund.rb', line 23

def money
  Spree::Money.new(amount, { currency: currency })
end

#perform!Object

Must be called for the refund transaction to be processed.

Attempts to perform the refund, raises an error if the refund fails.



42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'app/models/spree/refund.rb', line 42

def perform!
  return true if transaction_id.present?

  credit_cents = money.cents

  @perform_response = process!(credit_cents)
  log_entries.build(details: perform_response.to_yaml)

  self.transaction_id = perform_response.authorization
  save!

  update_order
end