[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..."