cats_core 1.3.10 → 1.3.14

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: 4b11b523effee1abb0d25abc8f495da5417f4a92d260339588bd30dfd617bd4e
4
- data.tar.gz: adb1c8af3fd35b7d40b6d1b462110dad73b5128dd3a7ab1064c401aef2a9218d
3
+ metadata.gz: 4be4eb5f572d4c38a09f3ddfb775497fd81c0c9e3a9053be1f03bfee51730308
4
+ data.tar.gz: 4bea5f8744afffa22bad84782ba5e40ef433a31b7c11719da8e910d849803d4c
5
5
  SHA512:
6
- metadata.gz: af209110dee908a47a8b8dd6e6bf156a7b9ec72b17aaef38dc2ebb49fc052bc72edb5bd566ac4711a4714c68f9fb81a863a777c2feb7345696d7ed295a30ecc3
7
- data.tar.gz: 7880e17c8a0bebc41bfa79f012ea0e5db7ac1ead2cd00ecd7d3680eae9253d3af76813426ddd492d72985c631e57119f1960e2ffb45b5404a7b0b2efbd7b5044
6
+ metadata.gz: f600c4c2170e448936f7860659533d22039b6815a4890cb9d0af81476c12f9ef7d28c5828887c73f146b44caa6b191bc57101f8b78a85521117e8c0b027ac1f3
7
+ data.tar.gz: 3153dc2e38a2d6f33ac3817ad67250a77a308c8ba3c67d4ced336f6aecea9bc9da64c6b35fc055c77a112f92f1dea5f2e2e618579fe7fe8b1e13e83f83c04838
@@ -1,17 +1,32 @@
1
1
  module Cats
2
2
  module Core
3
3
  class MonthlyPlan < ApplicationRecord
4
- belongs_to :ration
5
4
  belongs_to :plan
6
- belongs_to :regional_request
5
+ belongs_to :region, class_name: 'Cats::Core::Location'
7
6
 
8
7
  has_many :monthly_plan_items
8
+ has_many :monthly_plan_item_details, through: :monthly_plan_items
9
9
  has_many :monthly_rations
10
10
 
11
11
  validates :reference_no, presence: true, uniqueness: true
12
12
  validates :status, presence: true, inclusion: { in: Cats::Core::Plan::STATUSES }
13
+ validates :no_of_days, :month, presence: true, numericality: { greater_than: 0 }
14
+ validate :validate_month, :validate_region
13
15
 
14
- delegate(:reference_no, to: :regional_request, prefix: 'request')
16
+ delegate(:reference_no, to: :plan, prefix: true)
17
+ delegate(:name, to: :region, prefix: true)
18
+
19
+ def validate_month
20
+ return unless month
21
+
22
+ errors.add(:month, 'cannot be greater than 12.') if month > 12
23
+ end
24
+
25
+ def validate_region
26
+ return unless region
27
+
28
+ errors.add(:region, 'is not valid.') unless region.location_type == Cats::Core::Location::REGION
29
+ end
15
30
  end
16
31
  end
17
32
  end
@@ -2,7 +2,7 @@ module Cats
2
2
  module Core
3
3
  class MonthlyPlanItemDetail < ApplicationRecord
4
4
  belongs_to :monthly_plan_item
5
- belongs_to :ration_item
5
+ belongs_to :monthly_ration
6
6
 
7
7
  validates :amount, presence: true, numericality: { greater_than: 0 }
8
8
  end
@@ -6,6 +6,10 @@ module Cats
6
6
  belongs_to :monthly_plan
7
7
 
8
8
  validates :amount, :no_of_days, presence: true, numericality: { greater_than: 0 }
9
+
10
+ delegate(:name, to: :commodity_category, prefix: true)
11
+ delegate(:abbreviation, to: :unit_of_measure, prefix: true)
12
+ delegate(:reference_no, to: :monthly_plan, prefix: true)
9
13
  end
10
14
  end
11
15
  end
@@ -9,11 +9,13 @@ module Cats
9
9
 
10
10
  BELG = 'Belg'.freeze
11
11
  MEHER = 'Meher'.freeze
12
- SEASONS = [BELG, MEHER].freeze
12
+ ANNUAL = 'Annual'.freeze
13
+ SEASONS = [BELG, MEHER, ANNUAL].freeze
13
14
 
14
15
  belongs_to :program
15
16
  belongs_to :ration, optional: true
16
17
  has_many :plan_items
18
+ has_many :plan_item_details, through: :plan_items
17
19
 
18
20
  validates :reference_no, :year, :status, presence: true
19
21
  validates :season, presence: true, inclusion: { in: SEASONS }
@@ -2,19 +2,17 @@ class CreateCatsCoreMonthlyPlans < ActiveRecord::Migration[6.1]
2
2
  def change
3
3
  create_table :cats_core_monthly_plans do |t|
4
4
  t.string :reference_no, unique: true
5
+ t.integer :month, null: false
6
+ t.integer :no_of_days, null: false
5
7
  t.string :status, null: false, default: 'Draft'
6
- t.references :ration,
7
- null: false,
8
- index: { name: 'ration_on_mp_indx' },
9
- foreign_key: { to_table: :cats_core_rations }
10
8
  t.references :plan,
11
9
  null: false,
12
10
  index: { name: 'plan_on_mp_indx' },
13
11
  foreign_key: { to_table: :cats_core_plans }
14
- t.references :regional_request,
12
+ t.references :region,
15
13
  null: false,
16
- index: { name: 'rr_on_mp_indx' },
17
- foreign_key: { to_table: :cats_core_regional_requests }
14
+ index: { name: 'region_on_mp_indx' },
15
+ foreign_key: { to_table: :cats_core_locations }
18
16
 
19
17
  t.timestamps
20
18
  end
@@ -5,10 +5,10 @@ class CreateCatsCoreMonthlyPlanItemDetails < ActiveRecord::Migration[6.1]
5
5
  null: false,
6
6
  index: { name: 'mpi_on_mpid_indx' },
7
7
  foreign_key: { to_table: :cats_core_monthly_plan_items }
8
- t.references :ration_item,
8
+ t.references :monthly_ration,
9
9
  null: false,
10
- index: { name: 'ri_on_mpid_indx' },
11
- foreign_key: { to_table: :cats_core_ration_items }
10
+ index: { name: 'ri_on_mr_indx' },
11
+ foreign_key: { to_table: :cats_core_monthly_rations }
12
12
  t.float :amount, null: false
13
13
 
14
14
  t.timestamps
@@ -1,5 +1,5 @@
1
1
  module Cats
2
2
  module Core
3
- VERSION = '1.3.10'.freeze
3
+ VERSION = '1.3.14'.freeze
4
4
  end
5
5
  end
@@ -1,7 +1,7 @@
1
1
  FactoryBot.define do
2
2
  factory :monthly_plan_item_detail, class: 'Cats::Core::MonthlyPlanItemDetail' do
3
3
  monthly_plan_item
4
- ration_item
4
+ monthly_ration
5
5
  amount { 150 }
6
6
  end
7
7
  end
@@ -2,8 +2,9 @@ FactoryBot.define do
2
2
  factory :monthly_plan, class: 'Cats::Core::MonthlyPlan' do
3
3
  reference_no { FFaker::Name.name }
4
4
  status { Cats::Core::Plan::DRAFT }
5
- ration
6
5
  plan
7
- regional_request
6
+ region factory: :location
7
+ month { 1 }
8
+ no_of_days { 30 }
8
9
  end
9
10
  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.3.10
4
+ version: 1.3.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-07 00:00:00.000000000 Z
11
+ date: 2022-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_model_serializers
@@ -286,7 +286,6 @@ files:
286
286
  - app/models/cats/core/ration_item.rb
287
287
  - app/models/cats/core/receipt.rb
288
288
  - app/models/cats/core/receipt_transaction.rb
289
- - app/models/cats/core/regional_request.rb
290
289
  - app/models/cats/core/rhn_request.rb
291
290
  - app/models/cats/core/role.rb
292
291
  - app/models/cats/core/role_menu.rb
@@ -385,11 +384,10 @@ files:
385
384
  - db/migrate/20211229160128_create_cats_core_contract_items.rb
386
385
  - db/migrate/20211229160129_create_cats_core_commodity_substitutions.rb
387
386
  - db/migrate/20220103152802_create_cats_core_tenderers.rb
388
- - db/migrate/20220105084347_create_cats_core_regional_requests.rb
389
387
  - db/migrate/20220107121752_create_cats_core_monthly_plans.rb
388
+ - db/migrate/20220107124630_create_cats_core_monthly_rations.rb
390
389
  - db/migrate/20220107125025_create_cats_core_monthly_plan_items.rb
391
390
  - db/migrate/20220107132433_create_cats_core_monthly_plan_item_details.rb
392
- - db/migrate/20220107224630_create_cats_core_monthly_rations.rb
393
391
  - lib/cats/core.rb
394
392
  - lib/cats/core/engine.rb
395
393
  - lib/cats/core/version.rb
@@ -430,7 +428,6 @@ files:
430
428
  - spec/factories/cats/core/rations.rb
431
429
  - spec/factories/cats/core/receipt_transactions.rb
432
430
  - spec/factories/cats/core/receipts.rb
433
- - spec/factories/cats/core/regional_requests.rb
434
431
  - spec/factories/cats/core/rhn_requests.rb
435
432
  - spec/factories/cats/core/role_menus.rb
436
433
  - spec/factories/cats/core/roles.rb
@@ -1,36 +0,0 @@
1
- module Cats
2
- module Core
3
- class RegionalRequest < ApplicationRecord
4
- belongs_to :plan
5
- belongs_to :region, class_name: 'Cats::Core::Location'
6
-
7
- validates :reference_no, presence: true, uniqueness: true
8
- validates :beneficiaries, :no_of_days, :month, presence: true, numericality: { greater_than: 0 }
9
- validate :validate_month, :validate_beneficiaries, :validate_region
10
-
11
- delegate(:reference_no, to: :plan, prefix: true)
12
- delegate(:name, to: :region, prefix: true)
13
-
14
- def validate_month
15
- return unless month
16
-
17
- errors.add(:month, 'cannot be greater than 12.') if month > 12
18
- end
19
-
20
- def validate_beneficiaries
21
- return unless beneficiaries
22
-
23
- return unless plan
24
-
25
- total = plan.plan_items.sum(:beneficiaries)
26
- errors.add(:beneficiaries, "cannot be higher than #{total}.") if total < beneficiaries
27
- end
28
-
29
- def validate_region
30
- return unless region
31
-
32
- errors.add(:region, 'is not valid.') unless region.location_type == Cats::Core::Location::REGION
33
- end
34
- end
35
- end
36
- end
@@ -1,20 +0,0 @@
1
- class CreateCatsCoreRegionalRequests < ActiveRecord::Migration[6.1]
2
- def change
3
- create_table :cats_core_regional_requests do |t|
4
- t.string :reference_no, unique: true
5
- t.integer :beneficiaries, null: false
6
- t.integer :month, null: false
7
- t.integer :no_of_days, null: false
8
- t.references :plan,
9
- null: false,
10
- index: { name: 'plan_on_rr_indx' },
11
- foreign_key: { to_table: :cats_core_plans }
12
- t.references :region,
13
- null: false,
14
- index: { name: 'region_on_rr_indx' },
15
- foreign_key: { to_table: :cats_core_locations }
16
-
17
- t.timestamps
18
- end
19
- end
20
- end
@@ -1,14 +0,0 @@
1
- FactoryBot.define do
2
- factory :regional_request, class: 'Cats::Core::RegionalRequest' do
3
- plan do
4
- pl = create(:plan)
5
- 3.times { create(:plan_item, plan: pl, beneficiaries: 100) }
6
- pl
7
- end
8
- region factory: :location
9
- reference_no { FFaker::Name.name }
10
- beneficiaries { 100 }
11
- month { 1 }
12
- no_of_days { 30 }
13
- end
14
- end