cats_core 1.1.24 → 1.1.25

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: 0e1e8fc9828a237ea12abdb6c0cf964aa9e0801ea7c5cb95c638071363c728b6
4
- data.tar.gz: 2bc4c46c50608f1c12e99f4dbb50562bde3d255922bfb09fa905e15e24ed277e
3
+ metadata.gz: 3babdd4703726f7863d05d4b939af06ede31f1b6a0a5a715ad0f13286ea8343a
4
+ data.tar.gz: 44ed3f59a6099ba17094b8d81232c9e8cf72c6ac95118da99e1e8a23286bebf7
5
5
  SHA512:
6
- metadata.gz: d66571c610864eda20aea1815fef61697bf83d8cba9063de6623914cdbfdd66d9160bc36575d8e4e688076c813f5982ad6623b8cbc0302340cc42fa35f0eaccc
7
- data.tar.gz: 2e2205cfc0c14723a269dc4e7d9f4e0d09c67234ab8375a403c05c35ec05c37ec2027acff491b82df87b85c93aa0c5993f4352ea2988d9efc28f5cd28a3a242b
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
- if role.name == 'warehouse_manager'
52
+
53
+ case role.name
54
+ when 'warehouse_manager'
53
55
  @user.add_detail(:warehouse, params[:warehouse_id])
54
- elsif role.name =='hub_manager'
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 ['warehouse_manager', 'hub_manager'].include?(role.name)
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
@@ -1,5 +1,5 @@
1
1
  module Cats
2
2
  module Core
3
- VERSION = '1.1.24'.freeze
3
+ VERSION = '1.1.25'.freeze
4
4
  end
5
5
  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.1.24
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-05 00:00:00.000000000 Z
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