subj_sub_models 0.0.3.25 → 0.0.3.26
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 +4 -4
- data/lib/subj_models/concerns/records_union.rb +15 -0
- data/lib/subj_models/nomenclature.rb +4 -5
- data/lib/subj_models/user.rb +3 -1
- data/lib/subj_models/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fce6ce8300b955f3b964930c019699991c4588a0
|
4
|
+
data.tar.gz: aae15f23a478110ab92354cde71d289635fae7eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0416e17adecd52ced25e337312ab5d38b25e805784009906bda82d4ef82b2cb5364c4e10010a95e0c42a2d9d35252605da3c6b05a51e13fbdc43fd2d6aab0a8c
|
7
|
+
data.tar.gz: 21a2419b12c711fb29ae1d7810e45e45cdcb35df81eed1143e654504adabbab74e97565531737951b5803147f871a4dc3f2bec60ef2bfb8ddb4977a1d0812090
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module SubjModels
|
2
|
+
module RecordsUnion
|
3
|
+
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
module ClassMethods
|
7
|
+
def union(relations, opts={})
|
8
|
+
query = 'SELECT '+ (opts[:distinct] ? 'DISTINCT ' : '' ) + (!opts[:fields].blank? ? opts[:fields].map(&:to_s).join(' ') : '*') + ' FROM ((' + relations.map { |r| r.ast.to_sql }.join(') UNION (') + ')) AS t'
|
9
|
+
query << " ORDER BY #{opts[:order]}" if opts[:order]
|
10
|
+
query << " LIMIT #{opts[:limit]}" if opts[:limit]
|
11
|
+
find_by_sql(query)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'subj_models/concerns/comprising_external_id'
|
3
|
+
require 'subj_models/concerns/records_union'
|
3
4
|
|
4
5
|
module SubjModels
|
5
6
|
|
@@ -10,6 +11,7 @@ module SubjModels
|
|
10
11
|
including_class.class_eval do
|
11
12
|
|
12
13
|
include SubjModels::ComprisingExternalId
|
14
|
+
include SubjModels::RecordsUnion
|
13
15
|
|
14
16
|
belongs_to :brand_line
|
15
17
|
belongs_to :brand
|
@@ -48,11 +50,8 @@ module SubjModels
|
|
48
50
|
end
|
49
51
|
|
50
52
|
scope :is_available, -> (params) do
|
51
|
-
|
52
|
-
|
53
|
-
user = User.find_by(id: params.second.to_i)
|
54
|
-
not_professional_ids = Nomenclature.is_professional(false).pluck(:id)
|
55
|
-
ids = user ? user.available_nomenclature_ids.concat(not_professional_ids) : []
|
53
|
+
return all unless params.first == 'true'
|
54
|
+
ids = (user = User.find_by(id: params.second.to_i)) ? user.available_nomenclature_ids : []
|
56
55
|
where(id: ids)
|
57
56
|
end
|
58
57
|
|
data/lib/subj_models/user.rb
CHANGED
@@ -125,7 +125,9 @@ module SubjModels
|
|
125
125
|
end
|
126
126
|
|
127
127
|
def available_nomenclature_ids
|
128
|
-
Nomenclature.joins(access_groups: [user_specializations: :users]).where("users.id" => self.id)
|
128
|
+
nomenclatures_available_for_user = Nomenclature.joins(access_groups: [user_specializations: :users]).where("users.id" => self.id)
|
129
|
+
nomenclatures_with_b2c_prices = Nomenclature.joins(:nomenclature_prices).where('nomenclature_prices.price_type = ?', NomenclaturePrice.price_types['b2c'] )
|
130
|
+
Nomenclature.union([nomenclatures_available_for_user, nomenclatures_with_b2c_prices], distinct: true).map(&:id)
|
129
131
|
end
|
130
132
|
|
131
133
|
def available_categories_ids
|
data/lib/subj_models/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: subj_sub_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.3.
|
4
|
+
version: 0.0.3.26
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- A.Nasa
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -65,6 +65,7 @@ files:
|
|
65
65
|
- lib/subj_models/category.rb
|
66
66
|
- lib/subj_models/city.rb
|
67
67
|
- lib/subj_models/concerns/comprising_external_id.rb
|
68
|
+
- lib/subj_models/concerns/records_union.rb
|
68
69
|
- lib/subj_models/concerns/shared_scopes.rb
|
69
70
|
- lib/subj_models/content_block.rb
|
70
71
|
- lib/subj_models/document_file.rb
|