Delivery note update after submission
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index 1600950..bbc9f81 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -68,13 +68,14 @@
 		self.validate_for_items()
 		self.validate_warehouse()
 		self.validate_uom_is_integer("stock_uom", "qty")
-		self.update_current_stock()
 		self.validate_with_previous_doc()
 
 		from erpnext.stock.doctype.packed_item.packed_item import make_packing_list
 		make_packing_list(self, 'delivery_note_details')
 
-		self.status = 'Draft'
+		self.update_current_stock()
+
+		if not self.status: self.status = 'Draft'
 		if not self.installation_status: self.installation_status = 'Not Installed'
 
 	def validate_with_previous_doc(self):
@@ -133,14 +134,17 @@
 
 
 	def update_current_stock(self):
-		for d in self.get('delivery_note_details'):
-			bin = frappe.db.sql("select actual_qty from `tabBin` where item_code = %s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
-			d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
+		if self._action != "update_after_submit":
+			for d in self.get('delivery_note_details'):
+				d.actual_qty = frappe.db.get_value("Bin", {"item_code": d.item_code,
+					"warehouse": d.warehouse}, "actual_qty")
 
-		for d in self.get('packing_details'):
-			bin = frappe.db.sql("select actual_qty, projected_qty from `tabBin` where item_code =	%s and warehouse = %s", (d.item_code, d.warehouse), as_dict = 1)
-			d.actual_qty = bin and flt(bin[0]['actual_qty']) or 0
-			d.projected_qty = bin and flt(bin[0]['projected_qty']) or 0
+			for d in self.get('packing_details'):
+				bin_qty = frappe.db.get_value("Bin", {"item_code": d.item_code,
+					"warehouse": d.warehouse}, ["actual_qty", "projected_qty"], as_dict=True)
+				if bin_qty:
+					d.actual_qty = flt(bin_qty.actual_qty)
+					d.projected_qty = flt(bin_qty.projected_qty)
 
 	def on_submit(self):
 		self.validate_packed_qty()