From 6cdaa6e86192258647d7f75e82502ac1a5f243cf Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 18 May 2018 16:30:14 +0530 Subject: [PATCH 1/2] Fixes in material request, asset maintenance --- .../asset_maintenance/asset_maintenance.js | 21 ++++++++++ .../asset_maintenance/asset_maintenance.json | 38 +++++++++++++++++-- .../asset_maintenance/asset_maintenance.py | 3 -- erpnext/stock/doctype/item/item.js | 8 +++- .../material_request/material_request.js | 2 + erpnext/stock/get_item_details.py | 6 +-- 6 files changed, 67 insertions(+), 11 deletions(-) diff --git a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.js b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.js index 1583daf9ee..3c135d466c 100644 --- a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.js +++ b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.js @@ -24,7 +24,28 @@ frappe.ui.form.on('Asset Maintenance', { return indicator; } ); + + frm.set_query('select_serial_no', function(doc){ + return { + asset: frm.doc.asset_name + } + }) }, + + select_serial_no: (frm) => { + let serial_nos = frm.doc.serial_no || frm.doc.select_serial_no; + if (serial_nos) { + serial_nos = serial_nos.split('\n'); + serial_nos.push(frm.doc.select_serial_no); + + const unique_sn = serial_nos.filter(function(elem, index, self) { + return index === self.indexOf(elem); + }); + + frm.set_value("serial_no", unique_sn.join('\n')); + } + }, + refresh: (frm) => { if(!frm.is_new()) { frm.trigger('make_dashboard'); diff --git a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.json b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.json index f36fe4e078..c254fe1226 100644 --- a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.json +++ b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.json @@ -203,6 +203,38 @@ "translatable": 0, "unique": 0 }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "select_serial_no", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Select Serial No", + "length": 0, + "no_copy": 0, + "options": "Serial No", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, { "allow_bulk_edit": 0, "allow_on_submit": 0, @@ -221,12 +253,12 @@ "label": "Serial No", "length": 0, "no_copy": 0, - "options": "asset_name.serial_no", + "options": "", "permlevel": 0, "precision": "", "print_hide": 0, "print_hide_if_no_value": 0, - "read_only": 1, + "read_only": 0, "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, @@ -465,7 +497,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2018-04-20 08:39:27.072622", + "modified": "2018-05-18 16:16:56.181695", "modified_by": "Administrator", "module": "Assets", "name": "Asset Maintenance", diff --git a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py index b30685f108..7551eae229 100644 --- a/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py +++ b/erpnext/assets/doctype/asset_maintenance/asset_maintenance.py @@ -11,9 +11,6 @@ from frappe.utils import add_days, add_months, add_years, getdate, nowdate class AssetMaintenance(Document): def validate(self): - if not self.serial_no: - self.serial_no = frappe.db.get_value("Asset", self.asset_name, 'serial_no') - for task in self.get('asset_maintenance_tasks'): if task.end_date and (getdate(task.start_date) >= getdate(task.end_date)): throw(_("Start date should be less than end date for task {0}").format(task.maintenance_task)) diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index cdfbcaeb4a..6332d71cf1 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -228,9 +228,13 @@ $.extend(erpnext.item, { } } - frm.fields_dict["item_defaults"].grid.get_field("buying_cost_center").get_query = function(doc) { + frm.fields_dict["item_defaults"].grid.get_field("buying_cost_center").get_query = function(doc, cdt, cdn) { + const row = locals[cdt][cdn]; return { - filters: { "is_group": 0 } + filters: { + "is_group": 0, + "company": row.company + } } } diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js index 8e66b55389..62ea2b68fc 100644 --- a/erpnext/stock/doctype/material_request/material_request.js +++ b/erpnext/stock/doctype/material_request/material_request.js @@ -45,6 +45,8 @@ frappe.ui.form.on('Material Request', { stock_qty: item.stock_qty, company: frm.doc.company, conversion_rate: 1, + name: frm.doc.name, + material_request_type: frm.doc.material_request_type, plc_conversion_rate: 1, rate: item.rate, conversion_factor: item.conversion_factor diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 562ac68808..8a194fa7be 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -210,8 +210,8 @@ def get_basic_details(args, item): warehouse = user_default_warehouse or item_defaults.get("default_warehouse") or args.warehouse material_request_type = '' - if args.get('doctype') == "Material Request": - material_request_type = frappe.db.get_value('Material Request', + if args.get('doctype') == "Material Request" and not args.get('material_request_type'): + args['material_request_type'] = frappe.db.get_value('Material Request', args.get('name'), 'material_request_type') #Set the UOM to the Default Sales UOM or Default Purchase UOM if configured in the Item Master @@ -219,7 +219,7 @@ def get_basic_details(args, item): if args.get('doctype') in ['Quotation', 'Sales Order', 'Delivery Note', 'Sales Invoice']: args.uom = item.sales_uom if item.sales_uom else item.stock_uom elif (args.get('doctype') in ['Purchase Order', 'Purchase Receipt', 'Purchase Invoice']) or \ - (args.get('doctype') == 'Material Request' and material_request_type == 'Purchase'): + (args.get('doctype') == 'Material Request' and args.get('material_request_type') == 'Purchase'): args.uom = item.purchase_uom if item.purchase_uom else item.stock_uom else: args.uom = item.stock_uom From 73a99441ca216a0a04b7498fa26bb6f4fa187ec0 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 18 May 2018 16:39:08 +0530 Subject: [PATCH 2/2] Fixed get_query for default data in item --- erpnext/stock/doctype/item/item.js | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index 6332d71cf1..59e2f58dd8 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -216,15 +216,19 @@ var set_customer_group = function(frm, cdt, cdn) { $.extend(erpnext.item, { setup_queries: function(frm) { - frm.fields_dict["item_defaults"].grid.get_field("expense_account").get_query = function(doc) { + frm.fields_dict["item_defaults"].grid.get_field("expense_account").get_query = function(doc, cdt, cdn) { + const row = locals[cdt][cdn]; return { query: "erpnext.controllers.queries.get_expense_account", + filters: { company: row.company } } } - frm.fields_dict["item_defaults"].grid.get_field("income_account").get_query = function(doc) { + frm.fields_dict["item_defaults"].grid.get_field("income_account").get_query = function(doc, cdt, cdn) { + const row = locals[cdt][cdn]; return { - query: "erpnext.controllers.queries.get_income_account" + query: "erpnext.controllers.queries.get_income_account", + filters: { company: row.company } } } @@ -238,9 +242,13 @@ $.extend(erpnext.item, { } } - frm.fields_dict["item_defaults"].grid.get_field("selling_cost_center").get_query = function(doc) { + frm.fields_dict["item_defaults"].grid.get_field("selling_cost_center").get_query = function(doc, cdt, cdn) { + const row = locals[cdt][cdn]; return { - filters: { "is_group": 0 } + filters: { + "is_group": 0, + "company": row.company + } } } @@ -271,9 +279,13 @@ $.extend(erpnext.item, { return { query: "erpnext.controllers.queries.supplier_query" } } - frm.fields_dict["item_defaults"].grid.get_field("default_warehouse").get_query = function(doc) { + frm.fields_dict["item_defaults"].grid.get_field("default_warehouse").get_query = function(doc, cdt, cdn) { + const row = locals[cdt][cdn]; return { - filters: { "is_group": 0 } + filters: { + "is_group": 0, + "company": row.company + } } }