fixes in sales order test cases and set_buying_amount
diff --git a/selling/doctype/sales_order/test_sales_order.py b/selling/doctype/sales_order/test_sales_order.py
index 5d820fe..40a10b4 100644
--- a/selling/doctype/sales_order/test_sales_order.py
+++ b/selling/doctype/sales_order/test_sales_order.py
@@ -65,7 +65,7 @@
 		# submit dn
 		dn = self.create_dn_against_so(so)
 		
-		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 6.0)
+		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 5.0)
 		
 		# stop so
 		so.load_from_db()
@@ -75,7 +75,7 @@
 		# unstop so
 		so.load_from_db()
 		so.obj.unstop_sales_order()
-		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 6.0)
+		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 5.0)
 		
 		# cancel dn
 		dn.cancel()
@@ -151,9 +151,9 @@
 		dn = self.create_dn_against_so(so)
 		
 		self.check_reserved_qty(sbom_test_records[0][1]["item_code"], 
-			so.doclist[1].reserved_warehouse, 30.0)
+			so.doclist[1].reserved_warehouse, 25.0)
 		self.check_reserved_qty(sbom_test_records[0][2]["item_code"], 
-			so.doclist[1].reserved_warehouse, 12.0)
+			so.doclist[1].reserved_warehouse, 10.0)
 				
 		# stop so
 		so.load_from_db()
@@ -168,9 +168,9 @@
 		so.load_from_db()
 		so.obj.unstop_sales_order()
 		self.check_reserved_qty(sbom_test_records[0][1]["item_code"], 
-			so.doclist[1].reserved_warehouse, 30.0)
+			so.doclist[1].reserved_warehouse, 25.0)
 		self.check_reserved_qty(sbom_test_records[0][2]["item_code"], 
-			so.doclist[1].reserved_warehouse, 12.0)
+			so.doclist[1].reserved_warehouse, 10.0)
 		
 		# cancel dn
 		dn.cancel()
@@ -234,8 +234,8 @@
 			"price_list_name": "_Test Price List", 
 			"territory": "_Test Territory", 
 			"transaction_date": "2013-02-21",
-			"grand_total": 500.0, 
-			"grand_total_export": 500.0, 
+			"grand_total": 1000.0, 
+			"grand_total_export": 1000.0, 
 		}, 
 		{
 			"description": "CPU", 
@@ -244,9 +244,9 @@
 			"item_name": "CPU", 
 			"parentfield": "sales_order_details", 
 			"qty": 10.0,
-			"basic_rate": 50.0,
-			"export_rate": 50.0,
-			"amount": 500.0,
+			"basic_rate": 100.0,
+			"export_rate": 100.0,
+			"amount": 1000.0,
 			"reserved_warehouse": "_Test Warehouse",
 		}
 	],	
diff --git a/stock/utils.py b/stock/utils.py
index bc6054f..20d08ea 100644
--- a/stock/utils.py
+++ b/stock/utils.py
@@ -181,11 +181,13 @@
 def _get_buying_amount(voucher_type, voucher_no, item_row, item_code, warehouse, qty, 
 		stock_ledger_entries):
 	for i, sle in enumerate(stock_ledger_entries):
-		if sle.voucher_type == voucher_type and sle.voucher_no == voucher_no:
+		if sle.voucher_type == voucher_type and sle.voucher_no == voucher_no and \
+				len(stock_ledger_entries) > i+1:
 			if (sle.voucher_detail_no == item_row) or \
 				(sle.item_code == item_code and sle.warehouse == warehouse and \
 				abs(flt(sle.qty)) == qty):
-					buying_amount = flt(stock_ledger_entries[i+1].stock_value) - flt(sle.stock_value)
+					buying_amount = flt(stock_ledger_entries[i+1].stock_value) - \
+						flt(sle.stock_value)
 
 					return buying_amount