|
@@ -602,6 +602,7 @@ class Route_DealsSales extends RouteBase {
|
|
|
if (priv.options.initData.obrotyToMarki) _state.obrotyToMarki = priv.options.initData.obrotyToMarki;
|
|
if (priv.options.initData.obrotyToMarki) _state.obrotyToMarki = priv.options.initData.obrotyToMarki;
|
|
|
if (priv.options.initData.months) _state.months = priv.options.initData.months;
|
|
if (priv.options.initData.months) _state.months = priv.options.initData.months;
|
|
|
if (priv.options.initData.years) _state.years = priv.options.initData.years;
|
|
if (priv.options.initData.years) _state.years = priv.options.initData.years;
|
|
|
|
|
+ if (priv.options.initData.fltrMarka) _state.fltrMarka = priv.options.initData.fltrMarka;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
priv.initialRender = function () {
|
|
priv.initialRender = function () {
|
|
@@ -660,7 +661,14 @@ class Route_DealsSales extends RouteBase {
|
|
|
;
|
|
;
|
|
|
jsonLabels.push(parseInt(kYear));
|
|
jsonLabels.push(parseInt(kYear));
|
|
|
$.each(_state.months, function(monthIdx, vMonth) {
|
|
$.each(_state.months, function(monthIdx, vMonth) {
|
|
|
- if (undefined === vSalesByMonth[vMonth]) {
|
|
|
|
|
|
|
+ var isFilteredOutByMarka = false;
|
|
|
|
|
+ if (_state.fltrMarka) {
|
|
|
|
|
+ if (_state.fltrMarka != _state.obrotyToMarki[kYear][vMonth]) {
|
|
|
|
|
+ isFilteredOutByMarka = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (undefined === vSalesByMonth[vMonth] || isFilteredOutByMarka) {
|
|
|
jsonYearData['' + kYear + '-' + vMonth] = 0;
|
|
jsonYearData['' + kYear + '-' + vMonth] = 0;
|
|
|
} else {
|
|
} else {
|
|
|
jsonYearData['' + kYear + '-' + vMonth] = vSalesByMonth[vMonth];
|
|
jsonYearData['' + kYear + '-' + vMonth] = vSalesByMonth[vMonth];
|
|
@@ -732,7 +740,14 @@ class Route_DealsSales extends RouteBase {
|
|
|
byMonthDataValues = []
|
|
byMonthDataValues = []
|
|
|
;
|
|
;
|
|
|
$.each(_state.obroty, function(kYear, vSalesByMonth) {
|
|
$.each(_state.obroty, function(kYear, vSalesByMonth) {
|
|
|
- if (undefined === vSalesByMonth[vMonth]) {
|
|
|
|
|
|
|
+ var isFilteredOutByMarka = false;
|
|
|
|
|
+ if (_state.fltrMarka) {
|
|
|
|
|
+ if (_state.fltrMarka != _state.obrotyToMarki[kYear][vMonth]) {
|
|
|
|
|
+ isFilteredOutByMarka = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (undefined === vSalesByMonth[vMonth] || isFilteredOutByMarka) {
|
|
|
jsonByMonthData['' + kYear + '-' + vMonth] = 0;
|
|
jsonByMonthData['' + kYear + '-' + vMonth] = 0;
|
|
|
} else {
|
|
} else {
|
|
|
jsonByMonthData['' + kYear + '-' + vMonth] = vSalesByMonth[vMonth];
|
|
jsonByMonthData['' + kYear + '-' + vMonth] = vSalesByMonth[vMonth];
|
|
@@ -785,16 +800,38 @@ class Route_DealsSales extends RouteBase {
|
|
|
priv.renderHeaderMarki = function(record) {
|
|
priv.renderHeaderMarki = function(record) {
|
|
|
var currentNode = _uiNode$Marki.children('tbody').children('tr'),
|
|
var currentNode = _uiNode$Marki.children('tbody').children('tr'),
|
|
|
node = $('<tr></tr>'),
|
|
node = $('<tr></tr>'),
|
|
|
- marki = _state.marki
|
|
|
|
|
|
|
+ marki = _state.marki,
|
|
|
|
|
+ th$ = $('<th><i class="glyphicon glyphicon-filter"></i> Marki:</th>').appendTo(node);
|
|
|
;
|
|
;
|
|
|
- $('<th>Marki:</th>').appendTo(node);
|
|
|
|
|
|
|
+ if (_state.fltrMarka) {
|
|
|
|
|
+ rmFltrBtn = $('<i title="Pokaż wszystkie marki" class="glyphicon glyphicon-remove" style="cursor:pointer; color:red; opacity:0.4;"></i>');
|
|
|
|
|
+ rmFltrBtn.on('click', priv.removeFltrMarka);
|
|
|
|
|
+ rmFltrBtn.prependTo(th$);
|
|
|
|
|
+ }
|
|
|
$.each(_state.marki, function(markaLabel, markaClassName) {
|
|
$.each(_state.marki, function(markaLabel, markaClassName) {
|
|
|
- var td$Node = $('<td><b>' + markaLabel + '</b></td>').appendTo(node);
|
|
|
|
|
|
|
+ var isFiltered = (_state.fltrMarka == markaLabel),
|
|
|
|
|
+ markaInput = '<input type="radio" title="Pokaż tylko markę ' + markaLabel + '" name="fltr_marka" value="' + markaLabel + '" ' + (isFiltered ? ' checked="checked"' : '') + '>',
|
|
|
|
|
+ td$Node = $('<td>' + markaInput + ' <b>' + markaLabel + '</b></td>').appendTo(node)
|
|
|
|
|
+ ;
|
|
|
td$Node.addClass('cell_marka_' + markaClassName);
|
|
td$Node.addClass('cell_marka_' + markaClassName);
|
|
|
|
|
+ td$Node.on('click', 'input', priv.filterMarka);
|
|
|
});
|
|
});
|
|
|
currentNode.replaceWith(node);
|
|
currentNode.replaceWith(node);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ priv.removeFltrMarka = function(e) {
|
|
|
|
|
+ _state.fltrMarka = null;
|
|
|
|
|
+ jQuery(_uiNodeCont).trigger('DealsSalesTable:render', ['body','marki','graphs']);
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ priv.filterMarka = function(e) {
|
|
|
|
|
+ var target$ = $(e.target),
|
|
|
|
|
+ isChecked = target$.is(':checked');
|
|
|
|
|
+ console.log('isChecked', isChecked, 'target$', target$, 'e', e);
|
|
|
|
|
+ _state.fltrMarka = (isChecked)? target$.val() : null;
|
|
|
|
|
+ jQuery(_uiNodeCont).trigger('DealsSalesTable:render', ['body','marki','graphs']);
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
priv.renderTableBody = function(record) {
|
|
priv.renderTableBody = function(record) {
|
|
|
var currentNode = _uiNode$Table.children('tbody'),
|
|
var currentNode = _uiNode$Table.children('tbody'),
|
|
|
node = $('<tbody></tbody>'),
|
|
node = $('<tbody></tbody>'),
|
|
@@ -807,6 +844,13 @@ class Route_DealsSales extends RouteBase {
|
|
|
var suma = 0;
|
|
var suma = 0;
|
|
|
$.each(_state.months, function(monthsIdx, vMonth) {
|
|
$.each(_state.months, function(monthsIdx, vMonth) {
|
|
|
var td$Node = $('<td></td>').appendTo(tr$Node);
|
|
var td$Node = $('<td></td>').appendTo(tr$Node);
|
|
|
|
|
+
|
|
|
|
|
+ if (_state.fltrMarka) {
|
|
|
|
|
+ if (_state.fltrMarka != _state.obrotyToMarki[vYearId][vMonth]) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
td$Node.css({textAlign: 'right'});
|
|
td$Node.css({textAlign: 'right'});
|
|
|
var saleValue = parseFloat(vSalesByMonth[vMonth]);
|
|
var saleValue = parseFloat(vSalesByMonth[vMonth]);
|
|
|
//if (!vSalesByMonth.hasOwnProperty(vMonth)) {
|
|
//if (!vSalesByMonth.hasOwnProperty(vMonth)) {
|
|
@@ -1000,7 +1044,7 @@ class Route_DealsSales extends RouteBase {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- priv.onRender = function(e) {
|
|
|
|
|
|
|
+ priv.onRender = function(e) {// jQuery(_uiNodeCont).trigger('DealsSalesTable:render', [...]);
|
|
|
if (priv.options.debug) console.log('onRender.arguments:', arguments.length, arguments, 'e:', e);
|
|
if (priv.options.debug) console.log('onRender.arguments:', arguments.length, arguments, 'e:', e);
|
|
|
if (arguments.length > 1) {
|
|
if (arguments.length > 1) {
|
|
|
for (var i=1; i<arguments.length; i++) {
|
|
for (var i=1; i<arguments.length; i++) {
|