Files
dbois/public/js/lib/modules/dashboard/dashboardModule.js
T
2020-02-23 16:21:15 +01:00

131 lines
4.6 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 ),
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' ) )
}
}