From 1286c9b6890f7f88ff8845c04983b510ba2fd4a5 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Sun, 24 May 2026 12:26:48 +0530 Subject: [PATCH] fix: not able to reserve product bundle through dialog (#55194) (cherry picked from commit 268910467ab34410295fab420c5932af2d14d17d) # Conflicts: # erpnext/selling/doctype/sales_order/sales_order.py --- .../doctype/sales_order/sales_order.py | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 2aff7d44327..2f00f09da96 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -843,12 +843,50 @@ class SalesOrder(SellingController): create_stock_reservation_entries_for_so_items as create_stock_reservation_entries, ) +<<<<<<< HEAD create_stock_reservation_entries( sales_order=self, items_details=items_details, from_voucher_type=from_voucher_type, notify=notify, ) +======= + packed_items = [] + if items_details: + for item in items_details: + if not frappe.db.exists("Sales Order Item", item.get("sales_order_item")): + item["qty"] = item.pop("qty_to_reserve") + packed_items.append(item) + + for item in packed_items: + items_details.remove(item) + + sre_count = 0 + if items_details != []: + sre_count = create_stock_reservation_entries( + sales_order=self, + items_details=items_details, + from_voucher_type=from_voucher_type, + notify=notify, + ) + + items = [] + if packed_items: + items = packed_items + elif not items_details: + items = [item for item in self.packed_items if item.reserve_stock] + + if items: + from erpnext.stock.doctype.stock_reservation_entry.stock_reservation_entry import StockReservation + + stock_reservation = StockReservation(doc=self, items=items) + stock_reservation.table_name = "packed_items" + stock_reservation.qty_field = "qty" + is_sre_created = stock_reservation.make_stock_reservation_entries() + + if notify and is_sre_created and not sre_count: + frappe.msgprint(_("Stock Reservation Entries Created"), alert=True, indicator="green") +>>>>>>> 268910467a (fix: not able to reserve product bundle through dialog (#55194)) @frappe.whitelist() def cancel_stock_reservation_entries(self, sre_list=None, notify=True) -> None: