testcases for reserved qty
diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py
index 8686081..7e637cc 100644
--- a/selling/doctype/sales_order/sales_order.py
+++ b/selling/doctype/sales_order/sales_order.py
@@ -338,7 +338,7 @@
if not d['reserved_warehouse']:
msgprint("""Please enter Reserved Warehouse for item %s
as it is stock Item""" % d['item_code'], raise_exception=1)
-
+
args = {
"item_code": d['item_code'],
"reserved_qty": flt(update_stock) * flt(d['qty']),
diff --git a/selling/doctype/sales_order/test_sales_order.py b/selling/doctype/sales_order/test_sales_order.py
new file mode 100644
index 0000000..f1a159a
--- /dev/null
+++ b/selling/doctype/sales_order/test_sales_order.py
@@ -0,0 +1,84 @@
+import webnotes
+from webnotes.utils import flt
+import unittest
+
+class TestSalesOrder(unittest.TestCase):
+ def make(self):
+ w = webnotes.model_wrapper(webnotes.copy_doclist(test_records[0]))
+ w.insert()
+ w.submit()
+ return w
+
+ def get_bin_reserved_qty(self, item_code, warehouse):
+ return flt(webnotes.conn.get_value("Bin", {"item_code": item_code, "warehouse": warehouse},
+ "reserved_qty"))
+
+ def test_reserved_qty_so_submit_cancel(self):
+ # submit
+ so = self.make()
+ print self.get_bin_reserved_qty(so.doclist[1].item_code,
+ so.doclist[1].reserved_warehouse)
+
+ reserved_qty = self.get_bin_reserved_qty(so.doclist[1].item_code,
+ so.doclist[1].reserved_warehouse)
+ self.assertEqual(reserved_qty, 10.0)
+ # cancel
+ so.cancel()
+ reserved_qty = self.get_bin_reserved_qty(so.doclist[1].item_code,
+ so.doclist[1].reserved_warehouse)
+ self.assertEqual(reserved_qty, 0.0)
+
+ def test_reserved_qty_dn_submit_cancel(self):
+ so = self.make()
+
+ # allow negative stock
+ webnotes.conn.set_default("allow_negative_stock", 1)
+
+ # dn submit (against so)
+ from stock.doctype.delivery_note.test_delivery_note import test_records as dn_test_records
+ dn = webnotes.model_wrapper(webnotes.copy_doclist(dn_test_records[0]))
+ dn.doclist[1].prevdoc_doctype = "Sales Order"
+ dn.doclist[1].prevdoc_docname = so.doc.name
+ dn.doclist[1].prevdoc_detail_docname = so.doclist[1].name
+ dn.insert()
+ dn.submit()
+
+ reserved_qty = self.get_bin_reserved_qty(so.doclist[1].item_code,
+ so.doclist[1].reserved_warehouse)
+ self.assertEqual(reserved_qty, 6.0)
+
+test_records = [
+ [
+ {
+ "company": "_Test Company",
+ "conversion_rate": 1.0,
+ "currency": "INR",
+ "customer": "_Test Customer",
+ "customer_name": "_Test Customer",
+ "customer_group": "_Test Customer Group",
+ "doctype": "Sales Order",
+ "fiscal_year": "_Test Fiscal Year 2013",
+ "order_type": "Sales",
+ "delivery_date": "2013-02-23",
+ "plc_conversion_rate": 1.0,
+ "price_list_currency": "INR",
+ "price_list_name": "_Test Price List",
+ "territory": "_Test Territory",
+ "transaction_date": "2013-02-21",
+ "grand_total": 500.0,
+ "grand_total_export": 500.0,
+ },
+ {
+ "description": "CPU",
+ "doctype": "Sales Order Item",
+ "item_code": "_Test Item Home Desktop 100",
+ "item_name": "CPU",
+ "parentfield": "sales_order_details",
+ "qty": 10.0,
+ "basic_rate": 50.0,
+ "export_rate": 50.0,
+ "amount": 500.0,
+ "reserved_warehouse": "_Test Warehouse",
+ }
+ ]
+]
\ No newline at end of file
diff --git a/stock/doctype/delivery_note/test_delivery_note.py b/stock/doctype/delivery_note/test_delivery_note.py
new file mode 100644
index 0000000..4666360
--- /dev/null
+++ b/stock/doctype/delivery_note/test_delivery_note.py
@@ -0,0 +1,36 @@
+test_records = [
+ [
+ {
+ "company": "_Test Company",
+ "conversion_rate": 1.0,
+ "currency": "INR",
+ "customer": "_Test Customer",
+ "customer_name": "_Test Customer",
+ "doctype": "Delivery Note",
+ "fiscal_year": "_Test Fiscal Year 2013",
+ "plc_conversion_rate": 1.0,
+ "posting_date": "2013-02-21",
+ "posting_time": "9:00:00",
+ "price_list_currency": "INR",
+ "price_list_name": "_Test Price List",
+ "status": "Draft",
+ "territory": "_Test Territory",
+ "grand_total": 500.0,
+ "grand_total_export": 500.0,
+ },
+ {
+ "description": "CPU",
+ "doctype": "Delivery Note Item",
+ "item_code": "_Test Item Home Desktop 100",
+ "item_name": "CPU",
+ "parentfield": "delivery_note_details",
+ "qty": 4.0,
+ "basic_rate": 50.0,
+ "export_rate": 50.0,
+ "amount": 500.0,
+ "warehouse": "_Test Warehouse",
+ "stock_uom": "No."
+ }
+ ]
+
+]
\ No newline at end of file