Sha256: 0014ddca4b160d39ae79e94910e39c8547fe41b4c7398588c8972c6971561dd3

Contents?: true

Size: 1.72 KB

Versions: 74

Compression:

Stored size: 1.72 KB

Contents

module Spree
  module Admin
    class StockTransfersController < Admin::BaseController
      before_action :load_stock_locations, only: :index

      def index
        @q = StockTransfer.ransack(params[:q])

        @stock_transfers = @q.result.
                           includes(stock_movements: { stock_item: :stock_location }).
                           order(created_at: :desc).
                           page(params[:page])
      end

      def show
        @stock_transfer = StockTransfer.find_by!(number: params[:id])
      end

      def new; end

      def create
        if params[:variant].nil?
          flash[:error] = Spree.t('stock_transfer.errors.must_have_variant')
          render :new
        else
          variants = Hash.new(0)
          params[:variant].each_with_index do |variant_id, i|
            variants[variant_id] += params[:quantity][i].to_i
          end
          stock_transfer = StockTransfer.create(reference: params[:reference])
          stock_transfer.transfer(source_location,
                                  destination_location,
                                  variants)

          flash[:success] = Spree.t(:stock_successfully_transferred)
          redirect_to admin_stock_transfer_path(stock_transfer)
        end
      end

      private

      def load_stock_locations
        @stock_locations = Spree::StockLocation.active.order_default
      end

      def source_location
        @source_location ||= params.key?(:transfer_receive_stock) ? nil :
                               StockLocation.find(params[:transfer_source_location_id])
      end

      def destination_location
        @destination_location ||= StockLocation.find(params[:transfer_destination_location_id])
      end
    end
  end
end

Version data entries

74 entries across 74 versions & 1 rubygems

Version Path
spree_backend-4.0.9 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.1.15 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.1.14 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.0.8 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-3.7.14.1 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.1.13.1 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.0.7.1 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.0.7 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-3.7.14 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.1.13 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.0.6 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-3.7.13 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.0.5 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.1.12 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-3.7.12 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.0.4 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-3.7.11 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.1.11 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.1.10 app/controllers/spree/admin/stock_transfers_controller.rb
spree_backend-4.1.9 app/controllers/spree/admin/stock_transfers_controller.rb