From 6f97c7199c4f65e5e2fda31d99905077f2d2a2bc Mon Sep 17 00:00:00 2001 From: Jatin3128 <140256508+Jatin3128@users.noreply.github.com> Date: Mon, 29 Jun 2026 17:22:20 +0530 Subject: [PATCH] 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 --- erpnext/accounts/services/base_gl_composer.py | 3 +++ .../stock/doctype/purchase_receipt/services/gl_composer.py | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/erpnext/accounts/services/base_gl_composer.py b/erpnext/accounts/services/base_gl_composer.py index 270658aca13..8e4279e7e13 100644 --- a/erpnext/accounts/services/base_gl_composer.py +++ b/erpnext/accounts/services/base_gl_composer.py @@ -150,6 +150,9 @@ def add_gl_entry( "remarks": remarks, } + if project: + gl_entry["project"] = project + if voucher_detail_no: gl_entry["voucher_detail_no"] = voucher_detail_no diff --git a/erpnext/stock/doctype/purchase_receipt/services/gl_composer.py b/erpnext/stock/doctype/purchase_receipt/services/gl_composer.py index 7cd7e3d2622..9d68546445a 100644 --- a/erpnext/stock/doctype/purchase_receipt/services/gl_composer.py +++ b/erpnext/stock/doctype/purchase_receipt/services/gl_composer.py @@ -67,6 +67,7 @@ class PurchaseReceiptGLComposer(BaseStockGLComposer): remarks=remarks, against_account=stock_asset_rbnb, account_currency=account_currency, + project=item.project, item=item, ) @@ -118,6 +119,7 @@ class PurchaseReceiptGLComposer(BaseStockGLComposer): 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, ) @@ -141,6 +143,7 @@ class PurchaseReceiptGLComposer(BaseStockGLComposer): against_account=doc.supplier, debit_in_account_currency=-1 * discrepancy_caused_by_exchange_rate_difference, account_currency=account_currency, + project=item.project, item=item, ) @@ -154,6 +157,7 @@ class PurchaseReceiptGLComposer(BaseStockGLComposer): against_account=doc.supplier, debit_in_account_currency=-1 * discrepancy_caused_by_exchange_rate_difference, account_currency=account_currency, + project=item.project, item=item, ) @@ -214,6 +218,7 @@ class PurchaseReceiptGLComposer(BaseStockGLComposer): remarks=remarks, against_account=stock_asset_account_name, account_currency=supplier_warehouse_account_currency, + project=item.project, item=item, )