From 4279dec000a298caae311eba337db314b198394d Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Tue, 25 Dec 2012 18:35:12 +0530 Subject: [PATCH] fixed wn.require path for stock analytics and stock balance --- public/js/stock_analytics.js | 196 +++++++++++++++++ stock/page/stock_analytics/stock_analytics.js | 203 +----------------- stock/page/stock_balance/stock_balance.js | 2 +- 3 files changed, 208 insertions(+), 193 deletions(-) create mode 100644 public/js/stock_analytics.js diff --git a/public/js/stock_analytics.js b/public/js/stock_analytics.js new file mode 100644 index 0000000000..2bdea5e010 --- /dev/null +++ b/public/js/stock_analytics.js @@ -0,0 +1,196 @@ +// ERPNext - web based ERP (http://erpnext.com) +// Copyright (C) 2012 Web Notes Technologies Pvt Ltd +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +wn.require("app/js/stock_grid_report.js"); + +erpnext.StockAnalytics = erpnext.StockGridReport.extend({ + init: function(wrapper, opts) { + var args = { + title: "Stock Analytics", + page: wrapper, + parent: $(wrapper).find('.layout-main'), + appframe: wrapper.appframe, + doctypes: ["Item", "Item Group", "Warehouse", "Stock Ledger Entry", "Brand", + "Fiscal Year"], + tree_grid: { + show: true, + parent_field: "parent_item_group", + formatter: function(item) { + if(!item.is_group) { + return repl('%(value)s', + { + value: item.name, + enc_value: encodeURIComponent(item.name) + }); + } else { + return item.name; + } + + } + }, + } + + if(opts) $.extend(args, opts); + + this._super(args); + }, + setup_columns: function() { + var std_columns = [ + {id: "check", name: "Plot", field: "check", width: 30, + formatter: this.check_formatter}, + {id: "name", name: "Item", field: "name", width: 300, + formatter: this.tree_formatter}, + {id: "brand", name: "Brand", field: "brand", width: 200}, + {id: "opening", name: "Opening", field: "opening", hidden: true, + formatter: this.currency_formatter} + ]; + + this.make_date_range_columns(); + this.columns = std_columns.concat(this.columns); + }, + filters: [ + {fieldtype:"Select", label: "Value or Qty", options:["Value (Weighted Average)", + "Value (FIFO)", "Quantity"], + filter: function(val, item, opts, me) { + return me.apply_zero_filter(val, item, opts, me); + }}, + {fieldtype:"Select", label: "Brand", link:"Brand", + default_value: "Select Brand...", filter: function(val, item, opts) { + return val == opts.default_value || item.brand == val || item._show; + }}, + {fieldtype:"Select", label: "Warehouse", link:"Warehouse", + default_value: "Select Warehouse..."}, + {fieldtype:"Date", label: "From Date"}, + {fieldtype:"Label", label: "To"}, + {fieldtype:"Date", label: "To Date"}, + {fieldtype:"Select", label: "Range", + options:["Daily", "Weekly", "Monthly", "Quarterly", "Yearly"]}, + {fieldtype:"Button", label: "Refresh", icon:"icon-refresh icon-white", cssClass:"btn-info"}, + {fieldtype:"Button", label: "Reset Filters"} + ], + setup_filters: function() { + var me = this; + this._super(); + + this.trigger_refresh_on_change(["value_or_qty", "brand", "warehouse", "range"]); + + this.show_zero_check(); + this.setup_plot_check(); + }, + init_filter_values: function() { + this._super(); + this.filter_inputs.range && this.filter_inputs.range.val('Monthly'); + }, + prepare_data: function() { + var me = this; + + if(!this.data) { + var items = this.prepare_tree("Item", "Item Group"); + + me.parent_map = {}; + me.item_by_name = {}; + me.data = []; + + $.each(items, function(i, v) { + var d = copy_dict(v); + + me.data.push(d); + me.item_by_name[d.name] = d; + if(d.parent_item_group) { + me.parent_map[d.name] = d.parent_item_group; + } + me.reset_item_values(d); + }); + this.set_indent(); + this.data[0].checked = true; + } else { + // otherwise, only reset values + $.each(this.data, function(i, d) { + me.reset_item_values(d); + }); + } + + this.prepare_balances(); + this.update_groups(); + + }, + prepare_balances: function() { + var me = this; + var from_date = dateutil.str_to_obj(this.from_date); + var to_date = dateutil.str_to_obj(this.to_date); + var data = wn.report_dump.data["Stock Ledger Entry"]; + + this.item_warehouse = {}; + + for(var i=0, j=data.length; i. -wn.require("app/js/stock_grid_report.js"); -// done so that it doesn't throw error when inherited in stock-balance report -if(wn.pages["stock-analytics"]) { - wn.pages['stock-analytics'].onload = function(wrapper) { - wn.ui.make_app_page({ - parent: wrapper, - title: 'Stock Analytics', - single_column: true - }); +wn.pages['stock-analytics'].onload = function(wrapper) { + wn.ui.make_app_page({ + parent: wrapper, + title: 'Stock Analytics', + single_column: true + }); - new erpnext.StockAnalytics(wrapper); + new erpnext.StockAnalytics(wrapper); - wrapper.appframe.add_home_breadcrumb() - wrapper.appframe.add_module_breadcrumb("Stock") - wrapper.appframe.add_breadcrumb("icon-bar-chart") - } + wrapper.appframe.add_home_breadcrumb() + wrapper.appframe.add_module_breadcrumb("Stock") + wrapper.appframe.add_breadcrumb("icon-bar-chart") } -erpnext.StockAnalytics = erpnext.StockGridReport.extend({ - init: function(wrapper, opts) { - var args = { - title: "Stock Analytics", - page: wrapper, - parent: $(wrapper).find('.layout-main'), - appframe: wrapper.appframe, - doctypes: ["Item", "Item Group", "Warehouse", "Stock Ledger Entry", "Brand", - "Fiscal Year"], - tree_grid: { - show: true, - parent_field: "parent_item_group", - formatter: function(item) { - if(!item.is_group) { - return repl('%(value)s', - { - value: item.name, - enc_value: encodeURIComponent(item.name) - }); - } else { - return item.name; - } - - } - }, - } - - if(opts) $.extend(args, opts); - - this._super(args); - }, - setup_columns: function() { - var std_columns = [ - {id: "check", name: "Plot", field: "check", width: 30, - formatter: this.check_formatter}, - {id: "name", name: "Item", field: "name", width: 300, - formatter: this.tree_formatter}, - {id: "brand", name: "Brand", field: "brand", width: 200}, - {id: "opening", name: "Opening", field: "opening", hidden: true, - formatter: this.currency_formatter} - ]; - - this.make_date_range_columns(); - this.columns = std_columns.concat(this.columns); - }, - filters: [ - {fieldtype:"Select", label: "Value or Qty", options:["Value (Weighted Average)", - "Value (FIFO)", "Quantity"], - filter: function(val, item, opts, me) { - return me.apply_zero_filter(val, item, opts, me); - }}, - {fieldtype:"Select", label: "Brand", link:"Brand", - default_value: "Select Brand...", filter: function(val, item, opts) { - return val == opts.default_value || item.brand == val || item._show; - }}, - {fieldtype:"Select", label: "Warehouse", link:"Warehouse", - default_value: "Select Warehouse..."}, - {fieldtype:"Date", label: "From Date"}, - {fieldtype:"Label", label: "To"}, - {fieldtype:"Date", label: "To Date"}, - {fieldtype:"Select", label: "Range", - options:["Daily", "Weekly", "Monthly", "Quarterly", "Yearly"]}, - {fieldtype:"Button", label: "Refresh", icon:"icon-refresh icon-white", cssClass:"btn-info"}, - {fieldtype:"Button", label: "Reset Filters"} - ], - setup_filters: function() { - var me = this; - this._super(); - - this.trigger_refresh_on_change(["value_or_qty", "brand", "warehouse", "range"]); - - this.show_zero_check(); - this.setup_plot_check(); - }, - init_filter_values: function() { - this._super(); - this.filter_inputs.range && this.filter_inputs.range.val('Monthly'); - }, - prepare_data: function() { - var me = this; - - if(!this.data) { - var items = this.prepare_tree("Item", "Item Group"); - - me.parent_map = {}; - me.item_by_name = {}; - me.data = []; - - $.each(items, function(i, v) { - var d = copy_dict(v); - - me.data.push(d); - me.item_by_name[d.name] = d; - if(d.parent_item_group) { - me.parent_map[d.name] = d.parent_item_group; - } - me.reset_item_values(d); - }); - this.set_indent(); - this.data[0].checked = true; - } else { - // otherwise, only reset values - $.each(this.data, function(i, d) { - me.reset_item_values(d); - }); - } - - this.prepare_balances(); - this.update_groups(); - - }, - prepare_balances: function() { - var me = this; - var from_date = dateutil.str_to_obj(this.from_date); - var to_date = dateutil.str_to_obj(this.to_date); - var data = wn.report_dump.data["Stock Ledger Entry"]; - - this.item_warehouse = {}; - - for(var i=0, j=data.length; i. -wn.require("../app/stock/page/stock_analytics/stock_analytics.js"); +wn.require("app/js/stock_analytics.js"); wn.pages['stock-balance'].onload = function(wrapper) { wn.ui.make_app_page({