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

Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
fix: do not modify rate in the child item merely for comparison (#53301)
This commit is contained in:
mergify[bot]
2026-03-12 09:27:04 +00:00
committed by GitHub
parent 6660e643bb
commit 42cfbae782

View File

@@ -524,11 +524,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
@@ -1008,9 +1008,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)