From ec171fc7c13f39f4a896c28ad8173fccbc888289 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 9 Jan 2023 18:49:48 +0530 Subject: [PATCH] test: test case to check disable last purchase rate --- .../purchase_receipt/test_purchase_receipt.py | 43 +++++++++++++++++++ erpnext/stock/get_item_details.py | 4 +- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py index dc9f2b2117..b6341466f8 100644 --- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py @@ -1501,6 +1501,49 @@ class TestPurchaseReceipt(FrappeTestCase): self.assertTrue(return_pi.docstatus == 1) + def test_disable_last_purchase_rate(self): + from erpnext.stock.get_item_details import get_item_details + + item = make_item( + "_Test Disable Last Purchase Rate", + {"is_purchase_item": 1, "is_stock_item": 1}, + ) + + frappe.db.set_single_value("Buying Settings", "disable_last_purchase_rate", 1) + + pr = make_purchase_receipt( + qty=1, + rate=100, + item_code=item.name, + ) + + args = pr.items[0].as_dict() + args.update( + { + "supplier": pr.supplier, + "doctype": pr.doctype, + "conversion_rate": pr.conversion_rate, + "currency": pr.currency, + "company": pr.company, + "posting_date": pr.posting_date, + "posting_time": pr.posting_time, + } + ) + + res = get_item_details(args) + self.assertEqual(res.get("last_purchase_rate"), 0) + + frappe.db.set_single_value("Buying Settings", "disable_last_purchase_rate", 0) + + pr = make_purchase_receipt( + qty=1, + rate=100, + item_code=item.name, + ) + + res = get_item_details(args) + self.assertEqual(res.get("last_purchase_rate"), 100) + def prepare_data_for_internal_transfer(): from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_internal_supplier diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index d3fa97f5f7..f7fcb30acd 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -411,7 +411,9 @@ def get_basic_details(args, item, overwrite_warehouse=True): args.stock_qty = out.stock_qty # calculate last purchase rate - if args.get("doctype") in purchase_doctypes: + if args.get("doctype") in purchase_doctypes and not frappe.db.get_single_value( + "Buying Settings", "disable_last_purchase_rate" + ): from erpnext.buying.doctype.purchase_order.purchase_order import item_last_purchase_rate out.last_purchase_rate = item_last_purchase_rate(