diff --git a/app/models/ticket_purchase.rb b/app/models/ticket_purchase.rb index 07fb7e16..d1c370c4 100644 --- a/app/models/ticket_purchase.rb +++ b/app/models/ticket_purchase.rb @@ -18,6 +18,8 @@ class TicketPurchase < ActiveRecord::Base scope :by_conference, ->(conference) { where(conference_id: conference.id) } scope :by_user, ->(user) { where(user_id: user.id) } + after_create :set_week + def self.purchase(conference, user, purchases) errors = [] ActiveRecord::Base.transaction do @@ -59,3 +61,10 @@ class TicketPurchase < ActiveRecord::Base purchase end end + +private + +def set_week + self.week = created_at.strftime('%W') + save! +end diff --git a/db/migrate/20170419132148_add_week_to_ticket_purchases.rb b/db/migrate/20170419132148_add_week_to_ticket_purchases.rb new file mode 100644 index 00000000..0862eb16 --- /dev/null +++ b/db/migrate/20170419132148_add_week_to_ticket_purchases.rb @@ -0,0 +1,15 @@ +class AddWeekToTicketPurchases < ActiveRecord::Migration + class TmpTicketPurchase < ActiveRecord::Base + self.table_name = 'ticket_purchases' + end + + def change + add_column :ticket_purchases, :week, :integer + + TmpTicketPurchase.reset_column_information + TmpTicketPurchase.find_each do |purchase| + purchase.week = purchase.created_at ? purchase.created_at.strftime('%W') : 0 + purchase.save! + end + end +end diff --git a/db/schema.rb b/db/schema.rb index ab95b4dc..5d74950a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170302145716) do +ActiveRecord::Schema.define(version: 20170419132148) do create_table "ahoy_events", force: :cascade do |t| t.uuid "visit_id", limit: 16 @@ -447,6 +447,7 @@ ActiveRecord::Schema.define(version: 20170302145716) do t.integer "quantity", default: 1 t.integer "user_id" t.integer "payment_id" + t.integer "week" end create_table "tickets", force: :cascade do |t|