chore: resolve conflicts

This commit is contained in:
Navin-S-R
2026-02-10 00:00:44 +05:30
parent 7d14833856
commit 1b288682e8
2 changed files with 143 additions and 0 deletions

View File

@@ -829,6 +829,85 @@ class TestAsset(AssetSetup):
asset.save().submit()
self.assertEqual(asset.status, "Fully Depreciated")
def test_depreciation_accounts_is_set_for_depreciable_assets(self):
company_depreciation_accounts = frappe.db.get_value(
"Company",
"_Test Company",
[
"accumulated_depreciation_account",
"depreciation_expense_account",
],
as_dict=True,
)
frappe.db.set_value(
"Company",
"_Test Company",
{
"accumulated_depreciation_account": "",
"depreciation_expense_account": "",
},
)
asset_category_name = "Computers"
asset_category_account = None
if frappe.db.exists("Asset Category", asset_category_name):
filters = {
"parent": asset_category_name,
"company_name": "_Test Company",
}
fieldname = [
"name",
"accumulated_depreciation_account",
"depreciation_expense_account",
]
asset_category_account = frappe.db.get_value(
"Asset Category Account",
filters=filters,
fieldname=fieldname,
as_dict=True,
)
if asset_category_account and (
asset_category_account.accumulated_depreciation_account
or asset_category_account.depreciation_expense_account
):
frappe.db.set_value(
"Asset Category Account",
asset_category_account.name,
{
"accumulated_depreciation_account": "",
"depreciation_expense_account": "",
},
)
else:
asset_category = frappe.new_doc("Asset Category")
asset_category.asset_category_name = asset_category_name
asset_category.append(
"accounts",
{
"company_name": "_Test Company",
"fixed_asset_account": "_Test Fixed Asset - _TC",
},
)
asset_category.insert()
asset = create_asset(asset_category=asset_category_name, calculate_depreciation=1, do_not_save=1)
with self.assertRaises(frappe.ValidationError) as err:
asset.save()
self.assertTrue(
"Please set Depreciation related Accounts in Asset Category Computers or Company"
in str(err.exception)
)
frappe.db.set_value("Company", "_Test Company", company_depreciation_accounts)
if asset_category_account:
frappe.db.set_value(
"Asset Category Account",
asset_category_account.name,
{
"accumulated_depreciation_account": asset_category_account.accumulated_depreciation_account,
"depreciation_expense_account": asset_category_account.depreciation_expense_account,
},
)
class TestDepreciationMethods(AssetSetup):
@classmethod

View File

@@ -4,6 +4,8 @@
import frappe
from frappe.tests import IntegrationTestCase
from erpnext.assets.doctype.asset.test_asset import create_asset
class TestAssetCategory(IntegrationTestCase):
def test_mandatory_fields(self):
@@ -50,3 +52,65 @@ class TestAssetCategory(IntegrationTestCase):
)
self.assertRaises(frappe.ValidationError, asset_category.insert)
def test_duplicate_company_accounts(self):
asset_category = frappe.get_doc(
{
"doctype": "Asset Category",
"asset_category_name": "Computers",
"accounts": [
{
"company_name": "_Test Company",
"fixed_asset_account": "_Test Fixed Asset - _TC",
},
{
"company_name": "_Test Company",
"fixed_asset_account": "_Test Fixed Asset - _TC",
},
],
}
)
with self.assertRaises(frappe.ValidationError) as err:
asset_category.save()
self.assertTrue("Cannot set multiple account rows for the same company" in str(err.exception))
def test_depreciation_accounts_required_for_existing_depreciable_assets(self):
asset = create_asset(
asset_category="Computers",
calculate_depreciation=1,
company="_Test Company",
submit=1,
)
company_acccount_depreciation = frappe.db.get_value(
"Company",
asset.company,
[
"accumulated_depreciation_account",
"depreciation_expense_account",
],
as_dict=True,
)
frappe.db.set_value(
"Company",
asset.company,
{
"accumulated_depreciation_account": "",
"depreciation_expense_account": "",
},
)
asset_category = frappe.get_doc("Asset Category", asset.asset_category)
asset_category.enable_cwip_accounting = 0
for row in asset_category.accounts:
if row.company_name == asset.company and (
row.accumulated_depreciation_account or row.depreciation_expense_account
):
row.accumulated_depreciation_account = None
row.depreciation_expense_account = None
with self.assertRaises(frappe.ValidationError) as err:
asset_category.save()
self.assertTrue(
"Since there are active depreciable assets under this category, the following accounts are required."
in str(err.exception)
)
frappe.db.set_value("Company", asset.company, company_acccount_depreciation)