fix: unecessary keyword args were passed in mapper functions (#27563)

diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js
index 2a74d60..7f39b99 100755
--- a/erpnext/public/js/utils.js
+++ b/erpnext/public/js/utils.js
@@ -714,12 +714,15 @@
 			child_columns: opts.child_columns,
 			action: function(selections, args) {
 				let values = selections;
-				if(values.length === 0){
+				if (values.length === 0) {
 					frappe.msgprint(__("Please select {0}", [opts.source_doctype]))
 					return;
 				}
 				opts.source_name = values;
-				opts.args = args;
+				if (opts.allow_child_item_selection) {
+					// args contains filtered child docnames
+					opts.args = args;
+				}
 				d.dialog.hide();
 				_map();
 			},
diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py
index 2569c04..cf98b19 100644
--- a/erpnext/stock/doctype/material_request/material_request.py
+++ b/erpnext/stock/doctype/material_request/material_request.py
@@ -272,8 +272,9 @@
 	material_request.update_status(status)
 
 @frappe.whitelist()
-def make_purchase_order(source_name, target_doc=None, args={}):
-
+def make_purchase_order(source_name, target_doc=None, args=None):
+	if args is None:
+		args = {}
 	if isinstance(args, string_types):
 		args = json.loads(args)