Initial commit of foodsoft 2
This commit is contained in:
commit
5b9a7e05df
657 changed files with 70444 additions and 0 deletions
75
db/migrate/021_remove_table_article_prices.rb
Normal file
75
db/migrate/021_remove_table_article_prices.rb
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
class RemoveTableArticlePrices < ActiveRecord::Migration
|
||||
def self.up
|
||||
|
||||
puts "create columns in articles ..."
|
||||
add_column "articles", "clear_price", :decimal, :precision => 8, :scale => 2, :default => 0.0, :null => false
|
||||
add_column "articles", "gross_price", :decimal, :precision => 8, :scale => 2, :default => 0.0, :null => false
|
||||
add_column "articles", "tax", :float
|
||||
add_column "articles", "refund", :decimal, :precision => 8, :scale => 2, :default => 0.0, :null => false
|
||||
add_column "articles", "unit_quantity", :integer, :default => 1, :null => false
|
||||
add_column "articles", "order_number", :string
|
||||
add_column "articles", "created_at", :datetime
|
||||
add_column "articles", "updated_at", :datetime
|
||||
|
||||
# stop auto-updating the timestamps to make the data-copy safe!
|
||||
Article.record_timestamps = false
|
||||
|
||||
puts "now copy values of article_prices into new articles-columns..."
|
||||
Article.find(:all).each do |article|
|
||||
price = article.current_price
|
||||
article.update_attributes!(:clear_price => price.clear_price,
|
||||
:gross_price => price.gross_price,
|
||||
:tax => price.tax,
|
||||
:refund => price.refund,
|
||||
:unit_quantity => price.unit_quantity,
|
||||
:order_number => price.order_number,
|
||||
:updated_at => price.updated_on,
|
||||
:created_at => price.updated_on)
|
||||
end
|
||||
|
||||
|
||||
puts "delete article_prices, current_price attribute"
|
||||
drop_table :article_prices
|
||||
remove_column :articles, :current_price_id
|
||||
end
|
||||
|
||||
def self.down
|
||||
add_column :articles, :current_price_id, :integer
|
||||
create_table "article_prices", :force => true do |t|
|
||||
t.integer "article_id", :default => 0, :null => false
|
||||
t.decimal "clear_price", :precision => 8, :scale => 2, :default => 0.0, :null => false
|
||||
t.decimal "gross_price", :precision => 8, :scale => 2, :default => 0.0, :null => false
|
||||
t.float "tax", :default => 0.0, :null => false
|
||||
t.decimal "refund", :precision => 8, :scale => 2, :default => 0.0, :null => false
|
||||
t.datetime "updated_on"
|
||||
t.integer "unit_quantity", :default => 1, :null => false
|
||||
t.string "order_number"
|
||||
end
|
||||
|
||||
# copy data from article now into old ArticlePrice-object
|
||||
Article.find(:all).each do |article|
|
||||
price = ArticlePrice.create(:clear_price => article.clear_price,
|
||||
:gross_price => article.gross_price,
|
||||
:tax => article.tax,
|
||||
:refund => article.refund,
|
||||
:unit_quantity => article.unit_quantity,
|
||||
:order_number => article.order_number.blank? ? nil : article.order_number,
|
||||
:updated_on => article.updated_at)
|
||||
|
||||
article.update_attribute(:current_price, price)
|
||||
price.update_attribute(:article, article)
|
||||
|
||||
end
|
||||
|
||||
# remove new columns
|
||||
remove_column "articles", "clear_price"
|
||||
remove_column "articles", "gross_price"
|
||||
remove_column "articles", "tax"
|
||||
remove_column "articles", "refund"
|
||||
remove_column "articles", "unit_quantity"
|
||||
remove_column "articles", "order_number"
|
||||
remove_column "articles", "created_at"
|
||||
remove_column "articles", "updated_at"
|
||||
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue