fix: reserve projected stock for production plan based on BOM qty

This commit is contained in:
pandiyan
2026-06-27 23:20:11 +05:30
parent d992f6f5c8
commit d3df0bf387

View File

@@ -9,6 +9,7 @@ from collections import defaultdict
import frappe
from frappe import _, msgprint
from frappe.model.document import Document
from frappe.query_builder import Case
from frappe.query_builder.functions import IfNull, Sum
from frappe.utils import (
add_days,
@@ -1375,7 +1376,7 @@ def get_material_request_items(
get_conversion_factor(row.item_code, item_details.purchase_uom).get("conversion_factor") or 1.0
)
if required_qty > 0:
if flt(row.get("qty")) > 0:
return {
"item_code": row.item_code,
"item_name": row.item_name,
@@ -1880,7 +1881,12 @@ def get_reserved_qty_for_production_plan(item_code, warehouse):
frappe.qb.from_(table)
.inner_join(child)
.on(table.name == child.parent)
.select(Sum(child.quantity * child.conversion_factor))
.select(
Sum(
(Case().when(child.quantity == 0, child.required_bom_qty).else_(child.quantity))
* child.conversion_factor
)
)
.where(
(table.docstatus == 1)
& (child.item_code == item_code)