fix: reset Error Message on successful operation and fix status update on submit/cancel
diff --git a/erpnext/payroll/doctype/payroll_entry/payroll_entry.py b/erpnext/payroll/doctype/payroll_entry/payroll_entry.py
index 86be813..266621d 100644
--- a/erpnext/payroll/doctype/payroll_entry/payroll_entry.py
+++ b/erpnext/payroll/doctype/payroll_entry/payroll_entry.py
@@ -44,7 +44,7 @@
 		self.set_status()
 
 	def on_submit(self):
-		self.set_status(update=True)
+		self.set_status(update=True, status="Submitted")
 		self.create_salary_slips()
 
 	def before_submit(self):
@@ -90,7 +90,8 @@
 		)
 		self.db_set("salary_slips_created", 0)
 		self.db_set("salary_slips_submitted", 0)
-		self.set_status(update=True)
+		self.set_status(update=True, status="Cancelled")
+		self.db_set("error_message", "")
 
 	def get_emp_list(self):
 		"""
@@ -187,7 +188,7 @@
 					"currency": self.currency,
 				}
 			)
-			if len(employees) > 30:
+			if len(employees) > 30 or frappe.flags.enqueue_payroll_entry:
 				self.db_set("status", "Queued")
 				frappe.enqueue(
 					create_salary_slips_for_employees,
@@ -230,14 +231,14 @@
 	@frappe.whitelist()
 	def submit_salary_slips(self):
 		self.check_permission("write")
-		ss_list = self.get_sal_slip_list(ss_status=0)
-		if len(ss_list) > 30:
+		salary_slips = self.get_sal_slip_list(ss_status=0)
+		if len(salary_slips) > 30 or frappe.flags.enqueue_payroll_entry:
 			self.db_set("status", "Queued")
 			frappe.enqueue(
 				submit_salary_slips_for_employees,
 				timeout=600,
 				payroll_entry=self,
-				salary_slips=ss_list,
+				salary_slips=salary_slips,
 				publish_progress=False,
 			)
 			frappe.msgprint(
@@ -246,7 +247,7 @@
 				indicator="blue",
 			)
 		else:
-			submit_salary_slips_for_employees(self, ss_list, publish_progress=False)
+			submit_salary_slips_for_employees(self, salary_slips, publish_progress=False)
 
 	def email_salary_slip(self, submitted_ss):
 		if frappe.db.get_single_value("Payroll Settings", "email_salary_slip_to_employee"):
@@ -857,7 +858,7 @@
 						title=_("Creating Salary Slips..."),
 					)
 
-		payroll_entry.db_set({"status": "Submitted", "salary_slips_created": 1})
+		payroll_entry.db_set({"status": "Submitted", "salary_slips_created": 1, "error_message": ""})
 
 		if salary_slips_exist_for:
 			frappe.msgprint(
@@ -873,7 +874,7 @@
 		log_payroll_failure("creation", payroll_entry, e)
 
 	finally:
-		frappe.db.commit()
+		frappe.db.commit()  # nosemgrep
 		frappe.publish_realtime("completed_salary_slip_creation")
 
 
@@ -937,7 +938,7 @@
 		if submitted:
 			payroll_entry.make_accrual_jv_entry()
 			payroll_entry.email_salary_slip(submitted)
-			payroll_entry.db_set({"salary_slips_submitted": 1, "status": "Submitted"})
+			payroll_entry.db_set({"salary_slips_submitted": 1, "status": "Submitted", "error_message": ""})
 
 		show_payroll_submission_status(submitted, not_submitted, salary_slip)
 
@@ -946,7 +947,7 @@
 		log_payroll_failure("submission", payroll_entry, e)
 
 	finally:
-		frappe.db.commit()
+		frappe.db.commit()  # nosemgrep
 		frappe.publish_realtime("completed_salary_slip_submission")
 
 	frappe.flags.via_payroll_entry = False