fix: incorrect warehouse in MR

(cherry picked from commit 2b9ca79291)

# Conflicts:
#	erpnext/manufacturing/doctype/production_plan/production_plan.py
This commit is contained in:
Rohit Waghchaure
2025-06-10 17:36:47 +05:30
committed by Mergify
parent 66b0426155
commit 8156d89903
2 changed files with 33 additions and 1 deletions

View File

@@ -1251,6 +1251,7 @@ def get_subitems(
item_default.default_warehouse,
item.purchase_uom,
item_uom.conversion_factor,
bom.item.as_("main_bom_item"),
)
.where(
(bom.name == bom_no)
@@ -1342,6 +1343,7 @@ def get_material_request_items(
get_conversion_factor(row.item_code, item_details.purchase_uom).get("conversion_factor") or 1.0
)
<<<<<<< HEAD
if required_qty > 0:
return {
"item_code": row.item_code,
@@ -1365,6 +1367,31 @@ def get_material_request_items(
"description": row.get("description"),
"uom": row.get("purchase_uom") or row.get("stock_uom"),
}
=======
return {
"item_code": row.item_code,
"item_name": row.item_name,
"quantity": required_qty / conversion_factor,
"conversion_factor": conversion_factor,
"required_bom_qty": total_qty,
"stock_uom": row.get("stock_uom"),
"warehouse": warehouse
or row.get("source_warehouse")
or row.get("default_warehouse")
or item_group_defaults.get("default_warehouse"),
"safety_stock": row.safety_stock,
"actual_qty": bin_dict.get("actual_qty", 0),
"projected_qty": bin_dict.get("projected_qty", 0),
"ordered_qty": bin_dict.get("ordered_qty", 0),
"reserved_qty_for_production": bin_dict.get("reserved_qty_for_production", 0),
"min_order_qty": row["min_order_qty"],
"material_request_type": row.get("default_material_request_type"),
"sales_order": sales_order,
"description": row.get("description"),
"uom": row.get("purchase_uom") or row.get("stock_uom"),
"main_bom_item": row.get("main_bom_item"),
}
>>>>>>> 2b9ca79291 (fix: incorrect warehouse in MR)
def get_sales_orders(self):

View File

@@ -1630,6 +1630,11 @@ def make_raw_material_request(items, company, sales_order, project=None):
items.update({"company": company, "sales_order": sales_order})
item_wh = {}
for item in items.get("items"):
if item.get("warehouse"):
item_wh[item.get("item_code")] = item.get("warehouse")
raw_materials = get_items_for_material_requests(items)
if not raw_materials:
frappe.msgprint(_("Material Request not created, as quantity for Raw Materials already available."))
@@ -1654,7 +1659,7 @@ def make_raw_material_request(items, company, sales_order, project=None):
"item_code": item.get("item_code"),
"qty": item.get("quantity"),
"schedule_date": schedule_date,
"warehouse": item.get("warehouse"),
"warehouse": item_wh.get(item.get("main_bom_item")) or item.get("warehouse"),
"sales_order": sales_order,
"project": project,
},