Merge pull request #4642 from nabinhait/return_fix1
[fix] Accept return items in any warehouse
diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py
index c6c7111..868720a 100644
--- a/erpnext/controllers/sales_and_purchase_return.py
+++ b/erpnext/controllers/sales_and_purchase_return.py
@@ -96,6 +96,9 @@
if s not in ref_serial_nos:
frappe.throw(_("Row # {0}: Serial No {1} does not match with {2} {3}")
.format(d.idx, s, doc.doctype, doc.return_against))
+
+ if not d.warehouse:
+ frappe.throw(_("Warehouse is mandatory"))
items_returned = True
diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py
index 842faec..4c6a320 100644
--- a/erpnext/controllers/stock_controller.py
+++ b/erpnext/controllers/stock_controller.py
@@ -218,14 +218,14 @@
return serialized_items
- def get_incoming_rate_for_sales_return(self, item_code, warehouse, against_document):
+ def get_incoming_rate_for_sales_return(self, item_code, against_document):
incoming_rate = 0.0
if against_document and item_code:
incoming_rate = frappe.db.sql("""select abs(stock_value_difference / actual_qty)
from `tabStock Ledger Entry`
where voucher_type = %s and voucher_no = %s
- and item_code = %s and warehouse=%s limit 1""",
- (self.doctype, against_document, item_code, warehouse))
+ and item_code = %s limit 1""",
+ (self.doctype, against_document, item_code))
incoming_rate = incoming_rate[0][0] if incoming_rate else 0.0
return incoming_rate
@@ -257,8 +257,7 @@
if frappe.db.get_value("Item", d.item_code, "is_stock_item") == 1 and flt(d.qty):
return_rate = 0
if cint(self.is_return) and self.return_against and self.docstatus==1:
- return_rate = self.get_incoming_rate_for_sales_return(d.item_code,
- d.warehouse, self.return_against)
+ return_rate = self.get_incoming_rate_for_sales_return(d.item_code, self.return_against)
# On cancellation or if return entry submission, make stock ledger entry for
# target warehouse first, to update serial no values properly