Class: NextSgad::Employee
Constant Summary
collapse
- INITIAL_LETTER =
"E"
Class Method Summary
collapse
Instance Method Summary
collapse
#create_number, #create_number!
Class Method Details
.can_be_assessed ⇒ Object
57
58
59
|
# File 'app/models/next_sgad/employee.rb', line 57
def self.can_be_assessed
where(can_be_assessed: true)
end
|
.cannot_be_assessed ⇒ Object
61
62
63
|
# File 'app/models/next_sgad/employee.rb', line 61
def self.cannot_be_assessed
where(can_be_assessed: false)
end
|
.map_for_filter ⇒ Object
41
42
43
|
# File 'app/models/next_sgad/employee.rb', line 41
def self.map_for_filter
[[I18n.t(:everything), :all]] + all.map {|f| [f.name_and_number, f.id]}
end
|
.map_for_select ⇒ Object
37
38
39
|
# File 'app/models/next_sgad/employee.rb', line 37
def self.map_for_select
all.map {|f| [f.name_and_number, f.id]}
end
|
.map_level_for_filter ⇒ Object
49
50
51
|
# File 'app/models/next_sgad/employee.rb', line 49
def self.map_level_for_filter
[[I18n.t(:everything), :all]] + all.order(level: :asc).map {|f| [f.level, f.level]}.uniq
end
|
.map_paygrade_for_filter ⇒ Object
45
46
47
|
# File 'app/models/next_sgad/employee.rb', line 45
def self.map_paygrade_for_filter
[[I18n.t(:everything), :all]] + all.order(paygrade: :asc).map {|f| [f.paygrade, f.paygrade]}.uniq
end
|
Instance Method Details
#first_and_last_name ⇒ Object
25
26
27
|
# File 'app/models/next_sgad/employee.rb', line 25
def first_and_last_name
"#{first_name} #{last_name}"
end
|
#full_abbr_name ⇒ Object
29
30
31
|
# File 'app/models/next_sgad/employee.rb', line 29
def full_abbr_name
"#{first_name} #{middle_name.to_s.split(' ').map{|name| "#{name.first.upcase}." if name.present?}.compact.join(' ')} #{last_name}"
end
|
#full_name ⇒ Object
21
22
23
|
# File 'app/models/next_sgad/employee.rb', line 21
def full_name
"#{first_name} #{middle_name} #{last_name}"
end
|
#has_this_assessment?(assessment_ids) ⇒ Boolean
90
91
92
|
# File 'app/models/next_sgad/employee.rb', line 90
def has_this_assessment?(assessment_ids)
employee_assessments.select{|e| [assessment_ids].flatten.uniq.compact.include?(e.assessment_id)}.present?
end
|
#is_assessed? ⇒ Boolean
65
66
67
|
# File 'app/models/next_sgad/employee.rb', line 65
def is_assessed?
can_be_assessed
end
|
#is_not_assessed? ⇒ Boolean
69
70
71
|
# File 'app/models/next_sgad/employee.rb', line 69
def is_not_assessed?
!is_assessed?
end
|
#name_and_number ⇒ Object
33
34
35
|
# File 'app/models/next_sgad/employee.rb', line 33
def name_and_number
"#{number} - #{first_name} #{last_name}"
end
|
#new_goal(options = {}) ⇒ Object
Creates a new goal just for this employee
86
87
88
|
# File 'app/models/next_sgad/employee.rb', line 86
def new_goal(options = {})
NextSgad::Goal.new(options)
end
|
#new_paygrade(options = {}) ⇒ Object
creates a new employee_paygrade
74
75
76
77
|
# File 'app/models/next_sgad/employee.rb', line 74
def new_paygrade(options = {})
options.merge!({employee_id: id})
EmployeePaygrade.new(options)
end
|
#new_work_period(options = {}) ⇒ Object
creates a new employee_work_period
80
81
82
83
|
# File 'app/models/next_sgad/employee.rb', line 80
def new_work_period(options = {})
options.merge!({employee_id: id})
EmployeeWorkPeriod.new(options)
end
|
#unread_messages ⇒ Object
53
54
55
|
# File 'app/models/next_sgad/employee.rb', line 53
def unread_messages
employee_messages.unread
end
|