diff --git a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
index 1245246..d077108 100644
--- a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
@@ -65,11 +65,93 @@
 				}, __("Get Items From"));
 		} else if (this.frm.doc.docstatus === 1) {
 			this.frm.add_custom_button(__('Create Maintenance Visit'), function () {
-				frappe.model.open_mapped_doc({
-					method: "erpnext.maintenance.doctype.maintenance_schedule.maintenance_schedule.make_maintenance_visit",
-					source_name: me.frm.doc.name,
-					frm: me.frm
-				});
+				let items = me.frm.doc.items;
+				let s = me.frm.doc.schedules;
+				let options = "";
+				let dates = "";
+				for (let i in items) {
+					for(let d in s){
+						if (s[d].item_name == items[i].item_name && s[d].completion_status == "Pending") {
+							options = options + '\n' + items[i].item_name
+							break
+						}
+					}
+				}
+				function formatDate(date) {
+					var d = new Date(date),
+						month = '' + (d.getMonth() + 1),
+						day = '' + d.getDate(),
+						year = d.getFullYear();
+
+					if (month.length < 2)
+						month = '0' + month;
+					if (day.length < 2)
+						day = '0' + day;
+
+					return [day, month, year].join('-');
+				}
+				var schedule_id = ""
+				var d = new frappe.ui.Dialog({
+					title: __("Enter Visit Details"),
+					fields: [{
+						fieldtype: "Select",
+						fieldname: "item_name",
+						label: __("Item Name"),
+						options: options,
+						reqd: 1,
+						onchange: function () {
+							let field = d.get_field("scheduled_date");
+							dates = ""
+							for (let i in s) {
+								if (s[i].item_name == this.value) {
+									dates = dates + '\n' + formatDate(s[i].scheduled_date);
+								}
+
+							}
+							field.df.options = dates;
+							field.refresh();
+						}
+					},
+					{
+						label: __('Scheduled Date'),
+						fieldname: 'scheduled_date',
+						fieldtype: 'Select',
+						options: dates,
+						reqd: 1,
+						onchange: function(){
+							let field = d.get_field('item_name');
+							for(let i in s ){
+								if(s[i].item_name == field.value && formatDate(s[i].scheduled_date) == this.value){
+									schedule_id = s[i].name;
+								}
+							}
+						}
+					},
+					],
+					primary_action_label: 'Create Visit',
+					primary_action(values) {
+						frappe.call({
+							method: "erpnext.maintenance.doctype.maintenance_schedule.maintenance_schedule.make_maintenance_visit",
+							args: {
+								item_name: values.item_name,
+								s_id: schedule_id,
+								source_name: me.frm.doc.name,
+
+							},
+							callback: function (r) {
+								if (!r.exc) {
+									frappe.model.sync(r.message);
+									frappe.set_route("Form", r.message.doctype, r.message.name);
+								}
+							}
+
+
+						});
+						d.hide();
+					}
+				})
+				d.show()
+
 			}, __('Create'));
 		}
 	},
diff --git a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py
index 60dd298..fd06a4e 100644
--- a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py
+++ b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py
@@ -32,8 +32,7 @@
 				child.idx = count
 				count = count + 1
 				child.sales_person = d.sales_person
-
-		
+				child.completion_status = "Pending"
 
 	def on_submit(self):
 		if not self.get('schedules'):
@@ -58,9 +57,9 @@
 
 			if no_email_sp:
 				frappe.msgprint(
-					frappe._("Setting Events to {0}, since the Employee attached to the below Sales Persons does not have a User ID{1}").format(
-						self.owner, "<br>" + "<br>".join(no_email_sp)
-				))
+						frappe._("Setting Events to {0}, since the Employee attached to the below Sales Persons does not have a User ID{1}").format(
+								self.owner, "<br>" + "<br>".join(no_email_sp)
+						))
 
 			scheduled_date = frappe.db.sql("""select scheduled_date from
 				`tabMaintenance Schedule Detail` where sales_person=%s and item_code=%s and
@@ -69,12 +68,12 @@
 			for key in scheduled_date:
 				description =frappe._("Reference: {0}, Item Code: {1} and Customer: {2}").format(self.name, d.item_code, self.customer)
 				event = frappe.get_doc({
-					"doctype": "Event",
-					"owner": email_map.get(d.sales_person, self.owner),
-					"subject": description,
-					"description": description,
-					"starts_on": cstr(key["scheduled_date"]) + " 10:00:00",
-					"event_type": "Private",
+						"doctype": "Event",
+						"owner": email_map.get(d.sales_person, self.owner),
+						"subject": description,
+						"description": description,
+						"starts_on": cstr(key["scheduled_date"]) + " 10:00:00",
+						"event_type": "Private",
 				})
 				event.add_participant(self.doctype, self.name)
 				event.insert(ignore_permissions=1)
@@ -92,7 +91,7 @@
 				start_date_copy = add_days(start_date_copy, add_by)
 				if len(schedule_list) < no_of_visit:
 					schedule_date = self.validate_schedule_date_for_holiday_list(getdate(start_date_copy),
-						sales_person)
+							sales_person)
 					if schedule_date > getdate(end_date):
 						schedule_date = getdate(end_date)
 					schedule_list.append(schedule_date)
@@ -127,16 +126,16 @@
 			if d.start_date and d.end_date and d.periodicity and d.periodicity!="Random":
 				date_diff = (getdate(d.end_date) - getdate(d.start_date)).days + 1
 				days_in_period = {
-					"Weekly": 7,
-					"Monthly": 30,
-					"Quarterly": 90,
-					"Half Yearly": 180,
-					"Yearly": 365
+						"Weekly": 7,
+						"Monthly": 30,
+						"Quarterly": 90,
+						"Half Yearly": 180,
+						"Yearly": 365
 				}
 
 				if date_diff < days_in_period[d.periodicity]:
 					throw(_("Row {0}: To set {1} periodicity, difference between from and to date must be greater than or equal to {2}")
-						.format(d.idx, d.periodicity, days_in_period[d.periodicity]))
+							.format(d.idx, d.periodicity, days_in_period[d.periodicity]))
 
 	def validate_maintenance_detail(self):
 		if not self.get('items'):
@@ -172,8 +171,8 @@
 
 	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:
@@ -184,27 +183,27 @@
 	def validate_serial_no(self, item_code, serial_nos, amc_start_date):
 		for serial_no in serial_nos:
 			sr_details = frappe.db.get_value("Serial No", serial_no,
-				["warranty_expiry_date", "amc_expiry_date", "warehouse", "delivery_date", "item_code"], as_dict=1)
+					["warranty_expiry_date", "amc_expiry_date", "warehouse", "delivery_date", "item_code"], as_dict=1)
 
 			if not sr_details:
 				frappe.throw(_("Serial No {0} not found").format(serial_no))
 
 			if sr_details.get("item_code") != item_code:
 				frappe.throw(_("Serial No {0} does not belong to Item {1}")
-					.format(frappe.bold(serial_no), frappe.bold(item_code)), title="Invalid")
+						.format(frappe.bold(serial_no), frappe.bold(item_code)), title="Invalid")
 
 			if sr_details.warranty_expiry_date \
-				and getdate(sr_details.warranty_expiry_date) >= getdate(amc_start_date):
+					and getdate(sr_details.warranty_expiry_date) >= getdate(amc_start_date):
 				throw(_("Serial No {0} is under warranty upto {1}")
-					.format(serial_no, sr_details.warranty_expiry_date))
+						.format(serial_no, sr_details.warranty_expiry_date))
 
 			if sr_details.amc_expiry_date and getdate(sr_details.amc_expiry_date) >= getdate(amc_start_date):
 				throw(_("Serial No {0} is under maintenance contract upto {1}")
-					.format(serial_no, sr_details.amc_expiry_date))
+						.format(serial_no, sr_details.amc_expiry_date))
 
 			if not sr_details.warehouse and sr_details.delivery_date and \
-				getdate(sr_details.delivery_date) >= getdate(amc_start_date):
-					throw(_("Maintenance start date can not be before delivery date for Serial No {0}")
+					getdate(sr_details.delivery_date) >= getdate(amc_start_date):
+				throw(_("Maintenance start date can not be before delivery date for Serial No {0}")
 						.format(serial_no))
 
 	def validate_schedule(self):
@@ -248,31 +247,37 @@
 		delete_events(self.doctype, self.name)
 
 @frappe.whitelist()
-def make_maintenance_visit(source_name, target_doc=None):
+def make_maintenance_visit(source_name, target_doc=None,item_name=None,s_id=None):
 	from frappe.model.mapper import get_mapped_doc
 
 	def update_status(source, target, parent):
 		target.maintenance_type = "Scheduled"
 
+	def update_sid(source, target, parent):
+		target.prevdoc_detail_docname = s_id
+
 	doclist = get_mapped_doc("Maintenance Schedule", source_name, {
-		"Maintenance Schedule": {
-			"doctype": "Maintenance Visit",
-			"field_map": {
-				"name": "maintenance_schedule"
+			"Maintenance Schedule": {
+					"doctype": "Maintenance Visit",
+					"field_map": {
+							"name": "maintenance_schedule"
+					},
+					"validation": {
+							"docstatus": ["=", 1]
+					},
+					"postprocess": update_status
 			},
-			"validation": {
-				"docstatus": ["=", 1]
-			},
-			"postprocess": update_status
-		},
-		"Maintenance Schedule Item": {
-			"doctype": "Maintenance Visit Purpose",
-			"field_map": {
-				"parent": "prevdoc_docname",
-				"parenttype": "prevdoc_doctype",
-				"sales_person": "service_person"
+			"Maintenance Schedule Item": {
+					"doctype": "Maintenance Visit Purpose",
+					"field_map": {
+							"parent": "prevdoc_docname",
+							"parenttype": "prevdoc_doctype",
+					},
+					"condition": lambda doc: doc.item_name == item_name,
+
+										"postprocess": update_sid
+
 			}
-		}
 	}, target_doc)
 
 	return doclist
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 73536f6..7fda687 100644
--- a/erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json
+++ b/erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json
@@ -12,7 +12,8 @@
   "scheduled_date",
   "actual_date",
   "sales_person",
-  "serial_no"
+  "serial_no",
+  "completion_status"
  ],
  "fields": [
   {
@@ -52,6 +53,7 @@
   {
    "fieldname": "actual_date",
    "fieldtype": "Date",
+   "in_list_view": 1,
    "label": "Actual Date",
    "no_copy": 1,
    "oldfieldname": "actual_date",
@@ -81,12 +83,18 @@
    "print_width": "160px",
    "read_only": 1,
    "width": "160px"
+  },
+  {
+   "fieldname": "completion_status",
+   "fieldtype": "Select",
+   "label": "Completion Status",
+   "options": "Pending\nPartially Completed\nFully Completed"
   }
  ],
  "idx": 1,
  "istable": 1,
  "links": [],
- "modified": "2021-04-16 16:01:53.271287",
+ "modified": "2021-04-19 16:18:36.723319",
  "modified_by": "Administrator",
  "module": "Maintenance",
  "name": "Maintenance Schedule Detail",
diff --git a/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json b/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
index 467441d..60e5afe 100644
--- a/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
+++ b/erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
@@ -1,4 +1,5 @@
 {
+ "actions": [],
  "autoname": "hash",
  "creation": "2013-02-22 01:28:06",
  "doctype": "DocType",
@@ -62,6 +63,8 @@
    "fieldtype": "Section Break"
   },
   {
+   "fetch_from": "prevdoc_detail_docname.sales_person",
+   "fetch_if_empty": 1,
    "fieldname": "service_person",
    "fieldtype": "Link",
    "in_list_view": 1,
@@ -110,12 +113,12 @@
   },
   {
    "fieldname": "prevdoc_detail_docname",
-   "fieldtype": "Data",
-   "hidden": 1,
+   "fieldtype": "Link",
    "label": "Against Document Detail No",
    "no_copy": 1,
    "oldfieldname": "prevdoc_detail_docname",
    "oldfieldtype": "Data",
+   "options": "Maintenance Schedule Detail",
    "print_hide": 1,
    "print_width": "160px",
    "read_only": 1,
@@ -125,7 +128,8 @@
  ],
  "idx": 1,
  "istable": 1,
- "modified": "2020-09-18 17:26:09.703215",
+ "links": [],
+ "modified": "2021-04-19 16:08:10.671163",
  "modified_by": "Administrator",
  "module": "Maintenance",
  "name": "Maintenance Visit Purpose",
