From 9c0755d3dee425dcbe7f0ab67554e1e64390aa49 Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Sat, 17 Feb 2024 20:08:49 +0100 Subject: [PATCH] refactor: set_income_account_for_fixed_assets --- .../doctype/sales_invoice/sales_invoice.py | 14 ++------------ .../sales_invoice_item/sales_invoice_item.py | 13 +++++++++++++ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index 0c530a1208d..e1ad2ab685a 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.party import get_due_date, get_party_account, get_party_de 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 @@ class SalesInvoice(SellingController): 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 dc40bba8e20..cf18529a652 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 @@ import frappe 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 @@ class SalesInvoiceItem(Document): ) 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