fix: handle issue metrics on Reopen and Close
This commit is contained in:
parent
f77d7243dc
commit
f2d36364f5
@ -54,7 +54,7 @@
|
|||||||
"attachment",
|
"attachment",
|
||||||
"via_customer_portal",
|
"via_customer_portal",
|
||||||
"resolution_time",
|
"resolution_time",
|
||||||
"user_operational_time"
|
"user_resolution_time"
|
||||||
],
|
],
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
@ -374,27 +374,33 @@
|
|||||||
{
|
{
|
||||||
"bold": 1,
|
"bold": 1,
|
||||||
"fieldname": "avg_response_time",
|
"fieldname": "avg_response_time",
|
||||||
"fieldtype": "Data",
|
"fieldtype": "Duration",
|
||||||
"label": "Average Response Time",
|
"label": "Average Response Time",
|
||||||
"read_only": 1
|
"read_only": 1,
|
||||||
},
|
"show_days": 1,
|
||||||
{
|
"show_seconds": 1
|
||||||
"fieldname": "user_operational_time",
|
|
||||||
"fieldtype": "Data",
|
|
||||||
"label": "User Operational Time",
|
|
||||||
"read_only": 1
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "resolution_time",
|
"fieldname": "resolution_time",
|
||||||
"fieldtype": "Data",
|
"fieldtype": "Duration",
|
||||||
"label": "Resolution Time",
|
"label": "Resolution Time",
|
||||||
"read_only": 1
|
"read_only": 1,
|
||||||
|
"show_days": 1,
|
||||||
|
"show_seconds": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "user_resolution_time",
|
||||||
|
"fieldtype": "Duration",
|
||||||
|
"label": "User Resolution Time",
|
||||||
|
"read_only": 1,
|
||||||
|
"show_days": 1,
|
||||||
|
"show_seconds": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"icon": "fa fa-ticket",
|
"icon": "fa fa-ticket",
|
||||||
"idx": 7,
|
"idx": 7,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2020-04-28 23:42:28.576580",
|
"modified": "2020-05-06 12:28:58.093654",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Support",
|
"module": "Support",
|
||||||
"name": "Issue",
|
"name": "Issue",
|
||||||
|
@ -63,10 +63,10 @@ class Issue(Document):
|
|||||||
self.resolution_date = frappe.flags.current_time or now_datetime()
|
self.resolution_date = frappe.flags.current_time or now_datetime()
|
||||||
if frappe.db.get_value("Issue", self.name, "agreement_fulfilled") == "Ongoing":
|
if frappe.db.get_value("Issue", self.name, "agreement_fulfilled") == "Ongoing":
|
||||||
set_service_level_agreement_variance(issue=self.name)
|
set_service_level_agreement_variance(issue=self.name)
|
||||||
|
self.update_agreement_status()
|
||||||
set_average_response_time(issue=self)
|
set_average_response_time(issue=self)
|
||||||
set_resolution_time(issue=self)
|
set_resolution_time(issue=self)
|
||||||
set_user_operational_time(issue=self)
|
set_user_resolution_time(issue=self)
|
||||||
self.update_agreement_status()
|
|
||||||
|
|
||||||
if self.status=="Open" and status !="Open":
|
if self.status=="Open" and status !="Open":
|
||||||
# if no date, it should be set as None and not a blank string "", as per mysql strict config
|
# if no date, it should be set as None and not a blank string "", as per mysql strict config
|
||||||
@ -227,9 +227,9 @@ class Issue(Document):
|
|||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
def reset_issue_metrics(self):
|
def reset_issue_metrics(self):
|
||||||
self.db_set('resolution_time', 0)
|
self.db_set('resolution_time', None)
|
||||||
self.db_set('user_operational_time', 0)
|
self.db_set('user_resolution_time', None)
|
||||||
self.db_set('avg_response_time',0)
|
self.db_set('avg_response_time', None)
|
||||||
|
|
||||||
|
|
||||||
def get_expected_time_for(parameter, service_level, start_date_time):
|
def get_expected_time_for(parameter, service_level, start_date_time):
|
||||||
@ -337,7 +337,7 @@ def set_resolution_time(issue):
|
|||||||
issue.db_set('resolution_time', resolution_time)
|
issue.db_set('resolution_time', resolution_time)
|
||||||
|
|
||||||
|
|
||||||
def set_user_operational_time(issue):
|
def set_user_resolution_time(issue):
|
||||||
# total time taken by a user to close the issue apart from wait_time
|
# total time taken by a user to close the issue apart from wait_time
|
||||||
communications = frappe.get_list("Communication", filters={
|
communications = frappe.get_list("Communication", filters={
|
||||||
"reference_doctype": issue.doctype,
|
"reference_doctype": issue.doctype,
|
||||||
@ -356,8 +356,8 @@ def set_user_operational_time(issue):
|
|||||||
|
|
||||||
total_pending_time = sum(pending_time)
|
total_pending_time = sum(pending_time)
|
||||||
resolution_time_in_secs = time_diff_in_seconds(now_datetime(), issue.creation)
|
resolution_time_in_secs = time_diff_in_seconds(now_datetime(), issue.creation)
|
||||||
user_operational_time = resolution_time_in_secs - total_pending_time
|
user_resolution_time = resolution_time_in_secs - total_pending_time
|
||||||
issue.db_set('user_operational_time', user_operational_time)
|
issue.db_set('user_resolution_time', user_resolution_time)
|
||||||
|
|
||||||
|
|
||||||
def get_list_context(context=None):
|
def get_list_context(context=None):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user