cats_core 1.0.22 → 1.0.26
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/cats/core/commodity.rb +20 -0
- data/app/models/cats/core/donation.rb +3 -0
- data/app/models/cats/core/gift_certificate.rb +2 -0
- data/app/models/cats/core/purchase_order.rb +2 -0
- data/db/migrate/20210717033223_create_cats_core_commodities.rb +7 -0
- data/lib/cats/core/version.rb +1 -1
- data/spec/factories/cats/core/commodities.rb +4 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f7140f7b94aaf47e0b5cfcb9ad89515a6884a6f59c685d7bf3b10978d2239e8
|
4
|
+
data.tar.gz: d10e11f6f3506f4513921bb85814d1303bea873558c8603241b87df4474aa777
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a63abe18b61954481d0e758aa4a714bc201d2270febe2b86c157806c8ba9a7dafc44399177079fe5bf5bfed3dc916634cfae1a711ab3030ee8c2a95cc9c514a
|
7
|
+
data.tar.gz: 0ec75ce43af82a2dd05e1b3d7836893e273741c7cbb2bc074e49582cf0231b9105d8e4d9b0f0d44a08760dd40cb9bdd83e8b1bbcb4dbbce47ae3711417de64d1
|
@@ -1,17 +1,37 @@
|
|
1
1
|
module Cats
|
2
2
|
module Core
|
3
3
|
class Commodity < ApplicationRecord
|
4
|
+
after_initialize :set_approved
|
5
|
+
|
4
6
|
# Commodity statuses
|
5
7
|
GOOD = 'Good'.freeze
|
6
8
|
DAMAGED = 'Damaged'.freeze
|
7
9
|
COMMODITY_STATUSES = [GOOD, DAMAGED].freeze
|
8
10
|
|
11
|
+
# Arrival Statuses
|
12
|
+
AT_SOURCE = 'At Source'.freeze
|
13
|
+
IN_TRANSIT = 'In Transit'.freeze
|
14
|
+
ARRIVED = 'Arrived'.freeze
|
15
|
+
ARRIVAL_STATUSES = [AT_SOURCE, IN_TRANSIT, ARRIVED].freeze
|
16
|
+
|
9
17
|
belongs_to :unit_of_measure
|
10
18
|
belongs_to :source, polymorphic: true
|
19
|
+
belongs_to :commodity_category
|
11
20
|
|
12
21
|
validates :best_use_before, presence: true
|
22
|
+
validates :batch_no, presence: true, uniqueness: true
|
13
23
|
validates :quantity, presence: true, numericality: { greater_than: 0 }
|
14
24
|
validates :volume_per_metric_ton, numericality: { greater_than: 0, allow_nil: true }
|
25
|
+
validates :arrival_status, presence: true, inclusion: { in: ARRIVAL_STATUSES }
|
26
|
+
|
27
|
+
delegate(:abbreviation, to: :unit_of_measure, prefix: true)
|
28
|
+
delegate(:name, to: :commodity_category, prefix: true)
|
29
|
+
|
30
|
+
def set_approved
|
31
|
+
return unless new_record?
|
32
|
+
|
33
|
+
self.approved = false
|
34
|
+
end
|
15
35
|
end
|
16
36
|
end
|
17
37
|
end
|
@@ -13,6 +13,9 @@ module Cats
|
|
13
13
|
validates :reference_no, uniqueness: true
|
14
14
|
validates :donation_type, inclusion: { in: DONATION_TYPES }
|
15
15
|
validates :currency, :amount, presence: true, if: -> { donation_type == CASH }
|
16
|
+
|
17
|
+
delegate(:name, to: :donor, prefix: true)
|
18
|
+
delegate(:reference_no, to: :hrp, prefix: true)
|
16
19
|
end
|
17
20
|
end
|
18
21
|
end
|
@@ -1,15 +1,22 @@
|
|
1
1
|
class CreateCatsCoreCommodities < ActiveRecord::Migration[6.1]
|
2
2
|
def change
|
3
3
|
create_table :cats_core_commodities do |t|
|
4
|
+
t.string :batch_no, unique: true
|
4
5
|
t.references :unit_of_measure,
|
5
6
|
null: false,
|
6
7
|
index: { name: 'uom_on_commodities_indx' },
|
7
8
|
foreign_key: { to_table: :cats_core_unit_of_measures }
|
9
|
+
t.references :commodity_category,
|
10
|
+
null: false,
|
11
|
+
index: { name: 'cc_on_commodities_indx' },
|
12
|
+
foreign_key: { to_table: :cats_core_commodity_categories }
|
8
13
|
t.references :source, polymorphic: true
|
9
14
|
t.float :quantity, null: false
|
10
15
|
t.string :description
|
11
16
|
t.date :best_use_before, null: false
|
12
17
|
t.float :volume_per_metric_ton
|
18
|
+
t.string :arrival_status, null: false, default: 'At Source'
|
19
|
+
t.boolean :approved, null: false, default: false
|
13
20
|
|
14
21
|
t.timestamps
|
15
22
|
end
|
data/lib/cats/core/version.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
FactoryBot.define do
|
2
2
|
factory :commodity, class: 'Cats::Core::Commodity' do
|
3
|
+
batch_no { FFaker::Name.name }
|
3
4
|
description { FFaker::Name.name }
|
4
5
|
unit_of_measure
|
6
|
+
commodity_category
|
5
7
|
source factory: :gift_certificate
|
6
8
|
quantity { 100 }
|
7
9
|
best_use_before { Date.today + 2.month }
|
8
10
|
volume_per_metric_ton { 10 }
|
11
|
+
arrival_status { Cats::Core::Commodity::AT_SOURCE }
|
12
|
+
approved { false }
|
9
13
|
end
|
10
14
|
end
|