Sha256: 3900f87b52dc21ec95eaa5d6fe7e244b75d29f6290a5940d92c94025e4c48761

Contents?: true

Size: 1.26 KB

Versions: 67

Compression:

Stored size: 1.26 KB

Contents

class CreateDefaultStock < ActiveRecord::Migration
  def up
    unless column_exists? :spree_stock_locations, :default
      add_column :spree_stock_locations, :default, :boolean, null: false, default: false
    end

    Spree::StockLocation.skip_callback(:create, :after, :create_stock_items)
    Spree::StockLocation.skip_callback(:save, :after, :ensure_one_default)
    Spree::StockItem.skip_callback(:save, :after, :process_backorders)
    location = Spree::StockLocation.new(name: 'default')
    location.save(validate: false)

    Spree::Variant.find_each do |variant|
      stock_item = Spree::StockItem.unscoped.build(stock_location: location, variant: variant)
      stock_item.send(:count_on_hand=, variant.count_on_hand)
      # Avoid running default_scope defined by acts_as_paranoid, related to #3805,
      # validations would run a query with a delete_at column that might not be present yet
      stock_item.save! validate: false
    end

    remove_column :spree_variants, :count_on_hand
  end

  def down
    add_column :spree_variants, :count_on_hand, :integer

    Spree::StockItem.find_each do |stock_item|
      stock_item.variant.update_column :count_on_hand, stock_item.count_on_hand
    end

    Spree::StockLocation.delete_all
    Spree::StockItem.delete_all
  end
end

Version data entries

67 entries across 67 versions & 2 rubygems

Version Path
spree_core-3.1.14 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.13 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.12 db/migrate/20130213191427_create_default_stock.rb
solidus_core-1.1.4 db/migrate/20130213191427_create_default_stock.rb
solidus_core-1.0.7 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.11 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.10 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.9 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.8 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.7 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.6 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.5 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.4 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.3 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.2 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.0.10 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.1 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.0 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.1.0.rc4 db/migrate/20130213191427_create_default_stock.rb
spree_core-3.0.9 db/migrate/20130213191427_create_default_stock.rb