Merge pull request #39816 from s-aga-r/FIX-9595

fix(ux): set rate as price list rate on uom change in MR
diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js
index e80218a..77a3d6d 100644
--- a/erpnext/stock/doctype/material_request/material_request.js
+++ b/erpnext/stock/doctype/material_request/material_request.js
@@ -228,9 +228,17 @@
 				const qty_fields = ['actual_qty', 'projected_qty', 'min_order_qty'];
 
 				if(!r.exc) {
-					$.each(r.message, function(k, v) {
-						if(!d[k] || in_list(qty_fields, k)) d[k] = v;
+					$.each(r.message, function(key, value) {
+						if(!d[key] || qty_fields.includes(key)) {
+							d[key] = value;
+						}
 					});
+
+					if (d.price_list_rate != r.message.price_list_rate) {
+						d.price_list_rate = r.message.price_list_rate;
+
+						frappe.model.set_value(d.doctype, d.name, "rate", d.price_list_rate);
+					}
 				}
 			}
 		});
@@ -432,7 +440,6 @@
 		item.amount = flt(item.qty) * flt(item.rate);
 		frappe.model.set_value(doctype, name, "amount", item.amount);
 		refresh_field("amount", item.name, item.parentfield);
-		frm.events.get_item_data(frm, item, false);
 	},
 
 	item_code: function(frm, doctype, name) {
@@ -452,7 +459,12 @@
 				set_schedule_date(frm);
 			}
 		}
-	}
+	},
+
+	conversion_factor: function(frm, doctype, name) {
+		const item = locals[doctype][name];
+		frm.events.get_item_data(frm, item, false);
+	},
 });
 
 erpnext.buying.MaterialRequestController = class MaterialRequestController extends erpnext.buying.BuyingController {
diff --git a/erpnext/stock/doctype/material_request_item/material_request_item.json b/erpnext/stock/doctype/material_request_item/material_request_item.json
index 5dc07c9..c7239b5 100644
--- a/erpnext/stock/doctype/material_request_item/material_request_item.json
+++ b/erpnext/stock/doctype/material_request_item/material_request_item.json
@@ -35,6 +35,7 @@
   "received_qty",
   "rate_and_amount_section_break",
   "rate",
+  "price_list_rate",
   "col_break3",
   "amount",
   "accounting_details_section",
@@ -473,13 +474,22 @@
    "fieldtype": "Link",
    "label": "WIP Composite Asset",
    "options": "Asset"
+  },
+  {
+   "fieldname": "price_list_rate",
+   "fieldtype": "Currency",
+   "hidden": 1,
+   "label": "Price List Rate",
+   "options": "currency",
+   "print_hide": 1,
+   "read_only": 1
   }
  ],
  "idx": 1,
  "index_web_pages_for_search": 1,
  "istable": 1,
  "links": [],
- "modified": "2023-11-14 18:37:59.599115",
+ "modified": "2024-02-08 16:30:56.137858",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Material Request Item",
diff --git a/erpnext/stock/doctype/material_request_item/material_request_item.py b/erpnext/stock/doctype/material_request_item/material_request_item.py
index 2bed596..d23d041 100644
--- a/erpnext/stock/doctype/material_request_item/material_request_item.py
+++ b/erpnext/stock/doctype/material_request_item/material_request_item.py
@@ -41,6 +41,7 @@
 		parent: DF.Data
 		parentfield: DF.Data
 		parenttype: DF.Data
+		price_list_rate: DF.Currency
 		production_plan: DF.Link | None
 		project: DF.Link | None
 		projected_qty: DF.Float