cats_core 1.1.3 → 1.1.7
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 +6 -1
- data/app/controllers/cats/core/locations_controller.rb +3 -33
- data/app/controllers/cats/core/receipt_transactions_controller.rb +13 -0
- data/app/controllers/cats/core/receipts_controller.rb +18 -0
- data/app/models/cats/core/gift_certificate.rb +10 -0
- data/app/models/cats/core/purchase_order.rb +10 -0
- data/app/models/cats/core/receipt.rb +1 -0
- data/app/serializers/cats/core/commodity_serializer.rb +9 -0
- data/app/serializers/cats/core/location_serializer.rb +1 -1
- data/app/serializers/cats/core/receipt_transaction_serializer.rb +8 -0
- data/app/services/cats/core/receipt_service.rb +32 -0
- data/config/routes.rb +8 -1
- data/db/migrate/20210717032330_create_cats_core_donations.rb +1 -0
- data/lib/cats/core/version.rb +1 -1
- data/spec/factories/cats/core/donations.rb +1 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b37b40530cf4eeccf1ae2e3b5c8eb03bd2691196ce628ee9596a855054016de5
|
4
|
+
data.tar.gz: d1e0b7ed6c38bcefcfb3c44e4efa6389de0502de25c677725ac9473cd0eeb414
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3f2d8888ba178611b3b09ac19dc201ee5a7971cfd72171cea12c58e97c0ef4ef65c3713a524e8e712f9495fea15b21edb56d6578a780a9f9b1512808e7dc6f3
|
7
|
+
data.tar.gz: cdef99c802223c7094242ed4781ade0d9dc970b86dabc9ce9d17e9babb0b8c1e232440564a26a23d643c83c30777353f2de9673b90dd7e65f171b213db0b101b
|
@@ -4,7 +4,7 @@ module Cats
|
|
4
4
|
include Common
|
5
5
|
|
6
6
|
before_action :set_service, only: %i[create_receipt_authorization approve start search confirm]
|
7
|
-
before_action :set_dispatch, only: %i[approve start confirm]
|
7
|
+
before_action :set_dispatch, only: %i[approve start confirm commodity]
|
8
8
|
|
9
9
|
def index
|
10
10
|
dispatches = Cats::Core::Dispatch.where(allocation_item_id: params[:id])
|
@@ -56,6 +56,11 @@ module Cats
|
|
56
56
|
render json: { success: true, data: serialize(data) }
|
57
57
|
end
|
58
58
|
|
59
|
+
def commodity
|
60
|
+
data = @dispatch.allocation_item.allocation.commodity
|
61
|
+
render json: { success: true, data: serialize(data) }
|
62
|
+
end
|
63
|
+
|
59
64
|
private
|
60
65
|
|
61
66
|
def set_service
|
@@ -1,50 +1,20 @@
|
|
1
1
|
module Cats
|
2
2
|
module Core
|
3
3
|
class LocationsController < ApplicationController
|
4
|
-
|
4
|
+
include Common
|
5
5
|
|
6
6
|
def index
|
7
7
|
locations = Cats::Core::Location.where(location_type: params[:location_type])
|
8
|
-
data
|
9
|
-
render json: { success: true, data: data }
|
10
|
-
end
|
11
|
-
|
12
|
-
def show
|
13
|
-
data = ActiveModelSerializers::SerializableResource.new(@location)
|
14
|
-
render json: { success: true, data: data }
|
8
|
+
render json: { success: true, data: serialize(locations) }
|
15
9
|
end
|
16
10
|
|
17
11
|
def children
|
18
12
|
parent = Cats::Core::Location.find(params[:id])
|
19
|
-
data
|
20
|
-
render json: { success: true, data: data }
|
21
|
-
end
|
22
|
-
|
23
|
-
def create
|
24
|
-
obj = Cats::Core::Location.new(model_params)
|
25
|
-
if obj.save
|
26
|
-
data = ActiveModelSerializers::SerializableResource.new(obj)
|
27
|
-
render json: { success: true, data: data }, status: :created
|
28
|
-
else
|
29
|
-
render json: { success: false, error: obj.errors.full_messages[0] }, status: :unprocessable_entity
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def update
|
34
|
-
if @location.update(model_params)
|
35
|
-
data = ActiveModelSerializers::SerializableResource.new(@location)
|
36
|
-
render json: { success: true, data: data }
|
37
|
-
else
|
38
|
-
render json: { success: false, error: @location.errors.full_messages[0] }, status: :unprocessable_entity
|
39
|
-
end
|
13
|
+
render json: { success: true, data: serialize(parent.children) }
|
40
14
|
end
|
41
15
|
|
42
16
|
private
|
43
17
|
|
44
|
-
def set_location
|
45
|
-
@location = Cats::Core::Location.find(params[:id])
|
46
|
-
end
|
47
|
-
|
48
18
|
def model_params
|
49
19
|
params.require(:payload).permit(:code, :name, :location_type, :description, :parent_id)
|
50
20
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Cats
|
2
|
+
module Core
|
3
|
+
class ReceiptTransactionsController < ApplicationController
|
4
|
+
include Common
|
5
|
+
|
6
|
+
private
|
7
|
+
|
8
|
+
def model_params
|
9
|
+
params.require(:payload).permit(:source_id, :destination_id, :transaction_date, :quantity)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -8,6 +8,24 @@ module Cats
|
|
8
8
|
render json: { success: true, data: serialize(receipts) }
|
9
9
|
end
|
10
10
|
|
11
|
+
def start_stacking
|
12
|
+
receipt = Cats::Core::Receipt.find(params[:id])
|
13
|
+
service = ReceiptService.new
|
14
|
+
result = service.start_stacking(receipt)
|
15
|
+
render json: { success: true, data: serialize(result) }
|
16
|
+
rescue StandardError => e
|
17
|
+
render json: { success: false, error: e.message }
|
18
|
+
end
|
19
|
+
|
20
|
+
def stack
|
21
|
+
receipt = Cats::Core::Receipt.find(params[:id])
|
22
|
+
service = ReceiptService.new
|
23
|
+
result = service.stack(receipt)
|
24
|
+
render json: { success: true, data: serialize(result) }
|
25
|
+
rescue StandardError => e
|
26
|
+
render json: { success: false, error: e.message }
|
27
|
+
end
|
28
|
+
|
11
29
|
private
|
12
30
|
|
13
31
|
def model_params
|
@@ -5,6 +5,16 @@ module Cats
|
|
5
5
|
|
6
6
|
validates :reference_no, presence: true, uniqueness: true
|
7
7
|
validates :gift_date, presence: true
|
8
|
+
|
9
|
+
after_create :update_donation
|
10
|
+
|
11
|
+
def update_donation
|
12
|
+
donation = self.donation
|
13
|
+
return if donation.active
|
14
|
+
|
15
|
+
donation.active = true
|
16
|
+
donation.save!
|
17
|
+
end
|
8
18
|
end
|
9
19
|
end
|
10
20
|
end
|
@@ -8,6 +8,16 @@ module Cats
|
|
8
8
|
validates :reference_no, uniqueness: true
|
9
9
|
|
10
10
|
delegate(:name, to: :commodity_category, prefix: true)
|
11
|
+
|
12
|
+
after_create :update_donation
|
13
|
+
|
14
|
+
def update_donation
|
15
|
+
donation = self.donation
|
16
|
+
return if donation.active
|
17
|
+
|
18
|
+
donation.active = true
|
19
|
+
donation.save!
|
20
|
+
end
|
11
21
|
end
|
12
22
|
end
|
13
23
|
end
|
@@ -10,6 +10,7 @@ module Cats
|
|
10
10
|
|
11
11
|
belongs_to :dispatch
|
12
12
|
belongs_to :prepared_by, class_name: 'Cats::Core::User'
|
13
|
+
has_many :receipt_transactions, foreign_key: :source_id
|
13
14
|
|
14
15
|
validates :quantity, :commodity_status, :status, presence: true
|
15
16
|
validates :quantity, numericality: { greater_than: 0 }
|
@@ -0,0 +1,9 @@
|
|
1
|
+
module Cats
|
2
|
+
module Core
|
3
|
+
class CommoditySerializer < ActiveModel::Serializer
|
4
|
+
attributes :id, :batch_no, :description, :unit_of_measure_id, :unit_of_measure_abbreviation, :source_id,
|
5
|
+
:source_type, :source_reference_no, :quantity, :best_use_before, :volume_per_metric_ton,
|
6
|
+
:commodity_category_id, :commodity_category_name, :arrival_status, :approved
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Cats
|
2
|
+
module Core
|
3
|
+
class ReceiptService
|
4
|
+
def start_stacking(receipt)
|
5
|
+
raise(StandardError, 'Receipt should be confirmed.') unless receipt.status == Cats::Core::Receipt::CONFIRMED
|
6
|
+
|
7
|
+
raise(StandardError, 'There are no stack assignments in receipt.') if receipt.receipt_transactions.count.zero?
|
8
|
+
|
9
|
+
receipt.status = Cats::Core::Receipt::STACKING
|
10
|
+
receipt.save!
|
11
|
+
receipt
|
12
|
+
end
|
13
|
+
|
14
|
+
def stack(receipt)
|
15
|
+
unless receipt.status == Cats::Core::Receipt::STACKING
|
16
|
+
raise(StandardError, 'Receipt should be in stacking state.')
|
17
|
+
end
|
18
|
+
|
19
|
+
receipt.status = Cats::Core::Receipt::STACKED
|
20
|
+
stacks = receipt.receipt_transactions.map(&:destination)
|
21
|
+
stacks.each { |stack| stack.stack_status = Cats::Core::Stack::ALLOCATED }
|
22
|
+
|
23
|
+
Cats::Core::Receipt.transaction do
|
24
|
+
receipt.receipt_transactions.each(&:commit)
|
25
|
+
stacks.each(&:save!)
|
26
|
+
receipt.save!
|
27
|
+
end
|
28
|
+
receipt
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/config/routes.rb
CHANGED
@@ -60,11 +60,18 @@ Cats::Core::Engine.routes.draw do
|
|
60
60
|
resources :dispatches, except: %i[index destroy] do
|
61
61
|
member do
|
62
62
|
get 'receipts', controller: :receipts, action: :index
|
63
|
+
get 'commodity'
|
63
64
|
post 'approve'
|
64
65
|
post 'start'
|
65
66
|
post 'confirm'
|
66
67
|
end
|
67
68
|
end
|
68
69
|
resources :dispatch_transactions, except: %i[new edit destroy]
|
69
|
-
resources :receipts, except: %i[index new edit destroy]
|
70
|
+
resources :receipts, except: %i[index new edit destroy] do
|
71
|
+
member do
|
72
|
+
post 'start_stacking'
|
73
|
+
post 'stack'
|
74
|
+
end
|
75
|
+
end
|
76
|
+
resources :receipt_transactions, except: %i[new edit destroy]
|
70
77
|
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.7
|
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-09-
|
11
|
+
date: 2021-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_model_serializers
|
@@ -225,6 +225,7 @@ files:
|
|
225
225
|
- app/controllers/cats/core/locations_controller.rb
|
226
226
|
- app/controllers/cats/core/menus_controller.rb
|
227
227
|
- app/controllers/cats/core/notifications_controller.rb
|
228
|
+
- app/controllers/cats/core/receipt_transactions_controller.rb
|
228
229
|
- app/controllers/cats/core/receipts_controller.rb
|
229
230
|
- app/controllers/cats/core/roles_controller.rb
|
230
231
|
- app/controllers/cats/core/spaces_controller.rb
|
@@ -272,16 +273,19 @@ files:
|
|
272
273
|
- app/models/cats/core/user.rb
|
273
274
|
- app/notifications/cats/core/simple_notification.rb
|
274
275
|
- app/serializers/cats/core/commodity_category_serializer.rb
|
276
|
+
- app/serializers/cats/core/commodity_serializer.rb
|
275
277
|
- app/serializers/cats/core/currency_serializer.rb
|
276
278
|
- app/serializers/cats/core/dispatch_serializer.rb
|
277
279
|
- app/serializers/cats/core/dispatch_transaction_serializer.rb
|
278
280
|
- app/serializers/cats/core/location_serializer.rb
|
279
281
|
- app/serializers/cats/core/receipt_serializer.rb
|
282
|
+
- app/serializers/cats/core/receipt_transaction_serializer.rb
|
280
283
|
- app/serializers/cats/core/role_menu_serializer.rb
|
281
284
|
- app/serializers/cats/core/unit_of_measure_serializer.rb
|
282
285
|
- app/services/cats/core/dispatch_service.rb
|
283
286
|
- app/services/cats/core/menu_service.rb
|
284
287
|
- app/services/cats/core/notification_service.rb
|
288
|
+
- app/services/cats/core/receipt_service.rb
|
285
289
|
- app/services/cats/core/space_service.rb
|
286
290
|
- app/services/cats/core/token_auth_service.rb
|
287
291
|
- config/routes.rb
|