subj_models 0.3.8 → 0.4
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/.gitignore +1 -0
- data/lib/subj_models/access_group.rb +22 -0
- data/lib/subj_models/action.rb +31 -0
- data/lib/subj_models/attribute_value.rb +32 -0
- data/lib/subj_models/brand.rb +5 -5
- data/lib/subj_models/brand_line.rb +2 -2
- data/lib/subj_models/category.rb +36 -0
- data/lib/subj_models/city.rb +31 -0
- data/lib/subj_models/content_block.rb +25 -0
- data/lib/subj_models/event_schedule.rb +4 -4
- data/lib/subj_models/event_type.rb +27 -0
- data/lib/subj_models/faq.rb +55 -0
- data/lib/subj_models/global_notification.rb +16 -0
- data/lib/subj_models/measure_unit.rb +2 -2
- data/lib/subj_models/nomenclature2.rb +157 -0
- data/lib/subj_models/nomenclature_access_group.rb +19 -0
- data/lib/subj_models/nomenclature_attribute.rb +27 -0
- data/lib/subj_models/nomenclature_price.rb +38 -0
- data/lib/subj_models/nomenclature_review.rb +38 -0
- data/lib/subj_models/nomenclature_variety.rb +29 -0
- data/lib/subj_models/office.rb +33 -0
- data/lib/subj_models/office_contact.rb +45 -0
- data/lib/subj_models/order.rb +77 -0
- data/lib/subj_models/order_delivery_courier.rb +31 -0
- data/lib/subj_models/order_delivery_nova_poshta_warhouse.rb +17 -0
- data/lib/subj_models/order_delivery_pickup.rb +28 -0
- data/lib/subj_models/order_delivery_privatbank.rb +30 -0
- data/lib/subj_models/order_delivery_subj_courier.rb +24 -0
- data/lib/subj_models/order_item.rb +55 -0
- data/lib/subj_models/quality.rb +21 -0
- data/lib/subj_models/specialist_activity.rb +33 -0
- data/lib/subj_models/specialist_activity_document_type.rb +29 -0
- data/lib/subj_models/template.rb +2 -0
- data/lib/subj_models/user.rb +10 -9
- data/lib/subj_models/user_card.rb +29 -0
- data/lib/subj_models/user_delivery_address.rb +34 -0
- data/lib/subj_models/user_specialization.rb +24 -0
- data/lib/subj_models/user_work_place.rb +29 -0
- data/lib/subj_models/version.rb +1 -1
- data/lib/subj_models.rb +31 -0
- metadata +33 -2
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
|
3
|
+
module SubjModels
|
4
|
+
|
5
|
+
module Office
|
6
|
+
|
7
|
+
def self.included(including_class)
|
8
|
+
|
9
|
+
including_class.class_eval do
|
10
|
+
|
11
|
+
include SubjModels::ComprisingExternalId
|
12
|
+
|
13
|
+
belongs_to :city
|
14
|
+
|
15
|
+
has_many :event_schedules
|
16
|
+
has_many :order_delivery_pickups
|
17
|
+
has_many :office_contacts, dependent: :destroy
|
18
|
+
|
19
|
+
validates :name, :address, :lat, :lng, presence: true
|
20
|
+
|
21
|
+
scope :main, -> { where(is_main: true ) }
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_s
|
28
|
+
name
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
require 'subj_models/services/values_checker'
|
3
|
+
|
4
|
+
module SubjModels
|
5
|
+
|
6
|
+
module OfficeContact
|
7
|
+
|
8
|
+
include SubjModels::TypesSupport::ContactTypes
|
9
|
+
include SubjModels::ValuesChecker
|
10
|
+
|
11
|
+
def self.included(including_class)
|
12
|
+
|
13
|
+
including_class.class_eval do
|
14
|
+
|
15
|
+
include SubjModels::ComprisingExternalId
|
16
|
+
|
17
|
+
enum contact_type: CONTACT_TYPES
|
18
|
+
|
19
|
+
belongs_to :office
|
20
|
+
belongs_to :manager
|
21
|
+
|
22
|
+
validates :contact_type, inclusion: { in: contact_types.keys }
|
23
|
+
|
24
|
+
scope :is_phone, -> { where(contact_type: PHONE) }
|
25
|
+
scope :is_skype, -> { where(contact_type: SKYPE) }
|
26
|
+
scope :is_address, -> { where(contact_type: ADDRESS) }
|
27
|
+
scope :is_email, -> { where(contact_type: EMAIL) }
|
28
|
+
|
29
|
+
scope :office_id, -> (office_id) { parent_id_scope("office", office_id) }
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
def to_s
|
36
|
+
id.to_s # TODO
|
37
|
+
end
|
38
|
+
|
39
|
+
def contact_type=(value)
|
40
|
+
super(check_string_for_int(value))
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
require 'subj_models/services/values_checker'
|
3
|
+
require 'subj_models/services/types_support'
|
4
|
+
|
5
|
+
module SubjModels
|
6
|
+
|
7
|
+
module Order
|
8
|
+
|
9
|
+
include SubjModels::TypesSupport::OrderStatuses
|
10
|
+
include SubjModels::TypesSupport::DeliveryTypes
|
11
|
+
include SubjModels::TypesSupport::PaymentTypes
|
12
|
+
include SubjModels::ValuesChecker
|
13
|
+
|
14
|
+
def self.included(including_class)
|
15
|
+
|
16
|
+
including_class.class_eval do
|
17
|
+
|
18
|
+
before_create :generate_number
|
19
|
+
|
20
|
+
include SubjModels::ComprisingExternalId
|
21
|
+
|
22
|
+
enum order_status: ORDER_STATUSES
|
23
|
+
enum delivery_type: DELIVERY_TYPES
|
24
|
+
enum payment_type: PAYMENT_TYPES
|
25
|
+
|
26
|
+
belongs_to :user
|
27
|
+
belongs_to :user_delivery_address
|
28
|
+
|
29
|
+
has_one :order_delivery_courier
|
30
|
+
has_one :order_delivery_pickup
|
31
|
+
has_one :order_delivery_privatbank
|
32
|
+
has_one :order_delivery_subj_courier
|
33
|
+
has_one :order_delivery_nova_poshta_warhouse
|
34
|
+
has_many :order_items, dependent: :destroy
|
35
|
+
|
36
|
+
validates :order_status, inclusion: { in: order_statuses.keys }, on: :update
|
37
|
+
validates :delivery_type, inclusion: { in: delivery_types.keys }, on: :update
|
38
|
+
validates :payment_type, inclusion: { in: payment_types.keys }, on: :update
|
39
|
+
validates :total_amount, :order_date, presence: true, on: :update
|
40
|
+
|
41
|
+
scope :user_id, -> user { where(user_id: user) }
|
42
|
+
|
43
|
+
scope :last_order, -> (user_id) do
|
44
|
+
Order.joins(:user).where("users.id" => user_id).last
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
def to_s
|
52
|
+
id.to_s # TODO
|
53
|
+
end
|
54
|
+
|
55
|
+
def order_status=(value)
|
56
|
+
super(check_string_for_int(value))
|
57
|
+
end
|
58
|
+
|
59
|
+
def delivery_type=(value)
|
60
|
+
super(check_string_for_int(value))
|
61
|
+
end
|
62
|
+
|
63
|
+
def payment_type=(value)
|
64
|
+
super(check_string_for_int(value))
|
65
|
+
end
|
66
|
+
|
67
|
+
private
|
68
|
+
|
69
|
+
def generate_number
|
70
|
+
begin
|
71
|
+
self.order_number = "#{Time.now.strftime('%m')}-#{Time.now.strftime('%S%L')}#{rand(100..999)}"
|
72
|
+
end while self.class.exists?(order_number: order_number)
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
|
3
|
+
module SubjModels
|
4
|
+
|
5
|
+
module OrderDeliveryCourier
|
6
|
+
|
7
|
+
def self.included(including_class)
|
8
|
+
|
9
|
+
including_class.class_eval do
|
10
|
+
|
11
|
+
include SubjModels::ComprisingExternalId
|
12
|
+
|
13
|
+
belongs_to :order
|
14
|
+
belongs_to :city
|
15
|
+
|
16
|
+
validates :user_first_name, :user_last_name, :delivery_address, :street_name,
|
17
|
+
:house_number, :delivery_time, presence: true
|
18
|
+
|
19
|
+
scope :order_id, -> (order_id) { parent_id_scope("order", order_id) }
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_s
|
26
|
+
id.to_s # TODO
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
|
3
|
+
module SubjModels
|
4
|
+
|
5
|
+
module OrderDeliveryPickup
|
6
|
+
|
7
|
+
def self.included(including_class)
|
8
|
+
|
9
|
+
including_class.class_eval do
|
10
|
+
|
11
|
+
include SubjModels::ComprisingExternalId
|
12
|
+
|
13
|
+
belongs_to :order
|
14
|
+
belongs_to :office
|
15
|
+
|
16
|
+
scope :order_id, -> (order_id) { parent_id_scope("order", order_id) }
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_s
|
23
|
+
id.to_s # TODO
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
|
3
|
+
module SubjModels
|
4
|
+
|
5
|
+
module OrderDeliveryPrivatbank
|
6
|
+
|
7
|
+
def self.included(including_class)
|
8
|
+
|
9
|
+
including_class.class_eval do
|
10
|
+
|
11
|
+
include SubjModels::ComprisingExternalId
|
12
|
+
|
13
|
+
belongs_to :order
|
14
|
+
belongs_to :city
|
15
|
+
|
16
|
+
validates :privat_bank_address, presence: true
|
17
|
+
|
18
|
+
scope :order_id, -> (order_id) { parent_id_scope("order", order_id) }
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
def to_s
|
25
|
+
id.to_s # TODO
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module SubjModels
|
2
|
+
|
3
|
+
module OrderDeliverySubjCourier
|
4
|
+
|
5
|
+
def self.included(including_class)
|
6
|
+
|
7
|
+
including_class.class_eval do
|
8
|
+
|
9
|
+
belongs_to :order
|
10
|
+
belongs_to :city
|
11
|
+
|
12
|
+
scope :order_id, -> (order_id) { parent_id_scope("order", order_id) }
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
def to_s
|
19
|
+
id.to_s # TODO
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
require 'subj_models/services/values_checker'
|
3
|
+
|
4
|
+
module SubjModels
|
5
|
+
|
6
|
+
module OrderItem
|
7
|
+
|
8
|
+
include SubjModels::TypesSupport::ItemTypes
|
9
|
+
include SubjModels::ValuesChecker
|
10
|
+
|
11
|
+
def self.included(including_class)
|
12
|
+
|
13
|
+
including_class.class_eval do
|
14
|
+
|
15
|
+
include SubjModels::ComprisingExternalId
|
16
|
+
|
17
|
+
before_destroy :update_nomenclature_popularity
|
18
|
+
after_create :update_nomenclature_popularity
|
19
|
+
|
20
|
+
enum item_type: ITEM_TYPES
|
21
|
+
|
22
|
+
belongs_to :order
|
23
|
+
belongs_to :event_schedule
|
24
|
+
belongs_to :nomenclature_variety
|
25
|
+
belongs_to :nomenclature
|
26
|
+
|
27
|
+
validates :item_type, presence: true, inclusion: { in: item_types.keys }
|
28
|
+
validates :item_price, :item_count, presence: true
|
29
|
+
|
30
|
+
scope :order_id, -> (order_id) { parent_id_scope("order", order_id) }
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_s
|
37
|
+
id.to_s # TODO
|
38
|
+
end
|
39
|
+
|
40
|
+
def item_type=(value)
|
41
|
+
super(check_string_for_int(value))
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def update_nomenclature_popularity
|
47
|
+
current_popularity = (nomenclature.popularity && nomenclature.popularity > 0) ? nomenclature.popularity : 0
|
48
|
+
method = transaction_include_any_action?([:create]) ? :+ : :-
|
49
|
+
new_popularity = current_popularity.send(method, self.item_count)
|
50
|
+
nomenclature.update(popularity: new_popularity)
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
|
3
|
+
module SubjModels
|
4
|
+
|
5
|
+
module Quality
|
6
|
+
|
7
|
+
def self.included(including_class)
|
8
|
+
|
9
|
+
including_class.class_eval do
|
10
|
+
|
11
|
+
include SubjModels::ComprisingExternalId
|
12
|
+
|
13
|
+
has_many :nomenclature_prices
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
|
3
|
+
module SubjModels
|
4
|
+
|
5
|
+
module SpecialistActivity
|
6
|
+
|
7
|
+
def self.included(including_class)
|
8
|
+
|
9
|
+
including_class.class_eval do
|
10
|
+
|
11
|
+
include SubjModels::ComprisingExternalId
|
12
|
+
|
13
|
+
has_many :specialist_activity_document_types, dependent: :destroy
|
14
|
+
has_many :user_specialization_approvals, dependent: :destroy
|
15
|
+
has_many :nomenclatures
|
16
|
+
|
17
|
+
belongs_to :document_file
|
18
|
+
|
19
|
+
validates :name, presence: true
|
20
|
+
|
21
|
+
scope :unavailable_for_current_user, -> ids { where.not(id: ids) }
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_s
|
28
|
+
name
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
|
3
|
+
module SubjModels
|
4
|
+
|
5
|
+
module SpecialistActivityDocumentType
|
6
|
+
|
7
|
+
def self.included(including_class)
|
8
|
+
|
9
|
+
including_class.class_eval do
|
10
|
+
|
11
|
+
include SubjModels::ComprisingExternalId
|
12
|
+
|
13
|
+
belongs_to :specialist_activity
|
14
|
+
|
15
|
+
validates :name, presence: true
|
16
|
+
|
17
|
+
scope :specialist_activity_id, -> (specialist_activity_id) { parent_id_scope("specialist_activity", specialist_activity_id) }
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_s
|
24
|
+
name
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
data/lib/subj_models/template.rb
CHANGED
data/lib/subj_models/user.rb
CHANGED
@@ -29,17 +29,17 @@ module SubjModels
|
|
29
29
|
enum user_type: USER_TYPES
|
30
30
|
enum card_receive_type: CARD_RECEIVE_TYPES
|
31
31
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
32
|
+
has_many :orders
|
33
|
+
has_many :user_specialization_approvals, dependent: :destroy
|
34
|
+
has_many :user_cards, dependent: :destroy
|
35
|
+
has_one :user_work_place, dependent: :destroy
|
36
|
+
has_many :user_delivery_addresses, dependent: :destroy
|
37
37
|
|
38
|
-
|
38
|
+
has_and_belongs_to_many :user_specializations
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
40
|
+
belongs_to :document_file
|
41
|
+
belongs_to :city
|
42
|
+
belongs_to :avatar, class_name: "DocumentFile"
|
43
43
|
|
44
44
|
validates :first_name, :last_name, presence: true,
|
45
45
|
on: :update,
|
@@ -101,6 +101,7 @@ module SubjModels
|
|
101
101
|
end
|
102
102
|
|
103
103
|
def available_nomenclature_ids
|
104
|
+
binding.pry
|
104
105
|
Nomenclature.joins(access_groups: [user_specializations: :users]).where("users.id" => self.id).uniq.pluck(:id)
|
105
106
|
end
|
106
107
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
|
3
|
+
module SubjModels
|
4
|
+
|
5
|
+
module UserCard
|
6
|
+
|
7
|
+
def self.included(including_class)
|
8
|
+
|
9
|
+
including_class.class_eval do
|
10
|
+
|
11
|
+
include SubjModels::ComprisingExternalId
|
12
|
+
|
13
|
+
belongs_to :user
|
14
|
+
|
15
|
+
validates :first_digits, :last_digits, :expire_number, :expire_year, presence: true
|
16
|
+
|
17
|
+
scope :user_id, -> (user_id) { parent_id_scope("user", user_id) }
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_s
|
24
|
+
id.to_s # TODO
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
|
3
|
+
module SubjModels
|
4
|
+
|
5
|
+
module UserDeliveryAddress
|
6
|
+
|
7
|
+
def self.included(including_class)
|
8
|
+
|
9
|
+
including_class.class_eval do
|
10
|
+
|
11
|
+
include SubjModels::ComprisingExternalId
|
12
|
+
|
13
|
+
belongs_to :user
|
14
|
+
belongs_to :city
|
15
|
+
|
16
|
+
has_many :orders
|
17
|
+
|
18
|
+
validates :street_name, :house_number, :city, presence: true, unless: :skip_validations
|
19
|
+
|
20
|
+
attr_accessor :skip_validations
|
21
|
+
|
22
|
+
scope :user_id, -> (user_id) { parent_id_scope("user", user_id) }
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_s
|
27
|
+
id.to_s # TODO
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
|
3
|
+
module SubjModels
|
4
|
+
|
5
|
+
module UserSpecialization
|
6
|
+
|
7
|
+
def self.included(including_class)
|
8
|
+
|
9
|
+
including_class.class_eval do
|
10
|
+
|
11
|
+
include SubjModels::ComprisingExternalId
|
12
|
+
|
13
|
+
has_and_belongs_to_many :users
|
14
|
+
has_and_belongs_to_many :access_groups
|
15
|
+
|
16
|
+
scope :user_id, -> (user_id) { parent_id_scope("user", user_id) }
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'subj_models/concerns/comprising_external_id'
|
2
|
+
|
3
|
+
module SubjModels
|
4
|
+
|
5
|
+
module UserWorkPlace
|
6
|
+
|
7
|
+
def self.included(including_class)
|
8
|
+
|
9
|
+
including_class.class_eval do
|
10
|
+
|
11
|
+
include SubjModels::ComprisingExternalId
|
12
|
+
|
13
|
+
belongs_to :user
|
14
|
+
|
15
|
+
validates :work_place_name, presence: true
|
16
|
+
|
17
|
+
scope :user_id, -> (user_id) { parent_id_scope("user", user_id) }
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_s
|
24
|
+
work_place_name
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
data/lib/subj_models/version.rb
CHANGED
data/lib/subj_models.rb
CHANGED
@@ -11,6 +11,37 @@ require 'subj_models/user_specialization_approval'
|
|
11
11
|
require 'subj_models/video'
|
12
12
|
require 'subj_models/nomenclature_file'
|
13
13
|
require 'subj_models/nomenclature_photo'
|
14
|
+
require 'subj_models/nomenclature2'
|
15
|
+
require 'subj_models/content_block'
|
16
|
+
require 'subj_models/city'
|
17
|
+
require 'subj_models/office'
|
18
|
+
require 'subj_models/order_item'
|
19
|
+
require 'subj_models/attribute_value'
|
20
|
+
require 'subj_models/nomenclature_price'
|
21
|
+
require 'subj_models/order'
|
22
|
+
require 'subj_models/user_card'
|
23
|
+
require 'subj_models/user_work_place'
|
24
|
+
require 'subj_models/user_delivery_address'
|
25
|
+
require 'subj_models/user_specialization'
|
26
|
+
require 'subj_models/nomenclature_variety'
|
27
|
+
require 'subj_models/access_group'
|
28
|
+
require 'subj_models/specialist_activity'
|
29
|
+
require 'subj_models/specialist_activity_document_type'
|
30
|
+
require 'subj_models/nomenclature_attribute'
|
31
|
+
require 'subj_models/category'
|
32
|
+
require 'subj_models/nomenclature_review'
|
33
|
+
require 'subj_models/action'
|
34
|
+
require 'subj_models/event_type'
|
35
|
+
require 'subj_models/office_contact'
|
36
|
+
require 'subj_models/order_delivery_courier'
|
37
|
+
require 'subj_models/order_delivery_nova_poshta_warhouse'
|
38
|
+
require 'subj_models/order_delivery_pickup'
|
39
|
+
require 'subj_models/order_delivery_privatbank'
|
40
|
+
require 'subj_models/order_delivery_subj_courier'
|
41
|
+
require 'subj_models/quality'
|
42
|
+
require 'subj_models/nomenclature_access_group'
|
43
|
+
require 'subj_models/faq'
|
44
|
+
require 'subj_models/global_notification'
|
14
45
|
|
15
46
|
module SubjModels
|
16
47
|
|