From a34e8c99cd053d5f469d99557bd5f5b9fc5358bf Mon Sep 17 00:00:00 2001 From: Pandiyan37 Date: Sun, 8 Feb 2026 10:39:29 +0530 Subject: [PATCH 1/3] fix(stock): set source warehouse for issue type --- erpnext/stock/doctype/material_request/material_request.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py index b98870788a5..1868730ffd3 100644 --- a/erpnext/stock/doctype/material_request/material_request.py +++ b/erpnext/stock/doctype/material_request/material_request.py @@ -777,6 +777,9 @@ def make_stock_entry(source_name, target_doc=None): target.purpose = source.material_request_type target.from_warehouse = source.set_from_warehouse target.to_warehouse = source.set_warehouse + if source.material_request_type == "Material Issue": + target.from_warehouse = source.set_warehouse + target.to_warehouse = None if source.job_card: target.purpose = "Material Transfer for Manufacture" From da0322e994b069879b5e86c5601d06d73606ac11 Mon Sep 17 00:00:00 2001 From: Pandiyan37 Date: Mon, 9 Feb 2026 13:06:27 +0530 Subject: [PATCH 2/3] test(stock): add test to check from warehouse for issue type --- .../material_request/test_material_request.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/erpnext/stock/doctype/material_request/test_material_request.py b/erpnext/stock/doctype/material_request/test_material_request.py index 24a30581188..d7a32b25b0d 100644 --- a/erpnext/stock/doctype/material_request/test_material_request.py +++ b/erpnext/stock/doctype/material_request/test_material_request.py @@ -1104,6 +1104,19 @@ class TestMaterialRequest(IntegrationTestCase): self.assertRaises(frappe.ValidationError, end_transit_2.submit) + def test_make_stock_entry_material_issue_warehouse_mapping(self): + """Test to ensure while making stock entry from material request of type Material Issue, warehouse is mapped correctly""" + mr = make_material_request(material_request_type="Material Issue", do_not_submit=True) + mr.set_warehouse = "_Test Warehouse - _TC" + mr.save() + mr.submit() + + se = make_stock_entry(mr.name) + self.assertEqual(se.from_warehouse, "_Test Warehouse - _TC") + self.assertIsNone(se.to_warehouse) + se.save() + se.submit() + def get_in_transit_warehouse(company): if not frappe.db.exists("Warehouse Type", "Transit"): From f22b9e297b3ab1913cdf11d8ba9fd4bf18a3cc56 Mon Sep 17 00:00:00 2001 From: Pandiyan37 Date: Mon, 9 Feb 2026 16:51:32 +0530 Subject: [PATCH 3/3] fix(stock): inward stock for pick list test record --- .../material_request/test_material_request.py | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/material_request/test_material_request.py b/erpnext/stock/doctype/material_request/test_material_request.py index d7a32b25b0d..da5bfd270df 100644 --- a/erpnext/stock/doctype/material_request/test_material_request.py +++ b/erpnext/stock/doctype/material_request/test_material_request.py @@ -1017,15 +1017,27 @@ class TestMaterialRequest(IntegrationTestCase): import json from erpnext.stock.doctype.pick_list.pick_list import create_stock_entry + from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry - mr = make_material_request(material_request_type="Material Transfer") + new_item = create_item("_Test Pick List Item", is_stock_item=1) + item_code = new_item.name + + make_stock_entry( + item_code=item_code, + target="_Test Warehouse - _TC", + qty=10, + do_not_save=False, + do_not_submit=False, + ) + + mr = make_material_request(item_code=item_code, 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") + to_warehouse = create_warehouse("_Test Warehouse - _TC") se_data = create_stock_entry(json.dumps(pl.as_dict())) se = frappe.get_doc(se_data) @@ -1044,6 +1056,15 @@ class TestMaterialRequest(IntegrationTestCase): def test_mr_pick_list_qty_validation(self): """Test for checking pick list qty validation from Material Request""" + from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry + + make_stock_entry( + item_code="_Test Item", + target="_Test Warehouse - _TC", + qty=10, + do_not_save=False, + do_not_submit=False, + ) mr = make_material_request(material_request_type="Material Transfer") pl = create_pick_list(mr.name)