test: hold time for Replied status
diff --git a/erpnext/support/doctype/issue/issue.py b/erpnext/support/doctype/issue/issue.py
index 31797df..c09c729 100644
--- a/erpnext/support/doctype/issue/issue.py
+++ b/erpnext/support/doctype/issue/issue.py
@@ -100,7 +100,7 @@
 			start_date_time = get_datetime(self.service_level_agreement_creation)
 			priority = get_priority(self)
 			now_time = frappe.flags.current_time or now_datetime()
-			hold_time = time_diff_in_seconds(now_datetime(), self.on_hold_since)
+			hold_time = time_diff_in_seconds(now_time, self.on_hold_since)
 
 			if not self.first_responded_on:
 				response_by = get_expected_time_for(parameter="response", service_level=priority, start_date_time=start_date_time)
diff --git a/erpnext/support/doctype/issue/test_issue.py b/erpnext/support/doctype/issue/test_issue.py
index 2818b1b..a004843 100644
--- a/erpnext/support/doctype/issue/test_issue.py
+++ b/erpnext/support/doctype/issue/test_issue.py
@@ -78,9 +78,7 @@
 	def test_issue_metrics(self):
 		creation = datetime.datetime(2020, 3, 4, 4, 0)
 
-		# make issue with customer specific SLA
-		customer = create_customer("_Test Customer", "__Test SLA Customer Group", "__Test SLA Territory")
-		issue = make_issue(creation, "_Test Customer", 1)
+		issue = make_issue(creation, index=1)
 		create_communication(issue.name, "test@example.com", "Received", creation)
 
 		creation = datetime.datetime(2020, 3, 4, 4, 15)
@@ -91,9 +89,9 @@
 
 		creation = datetime.datetime(2020, 3, 4, 5, 5)
 		create_communication(issue.name, "test@admin.com", "Sent", creation)
-		issue = frappe.get_doc('Issue', issue.name)
 
 		frappe.flags.current_time = datetime.datetime(2020, 3, 4, 5, 5)
+		issue.reload()
 		issue.status = 'Closed'
 		issue.save()
 
@@ -101,9 +99,43 @@
 		self.assertEqual(issue.resolution_time, 3900)
 		self.assertEqual(issue.user_resolution_time, 1200)
 
+	def test_hold_time_on_replied(self):
+		creation = datetime.datetime(2020, 3, 4, 4, 0)
+
+		issue = make_issue(creation, index=1)
+		create_communication(issue.name, "test@example.com", "Received", creation)
+
+		creation = datetime.datetime(2020, 3, 4, 4, 15)
+		create_communication(issue.name, "test@admin.com", "Sent", creation)
+
+		frappe.flags.current_time = datetime.datetime(2020, 3, 4, 4, 15)
+		issue.reload()
+		issue.status = 'Replied'
+		issue.save()
+
+		self.assertEqual(issue.on_hold_since, frappe.flags.current_time)
+
+		creation = datetime.datetime(2020, 3, 4, 5, 0)
+		frappe.flags.current_time = datetime.datetime(2020, 3, 4, 5, 0)
+		create_communication(issue.name, "test@example.com", "Received", creation)
+
+		issue.reload()
+		self.assertEqual(issue.total_hold_time, 2700)
+		self.assertEqual(issue.resolution_by, datetime.datetime(2020, 3, 4, 16, 45))
+
+		creation = datetime.datetime(2020, 3, 4, 5, 5)
+		create_communication(issue.name, "test@admin.com", "Sent", creation)
+
+		frappe.flags.current_time = datetime.datetime(2020, 3, 4, 5, 5)
+		issue.reload()
+		issue.status = 'Closed'
+		issue.save()
+
+		issue.reload()
+		self.assertEqual(issue.total_hold_time, 2700)
+
 
 def make_issue(creation=None, customer=None, index=0):
-
 	issue = frappe.get_doc({
 		"doctype": "Issue",
 		"subject": "Service Level Agreement Issue {0}".format(index),
@@ -163,4 +195,5 @@
 		"reference_doctype": "Issue",
 		"creation": creation,
 		"reference_name": reference_name
-	}).insert(ignore_permissions=True)
+	})
+	issue.save()