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"];