mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-19 17:30:01 +00:00
fix: reserve projected stock for production plan based on BOM qty
This commit is contained in:
@@ -9,6 +9,7 @@ from collections import defaultdict
|
|||||||
import frappe
|
import frappe
|
||||||
from frappe import _, msgprint
|
from frappe import _, msgprint
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
|
from frappe.query_builder import Case
|
||||||
from frappe.query_builder.functions import IfNull, Sum
|
from frappe.query_builder.functions import IfNull, Sum
|
||||||
from frappe.utils import (
|
from frappe.utils import (
|
||||||
add_days,
|
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
|
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 {
|
return {
|
||||||
"item_code": row.item_code,
|
"item_code": row.item_code,
|
||||||
"item_name": row.item_name,
|
"item_name": row.item_name,
|
||||||
@@ -1880,7 +1881,12 @@ def get_reserved_qty_for_production_plan(item_code, warehouse):
|
|||||||
frappe.qb.from_(table)
|
frappe.qb.from_(table)
|
||||||
.inner_join(child)
|
.inner_join(child)
|
||||||
.on(table.name == child.parent)
|
.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(
|
.where(
|
||||||
(table.docstatus == 1)
|
(table.docstatus == 1)
|
||||||
& (child.item_code == item_code)
|
& (child.item_code == item_code)
|
||||||
|
|||||||
Reference in New Issue
Block a user