cats_core 1.5.23 → 1.5.24
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/controllers/cats/core/dispatches_controller.rb +7 -0
- data/app/controllers/cats/core/stack_transactions_controller.rb +6 -0
- data/app/models/cats/core/dispatch.rb +8 -0
- data/app/models/cats/core/stack_transaction.rb +21 -0
- data/app/notifications/cats/core/dispatch_notification.rb +1 -0
- data/config/routes.rb +6 -1
- data/lib/cats/core/version.rb +1 -1
- data/spec/factories/cats/core/stack_transactions.rb +7 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e90178cd66acd3f96313a3663036ba07bbf157e092e672adc393d840f701cfde
|
4
|
+
data.tar.gz: 7236c8485554e65bc5058bc600bfe25b38465b5d760823c3e96aec29c37ae951
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80fff7d2dae7ed8e2d0fe77339bc0dbcd433d1fba6be6083e0c1e3b118c222912a957c0eee129908016a1fd7b25b1f4c4c931b8ef632fe12943d5b5facd620ce
|
7
|
+
data.tar.gz: '0765604991129318a519ad3960f32a43582f561492972264b027dda9846d87c1255c3009743a3f493386abda67ca9c373184f1d809b06ce5109017a1b96a6da4'
|
@@ -76,6 +76,13 @@ module Cats
|
|
76
76
|
render json: {success: true, data: serialize(data)}
|
77
77
|
end
|
78
78
|
|
79
|
+
def revert
|
80
|
+
data = set_object.revert
|
81
|
+
render json: {success: true, data: serialize(data)}
|
82
|
+
rescue StandardError => e
|
83
|
+
render json: {success: false, error: e.message}
|
84
|
+
end
|
85
|
+
|
79
86
|
private
|
80
87
|
|
81
88
|
def set_service
|
@@ -15,6 +15,12 @@ module Cats
|
|
15
15
|
render json: {success: true, data: serialize(query.result)}
|
16
16
|
end
|
17
17
|
|
18
|
+
def commit
|
19
|
+
transaction = set_object
|
20
|
+
transaction.commit
|
21
|
+
render json: {success: true, data: serialize(transaction)}
|
22
|
+
end
|
23
|
+
|
18
24
|
private
|
19
25
|
|
20
26
|
def model_params
|
@@ -54,6 +54,14 @@ module Cats
|
|
54
54
|
save!
|
55
55
|
end
|
56
56
|
|
57
|
+
def revert
|
58
|
+
raise(StandardError, "Dispatch has to be in approved state.") unless dispatch_status == Dispatch::APPROVED
|
59
|
+
|
60
|
+
self.dispatch_status = DRAFT
|
61
|
+
self.quantity = 0
|
62
|
+
save!
|
63
|
+
end
|
64
|
+
|
57
65
|
def all_authorizations_confirmed?
|
58
66
|
statuses = dispatch_authorizations.map(&:status).uniq
|
59
67
|
return true if statuses.length == 1 && statuses[0] == Authorization::CONFIRMED
|
@@ -5,6 +5,8 @@ module Cats
|
|
5
5
|
belongs_to :destination, class_name: "Cats::Core::Stack"
|
6
6
|
belongs_to :unit, class_name: "Cats::Core::UnitOfMeasure"
|
7
7
|
|
8
|
+
validate :validate_commodity
|
9
|
+
|
8
10
|
def validate_quantity
|
9
11
|
return unless quantity.present? && source.present?
|
10
12
|
|
@@ -15,6 +17,25 @@ module Cats
|
|
15
17
|
|
16
18
|
errors.add(:quantity, "total is higher than source quantity (Max = #{available}).") if quantity > available
|
17
19
|
end
|
20
|
+
|
21
|
+
def validate_commodity
|
22
|
+
return unless source && destination
|
23
|
+
|
24
|
+
return if source.commodity.batch_no == destination.commodity.batch_no
|
25
|
+
|
26
|
+
errors.add(:commodity, "batch number should be the same.")
|
27
|
+
end
|
28
|
+
|
29
|
+
def commit
|
30
|
+
StackTransaction.transaction do
|
31
|
+
source.quantity -= UnitConversion.convert(unit, source.unit, quantity)
|
32
|
+
source.save!
|
33
|
+
destination.quantity += UnitConversion.convert(unit, destination.unit, quantity)
|
34
|
+
destination.save!
|
35
|
+
self.status = COMMITTED
|
36
|
+
save!
|
37
|
+
end
|
38
|
+
end
|
18
39
|
end
|
19
40
|
end
|
20
41
|
end
|
@@ -14,6 +14,7 @@ module Cats
|
|
14
14
|
Commodity with the following details has been dispatched to you:
|
15
15
|
Authorization no. = #{dispatch.dispatch_plan_item.reference_no}
|
16
16
|
Dispatch Ref. = #{dispatch.reference_no}
|
17
|
+
Shipping Ref. = #{commodity.shipping_reference}
|
17
18
|
Batch No. = #{commodity.batch_no}
|
18
19
|
Commodity = #{commodity.name}
|
19
20
|
Allocated Quantity = #{dispatch.dispatch_plan_item.quantity}
|
data/config/routes.rb
CHANGED
@@ -122,6 +122,7 @@ Cats::Core::Engine.routes.draw do
|
|
122
122
|
get "receipts", controller: :receipts, action: :index
|
123
123
|
get "commodity"
|
124
124
|
post "approve"
|
125
|
+
post "revert"
|
125
126
|
post "start"
|
126
127
|
post "confirm"
|
127
128
|
post "start_with_pin"
|
@@ -192,7 +193,11 @@ Cats::Core::Engine.routes.draw do
|
|
192
193
|
resources :dispatch_transactions, except: %i[index new edit destroy]
|
193
194
|
post "/receipt_transactions/filter", controller: :receipt_transactions, action: :filter
|
194
195
|
resources :receipt_transactions, except: %i[index new edit destroy]
|
195
|
-
resources :stack_transactions, except: %i[index new edit destroy]
|
196
|
+
resources :stack_transactions, except: %i[index new edit destroy] do
|
197
|
+
member do
|
198
|
+
post "commit"
|
199
|
+
end
|
200
|
+
end
|
196
201
|
resources :lost_commodities, except: %i[index destroy]
|
197
202
|
get "/plans/:id/round_plans", controller: :round_plans, action: :index, as: :round_plans_plan
|
198
203
|
|
data/lib/cats/core/version.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
FactoryBot.define do
|
2
2
|
factory :stack_transaction, class: "Cats::Core::StackTransaction" do
|
3
|
-
|
4
|
-
|
3
|
+
transient do
|
4
|
+
unit_of_measure { create(:unit_of_measure) }
|
5
|
+
commodity { create(:commodity, unit: unit_of_measure) }
|
6
|
+
end
|
7
|
+
source { association :stack, commodity: commodity }
|
8
|
+
destination { association :stack, commodity: commodity }
|
5
9
|
transaction_date { Date.today }
|
6
10
|
quantity { 25 }
|
7
|
-
unit {
|
11
|
+
unit { unit_of_measure }
|
8
12
|
status { Cats::Core::Transaction::DRAFT }
|
9
13
|
end
|
10
14
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cats_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.24
|
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-
|
11
|
+
date: 2023-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_model_serializers
|