From 3d6ed4ebdea5db3935dfcaeaa9ad8710ca2f9b1b Mon Sep 17 00:00:00 2001 From: GangaManoj Date: Tue, 8 Feb 2022 17:36:28 +0530 Subject: [PATCH 1/5] 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", From 5d3b65b9447d241b391eb73fd008007621ceb569 Mon Sep 17 00:00:00 2001 From: GangaManoj Date: Tue, 8 Feb 2022 17:59:06 +0530 Subject: [PATCH 2/5] fix: Pass value instead of array (cherry picked from commit e1a9b61103e27099696ae4b186a6575b28c16b06) --- erpnext/assets/doctype/asset_repair/asset_repair.js | 2 +- erpnext/assets/doctype/asset_repair/asset_repair.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.js b/erpnext/assets/doctype/asset_repair/asset_repair.js index 7bd3a7246d..18454fe367 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.js +++ b/erpnext/assets/doctype/asset_repair/asset_repair.js @@ -79,7 +79,7 @@ frappe.ui.form.on('Asset Repair Consumed Item', { }, callback: function(r) { if(r.message) { - frappe.model.set_value(cdt, cdn, 'valuation_rate', r.message[0]); + frappe.model.set_value(cdt, cdn, 'valuation_rate', r.message); } } }); diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py index 86a63fd1bc..d5e3d3c811 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.py +++ b/erpnext/assets/doctype/asset_repair/asset_repair.py @@ -272,7 +272,7 @@ def get_valuation_rate(item_code, warehouse): ) if last_valuation_rate: - return last_valuation_rate + return last_valuation_rate[0] else: valuation_rate = frappe.db.get_value("Item", item_code, "valuation_rate") From 414c3b8dd2507318f78b42eea507a2eb1a2e80bb Mon Sep 17 00:00:00 2001 From: Saqib Ansari Date: Mon, 21 Feb 2022 13:58:01 +0530 Subject: [PATCH 3/5] fix: remove redundant method (cherry picked from commit 57d5a027fb929803ffd62463da3e5b4611b17ff4) --- .../doctype/asset_repair/asset_repair.js | 21 +++++++----- .../doctype/asset_repair/asset_repair.py | 33 ------------------- 2 files changed, 13 insertions(+), 41 deletions(-) diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.js b/erpnext/assets/doctype/asset_repair/asset_repair.js index 18454fe367..1e4c4e082d 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.js +++ b/erpnext/assets/doctype/asset_repair/asset_repair.js @@ -69,18 +69,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]; + var item = locals[cdt][cdn]; - frappe.call ({ - method: "erpnext.assets.doctype.asset_repair.asset_repair.get_valuation_rate", + let item_args = { + 'item_code': item.item_code, + 'warehouse': frm.doc.warehouse, + 'qty': item.consumed_quantity, + 'serial_no': item.serial_no, + 'company': frm.doc.company + } + + frappe.call({ + method: 'erpnext.stock.utils.get_incoming_rate', args: { - "item_code": row.item_code, - "warehouse": frm.doc.warehouse + args: item_args }, callback: function(r) { - if(r.message) { - frappe.model.set_value(cdt, cdn, 'valuation_rate', r.message); - } + frappe.model.set_value(cdt, cdn, 'valuation_rate', r.message); } }); }, diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py index d5e3d3c811..36848e9f15 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.py +++ b/erpnext/assets/doctype/asset_repair/asset_repair.py @@ -256,36 +256,3 @@ 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[0] - 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 From 3dcc3a349ee63d04840fc7432a17a16d83d957fe Mon Sep 17 00:00:00 2001 From: Saqib Ansari Date: Mon, 21 Feb 2022 14:01:12 +0530 Subject: [PATCH 4/5] fix: cannot edit valutaion_rate in asset repair (cherry picked from commit 2aba6c38b36e5fce373800eb129a93eb010c691f) --- .../asset_repair_consumed_item/asset_repair_consumed_item.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 3c850c8265..4685a09db6 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 @@ -16,8 +16,7 @@ "fieldname": "valuation_rate", "fieldtype": "Currency", "in_list_view": 1, - "label": "Valuation Rate", - "read_only": 1 + "label": "Valuation Rate" }, { "fieldname": "consumed_quantity", From 8743e394698b3d136a19507042556971ed2234a1 Mon Sep 17 00:00:00 2001 From: Saqib Ansari Date: Mon, 21 Feb 2022 14:26:21 +0530 Subject: [PATCH 5/5] fix: sider (cherry picked from commit bc28755978c17d7e85cdc5ffd4a45a629183e2c8) --- erpnext/assets/doctype/asset_repair/asset_repair.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.js b/erpnext/assets/doctype/asset_repair/asset_repair.js index 1e4c4e082d..3fe6b2d0d5 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.js +++ b/erpnext/assets/doctype/asset_repair/asset_repair.js @@ -77,7 +77,7 @@ frappe.ui.form.on('Asset Repair Consumed Item', { 'qty': item.consumed_quantity, 'serial_no': item.serial_no, 'company': frm.doc.company - } + }; frappe.call({ method: 'erpnext.stock.utils.get_incoming_rate',