/** * Created by Pensare Software. * User: Theo Weijmer * Date: 13/04/2018 * Time: 13:31 */ dbo.reservationsInit = function () { if ( dbo.reservationsModel !== undefined ) { dbo.reservationsModel.refreshReservations(); } else { dbo.reservationsModel = { projects : ko.observableArray( [] ), costs : ko.observable(), reservation : ko.observable(), payed : ko.observable(), saldo : ko.observable(), saldoToPay : ko.observable(), otherRevenue : ko.observable(), saldoInvoices: ko.observable(), init: function () { var vm = dbo.reservationsModel; vm.refreshReservations(); }, refreshReservations: function () { var vm = dbo.reservationsModel; dbo.reservationsDataservice.getReservations( function ( data ) { vm.projects.removeAll(); vm.costs( 0 ); vm.reservation( 0 ); vm.payed( 0 ); vm.saldo( 0 ); vm.saldoToPay( 0 ); vm.otherRevenue( 0 ); vm.saldoInvoices( 0 ); _.each( data, function ( p ) { vm.projects.push( new vm.Project( p ) ); } ); vm.costs( dbo.helpers.numberWithPoints( vm.costs() ) ); vm.reservation( dbo.helpers.numberWithPoints( vm.reservation() ) ); vm.payed( dbo.helpers.numberWithPoints( vm.payed() ) ); vm.saldo( dbo.helpers.numberWithPoints( vm.saldo() ) ); vm.saldoToPay( dbo.helpers.numberWithPoints( vm.saldoToPay() ) ); vm.otherRevenue( dbo.helpers.numberWithPoints( vm.otherRevenue() ) ); vm.saldoInvoices( dbo.helpers.numberWithPoints( vm.saldoInvoices() ) ); } ); }, toggleExternals: function () { this.showExternals( !this.showExternals() ); }, Project: function ( data ) { var vm = dbo.reservationsModel; var self = this; self.projectnumber = data.projectnumber; self.costs = dbo.helpers.numberWithPoints( data.costs ); self.reservation = dbo.helpers.numberWithPoints( data.reservation ); self.payed = dbo.helpers.numberWithPoints( data.payed ); self.saldo = dbo.helpers.numberWithPoints( data.saldo ); self.saldoToPay = dbo.helpers.numberWithPoints( data.saldoToPay ); self.otherRevenue = dbo.helpers.numberWithPoints( data.other_revenue ); self.saldoInvoices = dbo.helpers.numberWithPoints( data.other_revenue - data.costs ); self.showExternals = ko.observable( false ); vm.costs( Number( vm.costs() ) + Number( data.costs ) ); vm.reservation( Number( vm.reservation() ) + Number( data.reservation ) ); vm.payed( Number( vm.payed() ) + Number( data.payed ) ); vm.saldo( Number( vm.saldo() ) + Number( data.saldo ) ); vm.saldoToPay( Number( vm.saldoToPay() ) + Number( data.saldoToPay ) ); vm.otherRevenue( Number( vm.otherRevenue() ) + Number( data.other_revenue ) ); vm.saldoInvoices( Number( vm.saldoInvoices() ) + Number( data.other_revenue - data.costs ) ) self.externals = ko.observableArray( [] ); _.each( data.externals, function ( p ) { self.externals.push( new vm.External( p ) ); } ) }, External: function ( data ) { var self = this; self.externalName = data.external; self.costs = dbo.helpers.numberWithPoints( data.costs ); self.reservation = dbo.helpers.numberWithPoints( data.reservation ); self.payed = dbo.helpers.numberWithPoints( data.payed ); self.saldo = dbo.helpers.numberWithPoints( data.saldo ); self.saldoToPay = dbo.helpers.numberWithPoints( data.saldoToPay ); } } dbo.reservationsModel.init(); ko.applyBindings( dbo.reservationsModel, document.getElementById( "RESERVATIONS" ) ); } }