From 614e7ab7577639bace59a2047a4cad1802617c23 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 18 Feb 2015 19:51:48 +0530 Subject: [PATCH] [cleanup] SMS, and added item filter in stock balance --- .../doctype/sales_invoice/sales_invoice.js | 7 +------ .../doctype/purchase_order/purchase_order.js | 7 +------ erpnext/crm/doctype/lead/lead.js | 6 +----- erpnext/crm/doctype/opportunity/opportunity.js | 8 ++------ erpnext/patches/v5_0/rename_total_fields.py | 5 ++--- .../patches/v5_0/update_item_desc_and_image.py | 17 +++++++---------- erpnext/public/js/controllers/transaction.js | 13 +++++++++++++ erpnext/selling/doctype/quotation/quotation.js | 7 ++----- .../selling/doctype/sales_order/sales_order.js | 7 +------ .../doctype/delivery_note/delivery_note.js | 7 ++----- erpnext/stock/doctype/item/item.js | 11 +++++++++++ .../material_request/material_request.js | 8 ++------ .../purchase_receipt/purchase_receipt.js | 6 +----- .../stock/report/stock_balance/stock_balance.js | 7 +++++++ .../stock/report/stock_balance/stock_balance.py | 3 +++ 15 files changed, 56 insertions(+), 63 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js index 820e42da64a..81427fedeb6 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js @@ -57,8 +57,6 @@ erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.exte // var percent_paid = cint(flt(doc.base_grand_total - doc.outstanding_amount) / flt(doc.base_grand_total) * 100); // cur_frm.dashboard.add_progress(percent_paid + "% Paid", percent_paid); - cur_frm.add_custom_button(__('Send SMS'), cur_frm.cscript.send_sms, 'icon-mobile-phone'); - if(cint(doc.update_stock)!=1) { // show Make Delivery Note button only if Sales Invoice is not created from Delivery Note var from_delivery_note = false; @@ -394,10 +392,7 @@ cur_frm.cscript.on_submit = function(doc, cdt, cdn) { } } -cur_frm.cscript.send_sms = function() { - frappe.require("assets/erpnext/js/sms_manager.js"); - var sms_man = new SMSManager(cur_frm.doc); -} + cur_frm.set_query("debit_to", function(doc) { return{ diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js index 6564f571c8f..30affb8f6a5 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.js +++ b/erpnext/buying/doctype/purchase_order/purchase_order.js @@ -27,8 +27,6 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend( cur_frm.add_custom_button(__('Stop'), cur_frm.cscript['Stop Purchase Order'], "icon-exclamation", "btn-default"); - cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms, "icon-mobile-phone", true); - } else if(doc.docstatus===0) { cur_frm.cscript.add_from_mappers(); } @@ -216,10 +214,7 @@ cur_frm.cscript.on_submit = function(doc, cdt, cdn) { } } -cur_frm.cscript.send_sms = function() { - frappe.require("assets/erpnext/js/sms_manager.js"); - var sms_man = new SMSManager(cur_frm.doc); -} + cur_frm.cscript.schedule_date = function(doc, cdt, cdn) { cur_frm.cscript.copy_account_in_all_row(doc, cdt, cdn, "schedule_date"); diff --git a/erpnext/crm/doctype/lead/lead.js b/erpnext/crm/doctype/lead/lead.js index b2eab162ff8..bc78f92c30d 100644 --- a/erpnext/crm/doctype/lead/lead.js +++ b/erpnext/crm/doctype/lead/lead.js @@ -31,7 +31,6 @@ erpnext.LeadController = frappe.ui.form.Controller.extend({ frappe.boot.doctype_icons["Customer"], "btn-default"); this.frm.add_custom_button(__("Create Opportunity"), this.create_opportunity, frappe.boot.doctype_icons["Opportunity"], "btn-default"); - cur_frm.add_custom_button(__("Send SMS"), this.frm.cscript.send_sms, "icon-mobile-phone"); } if(!this.frm.doc.__islocal) { @@ -56,8 +55,5 @@ erpnext.LeadController = frappe.ui.form.Controller.extend({ $.extend(cur_frm.cscript, new erpnext.LeadController({frm: cur_frm})); -cur_frm.cscript.send_sms = function() { - frappe.require("assets/erpnext/js/sms_manager.js"); - var sms_man = new SMSManager(cur_frm.doc); -} + diff --git a/erpnext/crm/doctype/opportunity/opportunity.js b/erpnext/crm/doctype/opportunity/opportunity.js index 10cfc3ab001..47c7f6b2f64 100644 --- a/erpnext/crm/doctype/opportunity/opportunity.js +++ b/erpnext/crm/doctype/opportunity/opportunity.js @@ -81,8 +81,7 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) { cur_frm.add_custom_button(__('Opportunity Lost'), cur_frm.cscript['Declare Opportunity Lost'], "icon-remove", "btn-default"); - cur_frm.add_custom_button(__('Send SMS'), cur_frm.cscript.send_sms, - "icon-mobile-phone", true); + } } @@ -149,10 +148,7 @@ cur_frm.cscript['Declare Opportunity Lost'] = function() { dialog.show(); } -cur_frm.cscript.send_sms = function() { - frappe.require("assets/erpnext/js/sms_manager.js"); - var sms_man = new SMSManager(cur_frm.doc); -} + cur_frm.cscript.company = function(doc, cdt, cdn) { erpnext.get_fiscal_year(doc.company, doc.transaction_date); diff --git a/erpnext/patches/v5_0/rename_total_fields.py b/erpnext/patches/v5_0/rename_total_fields.py index 4e980ce9569..d8a591d730e 100644 --- a/erpnext/patches/v5_0/rename_total_fields.py +++ b/erpnext/patches/v5_0/rename_total_fields.py @@ -41,11 +41,10 @@ buying_renamed_fields = ( def execute(): for doctypes, fields in [[selling_doctypes, selling_renamed_fields], [buying_doctypes, buying_renamed_fields]]: for dt in doctypes: + meta = frappe.get_meta(dt) + frappe.reload_doc(get_doctype_module(dt), "doctype", scrub(dt)) base_net_total = frappe.db.sql("select sum(ifnull({0}, 0)) from `tab{1}`".format(fields[0][1], dt))[0][0] if not base_net_total: - meta = frappe.get_meta(dt) - frappe.reload_doc(get_doctype_module(dt), "doctype", scrub(dt)) - for f in fields: if meta.get_field(f[0]): rename_field(dt, f[0], f[1]) diff --git a/erpnext/patches/v5_0/update_item_desc_and_image.py b/erpnext/patches/v5_0/update_item_desc_and_image.py index 371dd2fd414..296ac0a5a1e 100644 --- a/erpnext/patches/v5_0/update_item_desc_and_image.py +++ b/erpnext/patches/v5_0/update_item_desc_and_image.py @@ -10,15 +10,12 @@ def execute(): "BOM Item", "Opportunity Item" , "Quotation Item" , "Sales Order Item" , "Delivery Note Item" , \ "Material Request Item" , "Purchase Receipt Item" , "Stock Entry Detail"] for dt in dt_list: + frappe.reload_doctype(dt) names = frappe.db.sql("""select name, description from `tab{0}` doc where doc.description is not null""".format(dt),as_dict=1) for d in names: - try: - data = d.description - image_url = find_first_image(data) - desc = re.sub("\]+\>", "", data) - - frappe.db.sql("""update `tab{0}` doc set doc.description = %s, doc.image = %s - where doc.name = %s """.format(dt),(desc, image_url, d.name)) - except: - pass - \ No newline at end of file + data = d.description + image_url = find_first_image(data) + desc = re.sub("\]+\>", "", data) + + frappe.db.sql("""update `tab{0}` set description = %s, image = %s + where name = %s """.format(dt),(desc, image_url, d.name)) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index c8b028b12c6..1dca8372a78 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -56,6 +56,19 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ this.show_item_wise_taxes(); this.set_dynamic_labels(); erpnext.pos.make_pos_btn(this.frm); + this.setup_sms(); + }, + + setup_sms: function() { + var me = this; + if(this.frm.doc.docstatus===1 && !in_list(["Lost", "Stopped"], this.frm.doc.status)) { + this.frm.page.add_menu_item(__('Send SMS'), function() { me.send_sms(); }); + } + }, + + send_sms: function() { + frappe.require("assets/erpnext/js/sms_manager.js"); + var sms_man = new SMSManager(this.doc); }, hide_currency_and_price_list: function() { diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js index c950056ff22..665710072c0 100644 --- a/erpnext/selling/doctype/quotation/quotation.js +++ b/erpnext/selling/doctype/quotation/quotation.js @@ -25,7 +25,7 @@ erpnext.selling.QuotationController = erpnext.selling.SellingController.extend({ cur_frm.add_custom_button(__('Set as Lost'), cur_frm.cscript['Declare Order Lost'], "icon-exclamation", "btn-default"); } - cur_frm.add_custom_button(__('Send SMS'), cur_frm.cscript.send_sms, "icon-mobile-phone"); + } if (this.frm.doc.docstatus===0) { @@ -159,7 +159,4 @@ cur_frm.cscript.on_submit = function(doc, cdt, cdn) { cur_frm.email_doc(frappe.boot.notification_settings.quotation_message); } -cur_frm.cscript.send_sms = function() { - frappe.require("assets/erpnext/js/sms_manager.js"); - var sms_man = new SMSManager(cur_frm.doc); -} + diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js index 3c3d264c9a6..5a5896c1795 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.js +++ b/erpnext/selling/doctype/sales_order/sales_order.js @@ -45,8 +45,6 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend( this.make_maintenance_schedule, null, "btn-default"); } - cur_frm.add_custom_button(__('Send SMS'), cur_frm.cscript.send_sms, "icon-mobile-phone", true); - } else { // un-stop cur_frm.dashboard.set_headline_alert(__("Stopped"), "alert-danger", "icon-stop"); @@ -187,7 +185,4 @@ cur_frm.cscript.on_submit = function(doc, cdt, cdn) { } }; -cur_frm.cscript.send_sms = function() { - frappe.require("assets/erpnext/js/sms_manager.js"); - var sms_man = new SMSManager(cur_frm.doc); -}; +; diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js index 1668bd0aa04..2743ffcdfaa 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.js +++ b/erpnext/stock/doctype/delivery_note/delivery_note.js @@ -25,7 +25,7 @@ erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend( 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, "icon-mobile-phone"); + this.show_stock_ledger(); this.show_general_ledger(); } @@ -240,8 +240,5 @@ if (sys_defaults.auto_accounting_for_stock) { } } -cur_frm.cscript.send_sms = function() { - frappe.require("assets/erpnext/js/sms_manager.js"); - var sms_man = new SMSManager(cur_frm.doc); -} + diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index af7e7f0f246..6f197a82b34 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -3,6 +3,17 @@ frappe.provide("erpnext.item"); +frappe.ui.form.on("Item", "refresh", function(frm) { + if(frm.doc.is_stock_item) { + frm.add_custom_button(__("Show Balance"), function() { + frappe.route_options = { + "item_code": frm.doc.name + } + frappe.set_route("query-report", "Stock Balance"); + }); + } +}) + cur_frm.cscript.refresh = function(doc) { // make sensitive fields(has_serial_no, is_stock_item, valuation_method) // read only if any stock ledger entry exists diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js index dbbc6e54086..c7d94717988 100644 --- a/erpnext/stock/doctype/material_request/material_request.js +++ b/erpnext/stock/doctype/material_request/material_request.js @@ -53,8 +53,7 @@ erpnext.buying.MaterialRequestController = erpnext.buying.BuyingController.exten cur_frm.add_custom_button(__('Stop'), cur_frm.cscript['Stop Material Request'], "icon-exclamation", "btn-default"); } - cur_frm.add_custom_button(__('Send SMS'), cur_frm.cscript.send_sms, - "icon-mobile-phone", true); + } @@ -192,7 +191,4 @@ cur_frm.cscript['Unstop Material Request'] = function(){ } }; -cur_frm.cscript.send_sms = function() { - frappe.require("assets/erpnext/js/sms_manager.js"); - var sms_man = new SMSManager(cur_frm.doc); -} + diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js index c89dab1cb65..50a1073dcfc 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js @@ -14,7 +14,6 @@ erpnext.stock.PurchaseReceiptController = erpnext.buying.BuyingController.extend cur_frm.add_custom_button(__('Make Purchase Invoice'), this.make_purchase_invoice, frappe.boot.doctype_icons["Purchase Invoice"]); } - cur_frm.add_custom_button('Send SMS', cur_frm.cscript.send_sms, "icon-mobile-phone", true); this.show_stock_ledger(); this.show_general_ledger(); @@ -172,10 +171,7 @@ cur_frm.cscript.on_submit = function(doc, cdt, cdn) { cur_frm.email_doc(frappe.boot.notification_settings.purchase_receipt_message); } -cur_frm.cscript.send_sms = function() { - frappe.require("assets/erpnext/js/sms_manager.js"); - var sms_man = new SMSManager(cur_frm.doc); -} + frappe.provide("erpnext.buying"); diff --git a/erpnext/stock/report/stock_balance/stock_balance.js b/erpnext/stock/report/stock_balance/stock_balance.js index c0aed518452..fd941eee645 100644 --- a/erpnext/stock/report/stock_balance/stock_balance.js +++ b/erpnext/stock/report/stock_balance/stock_balance.js @@ -16,6 +16,13 @@ frappe.query_reports["Stock Balance"] = { "fieldtype": "Date", "width": "80", "default": frappe.datetime.get_today() + }, + { + "fieldname": "item_code", + "label": __("Item"), + "fieldtype": "Link", + "width": "80", + "options": "Item" } ] } diff --git a/erpnext/stock/report/stock_balance/stock_balance.py b/erpnext/stock/report/stock_balance/stock_balance.py index daef2ebd31e..0cb8dc5c564 100644 --- a/erpnext/stock/report/stock_balance/stock_balance.py +++ b/erpnext/stock/report/stock_balance/stock_balance.py @@ -53,6 +53,9 @@ def get_conditions(filters): else: frappe.throw(_("'To Date' is required")) + if filters.get("item_code"): + conditions += " and item_code = '%s'" % frappe.db.escape(filters.get("item_code")) + return conditions #get all details