From 0829cb45a8afc7bd82983a7d05eaaf8063166f60 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 29 Jun 2026 23:30:48 +0530 Subject: [PATCH] fix: carry item-level project to Purchase Receipt GL entries (backport #56568) (#56619) fix: carry item-level project to Purchase Receipt GL entries (#56568) Purchase Receipt stock and asset GL lines used the item row's cost center but always fell back to the document-level project, unlike Purchase Invoice which uses the item-level project. add_gl_entry accepted a project argument but never wrote it to the GL dict, so the inward, Stock Received But Not Billed, landed cost, divisional loss, sub-contracting and exchange rate lines dropped the row's project. Write project into the GL dict and pass project=item.project on the entries that were missing it, so project behaves like cost center and matches Purchase Invoice. Ticket: 72523 (cherry picked from commit 6f97c7199c4f65e5e2fda31d99905077f2d2a2bc) Co-authored-by: Jatin3128 <140256508+Jatin3128@users.noreply.github.com> --- erpnext/controllers/stock_controller.py | 3 +++ erpnext/stock/doctype/purchase_receipt/purchase_receipt.py | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 26929cfa89a..9d6d8c1f854 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -1839,6 +1839,9 @@ class StockController(AccountsController): "remarks": remarks, } + if project: + gl_entry.update({"project": project}) + if voucher_detail_no: gl_entry.update({"voucher_detail_no": voucher_detail_no}) diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index 10b40b216bb..7994770eaa5 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -524,6 +524,7 @@ class PurchaseReceipt(BuyingController): remarks=remarks, against_account=stock_asset_rbnb, account_currency=account_currency, + project=item.project, item=item, ) @@ -577,6 +578,7 @@ class PurchaseReceipt(BuyingController): against_account=stock_asset_account_name, debit_in_account_currency=-1 * flt(outgoing_amount, item.precision("base_net_amount")), account_currency=account_currency, + project=item.project, item=item, ) @@ -601,6 +603,7 @@ class PurchaseReceipt(BuyingController): against_account=self.supplier, debit_in_account_currency=-1 * discrepancy_caused_by_exchange_rate_difference, account_currency=account_currency, + project=item.project, item=item, ) @@ -614,6 +617,7 @@ class PurchaseReceipt(BuyingController): against_account=self.supplier, debit_in_account_currency=-1 * discrepancy_caused_by_exchange_rate_difference, account_currency=account_currency, + project=item.project, item=item, ) @@ -676,6 +680,7 @@ class PurchaseReceipt(BuyingController): remarks=remarks, against_account=stock_asset_account_name, account_currency=supplier_warehouse_account_currency, + project=item.project, item=item, )