From 6a064765d15c7b857ac88c6fee25dd55a457102a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 5 Jun 2026 12:46:09 +0530 Subject: [PATCH] refactor(stock): drop zero-caller StockController delegators MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-audited the kept delegators for true external callers. Two had none: - has_landed_cost_amount: no caller anywhere (the landed_cost_voucher.py free function is what the composers use) — pure dead delegator, removed. - validate_internal_transfer: only StockController.validate() called it; inline that one hook to StockInternalTransferService(self).validate_internal_transfer() and remove the delegator. All other kept delegators have real external/subclass/run_method callers and remain as the stock extension contract. Verified: ledger snapshots + DN/PR internal-transfer suites stay green. --- erpnext/controllers/stock_controller.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 857ce76eb84..20ed45a2b50 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -31,6 +31,7 @@ from erpnext.stock.exceptions import ( QualityInspectionRejectedError, QualityInspectionRequiredError, ) +from erpnext.stock.services.internal_transfer import StockInternalTransferService from erpnext.stock.stock_ledger import get_items_to_be_repost @@ -50,7 +51,7 @@ class StockController(AccountsController): self.clean_serial_nos() self.validate_customer_provided_item() self.set_rate_of_stock_uom() - self.validate_internal_transfer() + StockInternalTransferService(self).validate_internal_transfer() self.validate_putaway_capacity() self.reset_conversion_factor() @@ -283,11 +284,6 @@ class StockController(AccountsController): return set_landed_cost_voucher_amount(self) - def has_landed_cost_amount(self): - from erpnext.stock.doctype.landed_cost_voucher.landed_cost_voucher import has_landed_cost_amount - - return has_landed_cost_amount(self) - def get_item_account_wise_lcv_entries(self): from erpnext.stock.doctype.landed_cost_voucher.landed_cost_voucher import ( get_item_account_wise_lcv_entries, @@ -390,11 +386,6 @@ class StockController(AccountsController): for d in self.get("items"): d.stock_uom_rate = d.rate / (d.conversion_factor or 1) - def validate_internal_transfer(self): - from erpnext.stock.services.internal_transfer import StockInternalTransferService - - return StockInternalTransferService(self).validate_internal_transfer() - def validate_putaway_capacity(self): from erpnext.stock.doctype.putaway_rule.putaway_rule import validate_putaway_capacity