Sha256: df1701ac57f24fd391e28c87c73f25543007f11ecfa72d0ba5852fb6589f21a3

Contents?: true

Size: 1003 Bytes

Versions: 27

Compression:

Stored size: 1003 Bytes

Contents

# frozen_string_literal: true

class Spree::ReimbursementType::StoreCredit < Spree::ReimbursementType
  extend Spree::ReimbursementType::ReimbursementHelpers

  class << self
    def reimburse(reimbursement, return_items, simulate)
      unpaid_amount = return_items.sum(&:total).to_d.round(2, :down)
      payments = store_credit_payments(reimbursement)
      reimbursement_list = []

      # Credit each store credit that was used on the order
      reimbursement_list, unpaid_amount = create_refunds(reimbursement, payments, unpaid_amount, simulate, reimbursement_list)

      # If there is any amount left to pay out to the customer, then create credit with that amount
      if unpaid_amount > 0.0
        reimbursement_list, _unpaid_amount = create_credits(reimbursement, unpaid_amount, simulate, reimbursement_list)
      end

      reimbursement_list
    end

    private

    def store_credit_payments(reimbursement)
      reimbursement.order.payments.completed.store_credits
    end
  end
end

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
solidus_core-2.6.6 app/models/spree/reimbursement_type/store_credit.rb
solidus_core-2.7.4 app/models/spree/reimbursement_type/store_credit.rb
solidus_core-2.7.3 app/models/spree/reimbursement_type/store_credit.rb
solidus_core-2.6.5 app/models/spree/reimbursement_type/store_credit.rb
solidus_core-2.7.2 app/models/spree/reimbursement_type/store_credit.rb
solidus_core-2.6.4 app/models/spree/reimbursement_type/store_credit.rb
solidus_core-2.6.3 app/models/spree/reimbursement_type/store_credit.rb
solidus_core-2.7.1 app/models/spree/reimbursement_type/store_credit.rb
solidus_core-2.6.2 app/models/spree/reimbursement_type/store_credit.rb
solidus_core_devise_token_auth-2.8.0.alpha.14 app/models/spree/reimbursement_type/store_credit.rb
solidus_core_devise_token_auth-2.8.0.alpha.13 app/models/spree/reimbursement_type/store_credit.rb
solidus_core_devise_token_auth-2.8.0.alpha.12 app/models/spree/reimbursement_type/store_credit.rb
solidus_core_devise_token_auth-2.8.0.alpha.11 app/models/spree/reimbursement_type/store_credit.rb
solidus_core_devise_token_auth-2.8.0.alpha.10 app/models/spree/reimbursement_type/store_credit.rb
solidus_core_devise_token_auth-2.8.0.alpha.9 app/models/spree/reimbursement_type/store_credit.rb
solidus_core_devise_token_auth-2.8.0.alpha.8 app/models/spree/reimbursement_type/store_credit.rb
solidus_core_devise_token_auth-2.8.0.alpha.7 app/models/spree/reimbursement_type/store_credit.rb
solidus_core_devise_token_auth-2.8.0.alpha.6 app/models/spree/reimbursement_type/store_credit.rb
solidus_core_devise_token_auth-2.8.0.alpha.5 app/models/spree/reimbursement_type/store_credit.rb
solidus_core_devise_token_auth-2.8.0.alpha.4 app/models/spree/reimbursement_type/store_credit.rb