Sha256: db62f1b5b2b2a9a993f8a2c4c275d5847502733a38bdafb9d4da22db10a3d615

Contents?: true

Size: 1.05 KB

Versions: 2

Compression:

Stored size: 1.05 KB

Contents

class RefundsController < ArtfullyOseController
  def new
    @order = Order.find(params[:order_id])
    @items = params[:items].collect { |item_id| Item.find(item_id) }
  end

  def create
    @order = Order.find(params[:order_id])
    @items = params[:items].collect { |item_id| Item.find(item_id) }

    @refund = Refund.new(@order, @items)
    @refund.submit(:and_return => return_items?)

    if @refund.successful?
      if return_items?
        flash[:notice] = "Successfully refunded and returned #{@refund.items.size} items."
      else
        flash[:notice] = "Successfully refunded #{@refund.items.size} items."
      end
    else
      if @refund.gateway_error_message.nil?
        flash[:error] = "Unable to refund items.  Please contact support and we'll try to help!"
      else
        flash[:error] = "Unable to refund items: " + @refund.gateway_error_message
      end
    end

    redirect_to order_url(@order)
  end

  private

  def return_items?
    @return_items ||= (params[:commit] == "Issue Refund and Return" and @items.all?(&:returnable?))
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
artfully_ose-1.0.0.rc4 app/controllers/refunds_controller.rb
artfully_ose-1.0.0.rc3 app/controllers/refunds_controller.rb