From a1f2aec918e51a72fba136b7b646bfa87a2237e4 Mon Sep 17 00:00:00 2001 From: Saurabh Date: Thu, 22 Oct 2015 12:17:54 +0530 Subject: [PATCH] [fixes] check ordered and reserved qrt, check closed status for so and po --- .../purchase_order/test_purchase_order.py | 14 ++++++++ .../doctype/sales_order/test_sales_order.py | 35 +++++++++++++++++-- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py index 66d50ba89d3..0c8fba62b52 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 @@ class TestPurchaseOrder(unittest.TestCase): 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 71c78bbcb29..459b35fb1b5 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 @@ class TestSalesOrder(unittest.TestCase): "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)