Need Help. Auto Reorder customize for default warehouse of items

I have modified the reorder_item.py script to perform the following tasks:
separating material requests and items based on warehouse targets.
This worked very well.

But when I start adding tasks like adding a source warehouse based on the default warehouse of the item, this doesn’t seem to work.

I have tried executing it manually via ssh:

bench execute erpnext.stock.reorder_item.reorder_item

but still haven’t succeeded in producing new material requests.

Here is the code that I have modified:

def create_material_request(material_requests):
	mr_list = []
	exceptions_list = []

	def _log_exception(mr):
		if frappe.local.message_log:
			exceptions_list.extend(frappe.local.message_log)
			frappe.local.message_log = []
		else:
			exceptions_list.append(frappe.get_traceback())

		mr.log_error("Unable to create material request")

	for request_type in material_requests:
		for company in material_requests[request_type]:
			try:
				items = material_requests[request_type][company]
				if not items:
					continue

				# Group items by warehouse
				items_by_warehouse = {}
				for d in items:
					d = frappe._dict(d)
					if d.warehouse not in items_by_warehouse:
						items_by_warehouse[d.warehouse] = []
					items_by_warehouse[d.warehouse].append(d)

				# Create a Material Request for each warehouse
				for warehouse, warehouse_items in items_by_warehouse.items():
					mr = frappe.new_doc("Material Request")
					mr.update(
						{
							"company": company,
							"transaction_date": nowdate(),
							"material_request_type": "Material Transfer" if request_type == "Transfer" else request_type,
						}
					)

					for d in warehouse_items:
						item = frappe.get_doc("Item", d.item_code)
						uom = item.stock_uom
						conversion_factor = 1.0

						if request_type == "Purchase":
							uom = item.purchase_uom or item.stock_uom
							if uom != item.stock_uom:
								conversion_factor = (
									frappe.db.get_value(
										"UOM Conversion Detail", {"parent": item.name, "uom": uom}, "conversion_factor"
									)
									or 1.0
								)

						must_be_whole_number = frappe.db.get_value("UOM", uom, "must_be_whole_number", cache=True)
						qty = d.reorder_qty / conversion_factor
						if must_be_whole_number:
							qty = ceil(qty)

						# Get the default warehouse for the item
						default_warehouse = frappe.db.get_value("Item Default", {"parent": d.item_code}, "default_warehouse")

						mr.append(
							"items",
							{
								"doctype": "Material Request Item",
								"item_code": d.item_code,
								"schedule_date": add_days(nowdate(), cint(item.lead_time_days)),
								"qty": qty,
								"uom": uom,
								"stock_uom": item.stock_uom,
								"warehouse": warehouse,  # Use the default warehouse
								"from_warehouse": default_warehouse,  # Use the default warehouse as the source warehouse
								"item_name": item.item_name,
								"description": item.description,
								"item_group": item.item_group,
								"brand": item.brand,
							},
						)

					schedule_dates = [d.schedule_date for d in mr.items]
					mr.schedule_date = max(schedule_dates or [nowdate()])
					mr.flags.ignore_mandatory = True
					mr.insert()
					mr.submit()
					mr_list.append(mr)

Please help.

Solved