bin fixes for reposting future entries
diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py
index d1cf65e..9265af0 100644
--- a/erpnext/stock/doctype/bin/bin.py
+++ b/erpnext/stock/doctype/bin/bin.py
@@ -32,12 +32,12 @@
 		self.doc.save()
 			
 		
-		# update valuation for post dated entry
 		if actual_qty:
 			# check actual qty with total number of serial no
 			if serial_no:
 				self.check_qty_with_serial_no()
-			
+				
+			# update valuation and qty after transaction for post dated entry
 			self.update_entries_after(dt, posting_time)
 
 	def check_qty_with_serial_no(self):
@@ -46,11 +46,19 @@
 			Temporary validation added on: 18-07-2011
 		"""
 		if sql("select name from `tabItem` where ifnull(has_serial_no, 'No') = 'Yes' and name = '%s'" % self.doc.item_code):
-			sr_count = sql("select count(name) from `tabSerial No` where item_code = '%s' and warehouse = '%s' and status  ='In Store' and docstatus != 2" % (self.doc.item_code, self.doc.warehouse))[0][0]
+			sr_count = sql("""select count(name) from `tabSerial No` 
+							where item_code = '%s' and warehouse = '%s' 
+							and status  ='In Store' and docstatus != 2
+							""" % (self.doc.item_code, self.doc.warehouse))[0][0]
+			
 			if sr_count != self.doc.actual_qty:
-				msg = "Actual Qty(%s) in Bin is mismatched with total number(%s) of serial no in store for item: '%s' and warehouse: '%s'" % (self.doc.actual_qty, sr_count, self.doc.item_code, self.doc.warehouse)
+				msg = """Actual Qty(%s) in Bin is mismatched with total number(%s) of serial no in store 
+					for item: '%s' and warehouse: '%s'""" % \
+					(self.doc.actual_qty, sr_count, self.doc.item_code, self.doc.warehouse)
+					
 				if getattr(webnotes.defs,'admin_email_notification',1):
-					sendmail(['developers@iwebnotes.com'], sender='automail@webnotestech.com', subject='Serial No Count vs Bin Actual Qty', parts=[['text/plain', msg]])			
+					sendmail(['developers@iwebnotes.com'], sender='automail@webnotestech.com', \
+						subject='Serial No Count vs Bin Actual Qty', parts=[['text/plain', msg]])			
 				msgprint(msg, raise_exception=1)
 
 	# --------------------------------
@@ -91,17 +99,21 @@
 
 
 	# --------------------------------------------------------------------------------------------------------------------------------------
-	# validate negative stock (validate if stock is going -ve in between for back dated entries will consider only is_cancel = 'No' entries)
+	# 
 	# --------------------------------------------------------------------------------------------------------------------------------------
 	def validate_negative_stock(self, cqty, s):
+		"""
+			validate negative stock for entries current datetime onwards
+			will not consider cancelled entries
+		"""
 		diff = cqty + s['actual_qty']
-		if  diff < 0 and (abs(diff) > 0.0001) and s['is_cancelled'] != 'Yes':
+		if  diff < 0 and (abs(diff) > 0.0001) and s['is_cancelled'] == 'No':
 			msgprint("""
 				Negative stock error: 
 				Cannot complete this transaction because stock will 
 				become negative (%s) for Item <b>%s</b> in Warehouse 
 				<b>%s</b> on <b>%s %s</b> in Transaction %s %s""" % \
-				(str(diff), self.doc.item_code, self.doc.warehouse,
+				(str(diff), self.doc.item_code, self.doc.warehouse, \
 					s['posting_date'], s['posting_time'], s['voucher_type'], s['voucher_no']), \
 					raise_exception=1)
 
@@ -201,8 +213,10 @@
 		return stock_val
 
 	def update_entries_after(self, posting_date, posting_time):
-		"""update item valution from the give stock ledger entry (sle)
-		   onwards."""
+		"""
+			update valution rate and qty after transaction 
+			from the current time-bucket onwards
+		"""
 		
 		# Get prev sle
 		prev_sle = self.get_prev_sle(posting_date, posting_time)
@@ -244,7 +258,7 @@
 
 			# Get valuation rate
 			val_rate, stock_val = self.get_valuation_rate(val_method, serial_nos, \
-				val_rate, in_rate, stock_val, cqty, s) 
+				val_rate, in_rate, stock_val, cqty, sle) 
 			
 			# Qty upto the sle
 			cqty += sle['actual_qty'] 
diff --git a/erpnext/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py
index 7384c19..b59ce75 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.py
+++ b/erpnext/stock/doctype/warehouse/warehouse.py
@@ -68,7 +68,7 @@
     bl = sql("select name from tabBin where warehouse=%s", self.doc.name)
     for b in bl:
       bobj = get_obj('Bin',b[0])
-      bobj.update_entries_after(posting_date = '2000-01-01', posting_time = '12:00')
+      bobj.update_entries_after(posting_date = '0000-00-00', posting_time = '00:00')
 
       sql("COMMIT")
       sql("START TRANSACTION")