fix: table data deleted on submitted maintenance schedule (#27513)

diff --git a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
index d1a8c8d..035290d 100644
--- a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
@@ -18,7 +18,7 @@
 	},
 	refresh: function (frm) {
 		setTimeout(() => {
-			frm.toggle_display('generate_schedule', !(frm.is_new()));
+			frm.toggle_display('generate_schedule', !(frm.is_new() || frm.doc.docstatus));
 			frm.toggle_display('schedule', !(frm.is_new()));
 		}, 10);
 	},
diff --git a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py
index 52e41c5..0bf5aea 100644
--- a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py
+++ b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py
@@ -16,9 +16,9 @@
 class MaintenanceSchedule(TransactionBase):
 	@frappe.whitelist()
 	def generate_schedule(self):
+		if self.docstatus != 0:
+			return
 		self.set('schedules', [])
-		frappe.db.sql("""delete from `tabMaintenance Schedule Detail`
-			where parent=%s""", (self.name))
 		count = 1
 		for d in self.get('items'):
 			self.validate_maintenance_detail()