From ec83cab468eafea4693ce2cb704e60ec1f392824 Mon Sep 17 00:00:00 2001 From: Jatin3128 Date: Thu, 30 Jul 2026 18:40:06 +0530 Subject: [PATCH] fix: pass child_docname in server bulk price apply so the rate lock is reachable The server-side _apply_price_list builds its item ctx from as_dict(), which omits the child_docname key the desk (JS) callers add, so the maintain-same-rate lock in apply_price_list could not match rows in that path. Pass child_docname for consistency with the desk callers. --- erpnext/utilities/transaction_base.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/erpnext/utilities/transaction_base.py b/erpnext/utilities/transaction_base.py index dd071c0b717..e49660f33c0 100644 --- a/erpnext/utilities/transaction_base.py +++ b/erpnext/utilities/transaction_base.py @@ -547,7 +547,9 @@ class TransactionBase(StatusUpdater): from erpnext.stock.get_item_details import apply_price_list args = { - "items": [x.as_dict() for x in self.items], + # pass child_docname so the maintain-same-rate lock in apply_price_list can + # match each row, consistent with the desk (JS) callers + "items": [{**x.as_dict(), "child_docname": x.name} for x in self.items], "customer": self.customer or self.party_name, "quotation_to": self.quotation_to, "customer_group": self.customer_group,