Declare VariantOverride in migration for safe use

This commit is contained in:
Kristina Lim
2018-12-12 01:27:52 +08:00
parent 9e3332ba2a
commit aa92dd8771

View File

@@ -12,17 +12,27 @@
# Furthermore, this will allow all existing variant overrides to satisfy the newly added model
# validation rules.
class SimplifyVariantOverrideStockSettings < ActiveRecord::Migration
class VariantOverride < ActiveRecord::Base
scope :with_count_on_hand, -> { where("count_on_hand IS NOT NULL") }
scope :without_count_on_hand, -> { where(count_on_hand: nil) }
end
def up
# When on_demand is nil but count_on_hand is set, force limited stock.
VariantOverride.where(on_demand: nil).where("count_on_hand IS NOT NULL")
.update_all(on_demand: false)
VariantOverride.where(on_demand: nil).with_count_on_hand.find_each do |variant_override|
variant_override.update_attributes!(on_demand: false)
end
# Clear count_on_hand if forcing on demand.
VariantOverride.where(on_demand: true).update_all(count_on_hand: nil)
VariantOverride.where(on_demand: true).with_count_on_hand.find_each do |variant_override|
variant_override.update_attributes!(count_on_hand: nil)
end
# When on_demand is false but count on hand is not specified, set this to use producer stock
# settings.
VariantOverride.where(on_demand: false, count_on_hand: nil).update_all(on_demand: nil)
VariantOverride.where(on_demand: false).without_count_on_hand.find_each do |variant_override|
variant_override.update_attributes!(on_demand: nil)
end
end
def down; end