feat: use new bulk creation arguments and contrue a cut-off date selector for dn-from-so
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index 5d1d769..8a62926 100755
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -932,6 +932,9 @@
 		if frappe.flags.args and frappe.flags.args.delivery_dates:
 			if cstr(doc.delivery_date) not in frappe.flags.args.delivery_dates:
 				return False
+		if frappe.flags.args and frappe.flags.args.until_delivery_date:
+			if cstr(doc.delivery_date) > frappe.flags.args.until_delivery_date:
+				return False
 
 		return abs(doc.delivered_qty) < abs(doc.qty) and doc.delivered_by_supplier != 1
 
diff --git a/erpnext/selling/doctype/sales_order/sales_order_list.js b/erpnext/selling/doctype/sales_order/sales_order_list.js
index 37686a8..822c6cb 100644
--- a/erpnext/selling/doctype/sales_order/sales_order_list.js
+++ b/erpnext/selling/doctype/sales_order/sales_order_list.js
@@ -55,7 +55,18 @@
 		});
 
 		listview.page.add_action_item(__("Delivery Note"), ()=>{
-			erpnext.bulk_transaction_processing.create(listview, "Sales Order", "Delivery Note");
+			var dialog = new frappe.ui.Dialog({
+				title: __("Select Items up to Delivery Date"),
+				fields: [{fieldtype: "Date", fieldname: "delivery_date", default: frappe.datetime.add_days(frappe.datetime.nowdate(), 1)}]
+			});
+			dialog.set_primary_action(__("Select"), function(values) {
+				var until_delivery_date = values.delivery_date;
+				erpnext.bulk_transaction_processing.create(listview, "Sales Order", "Delivery Note", {
+    					until_delivery_date
+				});
+				dialog.hide();
+			});
+			dialog.show();
 		});
 
 		listview.page.add_action_item(__("Advance Payment"), ()=>{