cats_core 1.3.6 → 1.3.10

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: d389154de04b724aa275e0366b01e9e95f2403b527166fee74f7e74c52d7b7a7
4
- data.tar.gz: 5479c67c579b82d250c450efee99b911a67ef7456ecf63d9574e9737d83ff81f
3
+ metadata.gz: 4b11b523effee1abb0d25abc8f495da5417f4a92d260339588bd30dfd617bd4e
4
+ data.tar.gz: adb1c8af3fd35b7d40b6d1b462110dad73b5128dd3a7ab1064c401aef2a9218d
5
5
  SHA512:
6
- metadata.gz: 8a0f3e53d4703fec8e3cf60081cf322261f5c087b104c1bca7548c96bb894ffabc61190a17a256105d433f4fb236ad5dc2608b29787cb1b7541947599f9897a6
7
- data.tar.gz: 953f1e60bfc7aa23d97b22785dcf1da05fe7f4881fdae9d0a1e82d60e14a647c7c0069e3b1ec7a941d585ef4a3c2b488b41e191ba87477686f006460e98c3512
6
+ metadata.gz: af209110dee908a47a8b8dd6e6bf156a7b9ec72b17aaef38dc2ebb49fc052bc72edb5bd566ac4711a4714c68f9fb81a863a777c2feb7345696d7ed295a30ecc3
7
+ data.tar.gz: 7880e17c8a0bebc41bfa79f012ea0e5db7ac1ead2cd00ecd7d3680eae9253d3af76813426ddd492d72985c631e57119f1960e2ffb45b5404a7b0b2efbd7b5044
@@ -0,0 +1,17 @@
1
+ module Cats
2
+ module Core
3
+ class MonthlyPlan < ApplicationRecord
4
+ belongs_to :ration
5
+ belongs_to :plan
6
+ belongs_to :regional_request
7
+
8
+ has_many :monthly_plan_items
9
+ has_many :monthly_rations
10
+
11
+ validates :reference_no, presence: true, uniqueness: true
12
+ validates :status, presence: true, inclusion: { in: Cats::Core::Plan::STATUSES }
13
+
14
+ delegate(:reference_no, to: :regional_request, prefix: 'request')
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,12 @@
1
+ module Cats
2
+ module Core
3
+ class MonthlyPlanItem < ApplicationRecord
4
+ belongs_to :monthly_plan
5
+ belongs_to :plan_item
6
+
7
+ has_many :monthly_plan_item_details
8
+
9
+ validates :beneficiaries, presence: true, numericality: { greater_than: 0 }
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ module Cats
2
+ module Core
3
+ class MonthlyPlanItemDetail < ApplicationRecord
4
+ belongs_to :monthly_plan_item
5
+ belongs_to :ration_item
6
+
7
+ validates :amount, presence: true, numericality: { greater_than: 0 }
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ module Cats
2
+ module Core
3
+ class MonthlyRation < ApplicationRecord
4
+ belongs_to :commodity_category
5
+ belongs_to :unit_of_measure
6
+ belongs_to :monthly_plan
7
+
8
+ validates :amount, :no_of_days, presence: true, numericality: { greater_than: 0 }
9
+ end
10
+ end
11
+ end
@@ -2,13 +2,15 @@ module Cats
2
2
  module Core
3
3
  class RegionalRequest < ApplicationRecord
4
4
  belongs_to :plan
5
+ belongs_to :region, class_name: 'Cats::Core::Location'
5
6
 
6
7
  validates :reference_no, presence: true, uniqueness: true
7
8
  validates :beneficiaries, :no_of_days, :month, presence: true, numericality: { greater_than: 0 }
8
- validate :validate_month, :validate_beneficiaries
9
+ validate :validate_month, :validate_beneficiaries, :validate_region
9
10
 
10
11
  delegate(:reference_no, to: :plan, prefix: true)
11
-
12
+ delegate(:name, to: :region, prefix: true)
13
+
12
14
  def validate_month
13
15
  return unless month
14
16
 
@@ -23,6 +25,12 @@ module Cats
23
25
  total = plan.plan_items.sum(:beneficiaries)
24
26
  errors.add(:beneficiaries, "cannot be higher than #{total}.") if total < beneficiaries
25
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
26
34
  end
27
35
  end
28
36
  end
@@ -9,6 +9,10 @@ class CreateCatsCoreRegionalRequests < ActiveRecord::Migration[6.1]
9
9
  null: false,
10
10
  index: { name: 'plan_on_rr_indx' },
11
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 }
12
16
 
13
17
  t.timestamps
14
18
  end
@@ -0,0 +1,22 @@
1
+ class CreateCatsCoreMonthlyPlans < ActiveRecord::Migration[6.1]
2
+ def change
3
+ create_table :cats_core_monthly_plans do |t|
4
+ t.string :reference_no, unique: true
5
+ 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
+ t.references :plan,
11
+ null: false,
12
+ index: { name: 'plan_on_mp_indx' },
13
+ foreign_key: { to_table: :cats_core_plans }
14
+ t.references :regional_request,
15
+ null: false,
16
+ index: { name: 'rr_on_mp_indx' },
17
+ foreign_key: { to_table: :cats_core_regional_requests }
18
+
19
+ t.timestamps
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,17 @@
1
+ class CreateCatsCoreMonthlyPlanItems < ActiveRecord::Migration[6.1]
2
+ def change
3
+ create_table :cats_core_monthly_plan_items do |t|
4
+ t.references :monthly_plan,
5
+ null: false,
6
+ index: { name: 'mp_on_mpi_indx' },
7
+ foreign_key: { to_table: :cats_core_monthly_plans }
8
+ t.integer :beneficiaries, null: false
9
+ t.references :plan_item,
10
+ null: false,
11
+ index: { name: 'pi_on_mpi_indx' },
12
+ foreign_key: { to_table: :cats_core_plan_items }
13
+
14
+ t.timestamps
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ class CreateCatsCoreMonthlyPlanItemDetails < ActiveRecord::Migration[6.1]
2
+ def change
3
+ create_table :cats_core_monthly_plan_item_details do |t|
4
+ t.references :monthly_plan_item,
5
+ null: false,
6
+ index: { name: 'mpi_on_mpid_indx' },
7
+ foreign_key: { to_table: :cats_core_monthly_plan_items }
8
+ t.references :ration_item,
9
+ null: false,
10
+ index: { name: 'ri_on_mpid_indx' },
11
+ foreign_key: { to_table: :cats_core_ration_items }
12
+ t.float :amount, null: false
13
+
14
+ t.timestamps
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ class CreateCatsCoreMonthlyRations < ActiveRecord::Migration[6.1]
2
+ def change
3
+ create_table :cats_core_monthly_rations do |t|
4
+ t.references :commodity_category,
5
+ null: false,
6
+ index: { name: 'cc_on_mr_indx' },
7
+ foreign_key: { to_table: :cats_core_commodity_categories }
8
+ t.float :amount, null: false
9
+ t.references :unit_of_measure,
10
+ null: false,
11
+ index: { name: 'uom_on_mr_indx' },
12
+ foreign_key: { to_table: :cats_core_unit_of_measures }
13
+ t.integer :no_of_days, null: false
14
+ t.references :monthly_plan,
15
+ index: { name: 'mp_on_mr_indx' },
16
+ null: false,
17
+ foreign_key: { to_table: :cats_core_monthly_plans }
18
+
19
+ t.timestamps
20
+ end
21
+ end
22
+ end
@@ -1,5 +1,5 @@
1
1
  module Cats
2
2
  module Core
3
- VERSION = '1.3.6'.freeze
3
+ VERSION = '1.3.10'.freeze
4
4
  end
5
5
  end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :monthly_plan_item_detail, class: 'Cats::Core::MonthlyPlanItemDetail' do
3
+ monthly_plan_item
4
+ ration_item
5
+ amount { 150 }
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :monthly_plan_item, class: 'Cats::Core::MonthlyPlanItem' do
3
+ monthly_plan
4
+ beneficiaries { 100 }
5
+ plan_item
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ FactoryBot.define do
2
+ factory :monthly_plan, class: 'Cats::Core::MonthlyPlan' do
3
+ reference_no { FFaker::Name.name }
4
+ status { Cats::Core::Plan::DRAFT }
5
+ ration
6
+ plan
7
+ regional_request
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ FactoryBot.define do
2
+ factory :monthly_ration, class: 'Cats::Core::MonthlyRation' do
3
+ commodity_category
4
+ amount { 100 }
5
+ unit_of_measure
6
+ no_of_days { 30 }
7
+ monthly_plan
8
+ end
9
+ end
@@ -5,6 +5,7 @@ FactoryBot.define do
5
5
  3.times { create(:plan_item, plan: pl, beneficiaries: 100) }
6
6
  pl
7
7
  end
8
+ region factory: :location
8
9
  reference_no { FFaker::Name.name }
9
10
  beneficiaries { 100 }
10
11
  month { 1 }
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.6
4
+ version: 1.3.10
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-06 00:00:00.000000000 Z
11
+ date: 2022-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_model_serializers
@@ -269,6 +269,10 @@ files:
269
269
  - app/models/cats/core/location.rb
270
270
  - app/models/cats/core/menu.rb
271
271
  - app/models/cats/core/menu_item.rb
272
+ - app/models/cats/core/monthly_plan.rb
273
+ - app/models/cats/core/monthly_plan_item.rb
274
+ - app/models/cats/core/monthly_plan_item_detail.rb
275
+ - app/models/cats/core/monthly_ration.rb
272
276
  - app/models/cats/core/notification.rb
273
277
  - app/models/cats/core/notification_rule.rb
274
278
  - app/models/cats/core/offer_item.rb
@@ -382,6 +386,10 @@ files:
382
386
  - db/migrate/20211229160129_create_cats_core_commodity_substitutions.rb
383
387
  - db/migrate/20220103152802_create_cats_core_tenderers.rb
384
388
  - db/migrate/20220105084347_create_cats_core_regional_requests.rb
389
+ - db/migrate/20220107121752_create_cats_core_monthly_plans.rb
390
+ - db/migrate/20220107125025_create_cats_core_monthly_plan_items.rb
391
+ - db/migrate/20220107132433_create_cats_core_monthly_plan_item_details.rb
392
+ - db/migrate/20220107224630_create_cats_core_monthly_rations.rb
385
393
  - lib/cats/core.rb
386
394
  - lib/cats/core/engine.rb
387
395
  - lib/cats/core/version.rb
@@ -405,6 +413,10 @@ files:
405
413
  - spec/factories/cats/core/locations.rb
406
414
  - spec/factories/cats/core/menu_items.rb
407
415
  - spec/factories/cats/core/menus.rb
416
+ - spec/factories/cats/core/monthly_plan_item_details.rb
417
+ - spec/factories/cats/core/monthly_plan_items.rb
418
+ - spec/factories/cats/core/monthly_plans.rb
419
+ - spec/factories/cats/core/monthly_rations.rb
408
420
  - spec/factories/cats/core/notification_rules.rb
409
421
  - spec/factories/cats/core/notifications.rb
410
422
  - spec/factories/cats/core/offer_items.rb