Skip to content

Commit

Permalink
fix: BOM Update Cost, when no actual qty
Browse files Browse the repository at this point in the history
(cherry picked from commit a4112c7)
  • Loading branch information
s-aga-r authored and mergify[bot] committed Apr 1, 2023
1 parent 008c985 commit 9725698
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions erpnext/manufacturing/doctype/bom/bom.py
Original file line number Diff line number Diff line change
Expand Up @@ -949,7 +949,8 @@ def get_valuation_rate(data):
2) If no value, get last valuation rate from SLE
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")
valuation_rate = 0.0
Expand All @@ -960,7 +961,14 @@ def get_valuation_rate(data):
frappe.qb.from_(bin_table)
.join(wh_table)
.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))
).run(as_dict=True)[0]

Expand Down

0 comments on commit 9725698

Please sign in to comment.