fix(stats): Fix zero vals, minor refactor

This commit is contained in:
nikolark committed 2016-09-24 14:08:58 +02:00
1 parent 25563043f8
commit c5845afc3a
1 file changed
+31 -33
+31 -33
View File
@@ -1,10 +1,9 @@
var barSales;
var appSales;
var smsSales;
var salesData;
/* FIXME: Make this more generic */
var saleTypes = ['bar', 'sms', 'app'];
var salesData = {};
var salesChart;
var salesChartToday;
var saleTypes = ['bar', 'sms', 'app'];
var urls = {
cards: 'https://kassa.neuf.no/stats/card-sales/',
@@ -25,44 +24,44 @@ function toHighchartsSeries(memberships) {
function getBarSales(start) {
return $.getJSON(urls.cards + '?start=' + start, function(data) {
barSales = data.memberships;
salesChart.addSeries({name: 'Bar-salg', data: toHighchartsSeries(barSales)});
salesData['bar'] = data.memberships;
salesChart.addSeries({name: 'Bar-salg', data: toHighchartsSeries(salesData['bar'])});
});
}
function getSmsSales(start) {
return $.getJSON(urls.tekstmelding + '?start=' + start, function(data) {
smsSales = data.memberships;
salesChart.addSeries({name: 'SMS-salg', data: toHighchartsSeries(smsSales)});
salesData['sms'] = data.memberships;
salesChart.addSeries({name: 'SMS-salg', data: toHighchartsSeries(salesData['sms'])});
});
}
function getAppSales(start) {
return $.getJSON(urls.snapporder + '?start=' + start, function (data) {
appSales = data.memberships;
salesChart.addSeries({name: 'App-salg', data: toHighchartsSeries(appSales)});
salesData['app'] = data.memberships;
salesChart.addSeries({name: 'App-salg', data: toHighchartsSeries(salesData['app'])});
});
}
function totals() {
var barTotal = _.reduce(barSales, sumSales, 0);
$('.bar').html(barTotal);
var smsTotal = _.reduce(smsSales, sumSales, 0);
$('.sms').html(smsTotal);
var appTotal = _.reduce(appSales, sumSales, 0);
$('.app').html(appTotal);
var sum = 0;
_.each(saleTypes, function(type) {
var total = _.reduce(salesData[type], sumSales, 0);
$('.'+ type).html(total);
sum += total;
}) ;
$('.sum').html(barTotal + smsTotal + appTotal);
$('.sum').html(sum);
}
function today() {
var today = moment.utc().format('YYYY-MM-DD');
$('.today-date-wrap').text(today);
var todayBarSales = _.findWhere(barSales, {date: today}) || {sales: 0};
var todayBarSales = _.findWhere(salesData['bar'], {date: today}) || {sales: 0};
$('.bar-today').html(todayBarSales.sales);
var todaySmsSales = _.findWhere(smsSales, {date: today}) || {sales: 0};
var todaySmsSales = _.findWhere(salesData['sms'], {date: today}) || {sales: 0};
$('.sms-today').html(todaySmsSales.sales);
var todayAppSales = _.findWhere(appSales, {date: today}) || {sales: 0};
var todayAppSales = _.findWhere(salesData['app'], {date: today}) || {sales: 0};
$('.app-today').html(todayAppSales.sales);
$('.sum-today').html(todayBarSales.sales + todaySmsSales.sales + todayAppSales.sales);
@@ -90,25 +89,24 @@ function today() {
}
function groupSalesByDate() {
var types = {
'bar': barSales,
'sms': smsSales,
'app': appSales
};
var salesByDate = {};
_.each(types, function (source, type) {
_.each(source, function (el) {
_.each(saleTypes, function (type) {
_.each(salesData[type], function (el) {
var d = {};
d[el.date] = {
'bar': 0,
'sms': 0,
'app': 0
};
d[el.date] = {};
d[el.date][type]= el.sales;
$.extend(true, salesByDate, d);
});
});
/* add zeros */
_.each(salesByDate, function (sales, date) {
_.each(saleTypes, function (type) {
if(typeof sales[type] == 'undefined') {
salesByDate[date][type] = 0;
}
});
});
var table_friendly = [];
_.each(salesByDate, function (sales, date) {