[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)