chore: use frappe.qb
instead of frappe.db.get_value
This commit is contained in:
parent
c716dcc01e
commit
c3911a592a
@ -1179,21 +1179,22 @@ def get_bin_details(item_code, warehouse, company=None, include_child_warehouses
|
|||||||
bin_details = {"projected_qty": 0, "actual_qty": 0, "reserved_qty": 0}
|
bin_details = {"projected_qty": 0, "actual_qty": 0, "reserved_qty": 0}
|
||||||
|
|
||||||
if warehouse:
|
if warehouse:
|
||||||
|
from frappe.query_builder.functions import Coalesce, Sum
|
||||||
|
|
||||||
from erpnext.stock.doctype.warehouse.warehouse import get_child_warehouses
|
from erpnext.stock.doctype.warehouse.warehouse import get_child_warehouses
|
||||||
|
|
||||||
warehouses = get_child_warehouses(warehouse) if include_child_warehouses else [warehouse]
|
warehouses = get_child_warehouses(warehouse) if include_child_warehouses else [warehouse]
|
||||||
bin_details = frappe.db.get_value(
|
|
||||||
"Bin",
|
bin = frappe.qb.DocType("Bin")
|
||||||
filters={"item_code": item_code, "warehouse": ["in", warehouses]},
|
bin_details = (
|
||||||
fieldname=[
|
frappe.qb.from_(bin)
|
||||||
"sum(projected_qty) as projected_qty",
|
.select(
|
||||||
"sum(actual_qty) as actual_qty",
|
Coalesce(Sum(bin.projected_qty), 0).as_("projected_qty"),
|
||||||
"sum(reserved_qty) as reserved_qty",
|
Coalesce(Sum(bin.actual_qty), 0).as_("actual_qty"),
|
||||||
],
|
Coalesce(Sum(bin.reserved_qty), 0).as_("reserved_qty"),
|
||||||
as_dict=True,
|
)
|
||||||
cache=True,
|
.where((bin.item_code == item_code) & (bin.warehouse.isin(warehouses)))
|
||||||
)
|
).run(as_dict=True)[0]
|
||||||
bin_details = {k: 0 if not v else v for k, v in bin_details.items()}
|
|
||||||
|
|
||||||
if company:
|
if company:
|
||||||
bin_details["company_total_stock"] = get_company_total_stock(item_code, company)
|
bin_details["company_total_stock"] = get_company_total_stock(item_code, company)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user