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
- #auto_away_after ⇒ Object
- #pbx_did ⇒ Object
- #pbx_did_contact_point ⇒ Object
- #pbx_extension ⇒ Object
- #presence ⇒ Object
- #presence_timestamp ⇒ Object
- #set_presence(new_presence, sub_presence = nil) ⇒ Object
- #sub_presence ⇒ Object
- #working_from_home? ⇒ Boolean (also: #is_working_from_home?)
- #working_from_home_number ⇒ Object
Instance Method Details
#auto_away_after ⇒ Object
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_did ⇒ Object
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_point ⇒ Object
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_extension ⇒ Object
15 16 17 |
# File 'app/models/concerns/employee_phone_presence.rb', line 15 def pbx_extension employee_phone_status&.extension end |
#presence ⇒ Object
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_timestamp ⇒ Object
52 53 54 |
# File 'app/models/concerns/employee_phone_presence.rb', line 52 def 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_presence ⇒ Object
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?
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_number ⇒ Object
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 |