/** * Created by Pensare Software. * User: Theo Weijmer * Date: 08/02/2018 * Time: 15:32 */ dbo.monthlyemployeehoursInit = function () { if ( dbo.monthlyEmployeeHoursModel !== undefined ) { dbo.monthlyEmployeeHoursModel.initModule(); } else { dbo.monthlyEmployeeHoursModel = { uniqueEmployees: ko.observableArray( [] ), sluggy : ko.observable( 'euro' ), years : ko.observableArray( [] ), selectedYear : ko.observable(), currentTab : false, init: function () { var vm = dbo.monthlyEmployeeHoursModel; dbo.reportsDataService.getUsedYears( function ( data ) { vm.years.removeAll(); $.each( data, function ( i, p ) { vm.years.push( {id: p.year, year: p.year} ); } ); vm.selectedYear( (new Date()).getFullYear() ); } ); vm.initModule(); }, initModule: function () { var vm = dbo.monthlyEmployeeHoursModel; dbo.userDataService.getUniqueProjectEmployees( function ( data ) { vm.uniqueEmployees.removeAll(); $.each( data, function ( i, p ) { vm.uniqueEmployees.push( new vm.UniqueEmployee( p ) ) } ); } ); }, refreshTab: function () { var vm = dbo.monthlyEmployeeHoursModel; if ( vm.currentTab == false ) return; console.log( vm.currentTab ); dbo.reportsDataService.getEmployeeHours( vm.currentTab.id, vm.selectedYear(), function ( data ) { vm.currentTab.myData( data ); vm.currentTab.totalJanuari( 0 ); vm.currentTab.totalFebruari( 0 ); vm.currentTab.totalMaart( 0 ); vm.currentTab.totalApril( 0 ); vm.currentTab.totalMei( 0 ); vm.currentTab.totalJuni( 0 ); vm.currentTab.totalJuli( 0 ); vm.currentTab.totalAugustus( 0 ); vm.currentTab.totalSeptember( 0 ); vm.currentTab.totalOktober( 0 ); vm.currentTab.totalNovember( 0 ); vm.currentTab.totalDecember( 0 ); vm.currentTab.totalTotal( 0 ); vm.currentTab.totalTotalOtheryears( 0 ); vm.currentTab.totalJanuariRevenue( 0 ); vm.currentTab.totalFebruariRevenue( 0 ); vm.currentTab.totalMaartRevenue( 0 ); vm.currentTab.totalAprilRevenue( 0 ); vm.currentTab.totalMeiRevenue( 0 ); vm.currentTab.totalJuniRevenue( 0 ); vm.currentTab.totalJuliRevenue( 0 ); vm.currentTab.totalAugustusRevenue( 0 ); vm.currentTab.totalSeptemberRevenue( 0 ); vm.currentTab.totalOktoberRevenue( 0 ); vm.currentTab.totalNovemberRevenue( 0 ); vm.currentTab.totalDecemberRevenue( 0 ); vm.currentTab.totalTotalRevenue( 0 ); vm.currentTab.totalTotalOtheryearsRevenue( 0 ); vm.currentTab.totalHoursChart = []; vm.currentTab.totalHoursRevenueChart = []; vm.currentTab.projectChart = []; $.each( vm.currentTab.myData(), function ( i, q ) { vm.currentTab.tarif( q.tarif ); vm.currentTab.totalJanuari( vm.currentTab.totalJanuari() + q.januari ); vm.currentTab.totalFebruari( vm.currentTab.totalFebruari() + q.februari ); vm.currentTab.totalMaart( vm.currentTab.totalMaart() + q.maart ); vm.currentTab.totalApril( vm.currentTab.totalApril() + q.april ); vm.currentTab.totalMei( vm.currentTab.totalMei() + q.mei ); vm.currentTab.totalJuni( vm.currentTab.totalJuni() + q.juni ); vm.currentTab.totalJuli( vm.currentTab.totalJuli() + q.juli ); vm.currentTab.totalAugustus( vm.currentTab.totalAugustus() + q.augustus ); vm.currentTab.totalSeptember( vm.currentTab.totalSeptember() + q.september ); vm.currentTab.totalOktober( vm.currentTab.totalOktober() + q.oktober ); vm.currentTab.totalNovember( vm.currentTab.totalNovember() + q.november ); vm.currentTab.totalDecember( vm.currentTab.totalDecember() + q.december ); vm.currentTab.totalTotal( vm.currentTab.totalTotal() + q.totalyear ); vm.currentTab.totalTotalOtheryears( vm.currentTab.totalTotalOtheryears() + q.totalotheryears ); vm.currentTab.totalJanuariRevenue( vm.currentTab.totalJanuariRevenue() + q.januariRevenue ); vm.currentTab.totalFebruariRevenue( vm.currentTab.totalFebruariRevenue() + q.februariRevenue ); vm.currentTab.totalMaartRevenue( vm.currentTab.totalMaartRevenue() + q.maartRevenue ); vm.currentTab.totalAprilRevenue( vm.currentTab.totalAprilRevenue() + q.aprilRevenue ); vm.currentTab.totalMeiRevenue( vm.currentTab.totalMeiRevenue() + q.meiRevenue ); vm.currentTab.totalJuniRevenue( vm.currentTab.totalJuniRevenue() + q.juniRevenue ); vm.currentTab.totalJuliRevenue( vm.currentTab.totalJuliRevenue() + q.juliRevenue ); vm.currentTab.totalAugustusRevenue( vm.currentTab.totalAugustusRevenue() + q.augustusRevenue ); vm.currentTab.totalSeptemberRevenue( vm.currentTab.totalSeptemberRevenue() + q.septemberRevenue ); vm.currentTab.totalOktoberRevenue( vm.currentTab.totalOktoberRevenue() + q.oktoberRevenue ); vm.currentTab.totalNovemberRevenue( vm.currentTab.totalNovemberRevenue() + q.novemberRevenue ); vm.currentTab.totalDecemberRevenue( vm.currentTab.totalDecemberRevenue() + q.decemberRevenue ); vm.currentTab.totalTotalRevenue( vm.currentTab.totalTotalRevenue() + q.totalyearRevenue ); vm.currentTab.totalTotalOtheryearsRevenue( vm.currentTab.totalTotalOtheryearsRevenue() + q.totalotheryearsRevenue ); vm.currentTab.projectChart.push( q.projectname ); vm.currentTab.totalHoursChart.push( q.totalhours ); vm.currentTab.totalHoursRevenueChart.push( q.totalhoursRevenue ); } ); vm.currentTab.chartData = [vm.currentTab.totalJanuari(), vm.currentTab.totalFebruari(), vm.currentTab.totalMaart(), vm.currentTab.totalApril(), vm.currentTab.totalMei(), vm.currentTab.totalJuni(), vm.currentTab.totalJuli(), vm.currentTab.totalAugustus(), vm.currentTab.totalSeptember(), vm.currentTab.totalOktober(), vm.currentTab.totalNovember(), vm.currentTab.totalDecember()]; vm.currentTab.chartRevenueData = [vm.currentTab.totalJanuariRevenue(), vm.currentTab.totalFebruariRevenue(), vm.currentTab.totalMaartRevenue(), vm.currentTab.totalAprilRevenue(), vm.currentTab.totalMeiRevenue(), vm.currentTab.totalJuniRevenue(), vm.currentTab.totalJuliRevenue(), vm.currentTab.totalAugustusRevenue(), vm.currentTab.totalSeptemberRevenue(), vm.currentTab.totalOktoberRevenue(), vm.currentTab.totalNovemberRevenue(), vm.currentTab.totalDecemberRevenue()]; vm.drawCharts( vm.currentTab ); } ); }, drawCharts: function ( self ) { if ( self.hourView() ) { dbo.charts.drawHoursChart( 'hours-per-month-' + self.slug, self.chartData, dbo.charts.monthLabels, 'uren per maand', '#f28f25' ); dbo.charts.drawHoursChart( 'hours-per-project-' + self.slug, self.totalHoursChart, self.projectChart, 'uren per project', '#0daef0' ); } else { dbo.charts.drawHoursChart( 'revenue-per-month-' + self.slug, self.chartRevenueData, dbo.charts.monthLabels, 'omzet per maand', '#f28f25' ); dbo.charts.drawHoursChart( 'revenue-per-project-' + self.slug, self.totalHoursRevenueChart, self.projectChart, 'omzet per project', '#0daef0' ); } }, toggleHourView: function () { this.hourView( !this.hourView() ); dbo.monthlyEmployeeHoursModel.drawCharts( this ); }, setActivetab: function ( tab ) { var vm = dbo.monthlyEmployeeHoursModel; $.each( vm.uniqueEmployees(), function ( i, p ) { if ( tab == p.slug ) { vm.currentTab = p; vm.refreshTab(); } } ) vm.sluggy( tab ); }, UniqueEmployee: function ( data ) { var vm = dbo.monthlyEmployeeHoursModel; var self = this; self.id = data.id; self.fullname = data.fullname; self.slug = data.slug; self.tarif = ko.observable( 0 ); self.totalJanuari = ko.observable( 0 ); self.totalFebruari = ko.observable( 0 ); self.totalMaart = ko.observable( 0 ); self.totalApril = ko.observable( 0 ); self.totalMei = ko.observable( 0 ); self.totalJuni = ko.observable( 0 ); self.totalJuli = ko.observable( 0 ); self.totalAugustus = ko.observable( 0 ); self.totalSeptember = ko.observable( 0 ); self.totalOktober = ko.observable( 0 ); self.totalNovember = ko.observable( 0 ); self.totalDecember = ko.observable( 0 ); self.totalTotal = ko.observable( 0 ); self.totalOtheryears = ko.observable( 0 ); self.totalTotalOtheryears = ko.observable( 0 ); self.totalJanuariRevenue = ko.observable( 0 ); self.totalFebruariRevenue = ko.observable( 0 ); self.totalMaartRevenue = ko.observable( 0 ); self.totalAprilRevenue = ko.observable( 0 ); self.totalMeiRevenue = ko.observable( 0 ); self.totalJuniRevenue = ko.observable( 0 ); self.totalJuliRevenue = ko.observable( 0 ); self.totalAugustusRevenue = ko.observable( 0 ); self.totalSeptemberRevenue = ko.observable( 0 ); self.totalOktoberRevenue = ko.observable( 0 ); self.totalNovemberRevenue = ko.observable( 0 ); self.totalDecemberRevenue = ko.observable( 0 ); self.totalTotalRevenue = ko.observable( 0 ); self.totalOtheryearsRevenue = ko.observable( 0 ); self.totalTotalOtheryearsRevenue = ko.observable( 0 ); self.hourView = ko.observable( true ); self.myData = ko.observableArray( [] ); }, Detail: function ( data ) { this.test = data; } }; dbo.monthlyEmployeeHoursModel.init(); ko.applyBindings( dbo.monthlyEmployeeHoursModel, document.getElementById( "MONTHLYEMPLOYEEHOURS" ) ); } }