From d33253e09a3f3d492eb39dc237d389122e37239e Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 5 Aug 2024 12:03:41 +0530 Subject: [PATCH] fix: do not update item price and last purchase rate for inter transfer transaction --- erpnext/buying/utils.py | 3 +++ erpnext/public/js/controllers/transaction.js | 6 +++++- erpnext/stock/get_item_details.py | 9 ++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/erpnext/buying/utils.py b/erpnext/buying/utils.py index a120a49902c3..259c262d0d74 100644 --- a/erpnext/buying/utils.py +++ b/erpnext/buying/utils.py @@ -14,6 +14,9 @@ def update_last_purchase_rate(doc, is_submit) -> None: """updates last_purchase_rate in item table for each item""" + if doc.get("is_internal_supplier"): + return + this_purchase_date = getdate(doc.get("posting_date") or doc.get("transaction_date")) for d in doc.get("items"): diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 5f2f083b012b..2e7c6c297a7c 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -534,6 +534,8 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe quotation_to: me.frm.doc.quotation_to, supplier: me.frm.doc.supplier, currency: me.frm.doc.currency, + is_internal_supplier: me.frm.doc.is_internal_supplier, + is_internal_customer: me.frm.doc.is_internal_customer, update_stock: update_stock, conversion_rate: me.frm.doc.conversion_rate, price_list: me.frm.doc.selling_price_list || me.frm.doc.buying_price_list, @@ -1660,7 +1662,9 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe "update_stock": ['Sales Invoice', 'Purchase Invoice'].includes(me.frm.doc.doctype) ? cint(me.frm.doc.update_stock) : 0, "conversion_factor": me.frm.doc.conversion_factor, "pos_profile": me.frm.doc.doctype == 'Sales Invoice' ? me.frm.doc.pos_profile : '', - "coupon_code": me.frm.doc.coupon_code + "coupon_code": me.frm.doc.coupon_code, + "is_internal_supplier": me.frm.doc.is_internal_supplier, + "is_internal_customer": me.frm.doc.is_internal_customer, }; } diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 946ca753b165..e177cd7bbb81 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -820,6 +820,9 @@ def get_price_list_rate(args, item_doc, out=None): if price_list_rate is None or frappe.db.get_single_value( "Stock Settings", "update_existing_price_list_rate" ): + if args.get("is_internal_supplier") or args.get("is_internal_customer"): + return out + if args.price_list and args.rate: insert_item_price(args) @@ -831,7 +834,11 @@ def get_price_list_rate(args, item_doc, out=None): if frappe.db.get_single_value("Buying Settings", "disable_last_purchase_rate"): return out - if not out.price_list_rate and args.transaction_type == "buying": + if ( + not args.get("is_internal_supplier") + and not out.price_list_rate + and args.transaction_type == "buying" + ): from erpnext.stock.doctype.item.item import get_last_purchase_details out.update(get_last_purchase_details(item_doc.name, args.name, args.conversion_rate))