From 9a705169fd3916342c14be693ab7a0da2f188fff Mon Sep 17 00:00:00 2001 From: David Arnold Date: Tue, 30 Jan 2024 12:59:26 +0100 Subject: [PATCH] fix: remove empty dn from bulk creation if date filter renders them empty --- erpnext/selling/doctype/sales_order/sales_order.py | 5 +++++ erpnext/utilities/bulk_transaction.py | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 66b803cce8..776605b112 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -1010,6 +1010,11 @@ def make_delivery_note(source_name, target_doc=None, kwargs=None): for idx, item in enumerate(target_doc.items): item.idx = idx + 1 + if not kwargs.skip_item_mapping and frappe.flags.bulk_transaction and not target_doc.items: + # the (date) condition filter resulted in an unintendedly created empty DN; remove it + del target_doc + return + # Should be called after mapping items. set_missing_values(so, target_doc) diff --git a/erpnext/utilities/bulk_transaction.py b/erpnext/utilities/bulk_transaction.py index f8b9aaa768..3538c24aeb 100644 --- a/erpnext/utilities/bulk_transaction.py +++ b/erpnext/utilities/bulk_transaction.py @@ -156,9 +156,12 @@ def task(doc_name, from_doctype, to_doctype): else: obj = mapper[from_doctype][to_doctype](doc_name) - obj.flags.ignore_validate = True - obj.set_title_field() - obj.insert(ignore_mandatory=True) + if obj: + obj.flags.ignore_validate = True + obj.set_title_field() + obj.insert(ignore_mandatory=True) + + del obj del frappe.flags.bulk_transaction