Set missing values in asset
diff --git a/erpnext/accounts/doctype/asset/asset.py b/erpnext/accounts/doctype/asset/asset.py
index 1118766..b28aaa9 100644
--- a/erpnext/accounts/doctype/asset/asset.py
+++ b/erpnext/accounts/doctype/asset/asset.py
@@ -15,8 +15,8 @@
def validate(self):
self.status = self.get_status()
self.validate_item()
+ self.set_missing_values()
self.validate_asset_values()
- self.set_depreciation_settings()
self.make_depreciation_schedule()
self.validate_expected_value_after_useful_life()
# Validate depreciation related accounts
@@ -41,10 +41,18 @@
frappe.throw(_("Item {0} must be a Fixed Asset Item").format(self.item_code))
elif item.is_stock_item:
frappe.throw(_("Item {0} must be a non-stock item").format(self.item_code))
+
+ def set_missing_values(self):
+ if self.item_code:
+ item_details = get_item_details(self.item_code)
+ for field, value in item_details.items():
+ if not self.get(field):
+ self.set(field, value)
+
+ self.value_after_depreciation = (flt(self.gross_purchase_amount) -
+ flt(self.opening_accumulated_depreciation))
def validate_asset_values(self):
- self.value_after_depreciation = flt(self.gross_purchase_amount) - flt(self.opening_accumulated_depreciation)
-
if flt(self.expected_value_after_useful_life) >= flt(self.gross_purchase_amount):
frappe.throw(_("Expected Value After Useful Life must be less than Gross Purchase Amount"))
@@ -77,15 +85,6 @@
if (flt(self.value_after_depreciation) > flt(self.expected_value_after_useful_life)
and not self.next_depreciation_date):
frappe.throw(_("Please set Next Depreciation Date"))
-
-
-
- def set_depreciation_settings(self):
- asset_category = frappe.get_doc("Asset Category", self.asset_category)
-
- for field in ("depreciation_method", "total_number_of_depreciations", "frequency_of_depreciation"):
- if not self.get(field):
- self.set(field, asset_category.get(field))
def make_depreciation_schedule(self):
self.schedules = []