[minor] Check if item is stock item before validating Warehouse while Purchase Return (#9282)
* Check if item is stock item before validating Warehouse
* changed logic to decide warehouse_mandatory
diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py
index 45447d7..5412807 100644
--- a/erpnext/controllers/sales_and_purchase_return.py
+++ b/erpnext/controllers/sales_and_purchase_return.py
@@ -71,7 +71,7 @@
already_returned_items = get_already_returned_items(doc)
# ( not mandatory when it is Purchase Invoice or a Sales Invoice without Update Stock )
- warehouse_mandatory = not (doc.doctype=="Purchase Invoice" or (doc.doctype=="Sales Invoice" and not doc.update_stock))
+ warehouse_mandatory = not ((doc.doctype=="Purchase Invoice" or doc.doctype=="Sales Invoice") and not doc.update_stock))
items_returned = False
for d in doc.get("items"):
@@ -101,8 +101,9 @@
frappe.throw(_("Row # {0}: Serial No {1} does not match with {2} {3}")
.format(d.idx, s, doc.doctype, doc.return_against))
- if warehouse_mandatory and not d.get("warehouse"):
- frappe.throw(_("Warehouse is mandatory"))
+ if warehouse_mandatory and frappe.db.get_value("Item", d.item_code, "is_stock_item") \
+ and not d.get("warehouse"):
+ frappe.throw(_("Warehouse is mandatory"))
items_returned = True