/** * 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 ), payments : ko.observable( null ), revenues : ko.observable( null ), revenueCurrentYear : ko.observable( null ), revenuesThisYear : ko.observable( null ), billingOverview : ko.observableArray( [] ), showInvoiceOverview: ko.observable( false ), openInvoices : ko.observable( null ), invoiced : ko.observable( null ), minimumRevenues : ko.observable( null ), totalChance : ko.observable( null ), toolTip1 : ko.observable( false ), toolTip2 : ko.observable( false ), toolTip3 : ko.observable( false ), 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.minimumRevenues( dbo.helpers.thousandSeparator( data.currentFinancialYear + data.revenuesThisYear ) ) self.invoiced( dbo.helpers.thousandSeparator( data.invoiced ) ) self.openInvoices( dbo.helpers.thousandSeparator( outstandings.openInvoices ) ) self.toInvoice( dbo.helpers.thousandSeparator( outstandings.toInvoice ) ) self.totalChance( dbo.helpers.thousandSeparator( data.totalChance ) ) self.payments(dbo.helpers.thousandSeparator(data.totalPayment)) self.revenueCurrentYear( dbo.helpers.thousandSeparator( revCurYear ) ) self.revenuesThisYear( dbo.helpers.thousandSeparator( data.revenuesThisYear ) ) dbo.reservationsDataservice.getReservations( function ( data ) { var openCosts = 0 $.each( data, function ( i, p ) { openCosts += Number( p.other_revenue ) - Number( p.payed ) } ) self.openCosts( dbo.helpers.thousandSeparator( openCosts ) ) var revenues = outstandings.openInvoices + outstandings.toInvoice + openCosts revenues = Math.round( revenues / 1.21 ) self.revenues( dbo.helpers.thousandSeparator( revenues ) ) } ) } ) }, getOutstandingTotal: function ( data ) { var self = dbo.dashboardModel var openInvoices = 0 var toInvoice = 0 var costs = 0 var openCosts = 0 _.each( data, function ( p ) { openInvoices += Number( p.invoiceToPay.replace( '.', '' ) ) toInvoice += Number( p.needInvoice.replace( '.', '' ) ) } ) var revenues = (Number( open ) + Number( toInvoice ) - Number( openCosts )) / 1.21 return { openInvoices: openInvoices, toInvoice : toInvoice, costs : costs, revenues : Math.round( revenues ), openCosts : openCosts } }, invoiceOverview : function () { var self = dbo.dashboardModel self.showInvoiceOverview( !self.showInvoiceOverview() ) }, Billing : function ( data ) { self.project = data.projectnumber + ' ' + data.projectname self.invoiced = dbo.helpers.thousandSeparator( data.invoiced ) self.payedcosts = dbo.helpers.thousandSeparator( data.payedcosts ) self.openCosts = dbo.helpers.thousandSeparator( Number( data.invoiced ) - Number( data.payedcosts ) ) self.archive = data.archive }, hideConceals: function () { $( '.conceal-panel' ).hide( 'slow' ); }, showConceals: function () { $( '.conceal-panel' ).show( 'slow' ); }, enableDetails: function ( toolTip ) { var self = dbo.dashboardModel self[toolTip]( true ) }, disableDetails: function ( toolTip ) { var self = dbo.dashboardModel self[toolTip]( false ) } } dbo.dashboardModel.init() ko.applyBindings( dbo.dashboardModel, document.getElementById( 'DASHBOARD' ) ) } }