Sha256: 03fcda572e8a21ae02e8930064eacaa1f4f2ea27fc187df642ac0aa9da7e188c
Contents?: true
Size: 1.84 KB
Versions: 1
Compression:
Stored size: 1.84 KB
Contents
module Spree class OrdersController < Spree::StoreController ssl_required :show rescue_from ActiveRecord::RecordNotFound, :with => :render_404 helper 'spree/products' respond_to :html def show @order = Order.find_by_number!(params[:id]) respond_with(@order) end def update @order = current_order if @order.update_attributes(params[:order]) @order.line_items = @order.line_items.select {|li| li.quantity > 0 } fire_event('spree.order.contents_changed') respond_with(@order) do |format| format.html do if params.has_key?(:checkout) @order.next_transition.run_callbacks redirect_to checkout_state_path(@order.checkout_steps.first) else redirect_to cart_path end end end else respond_with(@order) end end # Shows the current incomplete order from the session def edit @order = current_order(true) associate_user end # Adds a new item to the order (creating a new order if none already exists) def populate populator = Spree::OrderPopulator.new(current_order(true), current_currency) if populator.populate(params.slice(:products, :variants, :quantity)) fire_event('spree.cart.add') fire_event('spree.order.contents_changed') respond_with(@order) do |format| format.html { redirect_to cart_path } end else flash[:error] = populator.errors.full_messages.join(" ") redirect_to :back end end def empty if @order = current_order @order.empty! end redirect_to spree.cart_path end def accurate_title @order && @order.completed? ? "#{Order.model_name.human} #{@order.number}" : t(:shopping_cart) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
spree_core-1.3.2 | app/controllers/spree/orders_controller.rb |