From 31d55248e4ea9bac625d889b5969a36a911f3899 Mon Sep 17 00:00:00 2001 From: Diptanil Saha Date: Fri, 5 Dec 2025 16:31:54 +0530 Subject: [PATCH] Merge pull request #50931 from diptanilsaha/gh-49357 --- erpnext/utilities/bulk_transaction.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/erpnext/utilities/bulk_transaction.py b/erpnext/utilities/bulk_transaction.py index 2aba717482d..636a660575c 100644 --- a/erpnext/utilities/bulk_transaction.py +++ b/erpnext/utilities/bulk_transaction.py @@ -19,9 +19,30 @@ def transaction_processing(data, from_doctype, to_doctype, args=None): if isinstance(args, str): args = frappe._dict(json.loads(args)) + skipped_records = [d for d in deserialized_data if d.get("status") in ("On Hold", "Closed")] + + deserialized_data = [d for d in deserialized_data if d.get("status") not in ("On Hold", "Closed")] + length_of_data = len(deserialized_data) - frappe.msgprint(_("Started a background job to create {1} {0}").format(to_doctype, length_of_data)) + skipped_msg = "" + + if skipped_records: + skipped_msg = _("{0} creation for the following records will be skipped.").format(to_doctype) + + skipped_msg += ( + "

" + ) + + if not length_of_data: + frappe.msgprint(skipped_msg) + return + + frappe.msgprint( + _("Started a background job to create {1} {0}. {2}").format(to_doctype, length_of_data, skipped_msg) + ) frappe.enqueue( job, deserialized_data=deserialized_data,