fix(Issue): Time left and display only if Agreement exists (#17014)

* fix: time left and display only if agreement

* fix: remove div if present

* code refactor

* use frappe.scrub

* code formatting

Co-Authored-By: hrwX <himanshuwarekar@yahoo.com>

* remove unused fields

* remove unsed return value
diff --git a/erpnext/support/doctype/issue/issue.js b/erpnext/support/doctype/issue/issue.js
index dba111d..97b34e9 100644
--- a/erpnext/support/doctype/issue/issue.js
+++ b/erpnext/support/doctype/issue/issue.js
@@ -1,7 +1,9 @@
 frappe.ui.form.on("Issue", {
 	onload: function(frm) {
 		frm.email_field = "raised_by";
-		set_time_to_resolve_and_response(frm);
+		if (frm.doc.service_level_agreement) {
+			set_time_to_resolve_and_response(frm);
+		}
 	},
 
 	refresh: function (frm) {
@@ -84,15 +86,16 @@
 	const email_account = frm.fields_dict['email_account'].$wrapper;
 
 	const time_to_respond = $(get_time_left_element(__('Time To Respond'), frm.doc.response_by));
-	const time_to_resolve = $(get_time_left_element(__('Time To Resolve'), frm.doc.resolve_by));
+	const time_to_resolve = $(get_time_left_element(__('Time To Resolve'), frm.doc.resolution_by));
 
 	time_to_respond.insertAfter(customer);
 	time_to_resolve.insertAfter(email_account);
 }
 
 function get_time_left_element(label, timestamp) {
+	$('.'+ frappe.scrub(label) +'').remove();
 	return `
-		<div class="frappe-control input-max-width" data-field_name="${label.replace(/ /g, "_").toLowerCase()}">
+		<div class="frappe-control input-max-width `+ frappe.scrub(label) +`" data-field_name="`+ frappe.scrub(label) +`">
 			<div class="form-group">
 				<div class="clearfix">
 					<label class="control-label" style="padding-right: 0px;">
@@ -109,5 +112,5 @@
 
 function get_time_left(timestamp) {
 	const diff = moment(timestamp).diff(moment());
-	return diff >= 44500 ? moment.duration().humanize() : 0;
-}
\ No newline at end of file
+	return diff >= 44500 ? moment.duration(diff).humanize() : 0;
+}
diff --git a/erpnext/support/doctype/issue/issue.py b/erpnext/support/doctype/issue/issue.py
index 0aa3139..e690429 100644
--- a/erpnext/support/doctype/issue/issue.py
+++ b/erpnext/support/doctype/issue/issue.py
@@ -128,8 +128,8 @@
 
 		start_date_time = get_datetime(self.creation)
 
-		self.response_by, self.time_to_respond = get_expected_time_for('response', service_level, start_date_time)
-		self.resolution_by, self.time_to_resolve = get_expected_time_for('resolution', service_level, start_date_time)
+		self.response_by = get_expected_time_for('response', service_level, start_date_time)
+		self.resolution_by = get_expected_time_for('resolution', service_level, start_date_time)
 
 def get_expected_time_for(parameter, service_level, start_date_time):
 	current_date_time = start_date_time
@@ -194,7 +194,7 @@
 	else:
 		current_date_time = expected_time
 
-	return current_date_time, round(time_diff_in_hours(current_date_time, start_date_time), 2)
+	return current_date_time
 
 def get_list_context(context=None):
 	return {