cats_core 1.1.24 → 1.1.25
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3babdd4703726f7863d05d4b939af06ede31f1b6a0a5a715ad0f13286ea8343a
|
4
|
+
data.tar.gz: 44ed3f59a6099ba17094b8d81232c9e8cf72c6ac95118da99e1e8a23286bebf7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82195965fd9917d53ff286e1d2822302f87c9ecf836b292dc8d647eef5f307a9f84d692b4dd5ff4d6a16dc1c21e9c52109966c39d459052f918cd9ad73c6914b
|
7
|
+
data.tar.gz: f7c58b63d4e6f66b9ba3011a7066175052b5e6aa92c13339d5d975cf3567108c405e5bfb571bd527c8d12f3b24b6d8ba8924f67134c2f28d5941958a9ba2fb89
|
@@ -8,6 +8,27 @@ module Cats
|
|
8
8
|
render json: { success: true, data: serialize(transactions) }
|
9
9
|
end
|
10
10
|
|
11
|
+
def create
|
12
|
+
p = model_params
|
13
|
+
|
14
|
+
# Look for a transaction with the same destination as incoming
|
15
|
+
transaction = Cats::Core::ReceiptTransaction.find_by(
|
16
|
+
source_id: p[:source_id],
|
17
|
+
destination_id: p[:destination_id]
|
18
|
+
)
|
19
|
+
if transaction
|
20
|
+
transaction.quantity += p[:quantity]
|
21
|
+
else
|
22
|
+
transaction = Cats::Core::ReceiptTransaction.new(p)
|
23
|
+
end
|
24
|
+
|
25
|
+
if transaction.save
|
26
|
+
render json: { success: true, data: serialize(transaction) }, status: :created
|
27
|
+
else
|
28
|
+
render json: { success: false, error: transaction.errors.full_messages[0] }, status: :unprocessable_entity
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
11
32
|
private
|
12
33
|
|
13
34
|
def model_params
|
@@ -49,9 +49,11 @@ module Cats
|
|
49
49
|
def assign_role
|
50
50
|
role = Cats::Core::Role.find(params[:role_id])
|
51
51
|
@user.roles << role
|
52
|
-
|
52
|
+
|
53
|
+
case role.name
|
54
|
+
when 'warehouse_manager'
|
53
55
|
@user.add_detail(:warehouse, params[:warehouse_id])
|
54
|
-
|
56
|
+
when 'hub_manager'
|
55
57
|
@user.add_detail(:hub, params[:hub_id])
|
56
58
|
end
|
57
59
|
|
@@ -62,7 +64,7 @@ module Cats
|
|
62
64
|
def revoke_role
|
63
65
|
role = Cats::Core::Role.find(params[:role_id])
|
64
66
|
@user.roles.delete(role)
|
65
|
-
@user.remove_detail(role.name) if [
|
67
|
+
@user.remove_detail(role.name) if %w[warehouse_manager hub_manager].include?(role.name)
|
66
68
|
data = ActiveModelSerializers::SerializableResource.new(role)
|
67
69
|
render json: { success: true, data: data }
|
68
70
|
end
|
@@ -18,6 +18,9 @@ module Cats
|
|
18
18
|
return unless quantity.present? && source.present?
|
19
19
|
|
20
20
|
total = self.class.where(source: source).sum(:quantity)
|
21
|
+
|
22
|
+
total -= quantity_was if id
|
23
|
+
|
21
24
|
diff = source.quantity - total
|
22
25
|
errors.add(:quantity, "total is higher than source quantity (Max = #{diff}).") if quantity > diff
|
23
26
|
end
|
data/lib/cats/core/version.rb
CHANGED
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.1.
|
4
|
+
version: 1.1.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henock L.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_model_serializers
|