Validation for reserved warhouse
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py
index 6522a34..942a2e6 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.py
@@ -257,8 +257,8 @@
def update_reserved_qty_for_subcontract(self):
for d in self.supplied_items:
if d.rm_item_code:
- stock_bin = get_bin(d.rm_item_code, d.reserve_warehouse)
- stock_bin.update_reserved_qty_for_sub_contracting()
+ stock_bin = get_bin(d.rm_item_code, d.reserve_warehouse)
+ stock_bin.update_reserved_qty_for_sub_contracting()
@frappe.whitelist()
def close_or_unclose_purchase_orders(names, status):
diff --git a/erpnext/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.json b/erpnext/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.json
index 1bcf5e4..5e8754f 100644
--- a/erpnext/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.json
+++ b/erpnext/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.json
@@ -327,7 +327,6 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "default": "",
"fieldname": "reserve_warehouse",
"fieldtype": "Link",
"hidden": 0,
@@ -364,7 +363,7 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-11-29 08:51:08.362463",
+ "modified": "2017-11-29 21:10:40.431423",
"modified_by": "Administrator",
"module": "Buying",
"name": "Purchase Order Item Supplied",
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index e05ccc9..15d9c05 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -812,6 +812,12 @@
#Get PO Supplied Items Details
po_doc = frappe.get_doc("Purchase Order",self.purchase_order)
po_supplied_items = po_doc.get("supplied_items")
+ #Validate source warehouse is same as reserved warehouse
+ for item in self.get("items"):
+ if item.s_warehouse:
+ for d in po_supplied_items:
+ if item.item_code == d.rm_item_code and item.s_warehouse != d.reserve_warehouse:
+ frappe.throw(_("In case of Sub Contract Stock Entry, Source Warehouse: {0} should match with Reserved Warehouse: {1} on PO").format(item.s_warehouse,d.reserve_warehouse))
#Update reserved sub contracted quantity in bin based on Supplied Item Details
for d in po_supplied_items:
stock_bin = get_bin(d.rm_item_code, d.reserve_warehouse)