flexquery_datastore 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5396d1a1fc23ca413a7edf78df7cdf48fe00866b
4
- data.tar.gz: 3fe7a9a0b538a2ab0ce24fb8acb23cc1818bf124
3
+ metadata.gz: 7a5499ea34bcb9b38735cb01457645d2241e7984
4
+ data.tar.gz: c0f019e55c361cc126a490db5f626afdf31f7f86
5
5
  SHA512:
6
- metadata.gz: 03b28ff426e62bebe050ac523f247563c9b502ef55de7f3c2e75194a0056230769beefbdd9ec6b36f0d63a7a015804e75c3f52fbc1fa4cdb21879b654ac36631
7
- data.tar.gz: 5a7411d80b99e0a62afe23afb955448e60240da566964553bc095aebcb8e00bf7c410503bcb05dd971a5f0a2c5fb6f027d832ceaf5456fb6648351a321d9693d
6
+ metadata.gz: 4fae9c66dfb2152f0a79ac99016eb57a9f66704941ea3082f96b1ab32540e4918e62435c1dd063eb64216dccf31382dfc8192aa38d4668fbc2727fbeb21c8783
7
+ data.tar.gz: 9f20addb2913815d7b0bc036a8d7870a8da2664777e5af3b49fa1319fea35d11bd67bd97ff48ba597c4c1edbbe4bd1fe51c05fc368032c2e3fef609bcd8b9e7e
data/README.md CHANGED
@@ -20,7 +20,9 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- This gem is for the DataStore product offered by [FlexQuery](flexquery.com). It provides an ORM mapping on top of the DataStore database.
23
+ The main use of this gem is to help gain access to data in a Retail Pro 8 or Retail Pro 9 system so you can build your own tools on top of Retail Pro, or migrate all of your existing Retail Pro data to a new inventory management system.
24
+
25
+ This gem does not interface directly with RetailPro, instead it communicates with the DataStore product offered by [FlexQuery](flexquery.com). It provides an ORM mapping on top of the DataStore database.
24
26
 
25
27
  [DataMapper](http://datamapper.org/) was used as the ORM library. You can use [DataMapper query methods](http://datamapper.org/docs/find.html) on all objects created by this gem.
26
28
 
@@ -76,6 +78,11 @@ vendor = DataStore::Vendor.first
76
78
  vendor.variants
77
79
  vendor.products
78
80
  ```
81
+ ### Rake Tasks
82
+ To open up an irb session with this gem loaded in type:
83
+ ```ruby
84
+ rake console
85
+ ```
79
86
 
80
87
  ## Development
81
88
 
Binary file
@@ -22,8 +22,8 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.8"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "rspec", "~> 3.3.0"
25
+ spec.add_development_dependency "rspec", "~> 3.3"
26
26
 
27
- spec.add_runtime_dependency "data_mapper", "~> 1.2.0"
28
- spec.add_runtime_dependency "dm-postgres-adapter", "~> 1.2.0"
27
+ spec.add_runtime_dependency "data_mapper", "~> 1.2"
28
+ spec.add_runtime_dependency "dm-postgres-adapter", "~> 1.2"
29
29
  end
@@ -4,8 +4,6 @@ module DataStore
4
4
  storage_names[:default] = "rp8inventorydepartments"
5
5
  property :dcs, String, field: "dcs", key: true
6
6
 
7
- has n, :variants, child_key: [:dcs]
8
-
9
7
  property :dept, String, field: "dept"
10
8
  property :class, String, field: "class"
11
9
  property :subclass, String, field: "subclass"
@@ -16,9 +14,14 @@ module DataStore
16
14
  property :puredcs, String, field: "puredcs"
17
15
 
18
16
  def products
19
- products = self.variants.uniq { |variant| variant.desc1 }
20
- product_ids = products.map { |product| product.desc1 }
21
- DataStore::Product.all(desc1: product_ids)
17
+ product_ids = repository.adapter
18
+ .select('SELECT desc1 FROM rp8inventoryitems WHERE dcs = ?', self.dcs)
19
+ .uniq
20
+ DataStore::Product.all(desc1: product_ids, unique: true)
21
+ end
22
+
23
+ def variants
24
+ DataStore::Variant.all(dcs: self.dcs)
22
25
  end
23
26
  end
24
27
  end
@@ -0,0 +1,14 @@
1
+ module DataStore
2
+ class PriceLevel
3
+ include DataMapper::Resource
4
+ storage_names[:default] = "rp8inventorypricelevels"
5
+ property :itemsid, Integer, field: "itemsid", key: true
6
+ property :pricelevel, Integer, field: "pricelevel", key: true
7
+
8
+ property :price, Float, field: "p$"
9
+
10
+ def variant
11
+ DataStore::Variant.first(itemsid: self.itemsid)
12
+ end
13
+ end
14
+ end
@@ -4,7 +4,6 @@ module DataStore
4
4
  storage_names[:default] = "rp8inventoryitems"
5
5
  property :desc1, String, field: "desc1", key: true
6
6
 
7
- has n, :variants, child_key: [:desc1]
8
7
  belongs_to :vendor, child_key: [:vendorcode]
9
8
  belongs_to :category, child_key: [:dcs]
10
9
 
@@ -18,5 +17,9 @@ module DataStore
18
17
  property :core, String, field: "udf2"
19
18
  property :udf3, String, field: "udf3"
20
19
  property :stylesid, Integer, field: "stylesid"
20
+
21
+ def variants
22
+ DataStore::Variant.all(desc1: self.desc1)
23
+ end
21
24
  end
22
25
  end
@@ -5,12 +5,17 @@ module DataStore
5
5
  property :itemsid, Integer, field: "itemsid", key: true
6
6
  property :storeno, Integer, field: "storeno", key: true
7
7
 
8
- belongs_to :variant, child_key: [:itemsid]
9
- belongs_to :store, child_key: [:storeno]
10
-
11
8
  property :onhand, Integer, field: "onhand"
12
9
  property :onorder, Integer, field: "onorder"
13
10
  property :received, Integer, field: "received"
14
11
  property :sold, Integer, field: "sold"
12
+
13
+ def variant
14
+ DataStore::Variant.first(itemsid: self.itemsid)
15
+ end
16
+
17
+ def store
18
+ DataStore::Store.first(storeno: self.storeno)
19
+ end
15
20
  end
16
21
  end
@@ -4,9 +4,11 @@ module DataStore
4
4
  storage_names[:default] = "stores"
5
5
  property :storeno, Integer, field: "storeno", key: true
6
6
 
7
- has n, :stocks, child_key: [:storeno]
8
-
9
7
  property :storecode, Integer, field: "storecode"
10
8
  property :name, String, field: "storename"
9
+
10
+ def stocks
11
+ DataStore::Stock.all(storeno: self.storeno)
12
+ end
11
13
  end
12
14
  end
@@ -4,11 +4,9 @@ module DataStore
4
4
  storage_names[:default] = "rp8inventoryitems"
5
5
  property :itemsid, Integer, field: "itemsid", key: true
6
6
 
7
- has n, :stocks, child_key: [:itemsid]
8
- belongs_to :product, child_key: [:desc1]
9
7
  belongs_to :vendor, child_key: [:vendorcode]
10
- belongs_to :category, child_key: [:dcs]
11
8
 
9
+ property :dcs, String, field: "dcs"
12
10
  property :desc1, String, field: "desc1"
13
11
  property :attr, String, field: "attr"
14
12
  property :size, String, field: "size"
@@ -38,5 +36,21 @@ module DataStore
38
36
  property :salediscpercent, Float, field: "salediscpercent"
39
37
  property :saledisc, Integer, field: "saledisc"
40
38
  property :totaltax, Float, field: "totaltax"
39
+
40
+ def price_levels
41
+ DataStore::PriceLevel.all(itemsid: self.itemsid)
42
+ end
43
+
44
+ def product
45
+ DataStore::Product.first(desc1: self.desc1)
46
+ end
47
+
48
+ def stocks
49
+ DataStore::Stock.all(itemsid: self.itemsid)
50
+ end
51
+
52
+ def category
53
+ DataStore::Category.first(dcs: self.dcs)
54
+ end
41
55
  end
42
56
  end
@@ -9,9 +9,11 @@ module DataStore
9
9
  property :name, String, field: "company"
10
10
 
11
11
  def products
12
- products = self.variants.uniq { |variant| variant.desc1 }
13
- product_ids = products.map { |product| product.desc1 }
14
- DataStore::Product.all(desc1: product_ids)
12
+ product_ids = repository.adapter
13
+ .select('SELECT desc1 FROM rp8inventoryitems WHERE vendorcode = ?',
14
+ self.vendorcode)
15
+ .uniq
16
+ DataStore::Product.all(desc1: product_ids, unique: true)
15
17
  end
16
18
  end
17
19
  end
@@ -1,3 +1,3 @@
1
1
  module FlexqueryDatastore
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flexquery_datastore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eli Shkurkin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-09-16 00:00:00.000000000 Z
11
+ date: 2015-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -44,42 +44,42 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.3.0
47
+ version: '3.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.3.0
54
+ version: '3.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: data_mapper
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.2.0
61
+ version: '1.2'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.2.0
68
+ version: '1.2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: dm-postgres-adapter
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.2.0
75
+ version: '1.2'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.2.0
82
+ version: '1.2'
83
83
  description: |-
84
84
  This gem is for the DataStore product offered by FlexQuery (flexquery.com).
85
85
  It provides an ORM layer on top of the DataStore database.
@@ -99,9 +99,11 @@ files:
99
99
  - Rakefile
100
100
  - bin/console
101
101
  - bin/setup
102
+ - flexquery_datastore-0.1.0.gem
102
103
  - flexquery_datastore.gemspec
103
104
  - lib/flexquery_datastore.rb
104
105
  - lib/flexquery_datastore/models/Category.rb
106
+ - lib/flexquery_datastore/models/PriceLevel.rb
105
107
  - lib/flexquery_datastore/models/Product.rb
106
108
  - lib/flexquery_datastore/models/Stock.rb
107
109
  - lib/flexquery_datastore/models/Store.rb