fix: BOM Update Cost, when no actual qty

(cherry picked from commit a4112c75c5)
This commit is contained in:
s-aga-r
2023-03-30 13:46:50 +05:30
committed by Mergify
parent dcf62dc548
commit 8757435898

View File

@@ -943,7 +943,8 @@ def get_valuation_rate(data):
2) If no value, get last valuation rate from SLE 2) If no value, get last valuation rate from SLE
3) If no value, get valuation rate from Item 3) If no value, get valuation rate from Item
""" """
from frappe.query_builder.functions import Sum from frappe.query_builder.functions import Count, IfNull, Sum
from pypika import Case
item_code, company = data.get("item_code"), data.get("company") item_code, company = data.get("item_code"), data.get("company")
valuation_rate = 0.0 valuation_rate = 0.0
@@ -954,7 +955,14 @@ def get_valuation_rate(data):
frappe.qb.from_(bin_table) frappe.qb.from_(bin_table)
.join(wh_table) .join(wh_table)
.on(bin_table.warehouse == wh_table.name) .on(bin_table.warehouse == wh_table.name)
.select((Sum(bin_table.stock_value) / Sum(bin_table.actual_qty)).as_("valuation_rate")) .select(
Case()
.when(
Count(bin_table.name) > 0, IfNull(Sum(bin_table.stock_value) / Sum(bin_table.actual_qty), 0.0)
)
.else_(None)
.as_("valuation_rate")
)
.where((bin_table.item_code == item_code) & (wh_table.company == company)) .where((bin_table.item_code == item_code) & (wh_table.company == company))
).run(as_dict=True)[0] ).run(as_dict=True)[0]