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

Constants included from Schedulable

Schedulable::SIMPLE_FORM_OPTIONS

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 Schedulable

config

Methods included from Models::AfterCommittable

#after_commit

Methods included from Models::EventPublishable

#publish_event

Instance Attribute Details

#result_codeObject (readonly)



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

validates :result_code, uniqueness: true

Class Method Details

.activeActiveRecord::Relation<ActivityResultType>

A relation of ActivityResultTypes that are active. Active Record Scope

Returns:

See Also:



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

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

.completedActiveRecord::Relation<ActivityResultType>

A relation of ActivityResultTypes that are completed. Active Record Scope

Returns:

See Also:



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

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

.options_for_select(act_type = nil) ⇒ Object



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

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:



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

has_many :activities, inverse_of: :activity_result_type

#activity_chain_typesActiveRecord::Relation<ActivityChainType>

Returns:

See Also:



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

has_many :activity_chain_types

#activity_typesActiveRecord::Relation<ActivityType>

Returns:

See Also:



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

has_many :activity_types, through: :activity_chain_types

#cancelled?Boolean

Returns:

  • (Boolean)


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

def cancelled?
  id == ActivityResultTypeConstants::CANCEL
end

#code_and_descriptionObject



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

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

#complete?Boolean

Returns:

  • (Boolean)


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

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