diff --git a/erpnext/support/doctype/issue/issue.json b/erpnext/support/doctype/issue/issue.json index dfe0647cfa3..131e1cb9bfb 100644 --- a/erpnext/support/doctype/issue/issue.json +++ b/erpnext/support/doctype/issue/issue.json @@ -54,7 +54,7 @@ "attachment", "via_customer_portal", "resolution_time", - "user_operational_time" + "user_resolution_time" ], "fields": [ { @@ -374,27 +374,33 @@ { "bold": 1, "fieldname": "avg_response_time", - "fieldtype": "Data", + "fieldtype": "Duration", "label": "Average Response Time", - "read_only": 1 - }, - { - "fieldname": "user_operational_time", - "fieldtype": "Data", - "label": "User Operational Time", - "read_only": 1 + "read_only": 1, + "show_days": 1, + "show_seconds": 1 }, { "fieldname": "resolution_time", - "fieldtype": "Data", + "fieldtype": "Duration", "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", "idx": 7, "links": [], - "modified": "2020-04-28 23:42:28.576580", + "modified": "2020-05-06 12:28:58.093654", "modified_by": "Administrator", "module": "Support", "name": "Issue", diff --git a/erpnext/support/doctype/issue/issue.py b/erpnext/support/doctype/issue/issue.py index f2ee75498e7..4fb2d8a2b9b 100644 --- a/erpnext/support/doctype/issue/issue.py +++ b/erpnext/support/doctype/issue/issue.py @@ -63,10 +63,10 @@ class Issue(Document): self.resolution_date = frappe.flags.current_time or now_datetime() if frappe.db.get_value("Issue", self.name, "agreement_fulfilled") == "Ongoing": set_service_level_agreement_variance(issue=self.name) - set_average_response_time(issue=self) - set_resolution_time(issue=self) - set_user_operational_time(issue=self) self.update_agreement_status() + set_average_response_time(issue=self) + set_resolution_time(issue=self) + set_user_resolution_time(issue=self) 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 @@ -227,9 +227,9 @@ class Issue(Document): self.save() def reset_issue_metrics(self): - self.db_set('resolution_time', 0) - self.db_set('user_operational_time', 0) - self.db_set('avg_response_time',0) + self.db_set('resolution_time', None) + self.db_set('user_resolution_time', None) + self.db_set('avg_response_time', None) 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) -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 communications = frappe.get_list("Communication", filters={ "reference_doctype": issue.doctype, @@ -356,8 +356,8 @@ def set_user_operational_time(issue): total_pending_time = sum(pending_time) resolution_time_in_secs = time_diff_in_seconds(now_datetime(), issue.creation) - user_operational_time = resolution_time_in_secs - total_pending_time - issue.db_set('user_operational_time', user_operational_time) + user_resolution_time = resolution_time_in_secs - total_pending_time + issue.db_set('user_resolution_time', user_resolution_time) def get_list_context(context=None):