");
+ this.frm.pos = new erpnext.POS(wrapper, this.frm);
}
// toggle view
- this.frm.layout.set_view(this.pos_active ? "" : "pos");
+ this.frm.appframe.set_view(this.pos_active ? "main" : "pos");
this.pos_active = !this.pos_active;
// refresh
@@ -224,9 +224,9 @@ erpnext.TransactionController = erpnext.stock.StockController.extend({
me.frm.script_manager.trigger("currency");
me.apply_pricing_rule();
- }
+ }
}
-
+
if (this.frm.doc.posting_date) var date = this.frm.doc.posting_date;
else var date = this.frm.doc.transaction_date;
erpnext.get_fiscal_year(this.frm.doc.company, date, fn);
diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index 00265829675..cad9a8c146f 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -10,7 +10,6 @@ cur_frm.cscript.sales_team_fname = "sales_team";
{% include 'selling/sales_common.js' %}
{% include 'accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js' %}
-{% include 'accounts/doctype/sales_invoice/pos.js' %}
erpnext.selling.QuotationController = erpnext.selling.SellingController.extend({
onload: function(doc, dt, dn) {
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index 65b91f4bd78..2c196862f1d 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -10,7 +10,6 @@ cur_frm.cscript.sales_team_fname = "sales_team";
{% include 'selling/sales_common.js' %}
{% include 'accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js' %}
-{% include 'accounts/doctype/sales_invoice/pos.js' %}
erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend({
refresh: function(doc, dt, dn) {
diff --git a/erpnext/selling/page/sales_analytics/sales_analytics.js b/erpnext/selling/page/sales_analytics/sales_analytics.js
index 34808662cea..75863533ec0 100644
--- a/erpnext/selling/page/sales_analytics/sales_analytics.js
+++ b/erpnext/selling/page/sales_analytics/sales_analytics.js
@@ -10,7 +10,7 @@ frappe.pages['sales-analytics'].onload = function(wrapper) {
new erpnext.SalesAnalytics(wrapper);
- wrapper.appframe.add_module_icon("Selling")
+ frappe.add_breadcrumbs("Selling")
}
diff --git a/erpnext/selling/page/sales_browser/sales_browser.js b/erpnext/selling/page/sales_browser/sales_browser.js
index d2540288659..fcbd71ca9d9 100644
--- a/erpnext/selling/page/sales_browser/sales_browser.js
+++ b/erpnext/selling/page/sales_browser/sales_browser.js
@@ -6,7 +6,7 @@ pscript['onload_Sales Browser'] = function(wrapper){
parent: wrapper,
})
- wrapper.appframe.add_module_icon("Selling")
+ frappe.add_breadcrumbs("Selling")
wrapper.appframe.set_title_right(__('Refresh'), function() {
wrapper.make_tree();
diff --git a/erpnext/selling/page/sales_funnel/sales_funnel.js b/erpnext/selling/page/sales_funnel/sales_funnel.js
index 76707629cf1..99d3d070b1f 100644
--- a/erpnext/selling/page/sales_funnel/sales_funnel.js
+++ b/erpnext/selling/page/sales_funnel/sales_funnel.js
@@ -1,73 +1,71 @@
// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
// License: GNU General Public License v3. See license.txt
-frappe.pages['sales-funnel'].onload = function(wrapper) {
+frappe.pages['sales-funnel'].onload = function(wrapper) {
frappe.ui.make_app_page({
parent: wrapper,
title: __('Sales Funnel'),
single_column: true
});
-
+
wrapper.sales_funnel = new erpnext.SalesFunnel(wrapper);
-
- wrapper.appframe.add_module_icon("Selling", "sales-funnel", function() {
- frappe.set_route("selling-home");
- });
+
+ frappe.add_breadcrumbs("Selling");
}
erpnext.SalesFunnel = Class.extend({
init: function(wrapper) {
var me = this;
// 0 setTimeout hack - this gives time for canvas to get width and height
- setTimeout(function() {
+ setTimeout(function() {
me.setup(wrapper);
me.get_data();
}, 0);
},
-
+
setup: function(wrapper) {
var me = this;
-
- this.elements = {
+
+ this.elements = {
layout: $(wrapper).find(".layout-main"),
from_date: wrapper.appframe.add_date(__("From Date")),
to_date: wrapper.appframe.add_date(__("To Date")),
- refresh_btn: wrapper.appframe.set_title_right(__("Refresh"),
+ refresh_btn: wrapper.appframe.set_title_right(__("Refresh"),
function() { me.get_data(); }, "icon-refresh"),
};
-
+
this.elements.no_data = $('
' + __("No Data") + '
')
.toggle(false)
.appendTo(this.elements.layout);
-
+
this.elements.funnel_wrapper = $('
')
.appendTo(this.elements.layout);
-
+
this.options = {
from_date: frappe.datetime.add_months(frappe.datetime.get_today(), -1),
to_date: frappe.datetime.get_today()
};
-
+
// set defaults and bind on change
- $.each(this.options, function(k, v) {
- me.elements[k].val(frappe.datetime.str_to_user(v));
+ $.each(this.options, function(k, v) {
+ me.elements[k].val(frappe.datetime.str_to_user(v));
me.elements[k].on("change", function() {
me.options[k] = frappe.datetime.user_to_str($(this).val());
me.get_data();
});
});
-
+
// bind refresh
this.elements.refresh_btn.on("click", function() {
me.get_data(this);
});
-
+
// bind resize
$(window).resize(function() {
me.render();
});
},
-
+
get_data: function(btn) {
var me = this;
frappe.call({
@@ -85,72 +83,72 @@ erpnext.SalesFunnel = Class.extend({
}
});
},
-
+
render: function() {
var me = this;
this.prepare();
-
+
var context = this.elements.context,
x_start = 0.0,
x_end = this.options.width,
x_mid = (x_end - x_start) / 2.0,
y = 0,
y_old = 0.0;
-
+
if(this.options.total_value === 0) {
this.elements.no_data.toggle(true);
return;
}
-
+
this.options.data.forEach(function(d) {
context.fillStyle = d.color;
context.strokeStyle = d.color;
me.draw_triangle(x_start, x_mid, x_end, y, me.options.height);
-
+
y_old = y;
// new y
y = y + d.height;
-
+
// new x
var half_side = (me.options.height - y) / Math.sqrt(3);
x_start = x_mid - half_side;
x_end = x_mid + half_side;
-
+
var y_mid = y_old + (y - y_old) / 2.0;
-
+
me.draw_legend(x_mid, y_mid, me.options.width, me.options.height, d.value + " - " + d.title);
});
},
-
+
prepare: function() {
var me = this;
-
+
this.elements.no_data.toggle(false);
-
+
// calculate width and height options
this.options.width = $(this.elements.funnel_wrapper).width() * 2.0 / 3.0;
this.options.height = (Math.sqrt(3) * this.options.width) / 2.0;
-
+
// calculate total weightage
// as height decreases, area decreases by the square of the reduction
// hence, compensating by squaring the index value
this.options.total_weightage = this.options.data.reduce(
function(prev, curr, i) { return prev + Math.pow(i+1, 2) * curr.value; }, 0.0);
-
+
// calculate height for each data
$.each(this.options.data, function(i, d) {
d.height = me.options.height * d.value * Math.pow(i+1, 2) / me.options.total_weightage;
});
-
+
this.elements.canvas = $('
')
.appendTo(this.elements.funnel_wrapper.empty())
.attr("width", $(this.elements.funnel_wrapper).width())
.attr("height", this.options.height);
-
+
this.elements.context = this.elements.canvas.get(0).getContext("2d");
},
-
+
draw_triangle: function(x_start, x_mid, x_end, y, height) {
var context = this.elements.context;
context.beginPath();
@@ -161,27 +159,27 @@ erpnext.SalesFunnel = Class.extend({
context.closePath();
context.fill();
},
-
+
draw_legend: function(x_mid, y_mid, width, height, title) {
var context = this.elements.context;
-
+
// draw line
context.beginPath();
context.moveTo(x_mid, y_mid);
context.lineTo(width, y_mid);
context.closePath();
context.stroke();
-
+
// draw circle
context.beginPath();
context.arc(width, y_mid, 5, 0, Math.PI * 2, false);
context.closePath();
context.fill();
-
+
// draw text
context.fillStyle = "black";
context.textBaseline = "middle";
context.font = "1.1em sans-serif";
context.fillText(title, width + 20, y_mid);
}
-});
\ No newline at end of file
+});
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index 6abc268f4a6..354667a02a7 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -9,7 +9,6 @@ cur_frm.cscript.sales_team_fname = "sales_team";
{% include 'selling/sales_common.js' %};
{% include 'accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js' %}
-{% include 'accounts/doctype/sales_invoice/pos.js' %}
frappe.provide("erpnext.stock");
frappe.provide("erpnext.stock.delivery_note");
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index fc2d1b30f39..de2d0defce8 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -7,7 +7,6 @@ cur_frm.cscript.other_fname = "other_charges";
{% include 'buying/doctype/purchase_common/purchase_common.js' %};
{% include 'accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js' %}
-{% include 'accounts/doctype/sales_invoice/pos.js' %}
frappe.provide("erpnext.stock");
erpnext.stock.PurchaseReceiptController = erpnext.buying.BuyingController.extend({
diff --git a/erpnext/stock/page/stock_analytics/stock_analytics.js b/erpnext/stock/page/stock_analytics/stock_analytics.js
index 963cff0b758..8fd2d324f63 100644
--- a/erpnext/stock/page/stock_analytics/stock_analytics.js
+++ b/erpnext/stock/page/stock_analytics/stock_analytics.js
@@ -12,7 +12,7 @@ frappe.pages['stock-analytics'].onload = function(wrapper) {
new erpnext.StockAnalytics(wrapper);
- wrapper.appframe.add_module_icon("Stock")
+ frappe.add_breadcrumbs("Stock")
}
diff --git a/erpnext/stock/page/stock_ledger/stock_ledger.js b/erpnext/stock/page/stock_ledger/stock_ledger.js
index b4086dc66e8..84e5b9b61f3 100644
--- a/erpnext/stock/page/stock_ledger/stock_ledger.js
+++ b/erpnext/stock/page/stock_ledger/stock_ledger.js
@@ -9,7 +9,7 @@ frappe.pages['stock-ledger'].onload = function(wrapper) {
});
new erpnext.StockLedger(wrapper);
- wrapper.appframe.add_module_icon("Stock")
+ frappe.add_breadcrumbs("Stock")
}
frappe.require("assets/erpnext/js/stock_grid_report.js");
diff --git a/erpnext/stock/page/stock_level/stock_level.js b/erpnext/stock/page/stock_level/stock_level.js
index 8659c287293..785ad7fdfdc 100644
--- a/erpnext/stock/page/stock_level/stock_level.js
+++ b/erpnext/stock/page/stock_level/stock_level.js
@@ -11,7 +11,7 @@ frappe.pages['stock-level'].onload = function(wrapper) {
new erpnext.StockLevel(wrapper);
- wrapper.appframe.add_module_icon("Stock")
+ frappe.add_breadcrumbs("Stock")
;
}
diff --git a/erpnext/support/page/support_analytics/support_analytics.js b/erpnext/support/page/support_analytics/support_analytics.js
index 9e24f679e12..95c5fc8a727 100644
--- a/erpnext/support/page/support_analytics/support_analytics.js
+++ b/erpnext/support/page/support_analytics/support_analytics.js
@@ -11,7 +11,7 @@ frappe.pages['support-analytics'].onload = function(wrapper) {
new erpnext.SupportAnalytics(wrapper);
- wrapper.appframe.add_module_icon("Support")
+ frappe.add_breadcrumbs("Support")
}