cats_core 1.2.26 → 1.2.30

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: f0b78245442c046287e1a2ddf16e27d33031ebe242b38e6363eaae738e792d92
4
- data.tar.gz: 83613611f8a6a31cab227fbc540afbacc35585c87df76a30ea6eb2bcbd8beb5d
3
+ metadata.gz: 7d71e458593e0bfa2d57ddcba1e5ea4f1392df4223cff0c2b7ef5d1150859463
4
+ data.tar.gz: 4d2798fd1957265c3493ee8dca89b759d674d2e029489dc7382e7a6d5f62b0c4
5
5
  SHA512:
6
- metadata.gz: ef654680cb95d92056bfc92ff73e1c8cc56cddc5f4749428e66a94a4e3fdc7522198091f52009f364b57cd0a03f25049c1fdbe09c2c87e7565b9a520359871a0
7
- data.tar.gz: 33ff4b09f447fcc0a3554b310594ea497de2160b3ff5588118332386b9ad352b126b92dcbc670aa485157c050572b4965d47dc6531193e21e6ea6cab0c7012c9
6
+ metadata.gz: 739d0d54055f96059cfb2818f86026ac46518e3c64eaa81762e984ea803e95650c56f28f11ee738fe29254deeb9b5e76a668b037c0454c40c3e4a308db6001d0
7
+ data.tar.gz: e64a2e770bd662c26218e6d67a1c76d32ddf881deae9e77faecf3aa52628b1f19ac84f71fad4b202dcb200f8cc23aed3c2274f03aa8ff4513fba24b36ee7b254
@@ -6,7 +6,7 @@ module Cats
6
6
  private
7
7
 
8
8
  def model_params
9
- params.require(:payload).permit(:source_id, :destination_id)
9
+ params.require(:payload).permit(:region_id, :source_id, :destination_id)
10
10
  end
11
11
  end
12
12
  end
@@ -8,6 +8,8 @@ module Cats
8
8
  validates :price, presence: true, numericality: { greater_than: 0 }
9
9
 
10
10
  delegate(:name, to: :route, prefix: true)
11
+ delegate(:contract_no, to: :transport_contract, prefix: false)
12
+ delegate(:name, to: :unit, prefix: true)
11
13
  end
12
14
  end
13
15
  end
@@ -3,16 +3,36 @@ module Cats
3
3
  class Route < ApplicationRecord
4
4
  before_validation :set_name, on: %i[create update]
5
5
 
6
+ belongs_to :region, class_name: 'Cats::Core::Location'
6
7
  belongs_to :source, class_name: 'Cats::Core::Location'
7
8
  belongs_to :destination, class_name: 'Cats::Core::Location'
8
9
 
9
10
  validates :source_id, uniqueness: { scope: :destination_id }
11
+ validate :validate_region, :validate_source, :validate_destination
10
12
 
11
13
  def set_name
12
14
  return unless source && destination
13
15
 
14
16
  self.name = "#{source.name} - #{destination.name}"
15
17
  end
18
+
19
+ def validate_region
20
+ return unless region
21
+
22
+ errors.add(:region, 'should be a valid region.') unless region.location_type == Location::REGION
23
+ end
24
+
25
+ def validate_source
26
+ return unless source
27
+
28
+ errors.add(:source, 'cannot be a region.') if source.location_type == Location::REGION
29
+ end
30
+
31
+ def validate_destination
32
+ return unless destination
33
+
34
+ errors.add(:destination, 'cannot be a region.') if destination.location_type == Location::REGION
35
+ end
16
36
  end
17
37
  end
18
38
  end
@@ -5,7 +5,12 @@ module Cats
5
5
  belongs_to :transporter
6
6
  belongs_to :transport_bid
7
7
 
8
+ validates :contract_no, presence: true, uniqueness: true
8
9
  validates :contract_date, :expires_on, presence: true
10
+
11
+ delegate(:name, to: :region, prefix: true)
12
+ delegate(:name, to: :transporter, prefix: true)
13
+ delegate(:reference_no, to: :transport_bid, prefix: :bid)
9
14
  end
10
15
  end
11
16
  end
@@ -2,6 +2,10 @@ class CreateCatsCoreRoutes < ActiveRecord::Migration[6.1]
2
2
  def change
3
3
  create_table :cats_core_routes do |t|
4
4
  t.string :name, null: false
5
+ t.references :region,
6
+ null: false,
7
+ index: { name: 'region_on_routes_indx' },
8
+ foreign_key: { to_table: :cats_core_locations }
5
9
  t.references :source,
6
10
  null: false,
7
11
  index: { name: 'source_on_routes_indx' },
@@ -13,7 +17,7 @@ class CreateCatsCoreRoutes < ActiveRecord::Migration[6.1]
13
17
 
14
18
  t.timestamps
15
19
 
16
- t.index [:source_id, :destination_id], unique: true
20
+ t.index %i[source_id destination_id], unique: true
17
21
  end
18
22
  end
19
23
  end
@@ -1,6 +1,7 @@
1
1
  class CreateCatsCoreTransportContracts < ActiveRecord::Migration[6.1]
2
2
  def change
3
3
  create_table :cats_core_transport_contracts do |t|
4
+ t.string :contract_no, unique: true
4
5
  t.references :region,
5
6
  null: false,
6
7
  index: { name: 'region_on_tc_indx' },
@@ -16,6 +17,7 @@ class CreateCatsCoreTransportContracts < ActiveRecord::Migration[6.1]
16
17
  t.date :contract_date, null: false
17
18
  t.date :expires_on, null: false
18
19
  t.string :payment_term
20
+ t.boolean :signed, null: false, default: false
19
21
 
20
22
  t.timestamps
21
23
  end
@@ -1,5 +1,5 @@
1
1
  module Cats
2
2
  module Core
3
- VERSION = '1.2.26'.freeze
3
+ VERSION = '1.2.30'.freeze
4
4
  end
5
5
  end
@@ -1,6 +1,7 @@
1
1
  FactoryBot.define do
2
2
  factory :route, class: 'Cats::Core::Route' do
3
- source factory: :location
4
- destination factory: :location
3
+ region factory: :location
4
+ source factory: :woreda
5
+ destination factory: :woreda
5
6
  end
6
7
  end
@@ -1,5 +1,6 @@
1
1
  FactoryBot.define do
2
2
  factory :transport_contract, class: 'Cats::Core::TransportContract' do
3
+ contract_no { FFaker::Name.name }
3
4
  region factory: :location
4
5
  transporter
5
6
  transport_bid
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.2.26
4
+ version: 1.2.30
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-12-21 00:00:00.000000000 Z
11
+ date: 2021-12-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_model_serializers