fix: composite asset capitalization using asset components
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index 652c75f..9bd6e3c 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -1042,6 +1042,8 @@
@frappe.whitelist()
def get_asset_value_after_depreciation(asset_name, finance_book=None):
asset = frappe.get_doc("Asset", asset_name)
+ if not asset.calculate_depreciation:
+ return flt(asset.value_after_depreciation)
return asset.get_value_after_depreciation(finance_book)
diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.js b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.js
index be78d9e..2f0de97 100644
--- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.js
+++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.js
@@ -21,10 +21,10 @@
this.show_stock_ledger();
}
- if (this.frm.doc.stock_items && !this.frm.doc.stock_items.length && this.frm.doc.target_asset && this.frm.doc.capitalization_method === "Choose a WIP composite asset") {
- this.set_consumed_stock_items_tagged_to_wip_composite_asset(this.frm.doc.target_asset);
- this.get_target_asset_details();
- }
+ // if (this.frm.doc.stock_items && !this.frm.doc.stock_items.length && this.frm.doc.target_asset && this.frm.doc.capitalization_method === "Choose a WIP composite asset") {
+ // this.set_consumed_stock_items_tagged_to_wip_composite_asset(this.frm.doc.target_asset);
+ // this.get_target_asset_details();
+ // }
}
setup_queries() {
@@ -143,13 +143,20 @@
},
callback: function (r) {
if (!r.exc && r.message) {
- me.frm.clear_table("stock_items");
-
- for (let item of r.message) {
- me.frm.add_child("stock_items", item);
+ if(r.message[0] && r.message[0].length) {
+ me.frm.clear_table("stock_items");
+ for (let item of r.message[0]) {
+ me.frm.add_child("stock_items", item);
+ }
+ refresh_field("stock_items");
}
-
- refresh_field("stock_items");
+ if (r.message[1] && r.message[1].length) {
+ me.frm.clear_table("asset_items");
+ for (let item of r.message[1]) {
+ me.frm.add_child("asset_items", item);
+ }
+ me.frm.refresh_field("asset_items");
+ }
me.calculate_totals();
}
diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py
index 5e5b628..63afda7 100644
--- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py
+++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py
@@ -900,7 +900,6 @@
out.cost_center = get_default_cost_center(
args, item_defaults, item_group_defaults, brand_defaults
)
-
return out
@@ -948,10 +947,27 @@
"qty",
"valuation_rate",
"amount",
+ "is_fixed_asset",
+ "parent",
]
pr_items = frappe.get_all(
- "Purchase Receipt Item", filters={"wip_composite_asset": asset}, fields=fields
+ "Purchase Receipt Item", filters={"wip_composite_asset": asset, "docstatus": 1}, fields=fields
)
- return pr_items
+ stock_items = []
+ asset_items = []
+ for d in pr_items:
+ if not d.is_fixed_asset:
+ stock_items.append(frappe._dict(d))
+ else:
+ asset_details = frappe.db.get_value(
+ "Asset",
+ {"item_code": d.item_code, "purchase_receipt": d.parent},
+ ["name as asset", "asset_name"],
+ as_dict=1,
+ )
+ d.update(asset_details)
+ asset_items.append(frappe._dict(d))
+
+ return stock_items, asset_items