comee_core 0.1.79 → 0.1.80
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/app/models/comee/core/client.rb +5 -0
- data/app/models/comee/core/client_price.rb +12 -0
- data/app/models/comee/core/master_price.rb +12 -1
- data/db/migrate/20230813235946_create_comee_core_master_prices.rb +4 -0
- data/db/migrate/20230814151601_create_comee_core_client_prices.rb +4 -0
- data/lib/comee/core/version.rb +1 -1
- data/spec/factories/comee/core/client_prices.rb +1 -0
- data/spec/factories/comee/core/master_prices.rb +1 -0
- metadata +3 -3
- /data/db/migrate/{20230914041307_create_comee_core_product_lookups.rb → 20230813041307_create_comee_core_product_lookups.rb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e66de25a6395ee13f7dd5bdf45a79d8fdda48df5037197f499c5000b2cd965e
|
4
|
+
data.tar.gz: f19d317e6465ebadc10aa01674f7e39651e9fa11a8875c62adadd418a8cad0f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0c3b34e1015e9bd2b71d28d575514de6c346d5dc00e073160f28a6cfa15a78172b9b7215154c3f435d395ceeeb1e9062a2ba90a455073f5b752a62b037652b4
|
7
|
+
data.tar.gz: c57d6182fe854968524ef8184c5f92163e0c15e8c7fcf2f81fe46ef2e1b1de1d71587a9edfa609bbfe22ac56b1201a22cf162137829a24b3e462a679c3cf330b
|
@@ -5,11 +5,23 @@ module Comee
|
|
5
5
|
belongs_to :client
|
6
6
|
belongs_to :previous_price, class_name: "Comee::Core::ClientPrice", optional: true
|
7
7
|
belongs_to :next_price, class_name: "Comee::Core::ClientPrice", optional: true
|
8
|
+
belongs_to :product_lookup, optional: true
|
8
9
|
|
9
10
|
validates :price, :margin_type, presence: true
|
10
11
|
validates :price, numericality: {greater_than: 0}
|
11
12
|
validates :margin, presence: true, numericality: {greater_than_or_equal_to: 0, less_than_or_equal_to: 100}
|
12
13
|
validates :product_id, uniqueness: {scope: %i[client_id previous_price_id next_price_id status]}
|
14
|
+
validate :validate_product_lookup
|
15
|
+
|
16
|
+
def validate_product_lookup
|
17
|
+
return unless product_lookup && product && client
|
18
|
+
|
19
|
+
if product_lookup.itemable_id != client_id ||
|
20
|
+
product_lookup.itemable_type != "Comee::Core::Client" ||
|
21
|
+
product_lookup.product_id != product_id
|
22
|
+
errors.add(:product_lookup, "contains wrong client or product.")
|
23
|
+
end
|
24
|
+
end
|
13
25
|
|
14
26
|
def self.ransackable_attributes(_auth_object = nil)
|
15
27
|
%w[
|
@@ -4,11 +4,12 @@ module Comee
|
|
4
4
|
belongs_to :supplier
|
5
5
|
belongs_to :previous_price, class_name: "Comee::Core::MasterPrice", optional: true
|
6
6
|
belongs_to :next_price, class_name: "Comee::Core::MasterPrice", optional: true
|
7
|
+
belongs_to :product_lookup, optional: true
|
7
8
|
|
8
9
|
validates :purchase_price, :selling_price, presence: true
|
9
10
|
validates :margin, presence: true, numericality: {greater_than_or_equal_to: 0, less_than_or_equal_to: 100}
|
10
11
|
validates :product_id, uniqueness: {scope: %i[supplier_id previous_price_id next_price_id status]}
|
11
|
-
validate :validate_primary_price
|
12
|
+
validate :validate_primary_price, :validate_product_lookup
|
12
13
|
|
13
14
|
scope :current_primary, -> { where(primary: true).current }
|
14
15
|
scope :unapplied, -> { where(propagated_to_client: false).current_primary }
|
@@ -30,6 +31,16 @@ module Comee
|
|
30
31
|
errors.add(:base, "There is already a primary price entry for item '#{product.code}'")
|
31
32
|
end
|
32
33
|
|
34
|
+
def validate_product_lookup
|
35
|
+
return unless product_lookup && product && supplier
|
36
|
+
|
37
|
+
if product_lookup.itemable_id != supplier_id ||
|
38
|
+
product_lookup.itemable_type != "Comee::Core::Supplier" ||
|
39
|
+
product_lookup.product_id != product_id
|
40
|
+
errors.add(:product_lookup, "contains wrong supplier or product.")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
33
44
|
def self.ransackable_attributes(_auth_object = nil)
|
34
45
|
%w[
|
35
46
|
valid_from
|
@@ -29,6 +29,10 @@ class CreateComeeCoreMasterPrices < ActiveRecord::Migration[7.0]
|
|
29
29
|
null: true,
|
30
30
|
index: {name: "next_price_on_ccsp_indx"},
|
31
31
|
foreign_key: {to_table: :comee_core_master_prices}
|
32
|
+
t.references :product_lookup,
|
33
|
+
null: true,
|
34
|
+
index: {name: "pl_on_ccmp_indx"},
|
35
|
+
foreign_key: {to_table: :comee_core_product_lookups}
|
32
36
|
t.boolean :propagated_to_client, null: false, default: false
|
33
37
|
|
34
38
|
t.timestamps
|
@@ -27,6 +27,10 @@ class CreateComeeCoreClientPrices < ActiveRecord::Migration[7.0]
|
|
27
27
|
null: true,
|
28
28
|
index: {name: "next_price_on_cccp_indx"},
|
29
29
|
foreign_key: {to_table: :comee_core_client_prices}
|
30
|
+
t.references :product_lookup,
|
31
|
+
null: true,
|
32
|
+
index: {name: "pl_on_cccp_indx"},
|
33
|
+
foreign_key: {to_table: :comee_core_product_lookups}
|
30
34
|
|
31
35
|
t.timestamps
|
32
36
|
end
|
data/lib/comee/core/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: comee_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.80
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henock L.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01-
|
11
|
+
date: 2024-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_model_serializers
|
@@ -401,9 +401,9 @@ files:
|
|
401
401
|
- db/migrate/20230811102708_create_comee_core_customer_order_items.rb
|
402
402
|
- db/migrate/20230812190652_create_comee_core_sales_orders.rb
|
403
403
|
- db/migrate/20230812212844_create_comee_core_sales_order_items.rb
|
404
|
+
- db/migrate/20230813041307_create_comee_core_product_lookups.rb
|
404
405
|
- db/migrate/20230813235946_create_comee_core_master_prices.rb
|
405
406
|
- db/migrate/20230814151601_create_comee_core_client_prices.rb
|
406
|
-
- db/migrate/20230914041307_create_comee_core_product_lookups.rb
|
407
407
|
- db/migrate/20230915205522_create_comee_core_invoices.rb
|
408
408
|
- db/migrate/20230915205648_create_comee_core_invoice_items.rb
|
409
409
|
- db/migrate/20230929115336_create_comee_core_order_sources.rb
|