diff --git a/accounts/doctype/account/account.js b/accounts/doctype/account/account.js index 9a8115e850d..eb8e765d8d3 100644 --- a/accounts/doctype/account/account.js +++ b/accounts/doctype/account/account.js @@ -104,7 +104,7 @@ cur_frm.cscript.add_toolbar_buttons = function(doc) { // Convert group to ledger // ----------------------------------------- cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) { - $c_obj(cur_frm.get_doclist(),'convert_group_to_ledger','',function(r,rt) { + return $c_obj(cur_frm.get_doclist(),'convert_group_to_ledger','',function(r,rt) { if(r.message == 1) { cur_frm.refresh(); } @@ -114,7 +114,7 @@ cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) { // Convert ledger to group // ----------------------------------------- cur_frm.cscript.convert_to_group = function(doc, cdt, cdn) { - $c_obj(cur_frm.get_doclist(),'convert_ledger_to_group','',function(r,rt) { + return $c_obj(cur_frm.get_doclist(),'convert_ledger_to_group','',function(r,rt) { if(r.message == 1) { cur_frm.refresh(); } diff --git a/accounts/doctype/budget_distribution/budget_distribution.js b/accounts/doctype/budget_distribution/budget_distribution.js index 5abd5259996..29e5e333605 100644 --- a/accounts/doctype/budget_distribution/budget_distribution.js +++ b/accounts/doctype/budget_distribution/budget_distribution.js @@ -20,7 +20,7 @@ cur_frm.cscript.onload = function(doc,cdt,cdn){ refresh_field('budget_distribution_details'); } - $c('runserverobj',args={'method' : 'get_months', 'docs' : + return $c('runserverobj',args={'method' : 'get_months', 'docs' : wn.model.compress(make_doclist(doc.doctype, doc.name))},callback1); } } diff --git a/accounts/doctype/c_form/c_form.js b/accounts/doctype/c_form/c_form.js index 35656e9daf0..0bc9ff1fe27 100644 --- a/accounts/doctype/c_form/c_form.js +++ b/accounts/doctype/c_form/c_form.js @@ -34,5 +34,5 @@ cur_frm.fields_dict.state.get_query = function(doc) { cur_frm.cscript.invoice_no = function(doc, cdt, cdn) { var d = locals[cdt][cdn]; - get_server_fields('get_invoice_details', d.invoice_no, 'invoice_details', doc, cdt, cdn, 1); + return get_server_fields('get_invoice_details', d.invoice_no, 'invoice_details', doc, cdt, cdn, 1); } \ No newline at end of file diff --git a/accounts/doctype/cost_center/cost_center.js b/accounts/doctype/cost_center/cost_center.js index 96af1cfc968..7dc42236174 100644 --- a/accounts/doctype/cost_center/cost_center.js +++ b/accounts/doctype/cost_center/cost_center.js @@ -84,7 +84,7 @@ cur_frm.cscript.hide_unhide_group_ledger = function(doc) { } cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) { - $c_obj(cur_frm.get_doclist(),'convert_group_to_ledger','',function(r,rt) { + return $c_obj(cur_frm.get_doclist(),'convert_group_to_ledger','',function(r,rt) { if(r.message == 1) { cur_frm.refresh(); } @@ -92,7 +92,7 @@ cur_frm.cscript.convert_to_ledger = function(doc, cdt, cdn) { } cur_frm.cscript.convert_to_group = function(doc, cdt, cdn) { - $c_obj(cur_frm.get_doclist(),'convert_ledger_to_group','',function(r,rt) { + return $c_obj(cur_frm.get_doclist(),'convert_ledger_to_group','',function(r,rt) { if(r.message == 1) { cur_frm.refresh(); } diff --git a/accounts/doctype/fiscal_year/fiscal_year.js b/accounts/doctype/fiscal_year/fiscal_year.js index 6e0ed38c39b..0f70cf5cdcc 100644 --- a/accounts/doctype/fiscal_year/fiscal_year.js +++ b/accounts/doctype/fiscal_year/fiscal_year.js @@ -24,7 +24,7 @@ cur_frm.cscript.refresh = function(doc, dt, dn) { } cur_frm.cscript.set_as_default = function() { - wn.call({ + return wn.call({ doc: cur_frm.doc, method: "set_as_default" }); diff --git a/accounts/doctype/gl_entry/gl_entry.py b/accounts/doctype/gl_entry/gl_entry.py index 1d0ec8e72af..60c37a40a2c 100644 --- a/accounts/doctype/gl_entry/gl_entry.py +++ b/accounts/doctype/gl_entry/gl_entry.py @@ -151,7 +151,7 @@ class DocType: balance = webnotes.conn.sql("""select sum(debit) - sum(credit) from `tabGL Entry` where account = %s and ifnull(is_cancelled, 'No') = 'No'""", self.doc.account) balance = account["debit_or_credit"] == "Debit" and \ - balance[0][0] or -1*balance[0][0] + flt(balance[0][0]) or -1*flt(balance[0][0]) if flt(balance) < 0: msgprint(_("Negative balance is not allowed for account ") + self.doc.account, diff --git a/accounts/doctype/journal_voucher/journal_voucher.js b/accounts/doctype/journal_voucher/journal_voucher.js index ab4b2b05fdb..867ebbb459b 100644 --- a/accounts/doctype/journal_voucher/journal_voucher.js +++ b/accounts/doctype/journal_voucher/journal_voucher.js @@ -18,10 +18,20 @@ wn.provide("erpnext.accounts"); erpnext.accounts.JournalVoucher = wn.ui.form.Controller.extend({ onload: function() { - this.load_defaults(this.frm.doc); + this.load_defaults(); this.setup_queries(); }, + load_defaults: function() { + if(this.frm.doc.__islocal && this.frm.doc.company) { + wn.model.set_default_values(this.frm.doc); + $.each(wn.model.get_doclist(this.frm.doc.doctype, this.frm.doc.name, {parentfield: "entries"}), + function(i, jvd) { wn.model.set_default_values(jvd); }); + + this.frm.doc.posting_date = get_today(); + } + }, + setup_queries: function() { var me = this; @@ -82,23 +92,6 @@ cur_frm.cscript.refresh = function(doc) { } } -cur_frm.cscript.load_defaults = function(doc) { - if(!cur_frm.doc.__islocal || !cur_frm.doc.company) { return; } - - doc = locals[doc.doctype][doc.name]; - var fields_to_refresh = wn.model.set_default_values(doc); - if(fields_to_refresh) { refresh_many(fields_to_refresh); } - - fields_to_refresh = null; - var children = getchildren('Journal Voucher Detail', doc.name, 'entries'); - if(!children) { return; } - for(var i=0; i. cur_frm.cscript.onload = function(doc,cdt,cdn){ - $c_obj(make_doclist(cdt,cdn),'get_series','',function(r,rt){ + return $c_obj(make_doclist(cdt,cdn),'get_series','',function(r,rt){ if(r.message) set_field_options('naming_series', r.message); }); diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.js b/accounts/doctype/purchase_invoice/purchase_invoice.js index e73386f71ff..e71a40815f1 100644 --- a/accounts/doctype/purchase_invoice/purchase_invoice.js +++ b/accounts/doctype/purchase_invoice/purchase_invoice.js @@ -118,7 +118,7 @@ cur_frm.cscript.is_opening = function(doc, dt, dn) { } cur_frm.cscript.make_bank_voucher = function() { - wn.call({ + return wn.call({ method: "accounts.doctype.journal_voucher.journal_voucher.get_default_bank_cash_account", args: { "company": cur_frm.doc.company, diff --git a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js index ba1a06b87bf..626171cdc8c 100644 --- a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js +++ b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js @@ -156,7 +156,7 @@ cur_frm.cscript.account_head = function(doc, cdt, cdn) { } else if(d.account_head && d.charge_type) { arg = "{'charge_type' : '" + d.charge_type + "', 'account_head' : '" + d.account_head + "'}"; - get_server_fields('get_rate', arg, 'purchase_tax_details', doc, cdt, cdn, 1); + return get_server_fields('get_rate', arg, 'purchase_tax_details', doc, cdt, cdn, 1); } refresh_field('account_head',d.name,'purchase_tax_details'); } diff --git a/accounts/doctype/sales_invoice/sales_invoice.js b/accounts/doctype/sales_invoice/sales_invoice.js index 99f596ceb43..345dbc94032 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.js +++ b/accounts/doctype/sales_invoice/sales_invoice.js @@ -133,21 +133,25 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte }, is_pos: function() { + cur_frm.cscript.hide_fields(this.frm.doc); + if(cint(this.frm.doc.is_pos)) { if(!this.frm.doc.company) { this.frm.set_value("is_pos", 0); msgprint(wn._("Please specify Company to proceed")); } else { var me = this; - this.frm.call({ + return this.frm.call({ doc: me.frm.doc, method: "set_missing_values", + callback: function(r) { + if(!r.exc) { + me.frm.script_manager.trigger("update_stock"); + } + } }); } } - - // TODO toggle display of fields - cur_frm.cscript.hide_fields(this.frm.doc); }, debit_to: function() { @@ -191,8 +195,7 @@ $.extend(cur_frm.cscript, new erpnext.accounts.SalesInvoiceController({frm: cur_ // Hide Fields // ------------ cur_frm.cscript.hide_fields = function(doc) { - par_flds = ['project_name', 'due_date', 'is_opening', 'conversion_rate', - 'source', 'total_advance', 'gross_profit', + par_flds = ['project_name', 'due_date', 'is_opening', 'source', 'total_advance', 'gross_profit', 'gross_profit_percent', 'get_advances_received', 'advance_adjustment_details', 'sales_partner', 'commission_rate', 'total_commission', 'advances']; @@ -222,7 +225,7 @@ cur_frm.cscript.hide_fields = function(doc) { cur_frm.cscript.mode_of_payment = function(doc) { - cur_frm.call({ + return cur_frm.call({ method: "get_bank_cash_account", args: { mode_of_payment: doc.mode_of_payment } }); @@ -248,7 +251,7 @@ cur_frm.cscript['Make Delivery Note'] = function() { } cur_frm.cscript.make_bank_voucher = function() { - wn.call({ + return wn.call({ method: "accounts.doctype.journal_voucher.journal_voucher.get_default_bank_cash_account", args: { "company": cur_frm.doc.company, diff --git a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js index eca6eaea5db..df6aaa90fb1 100644 --- a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js +++ b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js @@ -165,7 +165,7 @@ cur_frm.cscript.account_head = function(doc, cdt, cdn) { } else if(d.account_head && d.charge_type) { arg = "{'charge_type' : '" + d.charge_type +"', 'account_head' : '" + d.account_head + "'}"; - get_server_fields('get_rate', arg, 'other_charges', doc, cdt, cdn, 1); + return get_server_fields('get_rate', arg, 'other_charges', doc, cdt, cdn, 1); } refresh_field('account_head',d.name,'other_charges'); } diff --git a/accounts/page/accounts_browser/accounts_browser.js b/accounts/page/accounts_browser/accounts_browser.js index 30ed5b91443..18d43ff4966 100644 --- a/accounts/page/accounts_browser/accounts_browser.js +++ b/accounts/page/accounts_browser/accounts_browser.js @@ -73,7 +73,7 @@ pscript['onload_Accounts Browser'] = function(wrapper){ }) // load up companies - wn.call({ + return wn.call({ method:'accounts.page.accounts_browser.accounts_browser.get_companies', callback: function(r) { wrapper.$company_select.empty(); @@ -265,7 +265,7 @@ erpnext.AccountsChart = Class.extend({ v.master_type = ''; v.company = me.company; - wn.call({ + return wn.call({ args: v, method:'accounts.utils.add_ac', callback: function(r) { @@ -312,7 +312,7 @@ erpnext.AccountsChart = Class.extend({ v.parent_cost_center = node.data('label'); v.company = me.company; - wn.call({ + return wn.call({ args: v, method:'accounts.utils.add_cc', callback: function(r) { diff --git a/accounts/page/financial_statements/financial_statements.js b/accounts/page/financial_statements/financial_statements.js index d562e3229a2..0175da7de4e 100644 --- a/accounts/page/financial_statements/financial_statements.js +++ b/accounts/page/financial_statements/financial_statements.js @@ -62,7 +62,7 @@ pscript['onload_Financial Statements'] = function(wrapper) { ').css({"min-height": "400px"}); // load companies - $c_obj('MIS Control','get_comp','', function(r,rt) { + return $c_obj('MIS Control','get_comp','', function(r,rt) { // company erpnext.fs.stmt_company.$input.empty() .add_options(['Select Company...'].concat(r.message.company)); @@ -86,7 +86,7 @@ pscript.stmt_new = function(stmt,company_name,level,period,year) { year: erpnext.fs.stmt_fiscal_year.get_value() } - $c_obj('MIS Control', 'get_statement', docstring(arg), function(r,rt) { + return $c_obj('MIS Control', 'get_statement', docstring(arg), function(r,rt) { var nl = r.message; var t = $i('stmt_tree'); var stmt_type = erpnext.fs.stmt_type.get_value(); diff --git a/buying/doctype/purchase_common/purchase_common.js b/buying/doctype/purchase_common/purchase_common.js index 87f79a021f1..dabfcd9a961 100644 --- a/buying/doctype/purchase_common/purchase_common.js +++ b/buying/doctype/purchase_common/purchase_common.js @@ -92,7 +92,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ var me = this; var price_list_name = this.frm.doc.price_list_name; - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, method: "set_supplier_defaults", freeze: true, @@ -109,7 +109,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ supplier_address: function() { var me = this; if (this.frm.doc.supplier) { - wn.call({ + return wn.call({ doc: this.frm.doc, method: "set_supplier_address", freeze: true, @@ -134,7 +134,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ item.item_code = null; refresh_field("item_code", item.name, item.parentfield); } else { - this.frm.call({ + return this.frm.call({ method: "buying.utils.get_item_details", child: item, args: { @@ -200,7 +200,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ var me = this; var item = wn.model.get_doc(cdt, cdn); if(item.item_code && item.uom) { - this.frm.call({ + return this.frm.call({ method: "buying.utils.get_conversion_factor", child: item, args: { @@ -233,7 +233,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ warehouse: function(doc, cdt, cdn) { var item = wn.model.get_doc(cdt, cdn); if(item.item_code && item.warehouse) { - this.frm.call({ + return this.frm.call({ method: "buying.utils.get_projected_qty", child: item, args: { @@ -267,7 +267,7 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ purchase_other_charges: function() { var me = this; if(this.frm.doc.purchase_other_charges) { - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, method: "get_purchase_tax_details", callback: function(r) { diff --git a/buying/doctype/purchase_common/purchase_common.py b/buying/doctype/purchase_common/purchase_common.py index e14b1caaaeb..d1da2231d70 100644 --- a/buying/doctype/purchase_common/purchase_common.py +++ b/buying/doctype/purchase_common/purchase_common.py @@ -76,7 +76,11 @@ class DocType(BuyingController): elif is_submit == 1: # even if this transaction is the latest one, it should be submitted # for it to be considered for latest purchase rate - last_purchase_rate = flt(d.purchase_rate) / flt(d.conversion_factor) + if flt(d.conversion_factor): + last_purchase_rate = flt(d.purchase_rate) / flt(d.conversion_factor) + else: + msgprint(_("Row ") + cstr(d.idx) + ": " + + _("UOM Conversion Factor is mandatory"), raise_exception=1) # update last purchsae rate if last_purchase_rate: diff --git a/buying/doctype/purchase_order/purchase_order.js b/buying/doctype/purchase_order/purchase_order.js index 99149bcf3a2..360170adece 100644 --- a/buying/doctype/purchase_order/purchase_order.js +++ b/buying/doctype/purchase_order/purchase_order.js @@ -140,7 +140,7 @@ cur_frm.fields_dict['po_details'].grid.get_field('project_name').get_query = fun } cur_frm.cscript.get_last_purchase_rate = function(doc, cdt, cdn){ - $c_obj(make_doclist(doc.doctype, doc.name), 'get_last_purchase_rate', '', function(r, rt) { + return $c_obj(make_doclist(doc.doctype, doc.name), 'get_last_purchase_rate', '', function(r, rt) { refresh_field(cur_frm.cscript.fname); var doc = locals[cdt][cdn]; cur_frm.cscript.calc_amount( doc, 2); @@ -152,7 +152,7 @@ cur_frm.cscript['Stop Purchase Order'] = function() { var check = confirm("Do you really want to STOP " + doc.name); if (check) { - $c('runserverobj', args={'method':'update_status', 'arg': 'Stopped', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) { + return $c('runserverobj', args={'method':'update_status', 'arg': 'Stopped', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) { cur_frm.refresh(); }); } @@ -163,7 +163,7 @@ cur_frm.cscript['Unstop Purchase Order'] = function() { var check = confirm("Do you really want to UNSTOP " + doc.name); if (check) { - $c('runserverobj', args={'method':'update_status', 'arg': 'Submitted', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) { + return $c('runserverobj', args={'method':'update_status', 'arg': 'Submitted', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) { cur_frm.refresh(); }); } diff --git a/buying/doctype/quality_inspection/quality_inspection.js b/buying/doctype/quality_inspection/quality_inspection.js index 995119cd278..7c9320945b9 100644 --- a/buying/doctype/quality_inspection/quality_inspection.js +++ b/buying/doctype/quality_inspection/quality_inspection.js @@ -16,7 +16,7 @@ cur_frm.cscript.item_code = function(doc, cdt, cdn) { if (doc.item_code) - get_server_fields('get_purchase_receipt_item_details','','',doc,cdt,cdn,1); + return get_server_fields('get_purchase_receipt_item_details','','',doc,cdt,cdn,1); } cur_frm.cscript.inspection_type = function(doc, cdt, cdn) { diff --git a/buying/doctype/supplier/supplier.js b/buying/doctype/supplier/supplier.js index 5374d506fc4..2aa9b5e5a5a 100644 --- a/buying/doctype/supplier/supplier.js +++ b/buying/doctype/supplier/supplier.js @@ -55,7 +55,7 @@ cur_frm.cscript.make_dashboard = function(doc) { cur_frm.dashboard.add_doctype_badge("Purchase Receipt", "supplier"); cur_frm.dashboard.add_doctype_badge("Purchase Invoice", "supplier"); - wn.call({ + return wn.call({ type: "GET", method:"buying.doctype.supplier.supplier.get_dashboard_info", args: { diff --git a/controllers/queries.py b/controllers/queries.py index 219fc743d15..caa2f6f0650 100644 --- a/controllers/queries.py +++ b/controllers/queries.py @@ -36,12 +36,8 @@ def get_filters_cond(doctype, filters, conditions): return cond def get_match_cond(doctype, searchfield = 'name'): - meta = webnotes.get_doctype(doctype) - from webnotes.widgets.search import get_std_fields_list - fields = get_std_fields_list(meta, searchfield) - from webnotes.widgets.reportview import build_match_conditions - cond = build_match_conditions(doctype, fields) + cond = build_match_conditions(doctype) if cond: cond = ' and ' + cond diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js index 423f76eff89..dcdbed97bac 100644 --- a/home/page/latest_updates/latest_updates.js +++ b/home/page/latest_updates/latest_updates.js @@ -9,7 +9,7 @@ wn.pages['latest-updates'].onload = function(wrapper) { parent.html('
\
') - wn.call({ + return wn.call({ method:"home.page.latest_updates.latest_updates.get", callback: function(r) { parent.empty(); diff --git a/hr/doctype/appraisal/appraisal.js b/hr/doctype/appraisal/appraisal.js index 2289064baa8..3ac62b132a8 100644 --- a/hr/doctype/appraisal/appraisal.js +++ b/hr/doctype/appraisal/appraisal.js @@ -44,7 +44,7 @@ cur_frm.cscript.kra_template = function(doc, dt, dn) { } cur_frm.cscript.calculate_total_score = function(doc,cdt,cdn){ - //get_server_fields('calculate_total','','',doc,cdt,cdn,1); + //return get_server_fields('calculate_total','','',doc,cdt,cdn,1); var val = getchildren('Appraisal Goal', doc.name, 'appraisal_details', doc.doctype); var total =0; for(var i = 0; i. wn.provide("erpnext"); +wn.require("app/js/controllers/stock_controller.js"); -erpnext.TransactionController = wn.ui.form.Controller.extend({ +erpnext.TransactionController = erpnext.stock.StockController.extend({ onload: function() { if(this.frm.doc.__islocal) { var me = this, @@ -55,7 +56,7 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({ onload_post_render: function() { if(this.frm.doc.__islocal && this.frm.doc.company) { var me = this; - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, method: "onload_post_render", freeze: true, @@ -116,7 +117,7 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({ price_list_name: function(buying_or_selling) { var me = this; if(this.frm.doc.price_list_name) { - this.frm.call({ + return this.frm.call({ method: "setup.utils.get_price_list_currency", args: { price_list_name: this.frm.doc.price_list_name, @@ -557,7 +558,7 @@ erpnext.TransactionController = wn.ui.form.Controller.extend({ get_terms: function() { var me = this; if(this.frm.doc.tc_name) { - this.frm.call({ + return this.frm.call({ method: "webnotes.client.get_value", args: { doctype: "Terms and Conditions", diff --git a/public/js/website_utils.js b/public/js/website_utils.js index 519d6304359..f034be23dce 100644 --- a/public/js/website_utils.js +++ b/public/js/website_utils.js @@ -5,7 +5,7 @@ var wn = {}; // Add / update a new Lead / Communication // subject, sender, description erpnext.send_message = function(opts) { - wn.call({ + return wn.call({ type: "POST", method: "website.helpers.contact.send_message", args: opts, @@ -202,7 +202,7 @@ $.extend(wn.cart, { } window.location.href = "login"; } else { - wn.call({ + return wn.call({ type: "POST", method: "website.helpers.cart.update_cart", args: { diff --git a/selling/doctype/customer/customer.js b/selling/doctype/customer/customer.js index cd530a25bad..935afb0829d 100644 --- a/selling/doctype/customer/customer.js +++ b/selling/doctype/customer/customer.js @@ -66,7 +66,7 @@ cur_frm.cscript.setup_dashboard = function(doc) { cur_frm.dashboard.add_doctype_badge("Delivery Note", "customer"); cur_frm.dashboard.add_doctype_badge("Sales Invoice", "customer"); - wn.call({ + return wn.call({ type: "GET", method:"selling.doctype.customer.customer.get_dashboard_info", args: { diff --git a/selling/doctype/installation_note/installation_note.js b/selling/doctype/installation_note/installation_note.js index 5ad698a0ca4..b6f094f9b91 100644 --- a/selling/doctype/installation_note/installation_note.js +++ b/selling/doctype/installation_note/installation_note.js @@ -78,7 +78,7 @@ erpnext.selling.InstallationNote = wn.ui.form.Controller.extend({ customer: function() { var me = this; if(this.frm.doc.customer) { - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, method: "set_customer_defaults", }); @@ -93,7 +93,7 @@ erpnext.selling.InstallationNote = wn.ui.form.Controller.extend({ customer_address: function() { var me = this; if(this.frm.doc.customer) { - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, args: { customer: this.frm.doc.customer, diff --git a/selling/doctype/opportunity/opportunity.js b/selling/doctype/opportunity/opportunity.js index 80e565a52bc..fb5bae5f61f 100644 --- a/selling/doctype/opportunity/opportunity.js +++ b/selling/doctype/opportunity/opportunity.js @@ -86,15 +86,15 @@ erpnext.selling.Opportunity = wn.ui.form.Controller.extend({ customer: function() { var me = this; if(this.frm.doc.customer) { - this.frm.call({ - doc: this.frm.doc, - method: "set_customer_defaults", - }); - // TODO shift this to depends_on unhide_field(['customer_address', 'contact_person', 'customer_name', 'address_display', 'contact_display', 'contact_mobile', 'contact_email', 'territory', 'customer_group']); + + return this.frm.call({ + doc: this.frm.doc, + method: "set_customer_defaults", + }); } }, @@ -140,7 +140,7 @@ cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) { cur_frm.cscript.item_code = function(doc, cdt, cdn) { var d = locals[cdt][cdn]; if (d.item_code) { - get_server_fields('get_item_details',d.item_code, 'enquiry_details',doc, cdt,cdn,1); + return get_server_fields('get_item_details',d.item_code, 'enquiry_details',doc, cdt,cdn,1); } } @@ -165,7 +165,7 @@ cur_frm.cscript.lead_cust_show = function(doc,cdt,cdn){ } cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { - if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); + if(doc.customer) return get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); } cur_frm.cscript.lead = function(doc, cdt, cdn) { @@ -195,7 +195,7 @@ cur_frm.cscript['Declare Opportunity Lost'] = function(){ dialog.fields_dict.update.$input.click(function() { args = dialog.get_values(); if(!args) return; - cur_frm.call({ + return cur_frm.call({ doc: cur_frm.doc, method: "declare_enquiry_lost", args: args.reason, diff --git a/selling/doctype/quotation/quotation.js b/selling/doctype/quotation/quotation.js index af49bb36e60..08ec6ab0aef 100644 --- a/selling/doctype/quotation/quotation.js +++ b/selling/doctype/quotation/quotation.js @@ -114,7 +114,8 @@ cur_frm.fields_dict.lead.get_query = function(doc,cdt,cdn) { cur_frm.cscript.lead = function(doc, cdt, cdn) { if(doc.lead) { - cur_frm.call({ + unhide_field('territory'); + return cur_frm.call({ doc: cur_frm.doc, method: "set_lead_defaults", callback: function(r) { @@ -123,7 +124,6 @@ cur_frm.cscript.lead = function(doc, cdt, cdn) { } } }); - unhide_field('territory'); } } @@ -152,7 +152,7 @@ cur_frm.cscript['Declare Order Lost'] = function(){ dialog.fields_dict.update.$input.click(function() { args = dialog.get_values(); if(!args) return; - cur_frm.call({ + return cur_frm.call({ method: "declare_order_lost", doc: cur_frm.doc, args: args.reason, diff --git a/selling/doctype/sales_bom/sales_bom.js b/selling/doctype/sales_bom/sales_bom.js index 7d793406781..b67050c3b4d 100644 --- a/selling/doctype/sales_bom/sales_bom.js +++ b/selling/doctype/sales_bom/sales_bom.js @@ -18,7 +18,7 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) { cur_frm.toggle_enable('new_item_code', doc.__islocal); if(!doc.__islocal) { cur_frm.add_custom_button("Check for Duplicates", function() { - cur_frm.call_server('check_duplicate', 1) + return cur_frm.call_server('check_duplicate', 1) }, 'icon-search') } } @@ -34,6 +34,6 @@ cur_frm.fields_dict.new_item_code.query_description = 'Select Item where "Is Sto cur_frm.cscript.item_code = function(doc, dt, dn) { var d = locals[dt][dn]; if (d.item_code){ - get_server_fields('get_item_details', d.item_code, 'sales_bom_items', doc ,dt, dn, 1); + return get_server_fields('get_item_details', d.item_code, 'sales_bom_items', doc ,dt, dn, 1); } } \ No newline at end of file diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js index d2461aff4a7..0f19fa2f02d 100644 --- a/selling/doctype/sales_common/sales_common.js +++ b/selling/doctype/sales_common/sales_common.js @@ -135,7 +135,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ msgprint(wn._("Please specify Company")); } else { var price_list_name = this.frm.doc.price_list_name; - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, method: "set_customer_defaults", freeze: true, @@ -154,7 +154,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ customer_address: function() { var me = this; if(this.frm.doc.customer) { - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, args: { customer: this.frm.doc.customer, @@ -183,7 +183,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ item.item_code = null; refresh_field("item_code", item.name, item.parentfield); } else { - this.frm.call({ + return this.frm.call({ method: "selling.utils.get_item_details", child: item, args: { @@ -292,7 +292,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ warehouse: function(doc, cdt, cdn) { var item = wn.model.get_doc(cdt, cdn); if(item.item_code && item.warehouse) { - this.frm.call({ + return this.frm.call({ method: "selling.utils.get_available_qty", child: item, args: { @@ -484,7 +484,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ charge: function() { var me = this; if(this.frm.doc.charge) { - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, method: "get_other_charges", callback: function(r) { @@ -499,7 +499,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ shipping_rule: function() { var me = this; if(this.frm.doc.shipping_rule) { - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, method: "apply_shipping_rule", callback: function(r) { diff --git a/selling/doctype/sales_order/sales_order.js b/selling/doctype/sales_order/sales_order.js index 88442ea974c..8c1c2d2c82b 100644 --- a/selling/doctype/sales_order/sales_order.js +++ b/selling/doctype/sales_order/sales_order.js @@ -101,7 +101,7 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend( reserved_warehouse: function(doc, cdt, cdn) { var item = wn.model.get_doc(cdt, cdn); if(item.item_code && item.reserved_warehouse) { - this.frm.call({ + return this.frm.call({ method: "selling.utils.get_available_qty", child: item, args: { @@ -173,7 +173,7 @@ cur_frm.cscript['Stop Sales Order'] = function() { var check = confirm("Are you sure you want to STOP " + doc.name); if (check) { - $c('runserverobj', { + return $c('runserverobj', { 'method':'stop_sales_order', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name)) }, function(r,rt) { @@ -188,7 +188,7 @@ cur_frm.cscript['Unstop Sales Order'] = function() { var check = confirm("Are you sure you want to UNSTOP " + doc.name); if (check) { - $c('runserverobj', { + return $c('runserverobj', { 'method':'unstop_sales_order', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name)) }, function(r,rt) { diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py index 55abf9dbfa3..d578a43d198 100644 --- a/selling/doctype/sales_order/sales_order.py +++ b/selling/doctype/sales_order/sales_order.py @@ -375,7 +375,7 @@ def make_delivery_note(source_name, target_doclist=None): target.amount = (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.basic_rate) target.export_amount = (flt(obj.qty) - flt(obj.delivered_qty)) * flt(obj.export_rate) target.qty = flt(obj.qty) - flt(obj.delivered_qty) - + doclist = get_mapped_doclist("Sales Order", source_name, { "Sales Order": { "doctype": "Delivery Note", @@ -396,7 +396,8 @@ def make_delivery_note(source_name, target_doclist=None): "parenttype": "prevdoc_doctype", "reserved_warehouse": "warehouse" }, - "postprocess": update_item + "postprocess": update_item, + "condition": lambda doc: doc.delivered_qty < doc.qty }, "Sales Taxes and Charges": { "doctype": "Sales Taxes and Charges", @@ -416,7 +417,7 @@ def make_sales_invoice(source_name, target_doclist=None): target.export_amount = flt(obj.export_amount) - flt(obj.billed_amt) target.amount = target.export_amount * flt(source_parent.conversion_rate) target.qty = obj.export_rate and target.export_amount / flt(obj.export_rate) or obj.qty - + doclist = get_mapped_doclist("Sales Order", source_name, { "Sales Order": { "doctype": "Sales Invoice", diff --git a/selling/page/sales_browser/sales_browser.js b/selling/page/sales_browser/sales_browser.js index 8506bc6c20d..a1578cfcedd 100644 --- a/selling/page/sales_browser/sales_browser.js +++ b/selling/page/sales_browser/sales_browser.js @@ -33,7 +33,7 @@ pscript['onload_Sales Browser'] = function(wrapper){ wrapper.make_tree = function() { var ctype = wn.get_route()[1] || 'Territory'; - wn.call({ + return wn.call({ method: 'selling.page.sales_browser.sales_browser.get_children', args: {ctype: ctype}, callback: function(r) { @@ -155,7 +155,7 @@ erpnext.SalesChart = Class.extend({ v.parent = node.data('label'); v.ctype = me.ctype; - wn.call({ + return wn.call({ method: 'selling.page.sales_browser.sales_browser.add_node', args: v, callback: function() { diff --git a/setup/doctype/backup_manager/backup_manager.js b/setup/doctype/backup_manager/backup_manager.js index c78be3a1eb6..870922ed90f 100644 --- a/setup/doctype/backup_manager/backup_manager.js +++ b/setup/doctype/backup_manager/backup_manager.js @@ -43,7 +43,7 @@ $.extend(cur_frm.cscript, { allow_dropbox_access: function() { if(cur_frm.cscript.validate_send_notifications_to()) { - wn.call({ + return wn.call({ method: "setup.doctype.backup_manager.backup_dropbox.get_dropbox_authorize_url", callback: function(r) { if(!r.exc) { @@ -60,7 +60,7 @@ $.extend(cur_frm.cscript, { allow_gdrive_access: function() { if(cur_frm.cscript.validate_send_notifications_to()) { - wn.call({ + return wn.call({ method: "setup.doctype.backup_manager.backup_googledrive.get_gdrive_authorize_url", callback: function(r) { if(!r.exc) { @@ -72,7 +72,7 @@ $.extend(cur_frm.cscript, { }, validate_gdrive: function() { - wn.call({ + return wn.call({ method: "setup.doctype.backup_manager.backup_googledrive.gdrive_callback", args: { verification_code: cur_frm.doc.verification_code diff --git a/setup/doctype/contact_control/contact_control.js b/setup/doctype/contact_control/contact_control.js index db0ed91bfdc..5c8e571ca99 100755 --- a/setup/doctype/contact_control/contact_control.js +++ b/setup/doctype/contact_control/contact_control.js @@ -5,7 +5,7 @@ // get sates on country trigger // ----------------------------- cur_frm.cscript.get_states=function(doc,dt,dn){ - $c('runserverobj', args={'method':'check_state', 'docs':wn.model.compress(make_doclist(doc.doctype, doc.name))}, + return $c('runserverobj', args={'method':'check_state', 'docs':wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt){ if(r.message) { set_field_options('state', r.message); @@ -152,7 +152,7 @@ cur_frm.cscript.delete_doc = function(doctype, name) { })); if (!go_ahead) return; - wn.call({ + return wn.call({ method: 'webnotes.model.delete_doc', args: { dt: doctype, diff --git a/setup/doctype/email_digest/email_digest.js b/setup/doctype/email_digest/email_digest.js index 52068428ca7..011718f5c55 100644 --- a/setup/doctype/email_digest/email_digest.js +++ b/setup/doctype/email_digest/email_digest.js @@ -22,7 +22,7 @@ cur_frm.cscript.refresh = function(doc, dt, dn) { cur_frm.add_custom_button('View Now', function() { doc = locals[dt][dn]; if(doc.__unsaved != 1) { - $c_obj(make_doclist(dt, dn), 'get_digest_msg', '', function(r, rt) { + return $c_obj(make_doclist(dt, dn), 'get_digest_msg', '', function(r, rt) { if(r.exc) { msgprint(err_msg); console.log(r.exc); @@ -45,7 +45,7 @@ cur_frm.cscript.refresh = function(doc, dt, dn) { cur_frm.add_custom_button('Send Now', function() { doc = locals[dt][dn]; if(doc.__unsaved != 1) { - $c_obj(make_doclist(dt, dn), 'send', '', function(r, rt) { + return $c_obj(make_doclist(dt, dn), 'send', '', function(r, rt) { if(r.exc) { msgprint(err_msg); console.log(r.exc); @@ -62,7 +62,7 @@ cur_frm.cscript.refresh = function(doc, dt, dn) { cur_frm.cscript.addremove_recipients = function(doc, dt, dn) { // Get profile list - $c_obj(make_doclist(dt, dn), 'get_profiles', '', function(r, rt) { + return $c_obj(make_doclist(dt, dn), 'get_profiles', '', function(r, rt) { if(r.exc) { msgprint(r.exc); } else { diff --git a/setup/doctype/global_defaults/global_defaults.js b/setup/doctype/global_defaults/global_defaults.js index fa80025037a..f629ee0d6a1 100644 --- a/setup/doctype/global_defaults/global_defaults.js +++ b/setup/doctype/global_defaults/global_defaults.js @@ -16,7 +16,7 @@ // Validate cur_frm.cscript.validate = function(doc, cdt, cdn) { - $c_obj(make_doclist(cdt, cdn), 'get_defaults', '', function(r, rt){ + return $c_obj(make_doclist(cdt, cdn), 'get_defaults', '', function(r, rt){ sys_defaults = r.message; }); } \ No newline at end of file diff --git a/setup/doctype/naming_series/naming_series.js b/setup/doctype/naming_series/naming_series.js index 07d6f821a6d..663b08f3805 100644 --- a/setup/doctype/naming_series/naming_series.js +++ b/setup/doctype/naming_series/naming_series.js @@ -16,7 +16,7 @@ // Settings cur_frm.cscript.onload_post_render = function(doc, cdt, cdn){ - cur_frm.call({ + return cur_frm.call({ doc: cur_frm.doc, method: 'get_transactions', callback: function(r) { @@ -45,15 +45,15 @@ cur_frm.cscript.select_doc_for_series = function(doc, cdt, cdn) { } if(doc.select_doc_for_series) - $c_obj(make_doclist(doc.doctype, doc.name),'get_options','',callback) + return $c_obj(make_doclist(doc.doctype, doc.name),'get_options','',callback) } cur_frm.cscript.update = function() { - cur_frm.call_server('update_series', '', cur_frm.cscript.update_selects) + return cur_frm.call_server('update_series', '', cur_frm.cscript.update_selects) } cur_frm.cscript.prefix = function(doc, dt, dn) { - cur_frm.call_server('get_current', '', function(r) { + return cur_frm.call_server('get_current', '', function(r) { refresh_field('current_value'); }) } diff --git a/setup/doctype/notification_control/notification_control.js b/setup/doctype/notification_control/notification_control.js index 619d417379d..279f5b47f03 100644 --- a/setup/doctype/notification_control/notification_control.js +++ b/setup/doctype/notification_control/notification_control.js @@ -21,6 +21,6 @@ cur_frm.cscript.select_transaction = function(doc, cdt, cdn) { doc.custom_message = r.message; refresh_field('custom_message'); } - $c_obj(make_doclist(cdt, cdn),'get_message',doc.select_transaction, callback) + return $c_obj(make_doclist(cdt, cdn),'get_message',doc.select_transaction, callback) } } diff --git a/setup/page/setup/setup.js b/setup/page/setup/setup.js index db752b138ca..40b67d86cb6 100644 --- a/setup/page/setup/setup.js +++ b/setup/page/setup/setup.js @@ -21,36 +21,7 @@ wn.pages.Setup.make = function(wrapper) { completed = 0; body.html('
\ -
') - - wn.call({ - method: "setup.page.setup.setup.get", - callback: function(r) { - if(r.message) { - body.empty(); - if(wn.boot.expires_on) { - $(body).prepend("
Account expires on " - + wn.datetime.global_date_format(wn.boot.expires_on) + "
"); - } - - $completed = $('

Setup Completed

\ -
') - .appendTo(body); - - $.each(r.message, function(i, item) { - render_item(item) - }); - - var completed_percent = cint(flt(completed) / total * 100) + "%"; - $completed - .find(".progress-bar") - .css({"width": completed_percent}); - $(body) - .find(".completed-percent") - .html("(" + completed_percent + ")"); - } - } - }); +
'); var render_item = function(item, dependency) { if(item.type==="Section") { @@ -68,12 +39,12 @@ wn.pages.Setup.make = function(wrapper) { .appendTo(body); $('
').appendTo(row); - + if(item.type==="Link") { var col = $('').appendTo(row); - + } else { var col = $(repl('
\ %(count)s\ @@ -102,12 +73,12 @@ wn.pages.Setup.make = function(wrapper) { col.addClass("col-offset-1"); else $('
').appendTo(row); - + if(item.doctype) { var badge = col.find(".badge, .data-link") .attr("data-doctype", item.doctype) .css({"cursor": "pointer"}) - + if(item.single) { badge.click(function() { wn.set_route("Form", $(this).attr("data-doctype")) @@ -118,10 +89,10 @@ wn.pages.Setup.make = function(wrapper) { }) } } - + // tree $links = $('
').appendTo(row); - + if(item.tree) { $(' Browse\ | \ @@ -134,7 +105,7 @@ wn.pages.Setup.make = function(wrapper) { mylink.click(function() { wn.set_route(item.tree, item.doctype); }) - + } else if(item.single) { $(' Edit') .appendTo($links) @@ -183,7 +154,7 @@ wn.pages.Setup.make = function(wrapper) { wn.route_options = {doctype:$(this).attr("data-doctype")} wn.set_route("data-import-tool"); }) - + if(item.links) { $.each(item.links, function(i, link) { var newlinks = $(' | \ @@ -192,11 +163,40 @@ wn.pages.Setup.make = function(wrapper) { .appendTo($links) }) } - + if(item.dependencies) { $.each(item.dependencies, function(i, d) { render_item(d, true); }) } } + + return wn.call({ + method: "setup.page.setup.setup.get", + callback: function(r) { + if(r.message) { + body.empty(); + if(wn.boot.expires_on) { + $(body).prepend("
Account expires on " + + wn.datetime.global_date_format(wn.boot.expires_on) + "
"); + } + + $completed = $('

Setup Completed

\ +
') + .appendTo(body); + + $.each(r.message, function(i, item) { + render_item(item) + }); + + var completed_percent = cint(flt(completed) / total * 100) + "%"; + $completed + .find(".progress-bar") + .css({"width": completed_percent}); + $(body) + .find(".completed-percent") + .html("(" + completed_percent + ")"); + } + } + }); } \ No newline at end of file diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js index de6e9dcc87d..0c47148bf66 100644 --- a/stock/doctype/delivery_note/delivery_note.js +++ b/stock/doctype/delivery_note/delivery_note.js @@ -29,13 +29,15 @@ erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend( refresh: function(doc, dt, dn) { this._super(); - if(flt(doc.per_billed, 2) < 100 && doc.docstatus==1) cur_frm.add_custom_button('Make Invoice', this.make_sales_invoice); + if(!doc.__billing_complete && doc.docstatus==1) cur_frm.add_custom_button('Make Invoice', this.make_sales_invoice); if(flt(doc.per_installed, 2) < 100 && doc.docstatus==1) cur_frm.add_custom_button('Make Installation Note', this.make_installation_note); if (doc.docstatus==1) { cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms); + this.show_stock_ledger(); + this.show_general_ledger(); } if(doc.docstatus==0 && !doc.__islocal) { @@ -112,7 +114,7 @@ cur_frm.fields_dict['project_name'].get_query = function(doc, cdt, cdn) { cur_frm.cscript.serial_no = function(doc, cdt, cdn) { var d = locals[cdt][cdn]; if (d.serial_no) { - get_server_fields('get_serial_details',d.serial_no,'delivery_note_details',doc,cdt,cdn,1); + return get_server_fields('get_serial_details',d.serial_no,'delivery_note_details',doc,cdt,cdn,1); } } diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py index 7ea512daad5..81c4b6cedbf 100644 --- a/stock/doctype/delivery_note/delivery_note.py +++ b/stock/doctype/delivery_note/delivery_note.py @@ -50,6 +50,13 @@ class DocType(SellingController): 'keyword': 'Delivered' }] + def onload(self): + billed_qty = webnotes.conn.sql("""select sum(ifnull(qty, 0)) from `tabSales Invoice Item` + where delivery_note=%s""", self.doc.name) + if billed_qty: + total_qty = sum((item.qty for item in self.doclist.get({"parentfield": "delivery_note_details"}))) + self.doc.fields["__billing_complete"] = billed_qty[0][0] == total_qty + def get_contact_details(self): return get_obj('Sales Common').get_contact_details(self,0) diff --git a/stock/doctype/item/item.js b/stock/doctype/item/item.js index 9af8331d0b0..a8401c41eb9 100644 --- a/stock/doctype/item/item.js +++ b/stock/doctype/item/item.js @@ -51,7 +51,7 @@ cur_frm.cscript.refresh = function(doc) { var enabled = (r.message == 'exists') ? false : true; cur_frm.toggle_enable(['has_serial_no', 'is_stock_item', 'valuation_method'], enabled); } - $c_obj(make_doclist(doc.doctype, doc.name),'check_if_sle_exists','',callback); + return $c_obj(make_doclist(doc.doctype, doc.name),'check_if_sle_exists','',callback); } } @@ -130,7 +130,7 @@ cur_frm.fields_dict['item_tax'].grid.get_field("tax_type").get_query = function( cur_frm.cscript.tax_type = function(doc, cdt, cdn){ var d = locals[cdt][cdn]; - get_server_fields('get_tax_rate',d.tax_type,'item_tax',doc, cdt, cdn, 1); + return get_server_fields('get_tax_rate',d.tax_type,'item_tax',doc, cdt, cdn, 1); } diff --git a/stock/doctype/material_request/material_request.js b/stock/doctype/material_request/material_request.js index bd5ab8239be..fe9af31e247 100644 --- a/stock/doctype/material_request/material_request.js +++ b/stock/doctype/material_request/material_request.js @@ -124,7 +124,7 @@ cur_frm.cscript['Stop Material Request'] = function() { var check = confirm("Do you really want to STOP this Material Request?"); if (check) { - $c('runserverobj', args={'method':'update_status', 'arg': 'Stopped', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) { + return $c('runserverobj', args={'method':'update_status', 'arg': 'Stopped', 'docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) { cur_frm.refresh(); }); } @@ -135,7 +135,7 @@ cur_frm.cscript['Unstop Material Request'] = function(){ var check = confirm("Do you really want to UNSTOP this Material Request?"); if (check) { - $c('runserverobj', args={'method':'update_status', 'arg': 'Submitted','docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) { + return $c('runserverobj', args={'method':'update_status', 'arg': 'Submitted','docs': wn.model.compress(make_doclist(doc.doctype, doc.name))}, function(r,rt) { cur_frm.refresh(); }); } diff --git a/stock/doctype/packing_slip/packing_slip.js b/stock/doctype/packing_slip/packing_slip.js index e19ab493004..d86d64b6c62 100644 --- a/stock/doctype/packing_slip/packing_slip.js +++ b/stock/doctype/packing_slip/packing_slip.js @@ -36,7 +36,7 @@ cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) { } cur_frm.cscript.get_items = function(doc, cdt, cdn) { - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, method: "get_items", callback: function(r) { diff --git a/stock/doctype/purchase_receipt/purchase_receipt.js b/stock/doctype/purchase_receipt/purchase_receipt.js index a134da14d37..b393907bee2 100644 --- a/stock/doctype/purchase_receipt/purchase_receipt.js +++ b/stock/doctype/purchase_receipt/purchase_receipt.js @@ -28,11 +28,14 @@ erpnext.stock.PurchaseReceiptController = erpnext.buying.BuyingController.extend this._super(); if(this.frm.doc.docstatus == 1) { - if(flt(this.frm.doc.per_billed, 2) < 100) { + if(!this.frm.doc.__billing_complete) { cur_frm.add_custom_button('Make Purchase Invoice', this.make_purchase_invoice); } cur_frm.add_custom_button('Send SMS', cur_frm.cscript['Send SMS']); + + this.show_stock_ledger(); + this.show_general_ledger(); } cur_frm.add_custom_button(wn._('From Purchase Order'), @@ -68,6 +71,10 @@ erpnext.stock.PurchaseReceiptController = erpnext.buying.BuyingController.extend var item = wn.model.get_doc(cdt, cdn); wn.model.round_floats_in(item, ["qty", "received_qty"]); + if(!(item.received_qty || item.rejected_qty) && item.qty) { + item.received_qty = item.qty; + } + if(item.qty > item.received_qty) { msgprint(wn._("Error") + ": " + wn._(wn.meta.get_label(item.doctype, "qty", item.name)) + " > " + wn._(wn.meta.get_label(item.doctype, "received_qty", item.name))); diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py index 62b7a4f352a..703929ce81a 100644 --- a/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/stock/doctype/purchase_receipt/purchase_receipt.py @@ -44,6 +44,13 @@ class DocType(BuyingController): 'source_field': 'qty', 'percent_join_field': 'prevdoc_docname', }] + + def onload(self): + billed_qty = webnotes.conn.sql("""select sum(ifnull(qty, 0)) from `tabPurchase Invoice Item` + where purchase_receipt=%s""", self.doc.name) + if billed_qty: + total_qty = sum((item.qty for item in self.doclist.get({"parentfield": "purchase_receipt_details"}))) + self.doc.fields["__billing_complete"] = billed_qty[0][0] == total_qty # get available qty at warehouse def get_bin_details(self, arg = ''): diff --git a/stock/doctype/serial_no/serial_no.js b/stock/doctype/serial_no/serial_no.js index 0253ffbe839..8e833d738f1 100644 --- a/stock/doctype/serial_no/serial_no.js +++ b/stock/doctype/serial_no/serial_no.js @@ -54,7 +54,7 @@ cur_frm.fields_dict['territory'].get_query = function(doc,cdt,cdn) { // Supplier //------------- cur_frm.cscript.supplier = function(doc,dt,dn) { - if(doc.supplier) get_server_fields('get_default_supplier_address', JSON.stringify({supplier: doc.supplier}),'', doc, dt, dn, 1); + if(doc.supplier) return get_server_fields('get_default_supplier_address', JSON.stringify({supplier: doc.supplier}),'', doc, dt, dn, 1); if(doc.supplier) unhide_field(['supplier_name','address_display']); } diff --git a/stock/doctype/stock_entry/stock_entry.js b/stock/doctype/stock_entry/stock_entry.js index 7032f92ec1f..4ade2ff4d4d 100644 --- a/stock/doctype/stock_entry/stock_entry.js +++ b/stock/doctype/stock_entry/stock_entry.js @@ -25,14 +25,14 @@ erpnext.stock.StockEntry = erpnext.stock.StockController.extend({ set_default_account: function() { var me = this; - if (sys_defaults.auto_inventory_accounting && !this.frm.doc.expense_adjustment_account) { - if (this.frm.doc.purpose == "Sales Return") + if (cint(wn.defaults.get_default("auto_inventory_accounting")) && !this.frm.doc.expense_adjustment_account) { + if (this.frm.doc.purpose == "Sales Return") account_for = "stock_in_hand_account"; else if (this.frm.doc.purpose == "Purchase Return") account_for = "stock_received_but_not_billed"; else account_for = "stock_adjustment_account"; - this.frm.call({ + return this.frm.call({ method: "accounts.utils.get_company_default", args: { "fieldname": account_for, @@ -78,7 +78,7 @@ erpnext.stock.StockEntry = erpnext.stock.StockController.extend({ } }; - if (sys_defaults.auto_inventory_accounting) { + if(cint(wn.defaults.get_default("auto_inventory_accounting"))) { this.frm.add_fetch("company", "stock_adjustment_account", "expense_adjustment_account"); this.frm.fields_dict["expense_adjustment_account"].get_query = function() { @@ -105,11 +105,8 @@ erpnext.stock.StockEntry = erpnext.stock.StockController.extend({ erpnext.hide_naming_series(); this.toggle_related_fields(this.frm.doc); this.toggle_enable_bom(); - if (this.frm.doc.docstatus==1) { - this.show_stock_ledger(); - if(wn.boot.auto_inventory_accounting) - this.show_general_ledger(); - } + this.show_stock_ledger(); + this.show_general_ledger(); if(this.frm.doc.docstatus === 1 && wn.boot.profile.can_create.indexOf("Journal Voucher")!==-1) { @@ -142,7 +139,7 @@ erpnext.stock.StockEntry = erpnext.stock.StockController.extend({ }, get_items: function() { - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, method: "get_items", callback: function(r) { @@ -160,7 +157,7 @@ erpnext.stock.StockEntry = erpnext.stock.StockController.extend({ production_order: function() { this.toggle_enable_bom(); - this.frm.call({ + return this.frm.call({ method: "get_production_order_details", args: {production_order: this.frm.doc.production_order} }); @@ -212,7 +209,7 @@ erpnext.stock.StockEntry = erpnext.stock.StockController.extend({ make_return_jv: function() { if(this.get_doctype_docname()) { - this.frm.call({ + return this.frm.call({ method: "make_return_jv", args: { stock_entry: this.frm.doc.name @@ -269,23 +266,23 @@ cur_frm.cscript.toggle_related_fields = function(doc) { } cur_frm.cscript.delivery_note_no = function(doc,cdt,cdn){ - if(doc.delivery_note_no) get_server_fields('get_cust_values','','',doc,cdt,cdn,1); + if(doc.delivery_note_no) return get_server_fields('get_cust_values','','',doc,cdt,cdn,1); } cur_frm.cscript.sales_invoice_no = function(doc,cdt,cdn){ - if(doc.sales_invoice_no) get_server_fields('get_cust_values','','',doc,cdt,cdn,1); + if(doc.sales_invoice_no) return get_server_fields('get_cust_values','','',doc,cdt,cdn,1); } cur_frm.cscript.customer = function(doc,cdt,cdn){ - if(doc.customer) get_server_fields('get_cust_addr','','',doc,cdt,cdn,1); + if(doc.customer) return get_server_fields('get_cust_addr','','',doc,cdt,cdn,1); } cur_frm.cscript.purchase_receipt_no = function(doc,cdt,cdn){ - if(doc.purchase_receipt_no) get_server_fields('get_supp_values','','',doc,cdt,cdn,1); + if(doc.purchase_receipt_no) return get_server_fields('get_supp_values','','',doc,cdt,cdn,1); } cur_frm.cscript.supplier = function(doc,cdt,cdn){ - if(doc.supplier) get_server_fields('get_supp_addr','','',doc,cdt,cdn,1); + if(doc.supplier) return get_server_fields('get_supp_addr','','',doc,cdt,cdn,1); } @@ -328,7 +325,7 @@ cur_frm.cscript.item_code = function(doc, cdt, cdn) { 'serial_no' : d.serial_no, 'bom_no' : d.bom_no }; - get_server_fields('get_item_details',JSON.stringify(args),'mtn_details',doc,cdt,cdn,1); + return get_server_fields('get_item_details',JSON.stringify(args),'mtn_details',doc,cdt,cdn,1); } cur_frm.cscript.s_warehouse = function(doc, cdt, cdn) { @@ -341,7 +338,7 @@ cur_frm.cscript.s_warehouse = function(doc, cdt, cdn) { 'bom_no' : d.bom_no, 'qty' : d.s_warehouse ? -1* d.qty : d.qty } - get_server_fields('get_warehouse_details', JSON.stringify(args), + return get_server_fields('get_warehouse_details', JSON.stringify(args), 'mtn_details', doc, cdt, cdn, 1); } @@ -351,7 +348,7 @@ cur_frm.cscript.uom = function(doc, cdt, cdn) { var d = locals[cdt][cdn]; if(d.uom && d.item_code){ var arg = {'item_code':d.item_code, 'uom':d.uom, 'qty':d.qty} - get_server_fields('get_uom_details',JSON.stringify(arg),'mtn_details', doc, cdt, cdn, 1); + return get_server_fields('get_uom_details',JSON.stringify(arg),'mtn_details', doc, cdt, cdn, 1); } } diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py index 58f17c7401a..afa3eb4f011 100644 --- a/stock/doctype/stock_entry/stock_entry.py +++ b/stock/doctype/stock_entry/stock_entry.py @@ -554,7 +554,7 @@ class DocType(StockController): `tabBOM Item`, `tabItem` where `tabBOM Item`.parent = %s and - `tabBOM Item`.item_code = tabItem.name + `tabBOM Item`.item_code = tabItem.name and `tabBOM Item`.docstatus < 2 group by item_code""", (qty, self.doc.bom_no), as_dict=1) diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.js b/stock/doctype/stock_reconciliation/stock_reconciliation.js index 2e0efd8c2a6..2db8cba6b26 100644 --- a/stock/doctype/stock_reconciliation/stock_reconciliation.js +++ b/stock/doctype/stock_reconciliation/stock_reconciliation.js @@ -26,7 +26,7 @@ erpnext.stock.StockReconciliation = erpnext.stock.StockController.extend({ var me = this; if (sys_defaults.auto_inventory_accounting && !this.frm.doc.expense_account) { - this.frm.call({ + return this.frm.call({ method: "accounts.utils.get_company_default", args: { "fieldname": "stock_adjustment_account", @@ -68,6 +68,7 @@ erpnext.stock.StockReconciliation = erpnext.stock.StockController.extend({ } else if(this.frm.doc.docstatus == 1) { this.frm.set_intro("Cancelling this Stock Reconciliation will nullify its effect."); this.show_stock_ledger(); + this.show_general_ledger(); } else { this.frm.set_intro(""); } diff --git a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js index d736ff6da78..86f5bffeaa7 100644 --- a/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js +++ b/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js @@ -21,7 +21,7 @@ $.extend(cur_frm.cscript, { item_code: function() { if(cur_frm.doc.item_code) { - cur_frm.call({ + return cur_frm.call({ method: "get_stock_uom", args: { item_code: cur_frm.doc.item_code } }); diff --git a/stock/doctype/warehouse/warehouse.js b/stock/doctype/warehouse/warehouse.js index 0e9cd336e57..902f66f8951 100644 --- a/stock/doctype/warehouse/warehouse.js +++ b/stock/doctype/warehouse/warehouse.js @@ -26,6 +26,6 @@ cur_frm.cscript.merge = function(doc, cdt, cdn) { var check = confirm("Are you sure you want to merge this warehouse into " + doc.merge_with + "?"); if (check) { - $c_obj(make_doclist(cdt, cdn), 'merge_warehouses', '', ''); + return $c_obj(make_doclist(cdt, cdn), 'merge_warehouses', '', ''); } } \ No newline at end of file diff --git a/support/doctype/customer_issue/customer_issue.js b/support/doctype/customer_issue/customer_issue.js index 3620c7e10a5..9535fbadfce 100644 --- a/support/doctype/customer_issue/customer_issue.js +++ b/support/doctype/customer_issue/customer_issue.js @@ -26,13 +26,13 @@ erpnext.support.CustomerIssue = wn.ui.form.Controller.extend({ customer: function() { var me = this; if(this.frm.doc.customer) { - this.frm.call({ + // TODO shift this to depends_on + unhide_field(['customer_address', 'contact_person']); + + return this.frm.call({ doc: this.frm.doc, method: "set_customer_defaults", }); - - // TODO shift this to depends_on - unhide_field(['customer_address', 'contact_person']); } }, @@ -56,7 +56,7 @@ cur_frm.cscript.onload = function(doc,cdt,cdn){ cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { if(doc.customer) - get_server_fields('get_customer_address', + return get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); } diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.js b/support/doctype/maintenance_schedule/maintenance_schedule.js index f8652d7e16d..436cabade68 100644 --- a/support/doctype/maintenance_schedule/maintenance_schedule.js +++ b/support/doctype/maintenance_schedule/maintenance_schedule.js @@ -44,7 +44,7 @@ erpnext.support.MaintenanceSchedule = wn.ui.form.Controller.extend({ customer: function() { var me = this; if(this.frm.doc.customer) { - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, method: "set_customer_defaults", }); @@ -64,7 +64,7 @@ cur_frm.cscript.onload = function(doc, dt, dn) { } cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { - if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); + if(doc.customer) return get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); } cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) { @@ -90,7 +90,7 @@ cur_frm.cscript.item_code = function(doc, cdt, cdn) { var fname = cur_frm.cscript.fname; var d = locals[cdt][cdn]; if (d.item_code) { - get_server_fields('get_item_details',d.item_code, 'item_maintenance_detail',doc,cdt,cdn,1); + return get_server_fields('get_item_details',d.item_code, 'item_maintenance_detail',doc,cdt,cdn,1); } } @@ -101,7 +101,7 @@ cur_frm.cscript.periodicity = function(doc, cdt, cdn){ arg.start_date = d.start_date; arg.end_date = d.end_date; arg.periodicity = d.periodicity; - get_server_fields('get_no_of_visits',docstring(arg),'item_maintenance_detail',doc, cdt, cdn, 1); + return get_server_fields('get_no_of_visits',docstring(arg),'item_maintenance_detail',doc, cdt, cdn, 1); } else{ msgprint("Please enter Start Date and End Date"); @@ -110,7 +110,7 @@ cur_frm.cscript.periodicity = function(doc, cdt, cdn){ cur_frm.cscript.generate_schedule = function(doc, cdt, cdn) { if (!doc.__islocal) { - $c('runserverobj', args={'method':'generate_schedule', 'docs':wn.model.compress(make_doclist(cdt,cdn))}, + return $c('runserverobj', args={'method':'generate_schedule', 'docs':wn.model.compress(make_doclist(cdt,cdn))}, function(r,rt){ refresh_field('maintenance_schedule_detail'); } diff --git a/support/doctype/maintenance_visit/maintenance_visit.js b/support/doctype/maintenance_visit/maintenance_visit.js index 9f5fc5d915e..4257afaf0f5 100644 --- a/support/doctype/maintenance_visit/maintenance_visit.js +++ b/support/doctype/maintenance_visit/maintenance_visit.js @@ -62,13 +62,13 @@ erpnext.support.MaintenanceVisit = wn.ui.form.Controller.extend({ customer: function() { var me = this; if(this.frm.doc.customer) { - this.frm.call({ + // TODO shift this to depends_on + cur_frm.cscript.hide_contact_info(); + + return this.frm.call({ doc: this.frm.doc, method: "set_customer_defaults", }); - - // TODO shift this to depends_on - cur_frm.cscript.hide_contact_info(); } }, }); @@ -86,7 +86,7 @@ cur_frm.cscript.hide_contact_info = function() { } cur_frm.cscript.customer_address = cur_frm.cscript.contact_person = function(doc,dt,dn) { - if(doc.customer) get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); + if(doc.customer) return get_server_fields('get_customer_address', JSON.stringify({customer: doc.customer, address: doc.customer_address, contact: doc.contact_person}),'', doc, dt, dn, 1); } cur_frm.fields_dict['customer_address'].get_query = function(doc, cdt, cdn) { @@ -111,7 +111,7 @@ cur_frm.cscript.item_code = function(doc, cdt, cdn) { var fname = cur_frm.cscript.fname; var d = locals[cdt][cdn]; if (d.item_code) { - get_server_fields('get_item_details',d.item_code, 'maintenance_visit_details',doc,cdt,cdn,1); + return get_server_fields('get_item_details',d.item_code, 'maintenance_visit_details',doc,cdt,cdn,1); } } diff --git a/support/doctype/newsletter/newsletter.js b/support/doctype/newsletter/newsletter.js index b7e24d21733..5842accac0d 100644 --- a/support/doctype/newsletter/newsletter.js +++ b/support/doctype/newsletter/newsletter.js @@ -19,7 +19,7 @@ cur_frm.cscript.refresh = function(doc) { if(!doc.__islocal && !cint(doc.email_sent) && !doc.__unsaved && inList(wn.boot.profile.can_write, doc.doctype)) { cur_frm.add_custom_button('Send', function() { - $c_obj(make_doclist(doc.doctype, doc.name), 'send_emails', '', function(r) { + return $c_obj(make_doclist(doc.doctype, doc.name), 'send_emails', '', function(r) { cur_frm.refresh(); }); }) @@ -30,7 +30,7 @@ cur_frm.cscript.refresh = function(doc) { repl("%(fullname)s <%(email)s>", wn.user_info(doc.owner))); } - wn.call({ + return wn.call({ method: "support.doctype.newsletter.newsletter.get_lead_options", type: "GET", callback: function(r) { diff --git a/support/doctype/support_ticket/support_ticket.js b/support/doctype/support_ticket/support_ticket.js index d8cc798c95c..34cc5ef4970 100644 --- a/support/doctype/support_ticket/support_ticket.js +++ b/support/doctype/support_ticket/support_ticket.js @@ -23,7 +23,7 @@ erpnext.support.CustomerIssue = wn.ui.form.Controller.extend({ customer: function() { var me = this; if(this.frm.doc.customer) { - this.frm.call({ + return this.frm.call({ doc: this.frm.doc, method: "set_customer_defaults", }); @@ -93,7 +93,7 @@ $.extend(cur_frm.cscript, { }, set_status: function(status) { - wn.call({ + return wn.call({ method:"support.doctype.support_ticket.support_ticket.set_status", args: { name: cur_frm.doc.name, diff --git a/utilities/doctype/rename_tool/rename_tool.js b/utilities/doctype/rename_tool/rename_tool.js index 66a4399ffd7..bba7573fadb 100644 --- a/utilities/doctype/rename_tool/rename_tool.js +++ b/utilities/doctype/rename_tool/rename_tool.js @@ -1,5 +1,5 @@ cur_frm.cscript.refresh = function(doc) { - wn.call({ + return wn.call({ method:"utilities.doctype.rename_tool.rename_tool.get_doctypes", callback: function(r) { cur_frm.set_df_property("select_doctype", "options", r.message); diff --git a/utilities/doctype/sms_control/sms_control.js b/utilities/doctype/sms_control/sms_control.js index e56315c5618..e6e14f7b184 100644 --- a/utilities/doctype/sms_control/sms_control.js +++ b/utilities/doctype/sms_control/sms_control.js @@ -17,7 +17,7 @@ function SMSManager() { var me = this; this.get_contact_number = function(contact, key, value) { - $c_obj('SMS Control', 'get_contact_number', { + return $c_obj('SMS Control', 'get_contact_number', { contact_name:contact, value:value, key:key @@ -63,7 +63,7 @@ function SMSManager() { var v = me.dialog.get_values(); if(v) { $(this).set_working(); - $c_obj('SMS Control', 'send_form_sms', v, function(r,rt) { + return $c_obj('SMS Control', 'send_form_sms', v, function(r,rt) { $(this).done_working(); if(r.exc) {msgprint(r.exc); return; } msgprint('Message Sent'); diff --git a/website/templates/js/cart.js b/website/templates/js/cart.js index a22b9f34d91..ffa084a0b03 100644 --- a/website/templates/js/cart.js +++ b/website/templates/js/cart.js @@ -18,7 +18,7 @@ $(document).ready(function() { wn.cart.bind_events(); - wn.call({ + return wn.call({ type: "POST", method: "website.helpers.cart.get_cart_quotation", callback: function(r) { @@ -204,7 +204,7 @@ $.extend(wn.cart, { }, apply_shipping_rule: function(rule, btn) { - wn.call({ + return wn.call({ btn: btn, type: "POST", method: "website.helpers.cart.apply_shipping_rule", @@ -257,7 +257,7 @@ $.extend(wn.cart, { } }); - wn.call({ + return wn.call({ type: "POST", method: "website.helpers.cart.update_cart_address", args: { @@ -288,7 +288,7 @@ $.extend(wn.cart, { }, place_order: function() { - wn.call({ + return wn.call({ type: "POST", method: "website.helpers.cart.place_order", callback: function(r) {