diff --git a/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py b/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py index 6fa410e50e3..4ad98f4efa7 100644 --- a/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py +++ b/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py @@ -1170,7 +1170,7 @@ class StockReservation: self.available_qty_to_reserve = self.get_available_qty_to_reserve(item_code, warehouse) if not self.available_qty_to_reserve: - self.throw_stock_not_exists_error(item.idx, item_code, warehouse) + self.throw_stock_not_exists_error(item.get("idx"), item_code, warehouse) self.qty_to_be_reserved = ( qty if self.available_qty_to_reserve >= qty else self.available_qty_to_reserve @@ -1230,13 +1230,16 @@ class StockReservation: ) def throw_stock_not_exists_error(self, idx, item_code, warehouse): - frappe.msgprint( - _("Row #{0}: Stock not available to reserve for the Item {1} in Warehouse {2}.").format( + if idx: + msg = _("Row #{0}: Stock not available to reserve for the Item {1} in Warehouse {2}.").format( idx, frappe.bold(item_code), frappe.bold(warehouse) - ), - title=_("Stock Reservation"), - indicator="orange", - ) + ) + else: + msg = _("Stock not available to reserve for the Item {0} in Warehouse {1}.").format( + frappe.bold(item_code), frappe.bold(warehouse) + ) + + frappe.msgprint(msg, title=_("Stock Reservation"), indicator="orange") def get_available_qty_to_reserve(self, item_code, warehouse, ignore_sre=None): available_qty = get_stock_balance(item_code, warehouse)