diff --git a/erpnext/hr/employee_property_update.js b/erpnext/hr/employee_property_update.js
index 97959ce..f22fc4d 100644
--- a/erpnext/hr/employee_property_update.js
+++ b/erpnext/hr/employee_property_update.js
@@ -9,6 +9,16 @@
 		});
 	},
 
+	onload: function(frm){
+		if (frm.doc.__islocal) {
+			if (frm.doctype == "Employee Promotion") {
+				frm.clear_table("promotion_details");
+			} else if (frm.doctype == "Employee Transfer") {
+				frm.clear_table("transfer_details");
+			}
+		}
+	},
+
 	refresh: function(frm) {
 		let table;
 		if (frm.doctype == "Employee Promotion") {
@@ -32,7 +42,7 @@
 			}
 
 			const allowed_fields = [];
-			const exclude_fields = ["naming_series", "employee", "first_name", "middle_name", "last_name",
+			const exclude_fields = ["naming_series", "employee", "first_name", "middle_name", "last_name", "marital_status",
 				"employee_name", "status", "image", "gender", "date_of_birth", "date_of_joining", "lft", "rgt", "old_parent"];
 
 			const exclude_field_types = ["HTML", "Section Break", "Column Break", "Button", "Read Only", "Tab Break", "Table"];
@@ -60,16 +70,14 @@
 		title: "Update Property",
 		fields: [
 			{fieldname: "property", label: __("Select Property"), fieldtype: "Autocomplete", options: field_labels},
-			{fieldname: "current", fieldtype: "Data", label:__("Current"), read_only: true},
-			{fieldname: "field_html", fieldtype: "HTML"}
+			{fieldname: "current", fieldtype: "Data", label: __("Current"), read_only: true},
+			{fieldname: "new_value", fieldtype: "Data", label: __("New")}
 		],
 		primary_action_label: __("Add to Details"),
 		primary_action: () => {
 			d.get_primary_btn().attr("disabled", true);
 			if (d.data) {
-				var input = $('[data-fieldname="field_html"] input');
-				d.data.new = input.val();
-				$(input).remove();
+				d.data.new = d.get_values().new_value;
 				add_to_details(frm, d, table);
 			}
 		}
@@ -86,7 +94,7 @@
 				if(r.message){
 					d.data.current = r.message.value;
 					d.data.property = r.message.label;
-					d.fields_dict.field_html.$wrapper.html("");
+
 					d.set_value('current', r.message.value);
 					render_dynamic_field(d, r.message.datatype, r.message.options, property);
 					d.get_primary_btn().attr('disabled', false);
@@ -105,18 +113,19 @@
 		df: {
 			"fieldtype": fieldtype,
 			"fieldname": fieldname,
-			"options": options || ''
+			"options": options || '',
+			"label": __("New")
 		},
-		parent: d.fields_dict.field_html.wrapper,
+		parent: d.fields_dict.new_value.wrapper,
 		only_input: false
 	});
 	dynamic_field.make_input();
-	$(dynamic_field.label_area).text(__("New"));
+	d.replace_field("new_value", dynamic_field.df);
 };
 
 var add_to_details = function(frm, d, table) {
 	let data = d.data;
-	if(data.fieldname){
+	if (data.fieldname) {
 		if(validate_duplicate(frm, table, data.fieldname)){
 			frappe.show_alert({message:__("Property already added"), indicator:'orange'});
 			return false;
@@ -136,12 +145,12 @@
 
 		frm.fields_dict[table].grid.wrapper.find(".grid-add-row").hide();
 
-		d.fields_dict.field_html.$wrapper.html("");
+		d.fields_dict.new_value.$wrapper.html("");
 		d.set_value("property", "");
-		d.set_value('current', "");
-		frappe.show_alert({message:__("Added to details"),indicator:'green'});
+		d.set_value("current", "");
+		frappe.show_alert({message:__("Added to details"), indicator:'green'});
 		d.data = {};
-	}else {
+	} else {
 		frappe.show_alert({message:__("Value missing"),indicator:'red'});
 	}
 };
