Class: Cats::Core::Location
- Inherits:
 - 
      ApplicationRecord
      
        
- Object
 - ActiveRecord::Base
 - ApplicationRecord
 - Cats::Core::Location
 
 
- Defined in:
 - app/models/cats/core/location.rb
 
Constant Summary collapse
- REGION =
 "Region".freeze
- ZONE =
 "Zone".freeze
- WOREDA =
 "Woreda".freeze
- FDP =
 "Fdp".freeze
- HUB =
 "Hub".freeze
- WAREHOUSE =
 "Warehouse".freeze
- LOCATION_TYPES =
 [REGION, ZONE, WOREDA, FDP, HUB, WAREHOUSE].freeze
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.ransackable_attributes(_auth_object = nil) ⇒ Object
      57 58 59  | 
    
      # File 'app/models/cats/core/location.rb', line 57 def self.ransackable_attributes(_auth_object = nil) %w[code location_type name] end  | 
  
Instance Method Details
#fdp_store ⇒ Object
      51 52 53 54 55  | 
    
      # File 'app/models/cats/core/location.rb', line 51 def fdp_store return nil unless location_type == FDP Store.find_by(code: "FDP-ST-#{code}") end  | 
  
#validate_location_parent ⇒ Object
      23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49  | 
    
      # File 'app/models/cats/core/location.rb', line 23 def validate_location_parent parents = { REGION => [], ZONE => [REGION], WOREDA => [REGION, ZONE], FDP => [REGION, ZONE, WOREDA], HUB => [REGION, ZONE, WOREDA, FDP], WAREHOUSE => [REGION, ZONE, WOREDA, FDP, HUB] } return if location_type.nil? || location_type.empty? return if location_type == REGION && parent.nil? # Check that parent is not nil for locations other than region errors.add(:location, "parent cannot be empty") if location_type != REGION && parent.nil? # At this point, we may return if parent.nil? is true # because the above statement already took care of that. return unless parent return if parents[location_type].include?(parent.location_type) # If we reach this far then it means that we have assigned a # wrong type of parent to our location. errors.add(:location, "cannot have #{parent.location_type} as parent") end  |