Merge pull request #4556 from nabinhait/setup_bank

[fix] Create bank accounts from setup wizard #4546
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py
index b10b72f..2a6ab88 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.py
@@ -140,7 +140,7 @@
 		clear_doctype_notifications(self)
 
 	def on_submit(self):
-		if self.has_drop_ship_item():
+		if self.is_against_so():
 			self.update_status_updater()
 
 		super(PurchaseOrder, self).on_submit()
@@ -157,8 +157,10 @@
 		purchase_controller.update_last_purchase_rate(self, is_submit = 1)
 
 	def on_cancel(self):
-		if self.has_drop_ship_item():
+		if self.is_against_so():
 			self.update_status_updater()
+			
+		if self.has_drop_ship_item():
 			self.update_delivered_qty_in_sales_order()
 
 		pc_obj = frappe.get_doc('Purchase Common')
@@ -222,13 +224,10 @@
 			so.notify_update()
 
 	def has_drop_ship_item(self):
-		is_drop_ship = False
-
-		for item in self.items:
-			if item.delivered_by_supplier == 1:
-				is_drop_ship = True
-
-		return is_drop_ship
+		return any([d.delivered_by_supplier for d in self.items])
+		
+	def is_against_so(self):
+		return any([d.prevdoc_doctype for d in self.items if d.prevdoc_doctype=="Sales Order"])
 
 	def set_received_qty_for_drop_ship_items(self):
 		for item in self.items:
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 8e6b2c6..e3c275a 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -23,6 +23,7 @@
 setup_wizard_requires = "assets/erpnext/js/setup_wizard.js"
 setup_wizard_complete = "erpnext.setup.setup_wizard.setup_wizard.setup_complete"
 
+before_install = "erpnext.setup.install.check_setup_wizard_not_completed"
 after_install = "erpnext.setup.install.after_install"
 
 boot_session = "erpnext.startup.boot.boot_session"
diff --git a/erpnext/setup/install.py b/erpnext/setup/install.py
index dcb6eb3..b4e19da 100644
--- a/erpnext/setup/install.py
+++ b/erpnext/setup/install.py
@@ -17,6 +17,14 @@
 	add_web_forms()
 	frappe.db.commit()
 
+def check_setup_wizard_not_completed():
+	if frappe.db.get_default('desktop:home_page') == 'desktop':
+		print
+		print "ERPNext can only be installed on a fresh site where the setup wizard is not completed"
+		print "You can reinstall this site (after saving your data) using: bench --site [sitename] reinstall"
+		print
+		return False
+
 def feature_setup():
 	"""save global defaults and features setup"""
 	doc = frappe.get_doc("Features Setup", "Features Setup")