76 lines
2.5 KiB
JavaScript
76 lines
2.5 KiB
JavaScript
/**
|
|
* Created by Pensare Software.
|
|
* User: Theo Weijmer
|
|
* Date: 31/10/2019
|
|
* Time: 14:31
|
|
*/
|
|
|
|
dbo.dashboardInit = function () {
|
|
|
|
if ( dbo.dashboardModel !== undefined ) {
|
|
|
|
dbo.dashboardModel.init();
|
|
|
|
} else {
|
|
dbo.dashboardModel = {
|
|
|
|
|
|
owpThisYear : ko.observable( null ),
|
|
owpNextYear : ko.observable( null ),
|
|
owpTotal : ko.observable( null ),
|
|
revenuesNextyear : ko.observable( null ),
|
|
totalRevenues : ko.observable( null ),
|
|
outstanding : ko.observable( null ),
|
|
toInvoice : ko.observable( null ),
|
|
openCosts : ko.observable( null ),
|
|
revenues : ko.observable( null ),
|
|
revenues : ko.observable( null ),
|
|
revenueCurrentYear: ko.observable( null ),
|
|
|
|
init: function () {
|
|
var self = dbo.dashboardModel;
|
|
dbo.dashboardDataservice.getOwhp( function ( data ) {
|
|
var outstandings = self.getOutstandingTotal( data.outstandings );
|
|
var revCurYear = Number( data.currentFinancialYear ) + Number( data.totalOwp );
|
|
|
|
self.owpThisYear( dbo.helpers.thousandSeparator( data.currentFinancialYear ) );
|
|
self.owpNextYear( dbo.helpers.thousandSeparator( data.owpNextyear ) );
|
|
self.owpTotal( dbo.helpers.thousandSeparator( data.totalOwp ) );
|
|
self.revenuesNextyear( dbo.helpers.thousandSeparator( data.revenuesNextyear ) );
|
|
self.totalRevenues( dbo.helpers.thousandSeparator( data.totalRevenues ) );
|
|
self.outstanding( dbo.helpers.thousandSeparator( outstandings.open ) );
|
|
self.toInvoice( dbo.helpers.thousandSeparator( outstandings.toInvoice ) );
|
|
self.openCosts( dbo.helpers.thousandSeparator( outstandings.openCosts ) );
|
|
self.revenues( dbo.helpers.thousandSeparator( outstandings.revenues ) );
|
|
self.revenueCurrentYear( dbo.helpers.thousandSeparator( revCurYear ) );
|
|
} );
|
|
},
|
|
|
|
getOutstandingTotal: function ( data ) {
|
|
var open = 0;
|
|
var toInvoice = 0;
|
|
var costs = 0;
|
|
var openCosts = 0;
|
|
_.each( data, function ( p ) {
|
|
open += Number( p.invoiced ) - Number( p.payment );
|
|
toInvoice += Number( p.revenues ) - Number( p.invoiced );
|
|
costs += Number( p.costs );
|
|
openCosts += Number( p.costs ) - Number( p.payedcosts )
|
|
} );
|
|
var revenues = (Number( open ) + Number( toInvoice ) - Number( openCosts )) / 1.21;
|
|
return {
|
|
open : open,
|
|
toInvoice: toInvoice,
|
|
costs : costs,
|
|
revenues : Math.round( revenues ),
|
|
openCosts: openCosts
|
|
};
|
|
}
|
|
};
|
|
|
|
dbo.dashboardModel.init();
|
|
|
|
ko.applyBindings( dbo.dashboardModel, document.getElementById( 'DASHBOARD' ) );
|
|
}
|
|
};
|