comee_core 0.1.17 → 0.1.18

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
  SHA256:
3
- metadata.gz: 9b56410074ca593540eea5d6f7ae6b84cde6a289d01352df8f0279712ff8915a
4
- data.tar.gz: b9031657fb5b2aa1e489cb4f50e7545514541188576fbe41bebaf502d3f8bfae
3
+ metadata.gz: eee3ab42e5f0909fdd7de5f6d1fc073a4fc79b34a606e3d87e4580b3770ebfb7
4
+ data.tar.gz: 44bc512432f7732f9b2e447d2a2cf0e2d3b54f73f93d6224622957c6c6b874d2
5
5
  SHA512:
6
- metadata.gz: 8de8a1259db2d451974c8d2b96e33c9b68acab91dd96f6fecff19fdca662868e413d4efa773669b018094fc9901eb42ff42024daa3deaa5369be84596815fa23
7
- data.tar.gz: f56ddd6332d346c2479a7bdf9b2c2376b1e24ad0eda002e3b5645a2c01037293be15dbe93c8ada70b4fe73dc9c7797351e03dfb821cd6e7665f87e2a5776fe59
6
+ metadata.gz: 8afe5c968f62a1ce3b4831d6f76fec04818b085f28c8ef14853c84dbdee92768e429757362bf246993387aa0dbedbacac2106444e58497fd60b8f99373c1462f
7
+ data.tar.gz: bd830637c78c8bca22da8bd19baf3e3470c1e7e123fb5f4afb4711a459e0ebd71b28f1e7894af61387a88fe222110efbb127f4c5a822cca8b587c50a443c9a75
@@ -8,6 +8,7 @@ module Comee
8
8
 
9
9
  validates :valid_from, :valid_to, :price, :status, presence: true
10
10
  validates :price, numericality: {greater_than: 0}
11
+ validates :discount, presence: true, numericality: {greater_than_or_equal_to: 0, less_than_or_equal_to: 100}
11
12
  validates :product_id, uniqueness: {scope: [:client_id, :previous_price_id]}
12
13
  validate :validate_price_validity_dates
13
14
 
@@ -7,6 +7,18 @@ module Comee
7
7
  @finish = finish
8
8
  end
9
9
 
10
+ def ==(other)
11
+ self.class == other.class && @start == other.start && @finish == other.finish
12
+ end
13
+
14
+ def <(other)
15
+ instance_of?(other.class) && @start < other.start && @finish < other.finish
16
+ end
17
+
18
+ def >(other)
19
+ instance_of?(other.class) && @start > other.start && @finish > other.finish
20
+ end
21
+
10
22
  def valid?
11
23
  finish > start
12
24
  end
@@ -23,13 +35,25 @@ module Comee
23
35
  false
24
36
  end
25
37
 
38
+ def disjoint?(period)
39
+ @finish < period.start || period.finish < @start
40
+ end
41
+
26
42
  def overlaps?(period)
27
- return true if period.start <= start && start <= period.finish
43
+ return true if period.start <= @start && @start <= period.finish
28
44
 
29
- return true if start <= period.start && period.start <= finish
45
+ return true if @start <= period.start && period.start <= @finish
30
46
 
31
47
  false
32
48
  end
49
+
50
+ def self.compute_next_valid_period(period1, period2)
51
+ return period2 if period1.disjoint?(period2) && period1 < period2
52
+
53
+ return nil if period1 > period2 || period1.contains?(period2)
54
+
55
+ Period.new(period1.finish.advance(days: 1), period2.finish)
56
+ end
33
57
  end
34
58
  end
35
59
  end
@@ -5,6 +5,7 @@ class CreateComeeCoreClientPrices < ActiveRecord::Migration[7.0]
5
5
  t.date :valid_to, null: false
6
6
  t.float :price, null: false
7
7
  t.float :status, null: false, default: 0
8
+ t.integer :discount, null: false
8
9
  t.references :product,
9
10
  null: false,
10
11
  index: {name: "product_on_cccp_indx"},
@@ -1,5 +1,5 @@
1
1
  module Comee
2
2
  module Core
3
- VERSION = "0.1.17"
3
+ VERSION = "0.1.18"
4
4
  end
5
5
  end
@@ -2,7 +2,7 @@ FactoryBot.define do
2
2
  factory :back_order, class: "Comee::Core::BackOrder" do
3
3
  order_number { Faker::Alphanumeric.alpha(number: 10) }
4
4
  order_date { Date.current }
5
- delivery_date { Date.current.advance(month: 1) }
5
+ delivery_date { Date.current.advance(months: 1) }
6
6
  supplier
7
7
  terms { {payment_terms: "NET 30 days", currency: "Euro", freight_terms: "FOB"} }
8
8
  delivery_address { Faker::Address.full_address }
@@ -6,5 +6,6 @@ FactoryBot.define do
6
6
  price { 100 }
7
7
  product
8
8
  client
9
+ discount { 0 }
9
10
  end
10
11
  end
@@ -5,5 +5,6 @@ FactoryBot.define do
5
5
  name { Faker::Name.name }
6
6
  address { Faker::Address.full_address }
7
7
  locale { "en" }
8
+ discount { 0 }
8
9
  end
9
10
  end
@@ -4,6 +4,6 @@ FactoryBot.define do
4
4
  product
5
5
  quantity { 100 }
6
6
  price { 50 }
7
- delivery_date { Date.current.advance(month: 1) }
7
+ delivery_date { Date.current.advance(months: 1) }
8
8
  end
9
9
  end
@@ -2,7 +2,7 @@ FactoryBot.define do
2
2
  factory :sales_order, class: "Comee::Core::SalesOrder" do
3
3
  order_number { Faker::Alphanumeric.alpha(number: 10) }
4
4
  order_date { Date.current }
5
- expected_delivery_date { Date.current.advance(month: 1) }
5
+ expected_delivery_date { Date.current.advance(months: 1) }
6
6
  client
7
7
  client_terms { Faker::Lorem.sentence }
8
8
  payment_no_of_days { 7 }
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.17
4
+ version: 0.1.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-05 00:00:00.000000000 Z
11
+ date: 2023-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_model_serializers