From 6dcc0cab3a9cca4d45123995d4ab98e30c6ce052 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Fri, 17 Jul 2026 18:24:15 +0530 Subject: [PATCH] fix: pass ctx keys get_price_list_rate_for reads, skip rate update on insert update_item_rates passed price_not_uom_dependent, a key get_price_list_rate_for never reads, and omitted conversion_factor, so a stock-UOM price was never converted to the row UOM. The function's (historically misnamed) price_list_uom_dependant ctx key carries the Price List's price_not_uom_dependent value: truthy returns the found rate as-is, falsy multiplies by conversion_factor. Also guard on_update with is_new(): has_value_changed returns True when there is no doc_before_save, so every first save re-wrote item rates. --- erpnext/stock/doctype/material_request/material_request.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py index 099f8f25508..48d3d78168c 100644 --- a/erpnext/stock/doctype/material_request/material_request.py +++ b/erpnext/stock/doctype/material_request/material_request.py @@ -202,7 +202,7 @@ class MaterialRequest(BuyingController): self.buying_price_list = buying_price_list def on_update(self): - if self.buying_price_list and self.has_value_changed("buying_price_list"): + if not self.is_new() and self.buying_price_list and self.has_value_changed("buying_price_list"): self.update_item_rates() def update_item_rates(self): @@ -218,7 +218,8 @@ class MaterialRequest(BuyingController): "transaction_date": self.transaction_date, "qty": item.qty, "stock_uom": item.stock_uom, - "price_not_uom_dependent": price_not_uom_dependent, + "conversion_factor": item.conversion_factor, + "price_list_uom_dependant": price_not_uom_dependent, } ), item.item_code,