Module: EmployeePhonePresence

Extended by:
ActiveSupport::Concern
Included in:
Employee
Defined in:
app/models/concerns/employee_phone_presence.rb

Overview

PBX presence, extension status, and work-from-home checks.

Instance Method Summary collapse

Instance Method Details

#auto_away_afterObject



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

def auto_away_after
  employee_phone_status.try(:auto_away_after).try(:strftime, '%I:%M %P')
end

#pbx_didObject



11
12
13
# File 'app/models/concerns/employee_phone_presence.rb', line 11

def pbx_did
  pbx_did_contact_point&.detail
end

#pbx_did_contact_pointObject



7
8
9
# File 'app/models/concerns/employee_phone_presence.rb', line 7

def pbx_did_contact_point
  employee_phone_status&.contact_point
end

#pbx_extensionObject



15
16
17
# File 'app/models/concerns/employee_phone_presence.rb', line 15

def pbx_extension
  employee_phone_status&.extension
end

#presenceObject



44
45
46
# File 'app/models/concerns/employee_phone_presence.rb', line 44

def presence
  employee_phone_status.try(:presence).try(:to_sym) || :unknown
end

#presence_timestampObject



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

def presence_timestamp
  employee_phone_status.try(:date_set).try(:to_i)
end

#set_presence(new_presence, sub_presence = nil) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/models/concerns/employee_phone_presence.rb', line 28

def set_presence(new_presence, sub_presence = nil)
  eps = employee_phone_status || build_employee_phone_status
  eps.presence = new_presence
  eps.sub_presence = sub_presence
  if eps.presence_changed? || eps.sub_presence_changed?
    eps.date_set = Time.current
    eps.last_alert = nil
    eps.save
  end
  if Rails.env.development?
    eps.broadcast_agent_status
  else
    SyncPhoneStatusWorker.perform_async(id)
  end
end

#sub_presenceObject



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

def sub_presence
  employee_phone_status.try(:sub_presence).try(:to_sym)
end

#working_from_home?Boolean Also known as: is_working_from_home?

Returns:

  • (Boolean)


19
20
21
# File 'app/models/concerns/employee_phone_presence.rb', line 19

def working_from_home?
  employee_phone_status.try(:working_from_home)
end

#working_from_home_numberObject



24
25
26
# File 'app/models/concerns/employee_phone_presence.rb', line 24

def working_from_home_number
  employee_phone_status.try(:working_from_home_number)
end