From 1a8dc7e3328d8d7c053c32642c307b502f3e4d40 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 28 Apr 2026 15:13:16 +0530 Subject: [PATCH] fix: update status of quotation in patch (backport #54577) (#54579) fix: update status of quotation in patch (#54577) (cherry picked from commit 2088a01c198ca498dea05c1db183d7055351759f) Co-authored-by: Mihir Kandoi --- .../set_ordered_qty_in_quotation_item.py | 19 +++++++++++++++---- .../selling/doctype/quotation/quotation.js | 3 +-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/erpnext/patches/v16_0/set_ordered_qty_in_quotation_item.py b/erpnext/patches/v16_0/set_ordered_qty_in_quotation_item.py index faa99fcd2ca..46d185a0408 100644 --- a/erpnext/patches/v16_0/set_ordered_qty_in_quotation_item.py +++ b/erpnext/patches/v16_0/set_ordered_qty_in_quotation_item.py @@ -10,7 +10,18 @@ def execute(): ) if data: frappe.db.auto_commit_on_many_writes = 1 - frappe.db.bulk_update( - "Quotation Item", {d.quotation_item: {"ordered_qty": d.ordered_qty} for d in data} - ) - frappe.db.auto_commit_on_many_writes = 0 + try: + frappe.db.bulk_update( + "Quotation Item", {d.quotation_item: {"ordered_qty": d.ordered_qty} for d in data} + ) + quotations = frappe.get_all( + "Quotation Item", + filters={"name": ["in", [d.quotation_item for d in data]]}, + pluck="parent", + distinct=True, + ) + for quotation in quotations: + doc = frappe.get_doc("Quotation", quotation) + doc.set_status(update=True, update_modified=False) + finally: + frappe.db.auto_commit_on_many_writes = 0 diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js index 480ca04b6a9..ab112188ebc 100644 --- a/erpnext/selling/doctype/quotation/quotation.js +++ b/erpnext/selling/doctype/quotation/quotation.js @@ -123,6 +123,7 @@ erpnext.selling.QuotationController = class QuotationController extends erpnext. frappe.datetime.get_diff(doc.valid_till, frappe.datetime.get_today()) >= 0) ) { this.frm.add_custom_button(__("Sales Order"), () => this.make_sales_order(), __("Create")); + cur_frm.page.set_inner_btn_group_as_primary(__("Create")); this.frm.add_custom_button(__("Update Items"), () => { erpnext.utils.update_child_items({ frm: this.frm, @@ -137,8 +138,6 @@ erpnext.selling.QuotationController = class QuotationController extends erpnext. this.frm.trigger("set_as_lost_dialog"); }); } - - cur_frm.page.set_inner_btn_group_as_primary(__("Create")); } if (this.frm.doc.docstatus === 0 && frappe.model.can_read("Opportunity")) {