diff --git a/erpnext/stock/doctype/material_request/test_material_request.py b/erpnext/stock/doctype/material_request/test_material_request.py index afe1e8c4bac..0a6251f7794 100644 --- a/erpnext/stock/doctype/material_request/test_material_request.py +++ b/erpnext/stock/doctype/material_request/test_material_request.py @@ -13,6 +13,7 @@ from frappe.utils import flt, today from erpnext.controllers.accounts_controller import InvalidQtyError from erpnext.stock.doctype.item.test_item import create_item from erpnext.stock.doctype.material_request.material_request import ( + create_pick_list, make_in_transit_stock_entry, make_purchase_order, make_stock_entry, @@ -945,6 +946,36 @@ class TestMaterialRequest(IntegrationTestCase): self.assertRaises(OverAllowanceError, mr.submit) + def test_pending_qty_in_pick_list(self): + """Test for pick list mapped doc qty from partially received Material Request Transfer""" + import json + + from erpnext.stock.doctype.pick_list.pick_list import create_stock_entry + + mr = make_material_request(material_request_type="Material Transfer") + pl = create_pick_list(mr.name) + pl.save() + pl.locations[0].qty = 5 + pl.locations[0].stock_qty = 5 + pl.submit() + + to_warehouse = create_warehouse("Test To Warehouse") + + se_data = create_stock_entry(json.dumps(pl.as_dict())) + se = frappe.get_doc(se_data) + se.items[0].t_warehouse = to_warehouse + se.save() + se.submit() + + pl.load_from_db() + self.assertEqual(pl.locations[0].picked_qty, se.items[0].qty) + + mr.load_from_db() + self.assertEqual(mr.status, "Partially Received") + + pl_for_pending = create_pick_list(mr.name) + self.assertEqual(pl_for_pending.locations[0].qty, 5) + def get_in_transit_warehouse(company): if not frappe.db.exists("Warehouse Type", "Transit"):