diff --git a/public/js/stock_grid_report.js b/public/js/stock_grid_report.js
index 46370d2..495ea43 100644
--- a/public/js/stock_grid_report.js
+++ b/public/js/stock_grid_report.js
@@ -28,9 +28,7 @@
 			var value_diff = (rate * add_qty);
 		
 			if(add_qty)
-				wh.fifo_stack.push([add_qty, sl.incoming_rate, sl.posting_date]);
-				
-			if(sl.serial_no) value_diff = this.get_serialized_value_diff(sl);
+				wh.fifo_stack.push([add_qty, sl.incoming_rate, sl.posting_date]);				
 		} else {
 			// outgoing
 			if(sl.serial_no) {
@@ -113,7 +111,8 @@
 		$.each(wn.report_dump.data["Stock Ledger Entry"], function(i, sle) {
 			if(sle.qty > 0 && sle.serial_no) {
 				$.each(sle.serial_no.trim().split("\n"), function(i, sr) {
-					if(sr && sle.incoming_rate !== undefined) {
+					if(sr && sle.incoming_rate !== undefined 
+							&& !serialized_buying_rates[sr.trim().toLowerCase()]) {
 						serialized_buying_rates[sr.trim().toLowerCase()] = flt(sle.incoming_rate);
 					}
 				});
diff --git a/utilities/repost_stock.py b/utilities/repost_stock.py
index b46aae6..7359304 100644
--- a/utilities/repost_stock.py
+++ b/utilities/repost_stock.py
@@ -76,29 +76,29 @@
 	return flt(reserved_qty[0][0]) if reserved_qty else 0
 	
 def get_indented_qty(item_code, warehouse):
-	indented_qty = webnotes.conn.sql("""select sum(pr_item.qty - pr_item.ordered_qty)
+	indented_qty = webnotes.conn.sql("""select sum(pr_item.qty - ifnull(pr_item.ordered_qty, 0))
 		from `tabMaterial Request Item` pr_item, `tabMaterial Request` pr
 		where pr_item.item_code=%s and pr_item.warehouse=%s 
-		and pr_item.qty > pr_item.ordered_qty and pr_item.parent=pr.name 
+		and pr_item.qty > ifnull(pr_item.ordered_qty, 0) and pr_item.parent=pr.name 
 		and pr.status!='Stopped' and pr.docstatus=1""", (item_code, warehouse))
 		
 	return flt(indented_qty[0][0]) if indented_qty else 0
 
 def get_ordered_qty(item_code, warehouse):
 	ordered_qty = webnotes.conn.sql("""
-		select sum((po_item.qty - po_item.received_qty)*po_item.conversion_factor)
+		select sum((po_item.qty - ifnull(po_item.received_qty, 0))*po_item.conversion_factor)
 		from `tabPurchase Order Item` po_item, `tabPurchase Order` po
 		where po_item.item_code=%s and po_item.warehouse=%s 
-		and po_item.qty > po_item.received_qty and po_item.parent=po.name 
+		and po_item.qty > ifnull(po_item.received_qty, 0) and po_item.parent=po.name 
 		and po.status!='Stopped' and po.docstatus=1""", (item_code, warehouse))
 		
 	return flt(ordered_qty[0][0]) if ordered_qty else 0
 			
 def get_planned_qty(item_code, warehouse):
 	planned_qty = webnotes.conn.sql("""
-		select sum(qty - produced_qty) from `tabProduction Order` 
+		select sum(ifnull(qty, 0) - ifnull(produced_qty, 0)) from `tabProduction Order` 
 		where production_item = %s and fg_warehouse = %s and status != "Stopped"
-		and docstatus=1 and qty > produced_qty""", (item_code, warehouse))
+		and docstatus=1 and ifnull(qty, 0) > ifnull(produced_qty, 0)""", (item_code, warehouse))
 
 	return flt(planned_qty[0][0]) if planned_qty else 0
 	
