cats_core 1.4.18 → 1.4.19

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: 3e9cb9c40a02753dac38f29bc222ca8f49af59d44f952126919be10544c4fe30
4
- data.tar.gz: 6c96f5a25060732795cd874c04d8f41f711597015e0d49586bbbcf91b171a72f
3
+ metadata.gz: 4f2cc951417c8b5c1586ad4deb540c51e54177eac53c54a689f31c35bfbfbb67
4
+ data.tar.gz: f25cbb325f2eb8b8c9081ec0660b3c3028fe45ee0b7f003c40e96c91cdfebd15
5
5
  SHA512:
6
- metadata.gz: 28a2461af42fd0325081029bd524488716f838e4574ae2bec6589f328b2731189b0b108d9909e426734b502608c7a02de1cc3c1ab7514c12dd97c1a9b2a08a25
7
- data.tar.gz: 7a9f3d7e2f05170d74387a034e2ef0c9205c9e1f1bc0d95dcb470fb29099e64a002d250d126f5cd098b1d01af8d7f5cd41d38f239e62bb66c1156107e6b1a2b0
6
+ metadata.gz: 610169114a8fd878d1fd47b771f55a5bfef3e79c3d660b8148642a8fd9def6e018f4cea2b6cda50ee381970f2bee3e9e98ff5d5f0a3f66436d340b8334e4bf75
7
+ data.tar.gz: b0d90834aba82fd86dfb53bd6b51a875ff1131c4a3096813d6132efc860915e89ea4dd63c7272518158af8c0d21b355557e055b86d08938e82f063ce743a8f0a
@@ -13,7 +13,7 @@ module Cats
13
13
 
14
14
  validates :status, presence: true, inclusion: { in: STATUSES }
15
15
  validates :order_date, presence: true
16
- validate :validate_against_requisition
16
+ validate :validate_against_requisition, :validate_status
17
17
 
18
18
  delegate(:full_name, to: :prepared_by, prefix: true)
19
19
  delegate(:full_name, to: :approved_by, prefix: true, allow_nil: true)
@@ -26,6 +26,30 @@ module Cats
26
26
 
27
27
  errors.add(:transport_requisition, 'is not approved.')
28
28
  end
29
+
30
+ def validate_status
31
+ return unless status
32
+
33
+ return if status == DRAFT
34
+
35
+ return if transport_order_items.count.positive?
36
+
37
+ errors.add(:status, 'cannot be set to "APPROVED" because the order has no items.') if status == APPROVED
38
+ end
39
+
40
+ def approve(user)
41
+ raise(StandardError, 'Transport order is already approved.') if status == APPROVED
42
+
43
+ begin
44
+ self.status = APPROVED
45
+ self.approved_by = user
46
+ save!
47
+ self
48
+ rescue ActiveRecord::RecordInvalid => e
49
+ error = e.record.errors.full_messages_for(:status)[0]
50
+ raise(StandardError, error)
51
+ end
52
+ end
29
53
  end
30
54
  end
31
55
  end
@@ -26,11 +26,12 @@ module Cats
26
26
  quantities.sum
27
27
  end
28
28
 
29
- def approve
29
+ def approve(user)
30
30
  raise(StandardError, 'Transport requisition is already approved.') if status == APPROVED
31
31
 
32
32
  begin
33
33
  self.status = APPROVED
34
+ self.approved_by = user
34
35
  save!
35
36
  self
36
37
  rescue ActiveRecord::RecordInvalid => e
@@ -1,5 +1,5 @@
1
1
  module Cats
2
2
  module Core
3
- VERSION = '1.4.18'.freeze
3
+ VERSION = '1.4.19'.freeze
4
4
  end
5
5
  end
@@ -9,8 +9,9 @@ FactoryBot.define do
9
9
 
10
10
  trait :approved do
11
11
  after(:create) do |requisition|
12
+ user = create(:user)
12
13
  create(:transport_requisition_item, transport_requisition: requisition)
13
- requisition.approve
14
+ requisition.approve(user)
14
15
  end
15
16
  end
16
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cats_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.18
4
+ version: 1.4.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.