From f618bf212ff468a89b236b170e52c0ef5ccbebb6 Mon Sep 17 00:00:00 2001 From: diptanilsaha Date: Wed, 14 Jan 2026 01:34:20 +0530 Subject: [PATCH 1/4] fix(transaction.js): use flt instead of cint for plc_conversion_rate (cherry picked from commit 8b445e04e57ecfb25a22e767c455c3cabe173cb6) # Conflicts: # erpnext/public/js/controllers/transaction.js --- erpnext/public/js/controllers/transaction.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 7abdbe75fd5..c8fdad3f6ba 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -1332,9 +1332,18 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe plc_conversion_rate() { if(this.frm.doc.price_list_currency === this.get_company_currency()) { this.frm.set_value("plc_conversion_rate", 1.0); +<<<<<<< HEAD } else if(this.frm.doc.price_list_currency === this.frm.doc.currency && this.frm.doc.plc_conversion_rate && cint(this.frm.doc.plc_conversion_rate) != 1 && cint(this.frm.doc.plc_conversion_rate) != cint(this.frm.doc.conversion_rate)) { +======= + } else if ( + this.frm.doc.price_list_currency === this.frm.doc.currency && + this.frm.doc.plc_conversion_rate && + flt(this.frm.doc.plc_conversion_rate) != 1 && + flt(this.frm.doc.plc_conversion_rate) != flt(this.frm.doc.conversion_rate) + ) { +>>>>>>> 8b445e04e5 (fix(transaction.js): use flt instead of cint for plc_conversion_rate) this.frm.set_value("conversion_rate", this.frm.doc.plc_conversion_rate); } From d5982cab030f1b6c3c6f28354aa068ead64d9fb7 Mon Sep 17 00:00:00 2001 From: Diptanil Saha Date: Wed, 14 Jan 2026 15:54:10 +0530 Subject: [PATCH 2/4] chore: resolve conflict --- erpnext/public/js/controllers/transaction.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index c8fdad3f6ba..898e8347292 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -1332,18 +1332,12 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe plc_conversion_rate() { if(this.frm.doc.price_list_currency === this.get_company_currency()) { this.frm.set_value("plc_conversion_rate", 1.0); -<<<<<<< HEAD - } else if(this.frm.doc.price_list_currency === this.frm.doc.currency - && this.frm.doc.plc_conversion_rate && cint(this.frm.doc.plc_conversion_rate) != 1 && - cint(this.frm.doc.plc_conversion_rate) != cint(this.frm.doc.conversion_rate)) { -======= } else if ( this.frm.doc.price_list_currency === this.frm.doc.currency && this.frm.doc.plc_conversion_rate && flt(this.frm.doc.plc_conversion_rate) != 1 && flt(this.frm.doc.plc_conversion_rate) != flt(this.frm.doc.conversion_rate) ) { ->>>>>>> 8b445e04e5 (fix(transaction.js): use flt instead of cint for plc_conversion_rate) this.frm.set_value("conversion_rate", this.frm.doc.plc_conversion_rate); } From b3df300ea5a936f6ecc7bb213970d8c64e5bc336 Mon Sep 17 00:00:00 2001 From: mahsem <137205921+mahsem@users.noreply.github.com> Date: Wed, 14 Jan 2026 16:36:22 +0100 Subject: [PATCH 3/4] fix: docs_path (cherry picked from commit 7ef8c81caf13452099ef8cd397f7f4e198284dfd) --- erpnext/stock/doctype/item/item.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index 6ec2f4957d9..a1f0fe2aab8 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -977,7 +977,7 @@ frappe.tour["Item"] = [ fieldname: "valuation_rate", title: "Valuation Rate", description: __( - "There are two options to maintain valuation of stock. FIFO (first in - first out) and Moving Average. To understand this topic in detail please visit Item Valuation, FIFO and Moving Average." + "There are two options to maintain valuation of stock. FIFO (first in - first out) and Moving Average. To understand this topic in detail please visit Item Valuation, FIFO and Moving Average." ), }, { From 90e8090dccf396ad72b5b219ca786ab592c4548e Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Mon, 29 Dec 2025 14:54:44 +0530 Subject: [PATCH 4/4] fix: RFQ does not fetch html response (cherry picked from commit da899913b8cd89c8c38cff9f60b761b4f88b97ea) --- .../request_for_quotation.js | 17 +++++++++++++++++ .../request_for_quotation.json | 6 ++---- .../request_for_quotation.py | 8 ++++++++ 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js index 6ab5048082e..5d57224cdc0 100644 --- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js +++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js @@ -248,6 +248,23 @@ frappe.ui.form.on("Request for Quotation", { } refresh_field("items"); }, + + email_template(frm) { + if (frm.doc.email_template) { + frappe.db + .get_value("Email Template", frm.doc.email_template, [ + "use_html", + "response", + "response_html", + ]) + .then((r) => { + frm.set_value( + "message_for_supplier", + r.message.use_html ? r.message.response_html : r.message.response + ); + }); + } + }, preview: (frm) => { let dialog = new frappe.ui.Dialog({ title: __("Preview Email"), diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.json b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.json index 824484f9c20..a7f7ee09434 100644 --- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.json +++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.json @@ -139,8 +139,6 @@ }, { "allow_on_submit": 1, - "fetch_from": "email_template.response", - "fetch_if_empty": 1, "fieldname": "message_for_supplier", "fieldtype": "Text Editor", "in_list_view": 1, @@ -322,7 +320,7 @@ "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], - "modified": "2025-03-03 16:48:39.856779", + "modified": "2025-12-29 14:44:18.934901", "modified_by": "Administrator", "module": "Buying", "name": "Request for Quotation", @@ -393,4 +391,4 @@ "sort_field": "modified", "sort_order": "DESC", "states": [] -} \ No newline at end of file +} diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py index e8c5690cf6f..d8fcc45f9fd 100644 --- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py +++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py @@ -66,6 +66,7 @@ class RequestforQuotation(BuyingController): def before_validate(self): self.set_has_unit_price_items() self.flags.allow_zero_qty = self.has_unit_price_items + self.set_message_for_supplier() def validate(self): self.validate_duplicate_supplier() @@ -90,6 +91,13 @@ class RequestforQuotation(BuyingController): not row.qty for row in self.get("items") if (row.item_code and not row.qty) ) + def set_message_for_supplier(self): + if self.email_template and not self.message_for_supplier: + data = frappe.get_value( + "Email Template", self.email_template, ["use_html", "response", "response_html"], as_dict=True + ) + self.message_for_supplier = data.response_html if data.use_html else data.response + def validate_duplicate_supplier(self): supplier_list = [d.supplier for d in self.suppliers] if len(supplier_list) != len(set(supplier_list)):