From 04e89ce80860840265914afc94c4d13c5b001ce2 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 22 May 2019 16:52:36 +0530 Subject: [PATCH] refactor: deprecate old API --- .../doctype/journal_entry/journal_entry.js | 4 +- .../crm/doctype/opportunity/opportunity.js | 16 +-- erpnext/hr/doctype/appraisal/appraisal.js | 117 +++++++----------- .../leave_control_panel.js | 40 ++---- .../leave_control_panel.py | 5 +- .../maintenance_schedule.js | 47 +++---- .../maintenance_visit/maintenance_visit.js | 26 ++-- .../production_plan/production_plan.js | 3 +- .../production_plan/production_plan.py | 44 ++++--- erpnext/projects/doctype/task/task.js | 7 -- erpnext/projects/doctype/task/task.py | 5 - .../installation_note/installation_note.js | 62 ++++------ .../page/point_of_sale/point_of_sale.js | 2 +- .../doctype/email_digest/email_digest.js | 79 +++++------- .../global_defaults/global_defaults.js | 19 ++- .../doctype/warranty_claim/warranty_claim.js | 41 +++--- 16 files changed, 212 insertions(+), 305 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.js b/erpnext/accounts/doctype/journal_entry/journal_entry.js index 3ac677e50a..9be30aae51 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.js +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.js @@ -354,9 +354,7 @@ cur_frm.cscript.update_totals = function(doc) { cur_frm.cscript.get_balance = function(doc,dt,dn) { cur_frm.cscript.update_totals(doc); - return $c_obj(cur_frm.doc, 'get_balance', '', function(r, rt){ - cur_frm.refresh(); - }); + cur_frm.call('get_balance', null, () => { cur_frm.refresh(); }); } cur_frm.cscript.validate = function(doc,cdt,cdn) { diff --git a/erpnext/crm/doctype/opportunity/opportunity.js b/erpnext/crm/doctype/opportunity/opportunity.js index 78ff339da1..967459f082 100644 --- a/erpnext/crm/doctype/opportunity/opportunity.js +++ b/erpnext/crm/doctype/opportunity/opportunity.js @@ -115,13 +115,15 @@ erpnext.crm.Opportunity = frappe.ui.form.Controller.extend({ if(!this.frm.doc.enquiry_from && this.frm.doc.lead) this.frm.doc.enquiry_from = "Lead"; - if(!this.frm.doc.status) - set_multiple(this.frm.doc.doctype, this.frm.doc.name, { status:'Open' }); - if(!this.frm.doc.company && frappe.defaults.get_user_default("Company")) - set_multiple(this.frm.doc.doctype, this.frm.doc.name, - { company:frappe.defaults.get_user_default("Company") }); - if(!this.frm.doc.currency) - set_multiple(this.frm.doc.doctype, this.frm.doc.name, { currency:frappe.defaults.get_user_default("Currency") }); + if(!this.frm.doc.status) { + frm.set_value('status', 'Open'); + } + if(!this.frm.doc.company && frappe.defaults.get_user_default("Company")) { + frm.set_value('company', frappe.defaults.get_user_default("Company")); + } + if(!this.frm.doc.currency) { + frm.set_value('currency', frappe.defaults.get_user_default("Currency")); + } this.setup_queries(); }, diff --git a/erpnext/hr/doctype/appraisal/appraisal.js b/erpnext/hr/doctype/appraisal/appraisal.js index 30317d96c0..1224282aad 100644 --- a/erpnext/hr/doctype/appraisal/appraisal.js +++ b/erpnext/hr/doctype/appraisal/appraisal.js @@ -1,77 +1,54 @@ // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors // License: GNU General Public License v3. See license.txt -cur_frm.add_fetch('employee', 'company', 'company'); -cur_frm.add_fetch('employee', 'employee_name', 'employee_name'); - -cur_frm.cscript.onload = function(doc,cdt,cdn){ - if(!doc.status) - set_multiple(cdt,cdn,{status:'Draft'}); - if(doc.amended_from && doc.__islocal) { - doc.status = "Draft"; - } -} - -cur_frm.cscript.onload_post_render = function(doc,cdt,cdn){ - if(doc.__islocal && doc.employee==frappe.defaults.get_user_default("Employee")) { - cur_frm.set_value("employee", ""); - cur_frm.set_value("employee_name", "") - } -} - -cur_frm.cscript.refresh = function(doc,cdt,cdn){ - -} - -cur_frm.cscript.kra_template = function(doc, dt, dn) { - doc.goals = []; - erpnext.utils.map_current_doc({ - method: "erpnext.hr.doctype.appraisal.appraisal.fetch_appraisal_template", - source_name: cur_frm.doc.kra_template, - frm: cur_frm - }); -} - -cur_frm.cscript.calculate_total_score = function(doc,cdt,cdn){ - //return get_server_fields('calculate_total','','',doc,cdt,cdn,1); - var val = doc.goals || []; - var total =0; - for(var i = 0; i 5) { - frappe.msgprint(__("Score must be less than or equal to 5")); - d.score = 0; - refresh_field('score', d.name, 'goals'); +frappe.ui.form.on('Appraisal', { + setup: function(frm) { + frm.add_fetch('employee', 'company', 'company'); + frm.add_fetch('employee', 'employee_name', 'employee_name'); + frm.fields_dict.employee.get_query = function(doc,cdt,cdn) { + return{ query: "erpnext.controllers.queries.employee_query" } + }; + }, + onload: function(frm) { + if(!frm.doc.status) { + frm.set_value('status', 'Open'); } - var total = flt(d.per_weightage*d.score)/100; - d.score_earned = total.toPrecision(2); - refresh_field('score_earned', d.name, 'goals'); + }, + kra_template: function(frm) { + frm.doc.goals = []; + erpnext.utils.map_current_doc({ + method: "erpnext.hr.doctype.appraisal.appraisal.fetch_appraisal_template", + source_name: frm.doc.kra_template, + frm: frm + }); + }, + calculate_total: function(frm) { + let goals = frm.doc.goals || []; + let total =0; + for(let i = 0; i 5) { + frappe.msgprint(__("Score must be less than or equal to 5")); + d.score = 0; + refresh_field('score', d.name, 'goals'); + } + var total = flt(d.per_weightage*d.score)/100; + d.score_earned = total.toPrecision(2); + refresh_field('score_earned', d.name, 'goals'); + } + else{ + d.score_earned = 0; + refresh_field('score_earned', d.name, 'goals'); + } + frm.trigger('calculate_total'); } - doc.total_score = flt(total); - refresh_field('total_score'); -} - -cur_frm.fields_dict.employee.get_query = function(doc,cdt,cdn) { - return{ query: "erpnext.controllers.queries.employee_query" } -} +}); \ No newline at end of file diff --git a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.js b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.js index 7aeb8ea65d..5ab2edd40a 100644 --- a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.js +++ b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.js @@ -1,32 +1,18 @@ // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors // License: GNU General Public License v3. See license.txt -cur_frm.cscript.onload = function (doc, dt, dn) { - if (!doc.posting_date) - set_multiple(dt, dn, { posting_date: frappe.datetime.get_today() }); - if (!doc.leave_transaction_type) - set_multiple(dt, dn, { leave_transaction_type: 'Allocation' }); -} - -cur_frm.cscript.to_date = function (doc, cdt, cdn) { - return $c('runserverobj', { 'method': 'to_date_validation', 'docs': doc }, - function (r, rt) { - var doc = locals[cdt][cdn]; - if (r.message) { - frappe.msgprint(__("To date cannot be before from date")); - doc.to_date = ''; - refresh_field('to_date'); - } - } - ); -} - -cur_frm.cscript.allocation_type = function (doc, cdt, cdn) { - doc.no_of_days = ''; - refresh_field('no_of_days'); -} - frappe.ui.form.on("Leave Control Panel", { + onload: function(frm) { + if (!frm.doc.posting_date) { + frm.set_value('posting_date', frappe.datetime.get_today()); + } + if (!frm.doc.leave_transaction_type) { + frm.set_value('leave_transaction_type', 'Allocation'); + } + }, + refresh: function(frm) { + frm.disable_save(); + }, company: function(frm) { if(frm.doc.company) { frm.set_query("department", function() { @@ -38,7 +24,7 @@ frappe.ui.form.on("Leave Control Panel", { }); } }, - refresh: function(frm) { - frm.disable_save(); + allocation_type: function (frm) { + frm.set_value('no_of_days', ''); } }); \ No newline at end of file diff --git a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.py b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.py index 098002d9c0..57e61b5e08 100644 --- a/erpnext/hr/doctype/leave_control_panel/leave_control_panel.py +++ b/erpnext/hr/doctype/leave_control_panel/leave_control_panel.py @@ -27,10 +27,7 @@ class LeaveControlPanel(Document): for f in ["from_date", "to_date", "leave_type", "no_of_days"]: if not self.get(f): frappe.throw(_("{0} is required").format(self.meta.get_label(f))) - - def to_date_validation(self): - if date_diff(self.to_date, self.from_date) <= 0: - return "Invalid period" + self.validate_from_to_dates('from_date', 'to_date') def allocate_leave(self): self.validate_values() diff --git a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js index 79f9e63250..ce95db3bf5 100644 --- a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js +++ b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js @@ -7,6 +7,18 @@ frappe.ui.form.on('Maintenance Schedule', { setup: function(frm) { frm.set_query('contact_person', erpnext.queries.contact_query); frm.set_query('customer_address', erpnext.queries.address_query); + frm.set_query('customer', erpnext.queries.customer); + + frm.add_fetch('item_code', 'item_name', 'item_name'); + frm.add_fetch('item_code', 'description', 'description'); + }, + onload: function(frm) { + if (!frm.doc.status) { + frm.set_value({status:'Draft'}); + } + if (frm.doc.__islocal) { + frm.set_value({transaction_date: frappe.datetime.get_today()}); + } }, customer: function(frm) { erpnext.utils.get_party_details(frm) @@ -16,8 +28,14 @@ frappe.ui.form.on('Maintenance Schedule', { }, contact_person: function(frm) { erpnext.utils.get_contact_details(frm); + }, + generate_schedule: function(frm) { + if (frm.is_new()) { + frappe.msgprint(__('Please save first')); + } else { + frm.call('generate_schedule'); + } } - }) // TODO commonify this code @@ -93,30 +111,3 @@ erpnext.maintenance.MaintenanceSchedule = frappe.ui.form.Controller.extend({ $.extend(cur_frm.cscript, new erpnext.maintenance.MaintenanceSchedule({frm: cur_frm})); -cur_frm.cscript.onload = function(doc, dt, dn) { - if(!doc.status) set_multiple(dt,dn,{status:'Draft'}); - - if(doc.__islocal){ - set_multiple(dt,dn,{transaction_date: frappe.datetime.get_today()}); - } - - // set add fetch for item_code's item_name and description - cur_frm.add_fetch('item_code', 'item_name', 'item_name'); - cur_frm.add_fetch('item_code', 'description', 'description'); - -} - -cur_frm.cscript.generate_schedule = function(doc, cdt, cdn) { - if (!doc.__islocal) { - return $c('runserverobj', {'method':'generate_schedule', 'docs':doc}, - function(r, rt) { - refresh_field('schedules'); - }); - } else { - frappe.msgprint(__("Please save the document before generating maintenance schedule")); - } -} - -cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) { - return { query: "erpnext.controllers.queries.customer_query" } -} diff --git a/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js b/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js index a4f3abcb6e..f3fc01192f 100644 --- a/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js +++ b/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js @@ -7,9 +7,18 @@ frappe.ui.form.on('Maintenance Visit', { setup: function(frm) { frm.set_query('contact_person', erpnext.queries.contact_query); frm.set_query('customer_address', erpnext.queries.address_query); + frm.set_query('customer', erpnext.queries.customer); + }, + onload: function(frm) { + if (!frm.doc.status) { + frm.set_value({status:'Draft'}); + } + if (frm.doc.__islocal) { + frm.set_value({mntc_date: frappe.datetime.get_today()}); + } }, customer: function(frm) { - erpnext.utils.get_party_details(frm) + erpnext.utils.get_party_details(frm); }, customer_address: function(frm) { erpnext.utils.get_address_display(frm, 'customer_address', 'address_display'); @@ -79,17 +88,4 @@ erpnext.maintenance.MaintenanceVisit = frappe.ui.form.Controller.extend({ }, }); -$.extend(cur_frm.cscript, new erpnext.maintenance.MaintenanceVisit({frm: cur_frm})); - -cur_frm.cscript.onload = function(doc, dt, dn) { - if(!doc.status) set_multiple(dt,dn,{status:'Draft'}); - if(doc.__islocal) set_multiple(dt,dn,{mntc_date: frappe.datetime.get_today()}); - - // set add fetch for item_code's item_name and description - cur_frm.add_fetch('item_code', 'item_name', 'item_name'); - cur_frm.add_fetch('item_code', 'description', 'description'); -} - -cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) { - return {query: "erpnext.controllers.queries.customer_query" } -} +$.extend(cur_frm.cscript, new erpnext.maintenance.MaintenanceVisit({frm: cur_frm})); \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.js b/erpnext/manufacturing/doctype/production_plan/production_plan.js index 58fc29e493..e4af255176 100644 --- a/erpnext/manufacturing/doctype/production_plan/production_plan.js +++ b/erpnext/manufacturing/doctype/production_plan/production_plan.js @@ -198,7 +198,8 @@ frappe.ui.form.on('Production Plan', { }, download_materials_required: function(frm) { - $c_obj_csv(frm.doc, 'download_raw_materials', '', ''); + let get_template_url = 'erpnext.manufacturing.doctype.production_plan.production_plan.download_raw_materials'; + open_url_post(frappe.request.url, { cmd: get_template_url, name: frm.doc.name }); }, show_progress: function(frm) { diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.py b/erpnext/manufacturing/doctype/production_plan/production_plan.py index 18ca9ccac8..e0a0ac6f1d 100644 --- a/erpnext/manufacturing/doctype/production_plan/production_plan.py +++ b/erpnext/manufacturing/doctype/production_plan/production_plan.py @@ -5,11 +5,13 @@ from __future__ import unicode_literals import frappe, json from frappe import msgprint, _ -from frappe.model.document import Document -from erpnext.manufacturing.doctype.bom.bom import validate_bom_no, get_children -from frappe.utils import cstr, flt, cint, nowdate, add_days, comma_and, now_datetime, ceil -from erpnext.manufacturing.doctype.work_order.work_order import get_item_details from six import string_types, iteritems + +from frappe.model.document import Document +from frappe.utils import cstr, flt, cint, nowdate, add_days, comma_and, now_datetime, ceil +from frappe.utils.csvutils import build_csv_response +from erpnext.manufacturing.doctype.bom.bom import validate_bom_no, get_children +from erpnext.manufacturing.doctype.work_order.work_order import get_item_details from erpnext.setup.doctype.item_group.item_group import get_item_group_defaults class ProductionPlan(Document): @@ -404,25 +406,29 @@ class ProductionPlan(Document): else : msgprint(_("No material request created")) - def download_raw_materials(self): - item_list = [['Item Code', 'Description', 'Stock UOM', 'Required Qty', 'Warehouse', - 'projected Qty', 'Actual Qty']] +@frappe.whitelist() +def download_raw_materials(production_plan): + doc = frappe.get_doc('Production Plan', production_plan) + doc.check_permission() - doc = self.as_dict() - for d in get_items_for_material_requests(doc, ignore_existing_ordered_qty=True): - item_list.append([d.get('item_code'), d.get('description'), d.get('stock_uom'), d.get('quantity'), - d.get('warehouse'), d.get('projected_qty'), d.get('actual_qty')]) + item_list = [['Item Code', 'Description', 'Stock UOM', 'Required Qty', 'Warehouse', + 'projected Qty', 'Actual Qty']] - if not self.for_warehouse: - row = {'item_code': d.get('item_code')} - for bin_dict in get_bin_details(row, self.company, all_warehouse=True): - if d.get("warehouse") == bin_dict.get('warehouse'): - continue + doc = doc.as_dict() + for d in get_items_for_material_requests(doc, ignore_existing_ordered_qty=True): + item_list.append([d.get('item_code'), d.get('description'), d.get('stock_uom'), d.get('quantity'), + d.get('warehouse'), d.get('projected_qty'), d.get('actual_qty')]) - item_list.append(['', '', '', '', bin_dict.get('warehouse'), - bin_dict.get('projected_qty'), bin_dict.get('actual_qty')]) + if not doc.for_warehouse: + row = {'item_code': d.get('item_code')} + for bin_dict in get_bin_details(row, doc.company, all_warehouse=True): + if d.get("warehouse") == bin_dict.get('warehouse'): + continue - return item_list + item_list.append(['', '', '', '', bin_dict.get('warehouse'), + bin_dict.get('projected_qty'), bin_dict.get('actual_qty')]) + + build_csv_response(item_list) def get_exploded_items(item_details, company, bom_no, include_non_stock_items, planned_qty=1): for d in frappe.db.sql("""select bei.item_code, item.default_bom as bom, diff --git a/erpnext/projects/doctype/task/task.js b/erpnext/projects/doctype/task/task.js index 9a8af69426..1f609d7910 100644 --- a/erpnext/projects/doctype/task/task.js +++ b/erpnext/projects/doctype/task/task.js @@ -60,13 +60,6 @@ frappe.ui.form.on("Task", { }; }, - project: function(frm) { - if(frm.doc.project) { - return get_server_fields('get_project_details', '','', frm.doc, frm.doc.doctype, - frm.doc.name, 1); - } - }, - is_group: function (frm) { frappe.call({ method: "erpnext.projects.doctype.task.task.check_if_child_exists", diff --git a/erpnext/projects/doctype/task/task.py b/erpnext/projects/doctype/task/task.py index fa9a5a59af..b5e4ff84af 100755 --- a/erpnext/projects/doctype/task/task.py +++ b/erpnext/projects/doctype/task/task.py @@ -20,11 +20,6 @@ class Task(NestedSet): def get_feed(self): return '{0}: {1}'.format(_(self.status), self.subject) - def get_project_details(self): - return { - "project": self.project - } - def get_customer_details(self): cust = frappe.db.sql("select customer_name from `tabCustomer` where name=%s", self.customer) if cust: diff --git a/erpnext/selling/doctype/installation_note/installation_note.js b/erpnext/selling/doctype/installation_note/installation_note.js index 9f0c050c4e..a8d9ae8a4e 100644 --- a/erpnext/selling/doctype/installation_note/installation_note.js +++ b/erpnext/selling/doctype/installation_note/installation_note.js @@ -1,46 +1,36 @@ // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors // License: GNU General Public License v3. See license.txt - - -frappe.ui.form.on_change("Installation Note", "customer", - function(frm) { erpnext.utils.get_party_details(frm); }); - -frappe.ui.form.on_change("Installation Note", "customer_address", - function(frm) { erpnext.utils.get_address_display(frm); }); - -frappe.ui.form.on_change("Installation Note", "contact_person", - function(frm) { erpnext.utils.get_contact_details(frm); }); - -frappe.provide("erpnext.selling"); -// TODO commonify this code -erpnext.selling.InstallationNote = frappe.ui.form.Controller.extend({ - onload: function() { - if(!this.frm.doc.status) { - set_multiple(this.frm.doc.doctype, this.frm.doc.name, { status:'Draft'}); - } - if(this.frm.doc.__islocal) { - set_multiple(this.frm.doc.doctype, this.frm.doc.name, - {inst_date: frappe.datetime.get_today()}); - } - - this.setup_queries(); - }, - - setup_queries: function() { - var me = this; - +frappe.ui.form.on('Installation Note', { + setup: function(frm) { frappe.dynamic_link = {doc: this.frm.doc, fieldname: 'customer', doctype: 'Customer'} frm.set_query('customer_address', erpnext.queries.address_query); - this.frm.set_query('contact_person', erpnext.queries.contact_query); - - this.frm.set_query("customer", function() { - return { - query: "erpnext.controllers.queries.customer_query" - } - }); + frm.set_query('contact_person', erpnext.queries.contact_query); + frm.set_query('customer', erpnext.queries.customer); }, + onload: function(frm) { + if(!frm.doc.status) { + frm.set_value({ status:'Draft'}); + } + if(frm.doc.__islocal) { + frm.set_value({inst_date: frappe.datetime.get_today()}); + } + }, + customer: function(frm) { + erpnext.utils.get_party_details(frm); + }, + customer_address: function(frm) { + erpnext.utils.get_address_display(frm); + }, + contact_person: function(frm) { + erpnext.utils.get_contact_details(frm); + } +}); +frappe.provide("erpnext.selling"); + +// TODO commonify this code +erpnext.selling.InstallationNote = frappe.ui.form.Controller.extend({ refresh: function() { var me = this; if (this.frm.doc.docstatus===0) { diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.js b/erpnext/selling/page/point_of_sale/point_of_sale.js index 308b8edd3b..1218dd3bb4 100644 --- a/erpnext/selling/page/point_of_sale/point_of_sale.js +++ b/erpnext/selling/page/point_of_sale/point_of_sale.js @@ -573,7 +573,7 @@ erpnext.pos.PointOfSale = class PointOfSale { function get_frm(_frm) { const page = $('
'); - const frm = _frm || new _f.Frm(doctype, page, false); + const frm = _frm || new frappe.ui.form.Form(doctype, page, false); const name = frappe.model.make_new_doc_and_get_name(doctype, true); frm.refresh(name); frm.doc.items = []; diff --git a/erpnext/setup/doctype/email_digest/email_digest.js b/erpnext/setup/doctype/email_digest/email_digest.js index fcd0b0ef75..1071ea2020 100644 --- a/erpnext/setup/doctype/email_digest/email_digest.js +++ b/erpnext/setup/doctype/email_digest/email_digest.js @@ -3,9 +3,6 @@ cur_frm.cscript.refresh = function(doc, dt, dn) { doc = locals[dt][dn]; - var save_msg = __("You must Save the form before proceeding"); - var err_msg = __("There was an error. One probable reason could be that you haven't saved the form. Please contact support@erpnext.com if the problem persists.") - cur_frm.add_custom_button(__('View Now'), function() { frappe.call({ method: 'erpnext.setup.doctype.email_digest.email_digest.get_digest_msg', @@ -23,61 +20,47 @@ cur_frm.cscript.refresh = function(doc, dt, dn) { }); }, "fa fa-eye-open", "btn-default"); - if(frappe.session.user==="Administrator") { + if (!cur_frm.is_new()) { cur_frm.add_custom_button(__('Send Now'), function() { - doc = locals[dt][dn]; - if(doc.__unsaved != 1) { - return $c_obj(doc, 'send', '', function(r, rt) { - if(r.exc) { - frappe.msgprint(err_msg); - console.log(r.exc); - } else { - //console.log(arguments); - frappe.msgprint(__('Message Sent')); - } - }); - } else { - frappe.msgprint(save_msg); - } - }, "fa fa-envelope", "btn-default"); + return cur_frm.call('send', null, (r) => { + frappe.show_alert(__('Message Sent')); + }); + }); } -} +}; cur_frm.cscript.addremove_recipients = function(doc, dt, dn) { // Get user list - return $c_obj(doc, 'get_users', '', function(r, rt) { - if(r.exc) { - frappe.msgprint(r.exc); - } else { - // Open a dialog and display checkboxes against email addresses - doc = locals[dt][dn]; - var d = new frappe.ui.Dialog({ - title: __('Add/Remove Recipients'), - width: 400 - }); - $.each(r.user_list, function(i, v) { - var fullname = frappe.user.full_name(v.name); - if(fullname !== v.name) fullname = fullname + " <" + v.name + ">"; + return cur_frm.call('get_users', null, function(r) { + // Open a dialog and display checkboxes against email addresses + doc = locals[dt][dn]; + var d = new frappe.ui.Dialog({ + title: __('Add/Remove Recipients'), + width: 400 + }); - if(v.enabled==0) { - fullname = repl(" %(name)s (" + __("disabled user") + ")", {name: v.name}); - } + $.each(r.user_list, function(i, v) { + var fullname = frappe.user.full_name(v.name); + if(fullname !== v.name) fullname = fullname + " <" + v.name + ">"; - $('
').appendTo(d.body); - }); + if(v.enabled==0) { + fullname = repl(" %(name)s (" + __("disabled user") + ")", {name: v.name}); + } - // Display add recipients button - d.set_primary_action("Update", function() { - cur_frm.cscript.add_to_rec_list(doc, d.body, r.user_list.length); - }); + $('
').appendTo(d.body); + }); - cur_frm.rec_dialog = d; - d.show(); - } + // Display add recipients button + d.set_primary_action("Update", function() { + cur_frm.cscript.add_to_rec_list(doc, d.body, r.user_list.length); + }); + + cur_frm.rec_dialog = d; + d.show(); }); } diff --git a/erpnext/setup/doctype/global_defaults/global_defaults.js b/erpnext/setup/doctype/global_defaults/global_defaults.js index 58b8c51228..552331aac8 100644 --- a/erpnext/setup/doctype/global_defaults/global_defaults.js +++ b/erpnext/setup/doctype/global_defaults/global_defaults.js @@ -1,17 +1,15 @@ // Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors // License: GNU General Public License v3. See license.txt -$.extend(cur_frm.cscript, { - onload: function (doc, cdt, cdn) { - cur_frm.trigger("get_distance_uoms"); +frappe.ui.form.on('Global Defaults', { + onload: function(frm) { + frm.trigger('get_distance_uoms'); }, - - validate: function (doc, cdt, cdn) { - return $c_obj(doc, 'get_defaults', '', function (r, rt) { + validate: function(frm) { + frm.call('get_defaults', null, r => { frappe.sys_defaults = r.message; - }); + }) }, - get_distance_uoms: function (frm) { let units = []; @@ -27,9 +25,8 @@ $.extend(cur_frm.cscript, { r.message.forEach(row => units.push(row.to_uom)); } }); - - cur_frm.set_query("default_distance_unit", function (doc) { + frm.set_query("default_distance_unit", function () { return { filters: { "name": ["IN", units] } }; - }) + }); } }); diff --git a/erpnext/support/doctype/warranty_claim/warranty_claim.js b/erpnext/support/doctype/warranty_claim/warranty_claim.js index ac8eb8dab4..2dc78f4342 100644 --- a/erpnext/support/doctype/warranty_claim/warranty_claim.js +++ b/erpnext/support/doctype/warranty_claim/warranty_claim.js @@ -7,6 +7,23 @@ frappe.ui.form.on("Warranty Claim", { setup: function(frm) { frm.set_query('contact_person', erpnext.queries.contact_query); frm.set_query('customer_address', erpnext.queries.address_query); + frm.set_query('customer', erpnext.queries.customer); + + frm.add_fetch('serial_no', 'item_code', 'item_code'); + frm.add_fetch('serial_no', 'item_name', 'item_name'); + frm.add_fetch('serial_no', 'description', 'description'); + frm.add_fetch('serial_no', 'maintenance_status', 'warranty_amc_status'); + frm.add_fetch('serial_no', 'warranty_expiry_date', 'warranty_expiry_date'); + frm.add_fetch('serial_no', 'amc_expiry_date', 'amc_expiry_date'); + frm.add_fetch('serial_no', 'customer', 'customer'); + frm.add_fetch('serial_no', 'customer_name', 'customer_name'); + frm.add_fetch('item_code', 'item_name', 'item_name'); + frm.add_fetch('item_code', 'description', 'description'); + }, + onload: function(frm) { + if(!frm.doc.status) { + frm.set_value('status', 'Open'); + } }, customer: function(frm) { erpnext.utils.get_party_details(frm); @@ -40,11 +57,6 @@ erpnext.support.WarrantyClaim = frappe.ui.form.Controller.extend({ $.extend(cur_frm.cscript, new erpnext.support.WarrantyClaim({frm: cur_frm})); -cur_frm.cscript.onload = function(doc,cdt,cdn){ - if(!doc.status) - set_multiple(cdt,cdn,{status:'Open'}); -} - cur_frm.fields_dict['serial_no'].get_query = function(doc, cdt, cdn) { var cond = []; var filter = [ @@ -63,17 +75,6 @@ cur_frm.fields_dict['serial_no'].get_query = function(doc, cdt, cdn) { } } -cur_frm.add_fetch('serial_no', 'item_code', 'item_code'); -cur_frm.add_fetch('serial_no', 'item_name', 'item_name'); -cur_frm.add_fetch('serial_no', 'description', 'description'); -cur_frm.add_fetch('serial_no', 'maintenance_status', 'warranty_amc_status'); -cur_frm.add_fetch('serial_no', 'warranty_expiry_date', 'warranty_expiry_date'); -cur_frm.add_fetch('serial_no', 'amc_expiry_date', 'amc_expiry_date'); -cur_frm.add_fetch('serial_no', 'customer', 'customer'); -cur_frm.add_fetch('serial_no', 'customer_name', 'customer_name'); -cur_frm.add_fetch('item_code', 'item_name', 'item_name'); -cur_frm.add_fetch('item_code', 'description', 'description'); - cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) { if(doc.serial_no) { return{ @@ -92,10 +93,4 @@ cur_frm.fields_dict['item_code'].get_query = function(doc, cdt, cdn) { ] } } -} - - - -cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) { - return{ query: "erpnext.controllers.queries.customer_query" } } - +}l \ No newline at end of file