fix: Fetch valuation rate
(cherry picked from commit df71907be453a481a43d2c62a5c076602ab8af07)
diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.js b/erpnext/assets/doctype/asset_repair/asset_repair.js
index d554d52..7bd3a72 100644
--- a/erpnext/assets/doctype/asset_repair/asset_repair.js
+++ b/erpnext/assets/doctype/asset_repair/asset_repair.js
@@ -68,6 +68,23 @@
});
frappe.ui.form.on('Asset Repair Consumed Item', {
+ item_code: function(frm, cdt, cdn) {
+ var row = locals[cdt][cdn];
+
+ frappe.call ({
+ method: "erpnext.assets.doctype.asset_repair.asset_repair.get_valuation_rate",
+ args: {
+ "item_code": row.item_code,
+ "warehouse": frm.doc.warehouse
+ },
+ callback: function(r) {
+ if(r.message) {
+ frappe.model.set_value(cdt, cdn, 'valuation_rate', r.message[0]);
+ }
+ }
+ });
+ },
+
consumed_quantity: function(frm, cdt, cdn) {
var row = locals[cdt][cdn];
frappe.model.set_value(cdt, cdn, 'total_value', row.consumed_quantity * row.valuation_rate);
diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py
index 36848e9..86a63fd 100644
--- a/erpnext/assets/doctype/asset_repair/asset_repair.py
+++ b/erpnext/assets/doctype/asset_repair/asset_repair.py
@@ -256,3 +256,36 @@
def get_downtime(failure_date, completion_date):
downtime = time_diff_in_hours(completion_date, failure_date)
return round(downtime, 2)
+
+@frappe.whitelist()
+def get_valuation_rate(item_code, warehouse):
+ last_valuation_rate = frappe.get_all(
+ "Stock Ledger Entry",
+ filters = {
+ "item_code": item_code,
+ "warehouse": warehouse,
+ "valuation_rate": [">=", 0],
+ "docstatus": ["<", 2]
+ },
+ pluck = "valuation_rate",
+ order_by = "posting_date desc, posting_time desc, name desc"
+ )
+
+ if last_valuation_rate:
+ return last_valuation_rate
+ else:
+ valuation_rate = frappe.db.get_value("Item", item_code, "valuation_rate")
+
+ if not valuation_rate:
+ # try Item Standard rate
+ valuation_rate = frappe.db.get_value("Item", item_code, "standard_rate")
+
+ if not valuation_rate:
+ # try in price list
+ valuation_rate = frappe.db.get_value(
+ "Item Price",
+ dict(item_code=item_code, buying=1),
+ "price_list_rate"
+ )
+
+ return valuation_rate
diff --git a/erpnext/assets/doctype/asset_repair_consumed_item/asset_repair_consumed_item.json b/erpnext/assets/doctype/asset_repair_consumed_item/asset_repair_consumed_item.json
index f63add1..3c850c8 100644
--- a/erpnext/assets/doctype/asset_repair_consumed_item/asset_repair_consumed_item.json
+++ b/erpnext/assets/doctype/asset_repair_consumed_item/asset_repair_consumed_item.json
@@ -13,7 +13,6 @@
],
"fields": [
{
- "fetch_from": "item.valuation_rate",
"fieldname": "valuation_rate",
"fieldtype": "Currency",
"in_list_view": 1,
@@ -49,7 +48,7 @@
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
- "modified": "2021-11-11 18:23:00.492483",
+ "modified": "2022-02-08 17:37:20.028290",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Repair Consumed Item",