fix: do not modify rate in the child item merely for comparison (#53301)

This commit is contained in:
Mihir Kandoi
2026-03-12 14:30:00 +05:30
committed by GitHub
parent 3bb18d0baf
commit 7f644785ce

View File

@@ -527,11 +527,11 @@ class StockReconciliation(StockController):
return True return True
rate_precision = item.precision("valuation_rate") rate_precision = item.precision("valuation_rate")
item_dict["rate"] = flt(item_dict.get("rate"), rate_precision) rate = flt(item_dict.get("rate"), rate_precision)
item.valuation_rate = flt(item.valuation_rate, rate_precision) if item.valuation_rate else None valuation_rate = flt(item.valuation_rate, rate_precision) if item.valuation_rate else None
if ( if (
(item.qty is None or item.qty == item_dict.get("qty")) (item.qty is None or item.qty == item_dict.get("qty"))
and (item.valuation_rate is None or item.valuation_rate == item_dict.get("rate")) and (valuation_rate is None or valuation_rate == rate)
and (not item.serial_no or (item.serial_no == item_dict.get("serial_nos"))) and (not item.serial_no or (item.serial_no == item_dict.get("serial_nos")))
): ):
return False return False
@@ -1011,9 +1011,9 @@ class StockReconciliation(StockController):
def set_total_qty_and_amount(self): def set_total_qty_and_amount(self):
for d in self.get("items"): for d in self.get("items"):
d.amount = flt(d.qty, d.precision("qty")) * flt(d.valuation_rate, d.precision("valuation_rate")) d.amount = flt(flt(d.qty) * flt(d.valuation_rate), d.precision("amount"))
d.current_amount = flt(d.current_qty, d.precision("current_qty")) * flt( d.current_amount = flt(
d.current_valuation_rate, d.precision("current_valuation_rate") flt(d.current_qty) * flt(d.current_valuation_rate), d.precision("current_amount")
) )
d.quantity_difference = flt(d.qty) - flt(d.current_qty) d.quantity_difference = flt(d.qty) - flt(d.current_qty)