From 3d6ed4ebdea5db3935dfcaeaa9ad8710ca2f9b1b Mon Sep 17 00:00:00 2001 From: GangaManoj Date: Tue, 8 Feb 2022 17:36:28 +0530 Subject: [PATCH] fix: Fetch valuation rate (cherry picked from commit df71907be453a481a43d2c62a5c076602ab8af07) --- .../doctype/asset_repair/asset_repair.js | 17 ++++++++++ .../doctype/asset_repair/asset_repair.py | 33 +++++++++++++++++++ .../asset_repair_consumed_item.json | 3 +- 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.js b/erpnext/assets/doctype/asset_repair/asset_repair.js index d554d52a71..7bd3a7246d 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', { }); 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 36848e9f15..86a63fd1bc 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.py +++ b/erpnext/assets/doctype/asset_repair/asset_repair.py @@ -256,3 +256,36 @@ class AssetRepair(AccountsController): 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 f63add1235..3c850c8265 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",