diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py index 4d59ba5b96c..7e17dd70e46 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.py +++ b/erpnext/assets/doctype/asset_repair/asset_repair.py @@ -490,6 +490,8 @@ def get_repair_cost_for_purchase_invoice(purchase_invoice: str) -> float: if not purchase_invoice: return 0.0 + frappe.has_permission("Purchase Invoice", "read", purchase_invoice, throw=True) + expense_accounts = _get_expense_accounts_for_purchase_invoice(purchase_invoice) if not expense_accounts: @@ -502,7 +504,7 @@ def _get_expense_accounts_for_purchase_invoice(purchase_invoice: str) -> list[st """ Get expense accounts for non-stock items from the purchase invoice. """ - pi_items = frappe.db.get_list( + pi_items = frappe.get_all( "Purchase Invoice Item", filters={"parent": purchase_invoice}, fields=["item_code", "expense_account", "is_fixed_asset"], diff --git a/erpnext/assets/doctype/asset_repair/test_asset_repair.py b/erpnext/assets/doctype/asset_repair/test_asset_repair.py index f59dc49b1a7..3a92f0ec71a 100644 --- a/erpnext/assets/doctype/asset_repair/test_asset_repair.py +++ b/erpnext/assets/doctype/asset_repair/test_asset_repair.py @@ -343,14 +343,14 @@ class TestAssetRepair(unittest.TestCase): company=company, ) - expense_account = frappe.db.get_value("Company", company, "default_expense_account") + service_expense_account = "Miscellaneous Expenses - TCP1" cost_center = frappe.db.get_value("Company", company, "cost_center") pi = make_purchase_invoice( item_code=service_item.name, qty=1, rate=500, - expense_account=expense_account, + expense_account=service_expense_account, cost_center=cost_center, warehouse=warehouse, update_stock=0, @@ -466,6 +466,7 @@ def create_asset_repair(**args): if asset.calculate_depreciation: asset_repair.increase_in_asset_life = 12 pi = make_purchase_invoice( + item=args.item or "_Test Non Stock Item", company=asset.company, expense_account=frappe.db.get_value("Company", asset.company, "default_expense_account"), cost_center=asset_repair.cost_center,