[minor] wnf refactor, fixes in demo
diff --git a/utilities/demo/make_demo.py b/utilities/demo/make_demo.py
index 2d2d07e..6c6ccab 100644
--- a/utilities/demo/make_demo.py
+++ b/utilities/demo/make_demo.py
@@ -34,17 +34,20 @@
 	webnotes.mute_emails = True
 	webnotes.rollback_on_exception = True
 	
+	if not webnotes.conf.demo_db_name:
+		raise Exception("conf.py does not have demo_db_name")
+	
 	if reset:
 		setup()
 	else:
-		webnotes.connect()
+		webnotes.connect(db_name=webnotes.conf.demo_db_name)
 	
 	if simulate:
 		_simulate()
 		
 def setup():
 	install()
-	webnotes.connect()
+	webnotes.connect(db_name=webnotes.conf.demo_db_name)
 	complete_setup()
 	make_customers_suppliers_contacts()
 	make_items()
@@ -142,14 +145,17 @@
 	# make purchase requests
 	if can_make("Purchase Receipt"):
 		from buying.doctype.purchase_order.purchase_order import make_purchase_receipt
+		from stock.stock_ledger import NegativeStockError
 		report = "Purchase Order Items To Be Received"
 		for po in list(set([r[0] for r in query_report.run(report)["result"] if r[0]!="Total"]))[:how_many("Purchase Receipt")]:
 			pr = webnotes.bean(make_purchase_receipt(po))
 			pr.doc.posting_date = current_date
 			pr.doc.fiscal_year = "2013"
 			pr.insert()
-			pr.submit()
-			webnotes.conn.commit()
+			try:
+				pr.submit()
+				webnotes.conn.commit()
+			except NegativeStockError: pass
 	
 	# make delivery notes (if possible)
 	if can_make("Delivery Note"):
@@ -363,7 +369,7 @@
 	from webnotes.install_lib.install import Installer
 	from webnotes import conf
 	inst = Installer('root')
-	inst.import_from_db(conf.demo_db_name, verbose = 1)
+	inst.install(conf.demo_db_name, verbose=1, force=1)
 
 def complete_setup():
 	print "Complete Setup..."
diff --git a/utilities/demo/make_erpnext_demo.py b/utilities/demo/make_erpnext_demo.py
index 4a72e4b..50c66a3 100644
--- a/utilities/demo/make_erpnext_demo.py
+++ b/utilities/demo/make_erpnext_demo.py
@@ -7,7 +7,9 @@
 
 def make_demo_app(site=None):
 	webnotes.mute_emails = 1
-	webnotes.connect(site)
+	webnotes.init(site=site)
+	webnotes.connect(db_name=webnotes.conf.demo_db_name, site=site)
+
 	utilities.demo.make_demo.make(reset=True, simulate=False)
 	# setup demo user etc so that the site it up faster, while the data loads
 	make_demo_user()
@@ -116,4 +118,6 @@
 	webnotes.conn.commit()
 
 if __name__=="__main__":
-	make_demo_app()
+	import sys
+	site = sys.argv[1:]
+	make_demo_app(site=site and site[0] or None)