fix: reset old CTC on promotion cancellation
diff --git a/erpnext/hr/doctype/employee_promotion/employee_promotion.json b/erpnext/hr/doctype/employee_promotion/employee_promotion.json
index 64be96b..173573e 100644
--- a/erpnext/hr/doctype/employee_promotion/employee_promotion.json
+++ b/erpnext/hr/doctype/employee_promotion/employee_promotion.json
@@ -106,6 +106,7 @@
    "fieldname": "current_ctc",
    "fieldtype": "Currency",
    "label": "Current CTC",
+   "mandatory_depends_on": "revised_ctc",
    "options": "salary_currency"
   },
   {
@@ -118,7 +119,7 @@
  ],
  "is_submittable": 1,
  "links": [],
- "modified": "2022-04-22 16:26:46.933791",
+ "modified": "2022-04-22 18:47:10.168744",
  "modified_by": "Administrator",
  "module": "HR",
  "name": "Employee Promotion",
diff --git a/erpnext/hr/doctype/employee_promotion/employee_promotion.py b/erpnext/hr/doctype/employee_promotion/employee_promotion.py
index f3d27d0..8c802e9 100644
--- a/erpnext/hr/doctype/employee_promotion/employee_promotion.py
+++ b/erpnext/hr/doctype/employee_promotion/employee_promotion.py
@@ -35,4 +35,8 @@
 	def on_cancel(self):
 		employee = frappe.get_doc("Employee", self.employee)
 		employee = update_employee_work_history(employee, self.promotion_details, cancel=True)
+
+		if self.revised_ctc:
+			employee.ctc = self.current_ctc
+
 		employee.save()
diff --git a/erpnext/hr/doctype/employee_promotion/test_employee_promotion.py b/erpnext/hr/doctype/employee_promotion/test_employee_promotion.py
index 9eb064e..71bb1a6 100644
--- a/erpnext/hr/doctype/employee_promotion/test_employee_promotion.py
+++ b/erpnext/hr/doctype/employee_promotion/test_employee_promotion.py
@@ -49,7 +49,7 @@
 			designation="Software Developer",
 			grade="L1",
 			salary_currency="INR",
-			annual_ctc="500000",
+			ctc="500000",
 		)
 
 		promotion = frappe.get_doc(
@@ -86,6 +86,11 @@
 		promotion.cancel()
 		employee.reload()
 
+		# fields restored
+		self.assertEqual(employee.grade, "L1")
+		self.assertEqual(employee.designation, "Software Developer")
+		self.assertEqual(employee.ctc, 500000)
+
 		# internal work history updated on cancellation
 		self.assertEqual(len(employee.internal_work_history), 1)
 		self.assertEqual(employee.internal_work_history[0].designation, "Software Developer")
diff --git a/erpnext/hr/employee_property_update.js b/erpnext/hr/employee_property_update.js
index 3c958f5..b116833 100644
--- a/erpnext/hr/employee_property_update.js
+++ b/erpnext/hr/employee_property_update.js
@@ -42,7 +42,7 @@
 			}
 
 			const allowed_fields = [];
-			const exclude_fields = ["naming_series", "employee", "first_name", "middle_name", "last_name", "marital_status",
+			const exclude_fields = ["naming_series", "employee", "first_name", "middle_name", "last_name", "marital_status", "ctc",
 				"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"];