Sha256: 967329d3a6a9dcf549376a2c3b03c019312409b89e07021bf6240160e8bc095b

Contents?: true

Size: 1.17 KB

Versions: 39

Compression:

Stored size: 1.17 KB

Contents

module Ecom
  module Core
    class EquipmentItem < ApplicationRecord
      # Equipment Statuses
      READY = 'Ready'.freeze
      UNDER_MAINTENANCE = 'Under Maintenance'.freeze
      EQUIPMENT_STATUSES = [READY, UNDER_MAINTENANCE].freeze

      # Duty Statuses
      AVAILABLE = 'Available'.freeze
      BOOKED = 'Booked'.freeze
      ON_DUTY = 'On Duty'.freeze
      DUTY_STATUSES = [AVAILABLE, BOOKED, ON_DUTY].freeze

      belongs_to :equipment
      belongs_to :country
      belongs_to :current_location, class_name: 'Ecom::Core::EquipmentLocation'
      has_many :equipment_components

      validates :name, :status, :serial_number, :purchase_date, :purchase_price, presence: true
      validates :status, inclusion: EQUIPMENT_STATUSES
      validates :duty_status, inclusion: DUTY_STATUSES

      validates :serial_number, uniqueness: true

      def self.search(param)
        search_term = "%#{param.downcase}%"
        Ecom::Core::EquipmentItem
          .joins(:equipment)
          .where(
            'lower(ecom_core_equipment_items.name) LIKE ? OR lower(ecom_core_equipment.name) LIKE ?',
            search_term,
            search_term
          )
      end
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
ecom_core-1.3.14 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.13 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.12 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.11 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.10 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.9 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.8 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.7 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.6 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.5 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.4 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.3 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.2 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.1 app/models/ecom/core/equipment_item.rb
ecom_core-1.3.0 app/models/ecom/core/equipment_item.rb
ecom_core-1.2.36 app/models/ecom/core/equipment_item.rb
ecom_core-1.2.35 app/models/ecom/core/equipment_item.rb
ecom_core-1.2.34 app/models/ecom/core/equipment_item.rb
ecom_core-1.2.33 app/models/ecom/core/equipment_item.rb
ecom_core-1.2.32 app/models/ecom/core/equipment_item.rb