[fixes] check ordered and reserved qrt, check closed status for so and po
diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py
index 66d50ba..0c8fba6 100644
--- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py
@@ -70,6 +70,20 @@
 		from erpnext.utilities.transaction_base import UOMMustBeIntegerError
 		po = create_purchase_order(qty=3.4, do_not_save=True)
 		self.assertRaises(UOMMustBeIntegerError, po.insert)
+	
+	def test_ordered_qty_for_closing_po(self):
+		from erpnext.stock.doctype.item.test_item import make_item
+		
+		item = make_item("_Test Close Item", {"is_stock_item": 1, "is_sales_item": 1,
+			"is_purchase_item": 1})
+			
+		po = create_purchase_order(item_code=item.item_code, qty=1)
+		
+		self.assertEquals(get_ordered_qty(item_code=item.item_code, warehouse="_Test Warehouse - _TC"), 1)
+		
+		po.update_status("Closed")
+		
+		self.assertEquals(get_ordered_qty(item_code=item.item_code, warehouse="_Test Warehouse - _TC"), 0)
 
 def create_purchase_order(**args):
 	po = frappe.new_doc("Purchase Order")
diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py
index 71c78bb..459b35f 100644
--- a/erpnext/selling/doctype/sales_order/test_sales_order.py
+++ b/erpnext/selling/doctype/sales_order/test_sales_order.py
@@ -324,17 +324,48 @@
 				"conversion_factor": 1.0
 			}
 		]
-
+		
+		existing_ordered_qty, existing_reserved_qty = frappe.db.get_value("Bin", {"item_code": po_item.item_code, 
+			"Warehouse": "_Test Warehouse - _TC"}, ["ordered_qty", "reserved_qty"])
+					
 		so = make_sales_order(item_list=so_items)
 		po = make_purchase_order_for_drop_shipment(so.name, '_Test Supplier')
+		po.submit()
+		
 		dn = make_delivery_note(so.name)
+		
 
 		self.assertEquals(so.customer, po.customer)
 		self.assertEquals(po.items[0].prevdoc_doctype, "Sales Order")
 		self.assertEquals(po.items[0].prevdoc_docname, so.name)
 		self.assertEquals(po.items[0].item_code, po_item.item_code)
 		self.assertEquals(dn.items[0].item_code, dn_item.item_code)
-
+		
+		#test ordered_qty and reserved_qty		
+		ordered_qty, reserved_qty = frappe.db.get_value("Bin", {"item_code": po_item.item_code, 
+			"Warehouse": "_Test Warehouse - _TC"}, ["ordered_qty", "reserved_qty"])
+					
+		self.assertEquals(abs(ordered_qty), (existing_ordered_qty + so_items[0]['qty']))			
+		self.assertEquals(abs(reserved_qty), (existing_reserved_qty + so_items[0]['qty']))	
+		
+		#test po_item length
+		self.assertEquals(len(po.items), 1)
+		
+	def test_reserved_qty_for_closing_so(self):
+		from erpnext.stock.doctype.item.test_item import make_item
+		
+		item = make_item("_Test Close Item", {"is_stock_item": 1, "is_sales_item": 1,
+			"is_purchase_item": 1})
+			
+		so = make_sales_order(item_code=item.item_code, qty=1)
+		
+		self.assertEquals(get_reserved_qty(item_code=item.item_code, warehouse="_Test Warehouse - _TC"), 1)
+		
+		so.stop_sales_order("Closed")
+		
+		self.assertEquals(get_reserved_qty(item_code=item.item_code, warehouse="_Test Warehouse - _TC"), 0)
+		
+		
 def make_sales_order(**args):
 	so = frappe.new_doc("Sales Order")
 	args = frappe._dict(args)