rawgento_models 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5bbafe4c75a80264778316131249df751ab3c463
4
- data.tar.gz: 1829f0028906cba2c97c36e9020d10c6a60e3bce
3
+ metadata.gz: fff3563decf85914571c8610becc7b5fb285af8a
4
+ data.tar.gz: eff0f653af0142cb5e2efb8d3387860f54eea424
5
5
  SHA512:
6
- metadata.gz: 199e5b7a962d544dfd835885dd9cf2afa61fd02ff0d0a029e67883d5696a65d013bd4a6ba997908a687d93b9cb30df415852da1a7efc34b61609c41df1c4c9db
7
- data.tar.gz: 7280c7fbc7bc13ac38c64c660695cd1bcbfc83dd927c19be3396c6b96e571ed4361d3a095f4609ae7d2cba18f3ff098fb769135a3d4fbcca0fec9e2e7c564e31
6
+ metadata.gz: f407ada163fa0303617a395b8b821c062b708580a462cf429b8a3fea6e19823d1541f181aa5c6cc82243e617aeacf57f7509a5db5107447e2c98af2d6a11ed7b
7
+ data.tar.gz: cf68a93be167a13825f8069bc415f6fb5f87c9dd60adf06ff3e604816937326261194a4409e2c06b52decb20591c511f7c9a2907b65ebc2eefd72c30bfb2b089
@@ -0,0 +1,9 @@
1
+ class ExtendOrderItems < ActiveRecord::Migration
2
+ def change
3
+ add_reference :order_items, :local_product, index: true
4
+ add_foreign_key :order_items, :local_products
5
+ add_column :order_items, :current_stock, :integer
6
+ add_column :order_items, :min_stock, :integer
7
+ remove_column :order_items, :remote_product_id
8
+ end
9
+ end
data/db/schema.rb ADDED
@@ -0,0 +1,70 @@
1
+ # encoding: UTF-8
2
+ # This file is auto-generated from the current state of the database. Instead
3
+ # of editing this file, please use the migrations feature of Active Record to
4
+ # incrementally modify your database, and then regenerate this schema definition.
5
+ #
6
+ # Note that this schema.rb definition is the authoritative source for your
7
+ # database schema. If you need to create the application database on another
8
+ # system, you should be using db:schema:load, not running all the migrations
9
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
11
+ #
12
+ # It's strongly recommended that you check this file into your version control system.
13
+
14
+ ActiveRecord::Schema.define(version: 201601251100) do
15
+
16
+ create_table "local_products", force: :cascade do |t|
17
+ t.string "name"
18
+ t.string "supplier"
19
+ t.integer "product_id"
20
+ t.datetime "created_at", null: false
21
+ t.datetime "updated_at", null: false
22
+ t.integer "shelve_nr"
23
+ t.integer "packsize"
24
+ t.boolean "active", default: true
25
+ end
26
+
27
+ add_index "local_products", ["product_id"], name: "index_local_products_on_product_id", unique: true
28
+
29
+ create_table "order_items", force: :cascade do |t|
30
+ t.integer "order_id", null: false
31
+ t.string "state"
32
+ t.integer "num_wished"
33
+ t.integer "num_ordered"
34
+ t.datetime "created_at", null: false
35
+ t.datetime "updated_at", null: false
36
+ t.integer "local_product_id"
37
+ t.integer "current_stock"
38
+ t.integer "min_stock"
39
+ end
40
+
41
+ add_index "order_items", ["local_product_id"], name: "index_order_items_on_local_product_id"
42
+
43
+ create_table "orders", force: :cascade do |t|
44
+ t.string "state"
45
+ t.datetime "created_at", null: false
46
+ t.datetime "updated_at", null: false
47
+ end
48
+
49
+ create_table "remote_products", force: :cascade do |t|
50
+ t.string "name"
51
+ t.string "supplier"
52
+ t.integer "local_product_id"
53
+ t.integer "product_id"
54
+ t.datetime "created_at", null: false
55
+ t.datetime "updated_at", null: false
56
+ end
57
+
58
+ add_index "remote_products", ["local_product_id"], name: "index_remote_products_on_local_product_id"
59
+
60
+ create_table "stock_items", force: :cascade do |t|
61
+ t.integer "local_product_id"
62
+ t.integer "qty"
63
+ t.datetime "date"
64
+ t.datetime "created_at", null: false
65
+ t.datetime "updated_at", null: false
66
+ end
67
+
68
+ add_index "stock_items", ["local_product_id"], name: "index_stock_items_on_local_product_id"
69
+
70
+ end
@@ -2,5 +2,30 @@ module RawgentoModels
2
2
  class LocalProduct < ActiveRecord::Base
3
3
  has_one :remote_product
4
4
  has_many :stock_items
5
+
6
+ default_scope { order("name ASC") }
7
+
8
+ scope :linked, -> {
9
+ joins("LEFT OUTER JOIN " +
10
+ " remote_products " +
11
+ " ON remote_products.local_product_id = local_products.id").where("remote_products.id IS NOT null")
12
+ }
13
+ # scope :with_photos, -> { joins(:photos).distinct }
14
+
15
+ scope :unlinked, -> {
16
+ joins("LEFT OUTER JOIN " +
17
+ " remote_products " +
18
+ " ON remote_products.local_product_id = local_products.id").where("remote_products.id IS null")
19
+ }
20
+ # City.includes(:photos).where(photos: { city_id: nil }) # slower
21
+ scope :supplied_by, ->(supplier_name) { where(supplier: supplier_name) }
22
+
23
+ def link_suggestions
24
+ guesses = []
25
+ guesses << RemoteProduct.supplied_by(self.supplier).where(name: self.name).to_a
26
+ guesses << RemoteProduct.supplied_by(self.supplier).where("lower(name) like ?",
27
+ "%#{self.name.downcase[0..self.name.size/2]}%").to_a
28
+ guesses.flatten
29
+ end
5
30
  end
6
31
  end
@@ -1,5 +1,5 @@
1
1
  module RawgentoModels
2
2
  class Order < ActiveRecord::Base
3
- has_many: order_items
3
+ has_many :order_items
4
4
  end
5
5
  end
@@ -1,5 +1,6 @@
1
1
  module RawgentoModels
2
- class Order < ActiveRecord::Base
3
- has_many: order_items
2
+ class OrderItem < ActiveRecord::Base
3
+ belongs_to :order
4
+ belongs_to :local_product
4
5
  end
5
6
  end
@@ -1,3 +1,3 @@
1
1
  module RawgentoModels
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4".freeze
3
3
  end
@@ -5,6 +5,8 @@ require "rawgento_models/version"
5
5
  require "rawgento_models/stock_item"
6
6
  require "rawgento_models/local_product"
7
7
  require "rawgento_models/remote_product"
8
+ require "rawgento_models/order"
9
+ require "rawgento_models/order_item"
8
10
 
9
11
  require 'yaml'
10
12
  require 'ostruct'
@@ -14,8 +16,10 @@ module RawgentoModels
14
16
  MIGRATION_PATH = File.expand_path(File.join __dir__, '..', 'db', 'migrate')
15
17
  ActiveRecordMigrations.configure {|c| c.migrations_paths = [MIGRATION_PATH] }
16
18
 
19
+ CONF_FILE = "db/config.yml"
20
+
17
21
  # Reads config and wires up AR
18
- def self.establish_connection(config_file_path="db/config.yml")
22
+ def self.establish_connection(config_file_path=CONF_FILE)
19
23
  config = OpenStruct.new YAML.load_file(config_file_path)
20
24
  ActiveRecord::Base.establish_connection(config.default)
21
25
  #ActiveRecord::Base.establish_connection({
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rawgento_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Wolfsteller
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-01-23 00:00:00.000000000 Z
11
+ date: 2016-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -99,6 +99,8 @@ files:
99
99
  - db/migrate/201601171700_create_base.rb
100
100
  - db/migrate/201601201700_extend_product.rb
101
101
  - db/migrate/201601221500_create_orders.rb
102
+ - db/migrate/201601251100_extend_order_items.rb
103
+ - db/schema.rb
102
104
  - exe/rawgento_models
103
105
  - lib/rawgento_models.rb
104
106
  - lib/rawgento_models/local_product.rb