Fixed issue: agents weren't looked up in settings
This commit is contained in:
parent
1cd762e9d0
commit
018f0d3bbd
@ -3,37 +3,15 @@
|
|||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from collections import Counter
|
from collections import Counter
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe.desk.form.assign_to import add as add_assignemnt
|
from frappe.desk.form.assign_to import add as add_assignemnt
|
||||||
|
|
||||||
|
|
||||||
def _get_agents_sorted_by_asc_workload():
|
|
||||||
appointments = frappe.db.get_list('Appointment', fields='*')
|
|
||||||
# Handle case where no appointments are created
|
|
||||||
appointment_counter = Counter()
|
|
||||||
if not appointments:
|
|
||||||
return frappe.get_doc('Appointment Booking Settings').agent_list
|
|
||||||
for appointment in appointments:
|
|
||||||
if appointment._assign == '[]' or not appointment._assign:
|
|
||||||
continue
|
|
||||||
appointment_counter[appointment._assign] += 1
|
|
||||||
sorted_agent_list = appointment_counter.most_common()
|
|
||||||
sorted_agent_list.reverse()
|
|
||||||
return sorted_agent_list
|
|
||||||
|
|
||||||
def _check_agent_availability(agent_email,scheduled_time):
|
|
||||||
appointemnts_at_scheduled_time = frappe.get_list('Appointment', filters={'scheduled_time':scheduled_time})
|
|
||||||
for appointment in appointemnts_at_scheduled_time:
|
|
||||||
if appointment._assign == agent_email:
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
def _get_employee_from_user(user):
|
|
||||||
return frappe.get_list('Employee', fields='*',filters={'user_id':user})
|
|
||||||
|
|
||||||
class Appointment(Document):
|
class Appointment(Document):
|
||||||
def validate(self):
|
def validate(self):
|
||||||
number_of_appointments_in_same_slot = frappe.db.count('Appointment',filters={'scheduled_time':self.scheduled_time})
|
number_of_appointments_in_same_slot = frappe.db.count('Appointment',filters={'scheduled_time':self.scheduled_time})
|
||||||
@ -74,4 +52,49 @@ class Appointment(Document):
|
|||||||
reference_docname=employee[0].name))
|
reference_docname=employee[0].name))
|
||||||
print(calendar_event)
|
print(calendar_event)
|
||||||
calendar_event.save()
|
calendar_event.save()
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
||||||
|
def _get_agents_sorted_by_asc_workload():
|
||||||
|
appointments = frappe.db.get_list('Appointment', fields='*')
|
||||||
|
agent_list = _get_agent_list_as_strings()
|
||||||
|
|
||||||
|
if not appointments:
|
||||||
|
return agent_list
|
||||||
|
|
||||||
|
appointment_counter = Counter(agent_list)
|
||||||
|
|
||||||
|
for appointment in appointments:
|
||||||
|
assigned_to = frappe.parse_json(appointment._assign)
|
||||||
|
print(assigned_to)
|
||||||
|
if appointment._assign == '[]' or not appointment._assign:
|
||||||
|
continue
|
||||||
|
if assigned_to[0] in agent_list:
|
||||||
|
appointment_counter[assigned_to[0]] += 1
|
||||||
|
|
||||||
|
sorted_agent_list = appointment_counter.most_common()
|
||||||
|
sorted_agent_list.reverse()
|
||||||
|
|
||||||
|
return sorted_agent_list
|
||||||
|
|
||||||
|
|
||||||
|
def _get_agent_list_as_strings():
|
||||||
|
agent_list_as_strings = []
|
||||||
|
agent_list = frappe.get_doc('Appointment Booking Settings').agent_list
|
||||||
|
|
||||||
|
for agent in agent_list:
|
||||||
|
agent_list_as_strings.append(agent.user)
|
||||||
|
|
||||||
|
return agent_list_as_strings
|
||||||
|
|
||||||
|
|
||||||
|
def _check_agent_availability(agent_email,scheduled_time):
|
||||||
|
appointemnts_at_scheduled_time = frappe.get_list('Appointment', filters={'scheduled_time':scheduled_time})
|
||||||
|
for appointment in appointemnts_at_scheduled_time:
|
||||||
|
if appointment._assign == agent_email:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def _get_employee_from_user(user):
|
||||||
|
return frappe.get_list('Employee', fields='*',filters={'user_id':user})
|
Loading…
Reference in New Issue
Block a user