From 083d7327bc85b8263cc9a11acec10ffc0aa0bb7f Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Thu, 25 Jun 2015 15:25:15 +0800 Subject: [PATCH] Adding BillItem to database --- app/models/bill_item.rb | 15 +++++++++++++++ db/migrate/20150619100137_create_bill_items.rb | 15 +++++++++++++++ db/schema.rb | 13 +++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 app/models/bill_item.rb create mode 100644 db/migrate/20150619100137_create_bill_items.rb diff --git a/app/models/bill_item.rb b/app/models/bill_item.rb new file mode 100644 index 0000000000..fee3e0cbe9 --- /dev/null +++ b/app/models/bill_item.rb @@ -0,0 +1,15 @@ +class BillItem < ActiveRecord::Base + belongs_to :enterprise + belongs_to :owner, class_name: 'Spree::User', foreign_key: :owner_id + + def bill + # Will make this more sophisicated in the future in that it will use global config variables to calculate + return 0 if trial? + if ['own', 'any'].include? sells + bill = (turnover * 0.02) + bill > 50 ? 50 : bill + else + 0 + end + end +end diff --git a/db/migrate/20150619100137_create_bill_items.rb b/db/migrate/20150619100137_create_bill_items.rb new file mode 100644 index 0000000000..fec80692b1 --- /dev/null +++ b/db/migrate/20150619100137_create_bill_items.rb @@ -0,0 +1,15 @@ +class CreateBillItems < ActiveRecord::Migration + def change + create_table :bill_items do |t| + t.references :enterprise, nil: false + t.references :owner, nil: false + t.datetime :begins_at, default: nil + t.datetime :ends_at, default: nil + t.string :sells, default: nil + t.boolean :trial, default: false + t.decimal :turnover, default: 0.0 + t.foreign_key :enterprises + t.foreign_key :spree_users, column: :owner_id + end + end +end diff --git a/db/schema.rb b/db/schema.rb index ea4ea7faa0..2bf0091fb3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -24,6 +24,16 @@ ActiveRecord::Schema.define(:version => 20150730160010) do add_index "adjustment_metadata", ["adjustment_id"], :name => "index_adjustment_metadata_on_adjustment_id" add_index "adjustment_metadata", ["enterprise_id"], :name => "index_adjustment_metadata_on_enterprise_id" + create_table "bill_items", :force => true do |t| + t.integer "enterprise_id" + t.integer "owner_id" + t.datetime "begins_at" + t.datetime "ends_at" + t.string "sells" + t.boolean "trial", :default => false + t.decimal "turnover", :default => 0.0 + end + create_table "carts", :force => true do |t| t.integer "user_id" end @@ -1140,6 +1150,9 @@ ActiveRecord::Schema.define(:version => 20150730160010) do add_foreign_key "adjustment_metadata", "enterprises", name: "adjustment_metadata_enterprise_id_fk" add_foreign_key "adjustment_metadata", "spree_adjustments", name: "adjustment_metadata_adjustment_id_fk", column: "adjustment_id", dependent: :delete + add_foreign_key "bill_items", "enterprises", name: "bill_items_enterprise_id_fk" + add_foreign_key "bill_items", "spree_users", name: "bill_items_owner_id_fk", column: "owner_id" + add_foreign_key "carts", "spree_users", name: "carts_user_id_fk", column: "user_id" add_foreign_key "cms_blocks", "cms_pages", name: "cms_blocks_page_id_fk", column: "page_id"