refactor: set_income_account_for_fixed_assets
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 0c530a1..e1ad2ab 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -28,7 +28,6 @@
from erpnext.accounts.utils import cancel_exchange_gain_loss_journal, get_account_currency
from erpnext.assets.doctype.asset.depreciation import (
depreciate_asset,
- get_disposal_account_and_cost_center,
get_gl_entries_on_asset_disposal,
get_gl_entries_on_asset_regain,
reset_depreciation_schedule,
@@ -1118,17 +1117,8 @@
return warehouse
def set_income_account_for_fixed_assets(self):
- disposal_account = depreciation_cost_center = None
- for d in self.get("items"):
- if d.is_fixed_asset:
- if not disposal_account:
- disposal_account, depreciation_cost_center = get_disposal_account_and_cost_center(
- self.company
- )
-
- d.income_account = disposal_account
- if not d.cost_center:
- d.cost_center = depreciation_cost_center
+ for item in self.items:
+ item.set_income_account_for_fixed_asset(self.company)
def check_prev_docstatus(self):
for d in self.get("items"):
diff --git a/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.py b/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.py
index dc40bba..cf18529 100644
--- a/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.py
+++ b/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.py
@@ -6,6 +6,8 @@
from frappe import _
from frappe.model.document import Document
+from erpnext.assets.doctype.asset.depreciation import get_disposal_account_and_cost_center
+
class SalesInvoiceItem(Document):
# begin: auto-generated types
@@ -111,3 +113,14 @@
)
or 0
)
+
+ def set_income_account_for_fixed_asset(self, company: str):
+ """Set income account for fixed asset item based on company's disposal account and cost center."""
+ if not self.is_fixed_asset:
+ return
+
+ disposal_account, depreciation_cost_center = get_disposal_account_and_cost_center(company)
+
+ self.income_account = disposal_account
+ if not self.cost_center:
+ self.cost_center = depreciation_cost_center