/** * 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' ) ); } };