cats_core 1.2.9 → 1.2.13

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: 5663c0eaa392c4615048690c71928842718010535c337326074509dcdfeb8330
4
- data.tar.gz: ed4d00ce0638ff2cb9db16213fef37e5a50b6633fc8aa7e2c18faabab2d0a993
3
+ metadata.gz: 6029b1cb0b5451bb6ca657e53b8fd719bff7ca250bbf24f59620b645666b7411
4
+ data.tar.gz: 5dbc6423c4779a589adcd093aa093bd235ba36165c9fd44ae2a28baeeafdc88b
5
5
  SHA512:
6
- metadata.gz: 75ee5893657e7509a0644856177ef2dcab134f53b15c126e14315ed6ebd150bfb9ddff553d0fc35b6cafbad9d2e79df0387f099428a8226e973bd184f3591b3a
7
- data.tar.gz: ae1a10d375b6c38dd0aeb9221ed46eaa0065a8295c35ef5a3ac17ec6251bb61ed873a4e67541494a6911b2623f5e82e3b455f7f7b114f65cae9fc636ef6e8e2e
6
+ metadata.gz: 8ca3add5b0ade02757372eda5c4c1462f3146080071e8d2bfd01cb782c032666dc1965100bfda15b5537b5f11ce3378ae8071e488eaa9be8e1dd93672cbea059
7
+ data.tar.gz: 5774042cf7bc5d3e518b569a1ad18055596d018b21331555e4cdc6dedc752633b682afaa9691fdaa3794196e677e890272b196076abdf2fa9a6247325a78bc7b
@@ -1,7 +1,7 @@
1
1
  module Cats
2
2
  module Core
3
- class TransportServiceOffer < ApplicationRecord
4
- belongs_to :transport_service_request_item
3
+ class TransportOffer < ApplicationRecord
4
+ belongs_to :transport_request_item
5
5
  belongs_to :transporter
6
6
 
7
7
  validates :price, presence: true, numericality: { greater_than: 0 }
@@ -0,0 +1,46 @@
1
+ module Cats
2
+ module Core
3
+ class TransportRequest < ApplicationRecord
4
+ DRAFT = 'Draft'.freeze
5
+ APPROVED = 'Approved'.freeze
6
+ OPEN = 'Open'.freeze
7
+ CLOSED = 'Closed'.freeze
8
+ STATUSES = [DRAFT, APPROVED, OPEN, CLOSED].freeze
9
+
10
+ belongs_to :requested_by, class_name: 'Cats::Core::User'
11
+ belongs_to :approved_by, class_name: 'Cats::Core::User', optional: true
12
+ has_many :transport_request_items
13
+
14
+ validates :reference_no, :request_date, :status, presence: true
15
+ validates :reference_no, uniqueness: true
16
+ validates :status, inclusion: { in: STATUSES }
17
+
18
+ delegate(:full_name, to: :requested_by, prefix: true, allow_nil: true)
19
+ delegate(:full_name, to: :approved_by, prefix: true, allow_nil: true)
20
+
21
+ def approve(approver)
22
+ raise(StandardError, 'Request is not open for approval.') unless status == DRAFT
23
+
24
+ raise(StandardError, 'Request is empty.') if transport_request_items.count.zero?
25
+
26
+ self.approved_by = approver
27
+ self.status = APPROVED
28
+ save!
29
+ end
30
+
31
+ def open
32
+ raise(StandardError, 'Request is not approved for opening.') unless status == APPROVED
33
+
34
+ self.status = OPEN
35
+ save!
36
+ end
37
+
38
+ def close
39
+ raise(StandardError, 'Request is not open.') unless status == OPEN
40
+
41
+ self.status = CLOSED
42
+ save!
43
+ end
44
+ end
45
+ end
46
+ end
@@ -1,7 +1,7 @@
1
1
  module Cats
2
2
  module Core
3
- class TransportServiceRequestItem < ApplicationRecord
4
- belongs_to :transport_service_request
3
+ class TransportRequestItem < ApplicationRecord
4
+ belongs_to :transport_request
5
5
  belongs_to :source, class_name: 'Cats::Core::Location'
6
6
  belongs_to :destination, class_name: 'Cats::Core::Location'
7
7
  belongs_to :commodity
@@ -1,6 +1,6 @@
1
- class CreateCatsCoreTransportServiceRequests < ActiveRecord::Migration[6.1]
1
+ class CreateCatsCoreTransportRequests < ActiveRecord::Migration[6.1]
2
2
  def change
3
- create_table :cats_core_transport_service_requests do |t|
3
+ create_table :cats_core_transport_requests do |t|
4
4
  t.string :reference_no, unique: true
5
5
  t.date :request_date, null: false
6
6
  t.string :status, null: false, default: 'Draft'
@@ -1,21 +1,21 @@
1
- class CreateCatsCoreTransportServiceRequestItems < ActiveRecord::Migration[6.1]
1
+ class CreateCatsCoreTransportRequestItems < ActiveRecord::Migration[6.1]
2
2
  def change
3
- create_table :cats_core_transport_service_request_items do |t|
4
- t.references :transport_service_request,
3
+ create_table :cats_core_transport_request_items do |t|
4
+ t.references :transport_request,
5
5
  null: false,
6
- index: { name: 'tsri_on_tsr_indx' },
7
- foreign_key: { to_table: :cats_core_transport_service_requests }
6
+ index: { name: 'tri_on_tr_indx' },
7
+ foreign_key: { to_table: :cats_core_transport_requests }
8
8
  t.references :source,
9
9
  null: false,
10
- index: { name: 'tsri_on_source_indx' },
10
+ index: { name: 'tri_on_source_indx' },
11
11
  foreign_key: { to_table: :cats_core_locations }
12
12
  t.references :destination,
13
13
  null: false,
14
- index: { name: 'tsri_on_destination_indx'},
14
+ index: { name: 'tri_on_destination_indx'},
15
15
  foreign_key: { to_table: :cats_core_locations }
16
16
  t.references :commodity,
17
17
  null: false,
18
- index: { name: 'tsri_on_commodity_indx' },
18
+ index: { name: 'tri_on_commodity_indx' },
19
19
  foreign_key: { to_table: :cats_core_commodities }
20
20
 
21
21
  t.timestamps
@@ -0,0 +1,17 @@
1
+ class CreateCatsCoreTransportOffers < ActiveRecord::Migration[6.1]
2
+ def change
3
+ create_table :cats_core_transport_offers do |t|
4
+ t.references :transport_request_item,
5
+ null: false,
6
+ index: { name: 'to_on_tri_indx' },
7
+ foreign_key: { to_table: :cats_core_transport_request_items }
8
+ t.references :transporter,
9
+ null: false,
10
+ index: { name: 'to_on_transporter_indx' },
11
+ foreign_key: { to_table: :cats_core_transporters }
12
+ t.float :price, null: false
13
+
14
+ t.timestamps
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,5 @@
1
1
  module Cats
2
2
  module Core
3
- VERSION = '1.2.9'.freeze
3
+ VERSION = '1.2.13'.freeze
4
4
  end
5
5
  end
@@ -0,0 +1,7 @@
1
+ FactoryBot.define do
2
+ factory :transport_offer, class: 'Cats::Core::TransportOffer' do
3
+ transport_request_item
4
+ transporter
5
+ price { 100 }
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ FactoryBot.define do
2
+ factory :transport_request_item, class: 'Cats::Core::TransportRequestItem' do
3
+ transport_request
4
+ source factory: :location
5
+ destination factory: :location
6
+ commodity
7
+ end
8
+ end
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :transport_service_request, class: 'Cats::Core::TransportServiceRequest' do
2
+ factory :transport_request, class: 'Cats::Core::TransportRequest' do
3
3
  reference_no { FFaker::Name.name }
4
4
  request_date { Date.today }
5
5
  requested_by factory: :user
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cats_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.9
4
+ version: 1.2.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.
@@ -287,9 +287,9 @@ files:
287
287
  - app/models/cats/core/store.rb
288
288
  - app/models/cats/core/supplier.rb
289
289
  - app/models/cats/core/transaction.rb
290
- - app/models/cats/core/transport_service_offer.rb
291
- - app/models/cats/core/transport_service_request.rb
292
- - app/models/cats/core/transport_service_request_item.rb
290
+ - app/models/cats/core/transport_offer.rb
291
+ - app/models/cats/core/transport_request.rb
292
+ - app/models/cats/core/transport_request_item.rb
293
293
  - app/models/cats/core/transporter.rb
294
294
  - app/models/cats/core/unit_of_measure.rb
295
295
  - app/models/cats/core/user.rb
@@ -359,9 +359,9 @@ files:
359
359
  - db/migrate/20211002050739_create_cats_core_notification_rules.rb
360
360
  - db/migrate/20211024063240_add_status_to_cats_core_rhn_requests.rb
361
361
  - db/migrate/20211030133752_add_status_to_cats_core_commodities.rb
362
- - db/migrate/20211209155113_create_cats_core_transport_service_requests.rb
363
- - db/migrate/20211209155915_create_cats_core_transport_service_request_items.rb
364
- - db/migrate/20211209160126_create_cats_core_transport_service_offers.rb
362
+ - db/migrate/20211209155113_create_cats_core_transport_requests.rb
363
+ - db/migrate/20211209155915_create_cats_core_transport_request_items.rb
364
+ - db/migrate/20211209160126_create_cats_core_transport_offers.rb
365
365
  - lib/cats/core.rb
366
366
  - lib/cats/core/engine.rb
367
367
  - lib/cats/core/version.rb
@@ -403,9 +403,9 @@ files:
403
403
  - spec/factories/cats/core/stacks.rb
404
404
  - spec/factories/cats/core/stores.rb
405
405
  - spec/factories/cats/core/suppliers.rb
406
- - spec/factories/cats/core/transport_service_offers.rb
407
- - spec/factories/cats/core/transport_service_request_items.rb
408
- - spec/factories/cats/core/transport_service_requests.rb
406
+ - spec/factories/cats/core/transport_offers.rb
407
+ - spec/factories/cats/core/transport_request_items.rb
408
+ - spec/factories/cats/core/transport_requests.rb
409
409
  - spec/factories/cats/core/transporters.rb
410
410
  - spec/factories/cats/core/unit_of_measures.rb
411
411
  - spec/factories/cats/core/users.rb
@@ -1,19 +0,0 @@
1
- module Cats
2
- module Core
3
- class TransportServiceRequest < ApplicationRecord
4
- DRAFT = 'Draft'.freeze
5
- APPROVED = 'Approved'.freeze
6
- STATUSES = [DRAFT, APPROVED].freeze
7
-
8
- belongs_to :requested_by, class_name: 'Cats::Core::User'
9
- belongs_to :approved_by, class_name: 'Cats::Core::User', optional: true
10
-
11
- validates :reference_no, :request_date, :status, presence: true
12
- validates :reference_no, uniqueness: true
13
- validates :status, inclusion: { in: STATUSES }
14
-
15
- delegate(:full_name, to: :requested_by, prefix: true, allow_nil: true)
16
- delegate(:full_name, to: :approved_by, prefix: true, allow_nil: true)
17
- end
18
- end
19
- end
@@ -1,17 +0,0 @@
1
- class CreateCatsCoreTransportServiceOffers < ActiveRecord::Migration[6.1]
2
- def change
3
- create_table :cats_core_transport_service_offers do |t|
4
- t.references :transport_service_request_item,
5
- null: false,
6
- index: { name: 'tso_on_tsri_indx' },
7
- foreign_key: { to_table: :cats_core_transport_service_request_items }
8
- t.references :transporter,
9
- null: false,
10
- index: { name: 'tso_on_transporter_indx' },
11
- foreign_key: { to_table: :cats_core_transporters }
12
- t.float :price, null: false
13
-
14
- t.timestamps
15
- end
16
- end
17
- end
@@ -1,7 +0,0 @@
1
- FactoryBot.define do
2
- factory :transport_service_offer, class: 'Cats::Core::TransportServiceOffer' do
3
- transport_service_request_item
4
- transporter
5
- price { 100 }
6
- end
7
- end
@@ -1,8 +0,0 @@
1
- FactoryBot.define do
2
- factory :transport_service_request_item, class: 'Cats::Core::TransportServiceRequestItem' do
3
- transport_service_request
4
- source factory: :location
5
- destination factory: :location
6
- commodity
7
- end
8
- end