Class: ActivityResultType

Inherits:
ApplicationRecord show all
Includes:
Models::Auditable
Defined in:
app/models/activity_result_type.rb

Overview

== Schema Information

Table name: activity_result_types
Database name: primary

id :integer not null, primary key
description :string(255)
inactive :boolean default(FALSE), not null
result_code :string(255)
created_at :datetime
updated_at :datetime

Indexes

index_activity_result_types_on_result_code (result_code)

Constant Summary

Constants included from Models::Auditable

Models::Auditable::ALWAYS_IGNORED

Instance Attribute Summary collapse

Has many collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Models::Auditable

#all_skipped_columns, #audit_reference_data, #creator, #should_not_save_version, #stamp_record, #updater

Methods inherited from ApplicationRecord

ransackable_associations, ransackable_attributes, ransackable_scopes, ransortable_attributes, #to_relation

Methods included from Models::EventPublishable

#publish_event

Instance Attribute Details

#result_codeObject (readonly)



27
# File 'app/models/activity_result_type.rb', line 27

validates :result_code, uniqueness: true

Class Method Details

.activeActiveRecord::Relation<ActivityResultType>

A relation of ActivityResultTypes that are active. Active Record Scope

Returns:

See Also:



24
# File 'app/models/activity_result_type.rb', line 24

scope :active, -> { where(inactive: false) }

.completedActiveRecord::Relation<ActivityResultType>

A relation of ActivityResultTypes that are completed. Active Record Scope

Returns:

See Also:



25
# File 'app/models/activity_result_type.rb', line 25

scope :completed, -> { where.not(id: ActivityResultTypeConstants::CANCEL) }

.options_for_select(act_type = nil) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/models/activity_result_type.rb', line 29

def self.options_for_select(act_type = nil)
  res_types = if act_type
                act_type.activity_result_types.active
              else
                active
              end
  res_types.sort_by do |rt|
    [
      (if rt.result_code == 'CMP'
         0
       else
         (rt.result_code == 'CANCEL' ? 2 : 1)
       end),
      rt.result_code,
      rt.description
    ]
  end.map { |rt| [rt.result_code, rt.id] }
end

Instance Method Details

#activitiesActiveRecord::Relation<Activity>

Returns:

See Also:



22
# File 'app/models/activity_result_type.rb', line 22

has_many :activities, inverse_of: :activity_result_type

#activity_chain_typesActiveRecord::Relation<ActivityChainType>

Returns:

See Also:



20
# File 'app/models/activity_result_type.rb', line 20

has_many :activity_chain_types

#activity_typesActiveRecord::Relation<ActivityType>

Returns:

See Also:



21
# File 'app/models/activity_result_type.rb', line 21

has_many :activity_types, through: :activity_chain_types

#cancelled?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'app/models/activity_result_type.rb', line 56

def cancelled?
  id == ActivityResultTypeConstants::CANCEL
end

#code_and_descriptionObject



48
49
50
# File 'app/models/activity_result_type.rb', line 48

def code_and_description
  "#{result_code} - #{description}"
end

#complete?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'app/models/activity_result_type.rb', line 52

def complete?
  id && id != ActivityResultTypeConstants::CANCEL
end