diff --git a/erpnext/buying/page/purchase_analytics/README.md b/erpnext/buying/page/purchase_analytics/README.md deleted file mode 100644 index 332e4c2c05..0000000000 --- a/erpnext/buying/page/purchase_analytics/README.md +++ /dev/null @@ -1 +0,0 @@ -Trends of purchases across Items, Item Groups, Suppliers. \ No newline at end of file diff --git a/erpnext/buying/page/purchase_analytics/__init__.py b/erpnext/buying/page/purchase_analytics/__init__.py deleted file mode 100644 index baffc48825..0000000000 --- a/erpnext/buying/page/purchase_analytics/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from __future__ import unicode_literals diff --git a/erpnext/buying/page/purchase_analytics/purchase_analytics.js b/erpnext/buying/page/purchase_analytics/purchase_analytics.js deleted file mode 100644 index 06764a3c60..0000000000 --- a/erpnext/buying/page/purchase_analytics/purchase_analytics.js +++ /dev/null @@ -1,231 +0,0 @@ -// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors -// License: GNU General Public License v3. See license.txt - -frappe.pages['purchase-analytics'].on_page_load = function(wrapper) { - frappe.ui.make_app_page({ - parent: wrapper, - title: __('Purchase Analytics'), - single_column: true - }); - - new erpnext.PurchaseAnalytics(wrapper); - - frappe.breadcrumbs.add("Buying"); -} - -erpnext.PurchaseAnalytics = frappe.views.TreeGridReport.extend({ - init: function(wrapper) { - this._super({ - title: __("Purchase Analytics"), - parent: $(wrapper).find('.layout-main'), - page: wrapper.page, - doctypes: ["Item", "Item Group", "Supplier", "Supplier Group", "Company", "Fiscal Year", - "Purchase Invoice", "Purchase Invoice Item", - "Purchase Order", "Purchase Order Item[Purchase Analytics]", - "Purchase Receipt", "Purchase Receipt Item[Purchase Analytics]"], - tree_grid: { show: true } - }); - - this.tree_grids = { - "Supplier Group": { - label: __("Supplier Group / Supplier"), - show: true, - item_key: "supplier", - parent_field: "parent_supplier_group", - formatter: function(item) { - return item.supplier_name ? item.supplier_name + " (" + item.name + ")" : item.name; - } - }, - "Supplier": { - label: __("Supplier"), - show: false, - item_key: "supplier", - formatter: function(item) { - return item.supplier_name ? item.supplier_name + " (" + item.name + ")" : item.name; - } - }, - "Item Group": { - label: "Item", - show: true, - parent_field: "parent_item_group", - item_key: "item_code", - formatter: function(item) { - return item.name; - } - }, - "Item": { - label: "Item", - show: false, - item_key: "item_code", - formatter: function(item) { - return item.name; - } - }, - } - }, - setup_columns: function() { - this.tree_grid = this.tree_grids[this.tree_type]; - - var std_columns = [ - {id: "name", name: this.tree_grid.label, field: "name", width: 300}, - {id: "total", name: "Total", field: "total", plot: false, - formatter: this.currency_formatter} - ]; - - this.make_date_range_columns(); - this.columns = std_columns.concat(this.columns); - }, - filters: [ - {fieldtype:"Select", label: __("Tree Type"), fieldname: "tree_type", - options:["Supplier Group", "Supplier", "Item Group", "Item"], - filter: function(val, item, opts, me) { - return me.apply_zero_filter(val, item, opts, me); - }}, - {fieldtype:"Select", label: __("Based On"), fieldname: "based_on", - options:["Purchase Invoice", "Purchase Order", "Purchase Receipt"]}, - {fieldtype:"Select", label: __("Value or Qty"), fieldname: "value_or_qty", - options:["Value", "Quantity"]}, - {fieldtype:"Select", label: __("Company"), link:"Company", fieldname: "company", - default_value: __("Select Company...")}, - {fieldtype:"Date", label: __("From Date"), fieldname: "from_date"}, - {fieldtype:"Date", label: __("To Date"), fieldname: "to_date"}, - {fieldtype:"Select", label: __("Range"), fieldname: "range", - options:[{label: __("Daily"), value: "Daily"}, {label: __("Weekly"), value: "Weekly"}, - {label: __("Monthly"), value: "Monthly"}, {label: __("Quarterly"), value: "Quarterly"}, - {label: __("Yearly"), value: "Yearly"}]} - ], - setup_filters: function() { - var me = this; - this._super(); - - this.trigger_refresh_on_change(["value_or_qty", "tree_type", "based_on", "company"]); - - this.show_zero_check(); - }, - init_filter_values: function() { - this._super(); - this.filter_inputs.range.val('Monthly'); - }, - prepare_data: function() { - var me = this; - if (!this.tl) { - // add 'Not Set' Supplier & Item - // (Supplier / Item are not mandatory!!) - frappe.report_dump.data["Supplier"].push({ - name: __("Not Set"), - parent_supplier_group: __("All Supplier Groups"), - id: "Not Set", - }); - - frappe.report_dump.data["Item"].push({ - name: __("Not Set"), - parent_item_group: "All Item Groups", - id: "Not Set", - }); - } - - if (!this.tl || !this.tl[this.based_on]) { - this.make_transaction_list(this.based_on, this.based_on + " Item"); - } - - - if(!this.data || me.item_type != me.tree_type) { - var items; - if(me.tree_type=='Supplier') { - items = frappe.report_dump.data["Supplier"]; - } else if(me.tree_type=='Supplier Group') { - items = this.prepare_tree("Supplier", "Supplier Group"); - } else if(me.tree_type=="Item Group") { - items = this.prepare_tree("Item", "Item Group"); - } else if(me.tree_type=="Item") { - items = frappe.report_dump.data["Item"]; - } - - me.item_type = me.tree_type - 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[me.tree_grid.parent_field]) { - me.parent_map[d.name] = d[me.tree_grid.parent_field]; - } - me.reset_item_values(d); - }); - - this.set_indent(); - - } else { - // otherwise, only reset values - $.each(this.data, function(i, d) { - me.reset_item_values(d); - }); - } - - this.prepare_balances(); - if(me.tree_grid.show) { - this.set_totals(false); - this.update_groups(); - } else { - this.set_totals(true); - } - }, - prepare_balances: function() { - var me = this; - var from_date = frappe.datetime.str_to_obj(this.from_date); - var to_date = frappe.datetime.str_to_obj(this.to_date); - var is_val = this.value_or_qty == 'Value'; - - $.each(this.tl[this.based_on], function(i, tl) { - if (me.is_default('company') ? true : tl.company === me.company) { - var posting_date = frappe.datetime.str_to_obj(tl.posting_date); - if (posting_date >= from_date && posting_date <= to_date) { - var item = me.item_by_name[tl[me.tree_grid.item_key]] || - me.item_by_name['Not Set']; - item[me.column_map[tl.posting_date].field] += (is_val ? tl.base_net_amount : tl.qty); - } - } - }); - }, - update_groups: function() { - var me = this; - - $.each(this.data, function(i, item) { - var parent = me.parent_map[item.name]; - while(parent) { - var parent_group = me.item_by_name[parent]; - - $.each(me.columns, function(c, col) { - if (col.formatter == me.currency_formatter) { - parent_group[col.field] = - flt(parent_group[col.field]) - + flt(item[col.field]); - } - }); - parent = me.parent_map[parent]; - } - }); - }, - set_totals: function(sort) { - var me = this; - var checked = false; - $.each(this.data, function(i, d) { - d.total = 0.0; - $.each(me.columns, function(i, col) { - if(col.formatter==me.currency_formatter && !col.hidden && col.field!="total") - d.total += d[col.field]; - if(d.checked) checked = true; - }) - }); - - if(sort)this.data = this.data.sort(function(a, b) { return b.total - a.total; }); - - if(!this.checked) { - this.data[0].checked = true; - } - } -}); diff --git a/erpnext/buying/page/purchase_analytics/purchase_analytics.json b/erpnext/buying/page/purchase_analytics/purchase_analytics.json deleted file mode 100644 index ad13c7d415..0000000000 --- a/erpnext/buying/page/purchase_analytics/purchase_analytics.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "creation": "2012-09-21 20:15:16.000000", - "docstatus": 0, - "doctype": "Page", - "icon": "fa fa-bar-chart", - "idx": 1, - "modified": "2013-07-11 14:43:52.000000", - "modified_by": "Administrator", - "module": "Buying", - "name": "purchase-analytics", - "owner": "Administrator", - "page_name": "purchase-analytics", - "roles": [ - { - "role": "Analytics" - }, - { - "role": "Purchase Manager" - } - ], - "standard": "Yes", - "title": "Purchase Analytics" -} \ No newline at end of file diff --git a/erpnext/manufacturing/page/production_analytics/__init__.py b/erpnext/manufacturing/page/production_analytics/__init__.py deleted file mode 100644 index baffc48825..0000000000 --- a/erpnext/manufacturing/page/production_analytics/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from __future__ import unicode_literals diff --git a/erpnext/manufacturing/page/production_analytics/production_analytics.js b/erpnext/manufacturing/page/production_analytics/production_analytics.js deleted file mode 100644 index 1647313036..0000000000 --- a/erpnext/manufacturing/page/production_analytics/production_analytics.js +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors -// License: GNU General Public License v3. See license.txt - -frappe.pages['production-analytics'].on_page_load = function(wrapper) { - frappe.ui.make_app_page({ - parent: wrapper, - title: __('Production Analytics'), - single_column: true - }); - - new erpnext.ProductionAnalytics(wrapper); - - frappe.breadcrumbs.add("Manufacturing"); -} - -erpnext.ProductionAnalytics = frappe.views.GridReportWithPlot.extend({ - init: function(wrapper) { - this._super({ - title: __("Production Analytics"), - parent: $(wrapper).find('.layout-main'), - page: wrapper.page, - doctypes: ["Item", "Company", "Fiscal Year", "Work Order"] - }); - - }, - setup_columns: function() { - - var std_columns = [ - {id: "name", name: __("Status"), field: "name", width: 100} - ]; - - this.make_date_range_columns(); - this.columns = std_columns.concat(this.columns); - }, - filters: [ - {fieldtype:"Select", label: __("Company"), link:"Company", fieldname: "company", - default_value: __("Select Company...")}, - {fieldtype:"Date", label: __("From Date"), fieldname: "from_date"}, - {fieldtype:"Date", label: __("To Date"), fieldname: "to_date"}, - {fieldtype:"Select", label: __("Range"), fieldname: "range", - options:[{label: __("Daily"), value: "Daily"}, {label: __("Weekly"), value: "Weekly"}, - {label: __("Monthly"), value: "Monthly"}, {label: __("Quarterly"), value: "Quarterly"}, - {label: __("Yearly"), value: "Yearly"}]} - ], - setup_filters: function() { - var me = this; - this._super(); - - this.trigger_refresh_on_change(["company"]); - this.trigger_refresh_on_change(["range"]); - - this.show_zero_check(); - - }, - init_filter_values: function() { - this._super(); - this.filter_inputs.range.val('Monthly'); - }, - setup_chart: function() { - var me = this; - - var chart_data = this.get_chart_data ? this.get_chart_data() : null; - - const parent = this.wrapper.find('.chart')[0]; - this.chart = new Chart(parent, { - height: 200, - data: chart_data, - type: 'line' - }); - }, - set_default_values: function() { - var values = { - from_date: frappe.datetime.str_to_user(frappe.datetime.add_months(frappe.datetime.now_datetime(),-12) ), - to_date: frappe.datetime.str_to_user(frappe.datetime.add_months(frappe.datetime.now_datetime(),1)) - } - - var me = this; - $.each(values, function(i, v) { - if(me.filter_inputs[i] && !me.filter_inputs[i].val()) - me.filter_inputs[i].val(v); - }) - }, - - prepare_data: function() { - // add Opening, Closing, Totals rows - // if filtered by account and / or voucher - var me = this; - var all_open_orders = {name:"All Work Orders", "id": "all-open-pos", - checked:true}; - var not_started = {name:"Not Started", "id":"not-started-pos", - checked:true}; - var overdue = {name:"Overdue (Not Started)", "id":"overdue-pos", - checked:true}; - var pending = {name:"Pending", "id":"pending-pos", - checked:true}; - var completed = {name:"Completed", "id":"completed-pos", - checked:true}; - - $.each(frappe.report_dump.data["Work Order"], function(i, d) { - var dateobj = frappe.datetime.str_to_obj(d.creation); - var date = frappe.datetime.str_to_user(d.creation.split(" ")[0]); - - $.each(me.columns, function(i,col) { - if (i > 1){ - var start_period = frappe.datetime.user_to_obj(frappe.datetime.str_to_user(col.id)); - var end_period = frappe.datetime.user_to_obj(frappe.datetime.str_to_user(col.name)); - var astart_date = frappe.datetime.user_to_obj(frappe.datetime.str_to_user(d.actual_start_date)); - var planned_start_date = frappe.datetime.user_to_obj(frappe.datetime.str_to_user(d.planned_start_date)); - var aend_date = frappe.datetime.user_to_obj(frappe.datetime.str_to_user(d.actual_end_date)); - var modified = frappe.datetime.user_to_obj(frappe.datetime.str_to_user(d.modified)); - - if (dateobj <= start_period || dateobj <= end_period) { - all_open_orders[col.field] = flt(all_open_orders[col.field]) + 1; - - if(d.status=="Completed") { - if(aend_date < start_period || modified < start_period) { - completed[col.field] = flt(completed[col.field]) + 1; - } - else if (astart_date < start_period) { - pending[col.field] = flt(pending[col.field]) + 1; - } - else if (planned_start_date < start_period) { - overdue[col.field] = flt(overdue[col.field]) + 1; - } else { - not_started[col.field] = flt(not_started[col.field]) + 1; - } - }else if(d.status == "In Process") - { - if (astart_date < start_period || modified < start_period){ - pending[col.field] = flt(pending[col.field]) + 1; - }else if (planned_start_date < start_period) { - overdue[col.field] = flt(overdue[col.field]) + 1; - }else{ - not_started[col.field] = flt(not_started[col.field]) + 1; - } - }else if(d.status == "Not Started") { - if (planned_start_date < start_period){ - overdue[col.field] = flt(overdue[col.field]) + 1; - }else{ - not_started[col.field] = flt(not_started[col.field]) + 1; - } - } - } - } - }); - }); - if(me.columns.length < 30){ - this.chart_area.toggle(true); - }else { - this.chart_area.toggle(false); - } - this.data = [all_open_orders, not_started, overdue, pending, completed]; - - } -}); diff --git a/erpnext/manufacturing/page/production_analytics/production_analytics.json b/erpnext/manufacturing/page/production_analytics/production_analytics.json deleted file mode 100644 index cd73bc826f..0000000000 --- a/erpnext/manufacturing/page/production_analytics/production_analytics.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "content": null, - "creation": "2012-09-21 20:15:16", - "docstatus": 0, - "doctype": "Page", - "icon": "fa fa-bar-chart", - "idx": 1, - "modified": "2017-02-20 17:33:05.913097", - "modified_by": "Administrator", - "module": "Manufacturing", - "name": "production-analytics", - "owner": "Administrator", - "page_name": "production-analytics", - "roles": [ - { - "role": "Analytics" - }, - { - "role": "Manufacturing Manager" - } - ], - "script": null, - "standard": "Yes", - "style": null, - "title": "Production Analytics" -} \ No newline at end of file diff --git a/erpnext/patches.txt b/erpnext/patches.txt index dc4c94c8d1..4a67eb4e47 100755 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -568,10 +568,10 @@ erpnext.patches.v11_0.remove_land_unit_icon erpnext.patches.v11_0.add_default_dispatch_notification_template erpnext.patches.v11_0.add_market_segments erpnext.patches.v11_0.add_sales_stages -execute:frappe.delete_doc("Page", "sales-analytics") -execute:frappe.delete_doc("Page", "purchase-analytics") -execute:frappe.delete_doc("Page", "stock-analytics") -execute:frappe.delete_doc("Page", "production-analytics") +execute:frappe.delete_doc_if_exists("Page", "sales-analytics") +execute:frappe.delete_doc_if_exists("Page", "purchase-analytics") +execute:frappe.delete_doc_if_exists("Page", "stock-analytics") +execute:frappe.delete_doc_if_exists("Page", "production-analytics") erpnext.patches.v11_0.ewaybill_fields_gst_india #2018-11-13 erpnext.patches.v11_0.drop_column_max_days_allowed erpnext.patches.v11_0.change_healthcare_desktop_icons diff --git a/erpnext/selling/page/sales_analytics/README.md b/erpnext/selling/page/sales_analytics/README.md deleted file mode 100644 index 11994c26b9..0000000000 --- a/erpnext/selling/page/sales_analytics/README.md +++ /dev/null @@ -1 +0,0 @@ -Trends of sales by Item, Item Group, Customer etc. \ No newline at end of file diff --git a/erpnext/selling/page/sales_analytics/__init__.py b/erpnext/selling/page/sales_analytics/__init__.py deleted file mode 100644 index baffc48825..0000000000 --- a/erpnext/selling/page/sales_analytics/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from __future__ import unicode_literals diff --git a/erpnext/selling/page/sales_analytics/sales_analytics.js b/erpnext/selling/page/sales_analytics/sales_analytics.js deleted file mode 100644 index f5caf1d591..0000000000 --- a/erpnext/selling/page/sales_analytics/sales_analytics.js +++ /dev/null @@ -1,246 +0,0 @@ -// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors -// License: GNU General Public License v3. See license.txt - -frappe.pages['sales-analytics'].on_page_load = function(wrapper) { - frappe.ui.make_app_page({ - parent: wrapper, - title: __('Sales Analytics'), - single_column: true - }); - new erpnext.SalesAnalytics(wrapper); - - - frappe.breadcrumbs.add("Selling") - -}; - -erpnext.SalesAnalytics = frappe.views.TreeGridReport.extend({ - init: function(wrapper) { - this._super({ - title: __("Sales Analytics"), - parent: $(wrapper).find('.layout-main'), - page: wrapper.page, - doctypes: ["Item", "Item Group", "Customer", "Customer Group", "Company", "Territory", - "Fiscal Year", "Sales Invoice", "Sales Invoice Item", - "Sales Order", "Sales Order Item[Sales Analytics]", - "Delivery Note", "Delivery Note Item[Sales Analytics]"], - tree_grid: { show: true } - }); - - this.tree_grids = { - "Customer Group": { - label: __("Customer Group / Customer"), - show: true, - item_key: "customer", - parent_field: "parent_customer_group", - formatter: function(item) { - return item.customer_name? item.customer_name + " (" + item.name + ")" : item.name; - } - }, - "Customer": { - label: __("Customer"), - show: false, - item_key: "customer", - formatter: function(item) { - return item.customer_name? item.customer_name + " (" + item.name + ")" : item.name; - } - }, - "Item Group": { - label: __("Item"), - show: true, - parent_field: "parent_item_group", - item_key: "item_code", - formatter: function(item) { - return item.name; - } - }, - "Item": { - label: __("Item"), - show: false, - item_key: "item_code", - formatter: function(item) { - return item.name; - } - }, - "Territory": { - label: __("Territory / Customer"), - show: true, - item_key: "customer", - parent_field: "parent_territory", - formatter: function(item) { - return item.customer_name? item.customer_name + " (" + item.name + ")" : item.name; - } - } - } - }, - setup_columns: function() { - this.tree_grid = this.tree_grids[this.tree_type]; - - var std_columns = [ - {id: "name", name: this.tree_grid.label, field: "name", width: 300}, - {id: "total", name: "Total", field: "total", plot: false, - formatter: this.currency_formatter} - ]; - - this.make_date_range_columns(); - this.columns = std_columns.concat(this.columns); - }, - filters: [ - {fieldtype:"Select", fieldname: "tree_type", label: __("Tree Type"), options:["Customer Group", "Customer", - "Item Group", "Item", "Territory"], - filter: function(val, item, opts, me) { - return me.apply_zero_filter(val, item, opts, me); - }}, - {fieldtype:"Select", fieldname: "based_on", label: __("Based On"), options:["Sales Invoice", - "Sales Order", "Delivery Note"]}, - {fieldtype:"Select", fieldname: "value_or_qty", label: __("Value or Qty"), - options:[{label: __("Value"), value: "Value"}, {label: __("Quantity"), value: "Quantity"}]}, - {fieldtype:"Date", fieldname: "from_date", label: __("From Date")}, - {fieldtype:"Label", fieldname: "to", label: __("To")}, - {fieldtype:"Date", fieldname: "to_date", label: __("To Date")}, - {fieldtype:"Select", fieldname: "company", label: __("Company"), link:"Company", - default_value: __("Select Company...")}, - {fieldtype:"Select", label: __("Range"), fieldname: "range", - options:[{label: __("Daily"), value: "Daily"}, {label: __("Weekly"), value: "Weekly"}, - {label: __("Monthly"), value: "Monthly"}, {label: __("Quarterly"), value: "Quarterly"}, - {label: __("Yearly"), value: "Yearly"}]} - ], - setup_filters: function() { - var me = this; - this._super(); - - this.trigger_refresh_on_change(["value_or_qty", "tree_type", "based_on", "company"]); - - this.show_zero_check(); - }, - init_filter_values: function() { - this._super(); - this.filter_inputs.range.val('Monthly'); - }, - prepare_data: function() { - var me = this; - if (!this.tl) { - // add 'Not Set' Customer & Item - // (Customer / Item are not mandatory!!) - frappe.report_dump.data["Customer"].push({ - name: "Not Set", - parent_customer_group: "All Customer Groups", - parent_territory: "All Territories", - id: "Not Set", - }); - - frappe.report_dump.data["Item"].push({ - name: "Not Set", - parent_item_group: "All Item Groups", - id: "Not Set", - }); - } - - if (!this.tl || !this.tl[this.based_on]) { - this.make_transaction_list(this.based_on, this.based_on + " Item"); - } - - if(!this.data || me.item_type != me.tree_type) { - if(me.tree_type=='Customer') { - var items = frappe.report_dump.data["Customer"]; - } if(me.tree_type=='Customer Group') { - var items = this.prepare_tree("Customer", "Customer Group"); - } else if(me.tree_type=="Item Group") { - var items = this.prepare_tree("Item", "Item Group"); - } else if(me.tree_type=="Item") { - var items = frappe.report_dump.data["Item"]; - } else if(me.tree_type=="Territory") { - var items = this.prepare_tree("Customer", "Territory"); - } - - me.item_type = me.tree_type - 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[me.tree_grid.parent_field]) { - me.parent_map[d.name] = d[me.tree_grid.parent_field]; - } - me.reset_item_values(d); - }); - - this.set_indent(); - - } else { - // otherwise, only reset values - $.each(this.data, function(i, d) { - me.reset_item_values(d); - }); - } - - this.prepare_balances(); - if(me.tree_grid.show) { - this.set_totals(false); - this.update_groups(); - } else { - this.set_totals(true); - } - - }, - prepare_balances: function() { - var me = this; - var from_date = frappe.datetime.str_to_obj(this.from_date); - var to_date = frappe.datetime.str_to_obj(this.to_date); - var is_val = this.value_or_qty == 'Value'; - - $.each(this.tl[this.based_on], function(i, tl) { - if (me.is_default('company') ? true : tl.company === me.company) { - var posting_date = frappe.datetime.str_to_obj(tl.posting_date); - if (posting_date >= from_date && posting_date <= to_date) { - var item = me.item_by_name[tl[me.tree_grid.item_key]] || - me.item_by_name['Not Set']; - if(item){ - item[me.column_map[tl.posting_date].field] += (is_val ? tl.base_net_amount : tl.qty); - } - } - } - }); - }, - update_groups: function() { - var me = this; - - $.each(this.data, function(i, item) { - var parent = me.parent_map[item.name]; - while(parent) { - var parent_group = me.item_by_name[parent]; - - $.each(me.columns, function(c, col) { - if (col.formatter == me.currency_formatter) { - parent_group[col.field] = - flt(parent_group[col.field]) - + flt(item[col.field]); - } - }); - parent = me.parent_map[parent]; - } - }); - }, - set_totals: function(sort) { - var me = this; - var checked = false; - $.each(this.data, function(i, d) { - d.total = 0.0; - $.each(me.columns, function(i, col) { - if(col.formatter==me.currency_formatter && !col.hidden && col.field!="total") - d.total += d[col.field]; - if(d.checked) checked = true; - }) - }); - - if(sort)this.data = this.data.sort(function(a, b) { return a.total < b.total; }); - - if(!this.checked) { - this.data[0].checked = true; - } - } -}); diff --git a/erpnext/selling/page/sales_analytics/sales_analytics.json b/erpnext/selling/page/sales_analytics/sales_analytics.json deleted file mode 100644 index 4a7761ebaf..0000000000 --- a/erpnext/selling/page/sales_analytics/sales_analytics.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "creation": "2012-09-21 20:15:12.000000", - "docstatus": 0, - "doctype": "Page", - "icon": "fa fa-bar-chart", - "idx": 1, - "modified": "2013-07-11 14:43:59.000000", - "modified_by": "Administrator", - "module": "Selling", - "name": "sales-analytics", - "owner": "Administrator", - "page_name": "sales-analytics", - "roles": [ - { - "role": "Analytics" - }, - { - "role": "Sales Manager" - }, - { - "role": "Maintenance Manager" - } - ], - "standard": "Yes", - "title": "Sales Analytics" -} \ No newline at end of file diff --git a/erpnext/stock/page/stock_analytics/README.md b/erpnext/stock/page/stock_analytics/README.md deleted file mode 100644 index 86c3644322..0000000000 --- a/erpnext/stock/page/stock_analytics/README.md +++ /dev/null @@ -1 +0,0 @@ -Trends of Items quantities and values. \ No newline at end of file diff --git a/erpnext/stock/page/stock_analytics/__init__.py b/erpnext/stock/page/stock_analytics/__init__.py deleted file mode 100644 index baffc48825..0000000000 --- a/erpnext/stock/page/stock_analytics/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from __future__ import unicode_literals diff --git a/erpnext/stock/page/stock_analytics/stock_analytics.js b/erpnext/stock/page/stock_analytics/stock_analytics.js deleted file mode 100644 index 6deeb7a1f4..0000000000 --- a/erpnext/stock/page/stock_analytics/stock_analytics.js +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors -// License: GNU General Public License v3. See license.txt - -frappe.pages['stock-analytics'].on_page_load = function(wrapper) { - frappe.ui.make_app_page({ - parent: wrapper, - title: __('Stock Analytics'), - single_column: true - }); - - frappe.require(["assets/erpnext/js/stock_grid_report.js", - "assets/erpnext/js/stock_analytics.js"], function() { - new erpnext.StockAnalytics(wrapper); - frappe.breadcrumbs.add("Stock") - }); -}; diff --git a/erpnext/stock/page/stock_analytics/stock_analytics.json b/erpnext/stock/page/stock_analytics/stock_analytics.json deleted file mode 100644 index 90e9f2e56b..0000000000 --- a/erpnext/stock/page/stock_analytics/stock_analytics.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "creation": "2012-09-21 20:15:14.000000", - "docstatus": 0, - "doctype": "Page", - "icon": "fa fa-bar-chart", - "idx": 1, - "modified": "2013-07-11 14:44:10.000000", - "modified_by": "Administrator", - "module": "Stock", - "name": "stock-analytics", - "owner": "Administrator", - "page_name": "stock-analytics", - "roles": [ - { - "role": "Analytics" - }, - { - "role": "Material Manager" - } - ], - "standard": "Yes", - "title": "Stock Analytics" -} \ No newline at end of file