diff --git a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
index d077108..45e632c 100644
--- a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
@@ -64,6 +64,14 @@
 					});
 				}, __("Get Items From"));
 		} else if (this.frm.doc.docstatus === 1) {
+			var s = me.frm.doc.schedules;
+			let flag = 0
+			for(let i in s){
+				if (s[i].completion_status == pending){
+					flag = 1
+				}
+			}
+			if(count){
 			this.frm.add_custom_button(__('Create Maintenance Visit'), function () {
 				let items = me.frm.doc.items;
 				let s = me.frm.doc.schedules;
@@ -103,7 +111,7 @@
 							let field = d.get_field("scheduled_date");
 							dates = ""
 							for (let i in s) {
-								if (s[i].item_name == this.value) {
+								if (s[i].item_name == this.value && s[i].completion_status == "Pending") {
 									dates = dates + '\n' + formatDate(s[i].scheduled_date);
 								}
 
@@ -154,6 +162,7 @@
 
 			}, __('Create'));
 		}
+	}
 	},
 
 	start_date: function (doc, cdt, cdn) {
diff --git a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py
index fd06a4e..aa582ee 100644
--- a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py
+++ b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py
@@ -33,6 +33,7 @@
 				count = count + 1
 				child.sales_person = d.sales_person
 				child.completion_status = "Pending"
+				child.item_ref = d.name
 
 	def on_submit(self):
 		if not self.get('schedules'):
@@ -171,9 +172,7 @@
 
 	def on_update(self):
 		frappe.db.set(self, 'status', 'Draft')
-
-
-
+	
 	def update_amc_date(self, serial_nos, amc_expiry_date=None):
 		for serial_no in serial_nos:
 			serial_no_doc = frappe.get_doc("Serial No", serial_no)
@@ -255,6 +254,8 @@
 
 	def update_sid(source, target, parent):
 		target.prevdoc_detail_docname = s_id
+		sales_person = frappe.db.get_value('Maintenance Schedule Detail', s_id, 'sales_person')
+		target.service_person = sales_person
 
 	doclist = get_mapped_doc("Maintenance Schedule", source_name, {
 			"Maintenance Schedule": {
@@ -275,7 +276,7 @@
 					},
 					"condition": lambda doc: doc.item_name == item_name,
 
-										"postprocess": update_sid
+					"postprocess": update_sid
 
 			}
 	}, target_doc)
diff --git a/erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json b/erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json
index 7fda687..f1e2e21 100644
--- a/erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json
+++ b/erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json
@@ -10,10 +10,11 @@
   "item_code",
   "item_name",
   "scheduled_date",
-  "actual_date",
   "sales_person",
+  "actual_date",
+  "completion_status",
   "serial_no",
-  "completion_status"
+  "item_ref"
  ],
  "fields": [
   {
@@ -29,11 +30,9 @@
    "search_index": 1
   },
   {
-   "columns": 2,
    "fieldname": "item_name",
    "fieldtype": "Data",
    "in_global_search": 1,
-   "in_list_view": 1,
    "label": "Item Name",
    "oldfieldname": "item_name",
    "oldfieldtype": "Data",
@@ -71,7 +70,8 @@
    "label": "Sales Person",
    "oldfieldname": "incharge_name",
    "oldfieldtype": "Link",
-   "options": "Sales Person"
+   "options": "Sales Person",
+   "read_only_depends_on": "eval:doc.completion_status != \"Pending\""
   },
   {
    "fieldname": "serial_no",
@@ -85,16 +85,25 @@
    "width": "160px"
   },
   {
+   "columns": 2,
    "fieldname": "completion_status",
    "fieldtype": "Select",
+   "in_list_view": 1,
    "label": "Completion Status",
-   "options": "Pending\nPartially Completed\nFully Completed"
+   "options": "Pending\nPartially Completed\nFully Completed",
+   "read_only": 1
+  },
+  {
+   "fieldname": "item_ref",
+   "fieldtype": "Data",
+   "label": "Item Reference",
+   "read_only": 1
   }
  ],
  "idx": 1,
  "istable": 1,
  "links": [],
- "modified": "2021-04-19 16:18:36.723319",
+ "modified": "2021-04-19 17:42:31.685710",
  "modified_by": "Administrator",
  "module": "Maintenance",
  "name": "Maintenance Schedule Detail",
diff --git a/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.py b/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.py
index 2f2ad00..9505a36 100644
--- a/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.py
+++ b/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.py
@@ -4,6 +4,7 @@
 from __future__ import unicode_literals
 import frappe
 from frappe import _
+from frappe.utils import get_datetime
 
 from erpnext.utilities.transaction_base import TransactionBase
 
@@ -16,8 +17,33 @@
 			if d.serial_no and not frappe.db.exists("Serial No", d.serial_no):
 				frappe.throw(_("Serial No {0} does not exist").format(d.serial_no))
 
+	def validate_mntc_date(self):
+		if self.maintenance_type == "Scheduled":
+			p = self.purposes
+			for i in p:
+				detail_ref = i.prevdoc_detail_docname
+			item_ref = frappe.db.get_value('Maintenance Schedule Detail', detail_ref , 'item_ref')
+			start_date, end_date = frappe.db.get_value('Maintenance Schedule Item', item_ref, ['start_date', 'end_date'])
+			if get_datetime(self.mntc_date) < get_datetime(start_date) or get_datetime(self.mntc_date) > get_datetime(end_date):
+				frappe.throw(_("Date must be between {0} and {1}").format(start_date,end_date))
+
 	def validate(self):
 		self.validate_serial_no()
+		self.validate_mntc_date()
+		
+	def update_completion_status(self):
+		if self.maintenance_type == "Scheduled":
+			p = self.purposes
+			for i in p:
+				detail_ref = i.prevdoc_detail_docname
+			frappe.db.set_value('Maintenance Schedule Detail', detail_ref, 'completion_status', self.completion_status)
+	
+	def update_actual_date(self):
+		if self.maintenance_type == "Scheduled":
+			p = self.purposes
+			for i in p:
+				detail_ref = i.prevdoc_detail_docname
+			frappe.db.set_value('Maintenance Schedule Detail', detail_ref, 'actual_date', self.mntc_date)
 
 	def update_customer_issue(self, flag):
 		for d in self.get('purposes'):
@@ -77,6 +103,8 @@
 	def on_submit(self):
 		self.update_customer_issue(1)
 		frappe.db.set(self, 'status', 'Submitted')
+		self.update_completion_status()
+		self.update_actual_date()
 
 	def on_cancel(self):
 		self.check_if_last_visit()
