180 lines
6.3 KiB
JavaScript
180 lines
6.3 KiB
JavaScript
/**
|
|
* Created by Pensare Software.
|
|
* User: Theo Weijmer
|
|
* Date: 05/01/2018
|
|
* Time: 15:54
|
|
*/
|
|
|
|
|
|
dbo.employeehoursInit = function () {
|
|
|
|
if ( dbo.employeehoursModel !== undefined ) {
|
|
dbo.employeehoursModel.refreshHours();
|
|
} else {
|
|
dbo.employeehoursModel = {
|
|
|
|
employeehours: ko.observableArray( [] ),
|
|
archive : ko.observable( false ),
|
|
months : ko.observableArray( [] ),
|
|
years : ko.observableArray( [] ),
|
|
hourtypes : ko.observableArray( [] ),
|
|
employees : ko.observableArray( [] ),
|
|
selectedYear : ko.observable(),
|
|
selectedMonth: ko.observable(),
|
|
busy : false,
|
|
|
|
init: function () {
|
|
var vm = dbo.employeehoursModel;
|
|
|
|
vm.createMonths();
|
|
vm.createYears();
|
|
|
|
var d = new Date();
|
|
vm.selectedMonth( d.getMonth() + 1 );
|
|
vm.selectedYear( d.getFullYear() );
|
|
|
|
dbo.employeehoursDataService.getHourtypes( function ( data ) {
|
|
vm.hourtypes( data );
|
|
dbo.userDataService.getAllUsers( 'F', function ( data ) {
|
|
vm.employees( data );
|
|
|
|
vm.refreshEmployeehours();
|
|
} );
|
|
} );
|
|
},
|
|
|
|
newEmployeehour: function () {
|
|
var vm = dbo.employeehoursModel;
|
|
|
|
var employeehour = {
|
|
id : 0,
|
|
employee_id: null,
|
|
hourdate : null,
|
|
hourtype_id: null,
|
|
hours : 0,
|
|
inEdit : true
|
|
};
|
|
|
|
vm.employeehours.push( new vm.Employeehour( employeehour ) );
|
|
},
|
|
|
|
toggleArchive: function () {
|
|
var vm = dbo.employeeemployeehoursModel;
|
|
|
|
vm.archive( !vm.archive() );
|
|
|
|
vm.refreshHours();
|
|
},
|
|
|
|
saveEmployeehours: function () {
|
|
var self = this;
|
|
|
|
if ( !self.employee_id() ) return;
|
|
if ( !self.hourtype_id() ) return;
|
|
if ( !self.hourdate() ) return;
|
|
|
|
var submitDATA = {
|
|
id : self.id,
|
|
employee_id: self.employee_id(),
|
|
hourdate : self.hourdate(),
|
|
hourtype_id: self.hourtype_id(),
|
|
hours : self.hours()
|
|
};
|
|
|
|
dbo.employeehoursDataService.saveEmployeehour( submitDATA, function ( data ) {
|
|
self.id = data.employeehourID;
|
|
} );
|
|
},
|
|
|
|
editEmployeehour: function () {
|
|
this.inEdit( !this.inEdit() );
|
|
},
|
|
|
|
removeEmployeehour: function () {
|
|
var vm = dbo.employeehoursModel;
|
|
var self = this;
|
|
|
|
tellMe( {
|
|
title : 'verwijderen uren',
|
|
message : 'weet u zeker dat u deze uren wilt verwijderen, dit kan niet ongedaan worden gemaakt',
|
|
notify : true,
|
|
noText : 'nee verwijder de uren niet',
|
|
yesText : 'ja verwijder de uren',
|
|
modalClass: 'modal-warning'
|
|
}, function ( response ) {
|
|
if ( response ) {
|
|
dbo.employeehoursDataService.removeEmployeehour( self.id, function ( data ) {
|
|
if ( data.result ) {
|
|
vm.refreshEmployeehours();
|
|
} else {
|
|
tellMe( {
|
|
title : 'fout bij verwijderen uren',
|
|
message : 'de uren konden niet worden verwijderd',
|
|
modalClass: 'modal-danger'
|
|
} );
|
|
}
|
|
} );
|
|
}
|
|
} );
|
|
},
|
|
|
|
createMonths: function () {
|
|
var vm = dbo.employeehoursModel;
|
|
|
|
var months = [
|
|
{id: 1, monthName: 'januari'},
|
|
{id: 2, monthName: 'februari'},
|
|
{id: 3, monthName: 'maart'},
|
|
{id: 4, monthName: 'april'},
|
|
{id: 5, monthName: 'mei'},
|
|
{id: 6, monthName: 'juni'},
|
|
{id: 7, monthName: 'juli'},
|
|
{id: 8, monthName: 'augustus'},
|
|
{id: 9, monthName: 'september'},
|
|
{id: 10, monthName: 'oktober'},
|
|
{id: 11, monthName: 'november'},
|
|
{id: 12, monthName: 'december'},
|
|
]
|
|
|
|
vm.months( months );
|
|
},
|
|
|
|
createYears: function () {
|
|
var vm = dbo.employeehoursModel;
|
|
var years = [{id: 2015}, {id: 2016}, {id: 2017}, {id: 2018}];
|
|
|
|
vm.years( years );
|
|
},
|
|
|
|
refreshEmployeehours: function () {
|
|
var vm = dbo.employeehoursModel;
|
|
|
|
vm.employeehours.removeAll();
|
|
dbo.employeehoursDataService.getEmployeehours( vm.selectedMonth(), vm.selectedYear(), function ( data ) {
|
|
$.each( data, function ( i, p ) {
|
|
vm.employeehours.push( new vm.Employeehour( p ) );
|
|
} );
|
|
} );
|
|
},
|
|
|
|
validateNumber: function ( field ) {
|
|
this[field]( dbo.helpers.validateNumber( this[field](), true ) );
|
|
},
|
|
|
|
Employeehour: function ( data ) {
|
|
var vm = dbo.employeehoursModel;
|
|
|
|
this.id = data.id;
|
|
this.employee_id = ko.observable( data.employee_id );
|
|
this.hourtype_id = ko.observable( data.hourtype_id );
|
|
this.hourdate = ko.observable( data.hourdate );
|
|
this.hours = ko.observable( data.hours );
|
|
this.inEdit = ko.observable( data.inEdit || false );
|
|
}
|
|
};
|
|
|
|
dbo.employeehoursModel.init();
|
|
|
|
ko.applyBindings( dbo.employeehoursModel, document.getElementById( 'EMPLOYEEHOURS' ) );
|
|
}
|
|
} |