From 8d62cdfd5f683c20c8ac0bd06e2b40b86579fd56 Mon Sep 17 00:00:00 2001 From: Devin Slauenwhite Date: Sat, 31 Dec 2022 14:14:25 -0500 Subject: [PATCH 1/2] fix: add missing 'ordered_qty' to get_bin_details --- erpnext/stock/get_item_details.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 1741d65460..02456f3d29 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -1175,10 +1175,10 @@ def get_bin_details(item_code, warehouse, company=None): bin_details = frappe.db.get_value( "Bin", {"item_code": item_code, "warehouse": warehouse}, - ["projected_qty", "actual_qty", "reserved_qty"], + ["projected_qty", "actual_qty", "reserved_qty", "ordered_qty"], as_dict=True, cache=True, - ) or {"projected_qty": 0, "actual_qty": 0, "reserved_qty": 0} + ) or {"projected_qty": 0, "actual_qty": 0, "reserved_qty": 0, "ordered_qty": 0} if company: bin_details["company_total_stock"] = get_company_total_stock(item_code, company) return bin_details From 239a5f8bf4c6dda9a955dc6472d9387d80afe619 Mon Sep 17 00:00:00 2001 From: Devin Slauenwhite Date: Sat, 31 Dec 2022 15:41:07 -0500 Subject: [PATCH 2/2] test: get_item_details contains bin details --- erpnext/stock/doctype/item/test_item.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py index e1ee9389de..7e426ae4af 100644 --- a/erpnext/stock/doctype/item/test_item.py +++ b/erpnext/stock/doctype/item/test_item.py @@ -83,6 +83,7 @@ class TestItem(FrappeTestCase): def test_get_item_details(self): # delete modified item price record and make as per test_records frappe.db.sql("""delete from `tabItem Price`""") + frappe.db.sql("""delete from `tabBin`""") to_check = { "item_code": "_Test Item", @@ -103,9 +104,26 @@ class TestItem(FrappeTestCase): "batch_no": None, "uom": "_Test UOM", "conversion_factor": 1.0, + "reserved_qty": 1, + "actual_qty": 5, + "ordered_qty": 10, + "projected_qty": 14, } make_test_objects("Item Price") + make_test_objects( + "Bin", + [ + { + "item_code": "_Test Item", + "warehouse": "_Test Warehouse - _TC", + "reserved_qty": 1, + "actual_qty": 5, + "ordered_qty": 10, + "projected_qty": 14, + } + ], + ) company = "_Test Company" currency = frappe.get_cached_value("Company", company, "default_currency") @@ -129,7 +147,7 @@ class TestItem(FrappeTestCase): ) for key, value in to_check.items(): - self.assertEqual(value, details.get(key)) + self.assertEqual(value, details.get(key), key) def test_item_tax_template(self): expected_item_tax_template = [