From 6a8eba891e89bb851e6d3de8d905cb759aef8102 Mon Sep 17 00:00:00 2001 From: pawan Date: Tue, 23 Jan 2018 00:57:44 +0530 Subject: [PATCH] Move target warehouse validation to submit --- .../stock/doctype/stock_entry/stock_entry.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 742f0fadfc..ca133b4a7e 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -64,6 +64,13 @@ class StockEntry(StockController): self.calculate_rate_and_amount(update_finished_item_rate=False) def on_submit(self): + for d in self.items: + if self.purpose == "Subcontract" and not d.t_warehouse: + if self.to_warehouse: + d.t_warehouse = self.to_warehouse + else: + frappe.throw(_("Target warehouse is mandatory for row {0}").format(d.idx)) + self.update_stock_ledger() from erpnext.stock.doctype.serial_no.serial_no import update_serial_nos_after_submit @@ -126,11 +133,7 @@ class StockEntry(StockController): """perform various (sometimes conditional) validations on warehouse""" source_mandatory = ["Material Issue", "Material Transfer", "Subcontract", "Material Transfer for Manufacture"] - #Allow creation of draft subcontract entries without target warehouse - if self.purpose == "Subcontract" and not frappe.db.exists("Stock Entry",{"name": self.name}): - target_mandatory = ["Material Receipt", "Material Transfer", "Material Transfer for Manufacture"] - else: - target_mandatory = ["Material Receipt", "Material Transfer", "Subcontract", "Material Transfer for Manufacture"] + target_mandatory = ["Material Receipt", "Material Transfer", "Subcontract", "Material Transfer for Manufacture"] validate_for_manufacture_repack = any([d.bom_no for d in self.get("items")]) @@ -161,7 +164,9 @@ class StockEntry(StockController): if self.to_warehouse: d.t_warehouse = self.to_warehouse else: - frappe.throw(_("Target warehouse is mandatory for row {0}").format(d.idx)) + #move validation for sub contract to submit + if self.purpose != "Subcontract": + frappe.throw(_("Target warehouse is mandatory for row {0}").format(d.idx)) if self.purpose in ["Manufacture", "Repack"]: if validate_for_manufacture_repack: