diff --git a/app/models/order_cycle.rb b/app/models/order_cycle.rb index bec4f911db..e53ae8e610 100644 --- a/app/models/order_cycle.rb +++ b/app/models/order_cycle.rb @@ -1,7 +1,6 @@ class OrderCycle < ActiveRecord::Base belongs_to :coordinator, :class_name => 'Enterprise' - belongs_to :coordinator_admin_fee, :class_name => 'EnterpriseFee' - belongs_to :coordinator_sales_fee, :class_name => 'EnterpriseFee' + has_and_belongs_to_many :coordinator_fees, :class_name => 'EnterpriseFee', :join_table => 'coordinator_fees' has_many :exchanges, :dependent => :destroy diff --git a/db/migrate/20130729021924_make_order_cycle_coordinator_fees_mtm.rb b/db/migrate/20130729021924_make_order_cycle_coordinator_fees_mtm.rb new file mode 100644 index 0000000000..ff88d3f493 --- /dev/null +++ b/db/migrate/20130729021924_make_order_cycle_coordinator_fees_mtm.rb @@ -0,0 +1,19 @@ +class MakeOrderCycleCoordinatorFeesMtm < ActiveRecord::Migration + def up + remove_column :order_cycles, :coordinator_admin_fee_id + remove_column :order_cycles, :coordinator_sales_fee_id + + create_table :coordinator_fees, id: false do |t| + t.references :order_cycle + t.references :enterprise_fee + end + end + + def down + drop_table :coordinator_fees + + add_column :order_cycles, :coordinator_admin_fee_id, :integer + add_column :order_cycles, :coordinator_sales_fee_id, :integer + end + +end diff --git a/db/schema.rb b/db/schema.rb index df3c5ad03a..d7c132b227 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20130629120645) do +ActiveRecord::Schema.define(:version => 20130729021924) do create_table "cms_blocks", :force => true do |t| t.integer "page_id", :null => false @@ -130,6 +130,11 @@ ActiveRecord::Schema.define(:version => 20130629120645) do add_index "cms_snippets", ["site_id", "identifier"], :name => "index_cms_snippets_on_site_id_and_identifier", :unique => true add_index "cms_snippets", ["site_id", "position"], :name => "index_cms_snippets_on_site_id_and_position" + create_table "coordinator_fees", :id => false, :force => true do |t| + t.integer "order_cycle_id" + t.integer "enterprise_fee_id" + end + create_table "enterprise_fees", :force => true do |t| t.integer "enterprise_id" t.string "fee_type" @@ -189,10 +194,8 @@ ActiveRecord::Schema.define(:version => 20130629120645) do t.datetime "orders_open_at" t.datetime "orders_close_at" t.integer "coordinator_id" - t.integer "coordinator_admin_fee_id" - t.integer "coordinator_sales_fee_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false end create_table "product_distributions", :force => true do |t| diff --git a/spec/models/order_cycle_spec.rb b/spec/models/order_cycle_spec.rb index 77e03d0bb9..14c17bce04 100644 --- a/spec/models/order_cycle_spec.rb +++ b/spec/models/order_cycle_spec.rb @@ -15,8 +15,7 @@ describe OrderCycle do oc = create(:simple_order_cycle) oc.coordinator = create(:enterprise) - oc.coordinator_admin_fee = create(:enterprise_fee) - oc.coordinator_sales_fee = create(:enterprise_fee) + oc.coordinator_fees << create(:enterprise_fee, enterprise: oc.coordinator) oc.save! end