diff --git a/erpnext/assets/doctype/asset/asset.json b/erpnext/assets/doctype/asset/asset.json
index d6b9c461cb24..540a4f5549f3 100644
--- a/erpnext/assets/doctype/asset/asset.json
+++ b/erpnext/assets/doctype/asset/asset.json
@@ -481,6 +481,7 @@
"read_only": 1
},
{
+ "default": "1",
"fieldname": "asset_quantity",
"fieldtype": "Int",
"label": "Asset Quantity",
@@ -571,7 +572,7 @@
"link_fieldname": "target_asset"
}
],
- "modified": "2023-11-15 17:40:17.315203",
+ "modified": "2023-11-20 20:57:37.010467",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset",
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index 3c570d1af0fe..7b7953b6ce6b 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -46,12 +46,28 @@ def validate(self):
self.validate_item()
self.validate_cost_center()
self.set_missing_values()
+ self.validate_gross_and_purchase_amount()
+ self.validate_expected_value_after_useful_life()
self.validate_finance_books()
+
if not self.split_from:
self.prepare_depreciation_data()
- update_draft_asset_depr_schedules(self)
- self.validate_gross_and_purchase_amount()
- self.validate_expected_value_after_useful_life()
+
+ if self.calculate_depreciation:
+ update_draft_asset_depr_schedules(self)
+
+ if frappe.db.exists("Asset", self.name):
+ asset_depr_schedules_names = make_draft_asset_depr_schedules_if_not_present(self)
+
+ if asset_depr_schedules_names:
+ asset_depr_schedules_links = get_comma_separated_links(
+ asset_depr_schedules_names, "Asset Depreciation Schedule"
+ )
+ frappe.msgprint(
+ _(
+ "Asset Depreciation Schedules created:
{0}
Please check, edit if needed, and submit the Asset."
+ ).format(asset_depr_schedules_links)
+ )
self.status = self.get_status()
@@ -61,17 +77,7 @@ def on_submit(self):
if not self.booked_fixed_asset and self.validate_make_gl_entry():
self.make_gl_entries()
if self.calculate_depreciation and not self.split_from:
- asset_depr_schedules_names = make_draft_asset_depr_schedules_if_not_present(self)
convert_draft_asset_depr_schedules_into_active(self)
- if asset_depr_schedules_names:
- asset_depr_schedules_links = get_comma_separated_links(
- asset_depr_schedules_names, "Asset Depreciation Schedule"
- )
- frappe.msgprint(
- _(
- "Asset Depreciation Schedules created:
{0}
Please check, edit if needed, and submit the Asset."
- ).format(asset_depr_schedules_links)
- )
self.set_status()
add_asset_activity(self.name, _("Asset submitted"))
@@ -823,6 +829,7 @@ def get_item_details(item_code, asset_category, gross_purchase_amount):
"expected_value_after_useful_life": flt(gross_purchase_amount)
* flt(d.salvage_value_percentage / 100),
"depreciation_start_date": d.depreciation_start_date or nowdate(),
+ "rate_of_depreciation": d.rate_of_depreciation,
}
)
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index a470b47a456d..68ad97d7ba45 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -758,7 +758,7 @@ def make_asset(self, row, is_grouped_asset=False):
"calculate_depreciation": 0,
"purchase_receipt_amount": purchase_amount,
"gross_purchase_amount": purchase_amount,
- "asset_quantity": row.qty if is_grouped_asset else 0,
+ "asset_quantity": row.qty if is_grouped_asset else 1,
"purchase_receipt": self.name if self.doctype == "Purchase Receipt" else None,
"purchase_invoice": self.name if self.doctype == "Purchase Invoice" else None,
}
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 6c10dd9bbb42..0badab56ea31 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -351,5 +351,6 @@ erpnext.patches.v15_0.rename_daily_depreciation_to_depreciation_amount_based_on_
erpnext.patches.v15_0.rename_depreciation_amount_based_on_num_days_in_month_to_daily_prorata_based
erpnext.patches.v15_0.set_reserved_stock_in_bin
erpnext.patches.v14_0.create_accounting_dimensions_in_supplier_quotation
+erpnext.patches.v14_0.update_zero_asset_quantity_field
# below migration patch should always run last
erpnext.patches.v14_0.migrate_gl_to_payment_ledger
diff --git a/erpnext/patches/v14_0/update_zero_asset_quantity_field.py b/erpnext/patches/v14_0/update_zero_asset_quantity_field.py
new file mode 100644
index 000000000000..0480f9b7aade
--- /dev/null
+++ b/erpnext/patches/v14_0/update_zero_asset_quantity_field.py
@@ -0,0 +1,6 @@
+import frappe
+
+
+def execute():
+ asset = frappe.qb.DocType("Asset")
+ frappe.qb.update(asset).set(asset.asset_quantity, 1).where(asset.asset_quantity == 0).run()