Diversen opmerkingen Peter (23-08-2019)

This commit is contained in:
2019-09-12 20:16:57 +02:00
parent f5b815d34d
commit b49fb957a3
17 changed files with 1194 additions and 1094 deletions
+14 -7
View File
@@ -28,12 +28,19 @@ dbo.userDataService = {
} );
},
getUserWithprojects: function ( callback ) {
$.getJSON( 'index.php/beheer/usersController/getUserWithprojects' )
.done( function ( data ) {
callback( data );
} );
},
getUserWithprojects: function ( callback ) {
$.getJSON( 'index.php/beheer/usersController/getUserWithprojects' )
.done( function ( data ) {
callback( data );
} );
},
getUserActiveProjects: function ( userID, callback ) {
$.getJSON( 'index.php/beheer/usersController/getUserActiveProjects/' + userID )
.done( function ( data ) {
callback( data );
} );
},
getUniqueProjectEmployees: function ( callback ) {
$.post( 'index.php/beheer/usersController/getUniqueprojectEmployees', 'json' )
@@ -88,4 +95,4 @@ dbo.userDataService = {
dbo.userDataService.getCurrentUser(function(data){
dbo.currentUser = data;
});
});
@@ -8,237 +8,257 @@
dbo.employeehoursInit = function () {
if ( dbo.employeehoursModel !== undefined ) {
dbo.employeehoursModel.init();
} else {
dbo.employeehoursModel = {
var timeout;
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,
selectedEmployeeID : ko.observable(),
offersWithoutProject: ko.observableArray( [] ),
if ( dbo.employeehoursModel !== undefined ) {
dbo.employeehoursModel.init();
} else {
dbo.employeehoursModel = {
init: function () {
var vm = 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,
selectedEmployeeID : ko.observable(),
offersWithoutProject: ko.observableArray( [] ),
projects : ko.observableArray( [] ),
vm.busy = true;
init: function () {
var vm = dbo.employeehoursModel;
vm.months( dbo.monthArray );
vm.years( dbo.years );
vm.busy = true;
vm.selectedMonth( dbo.currentMonth );
vm.selectedYear( dbo.currentYear );
vm.months( dbo.monthArray );
vm.years( dbo.years );
dbo.employeehoursDataService.getHourtypes( function ( data ) {
vm.hourtypes( data );
dbo.offerDataService.getOffersWithoutProject( function ( data ) {
vm.offersWithoutProject( data );
dbo.userDataService.getUserWithprojects( function ( data ) {
vm.employees.removeAll();
_.each( data, function ( p ) {
vm.employees.push( new vm.Employee( p ) );
} );
vm.selectedEmployeeID( dbo.currentUser.id )
vm.selectedMonth( dbo.currentMonth );
vm.selectedYear( dbo.currentYear );
vm.busy = false;
vm.refreshEmployeehours();
} );
} );
} );
},
vm.selectedEmployeeID( dbo.currentUser.id );
newEmployeehour: function () {
var vm = dbo.employeehoursModel;
dbo.userDataService.getAllUsers( 'F', function ( data ) {
vm.employees( data );
var employeeHour = vm.employeehours()[vm.employeehours().length - 1];
dbo.employeehoursDataService.getHourtypes( function ( data ) {
vm.hourtypes( data );
dbo.offerDataService.getOffersWithoutProject( function ( data ) {
vm.offersWithoutProject( data );
vm.busy = false;
vm.refreshEmployeehours();
} );
} );
} );
},
var employeeID = null;
if ( !vm.selectedEmployeeID ) {
employeeID = employeeHour ? employeeHour.employee_id() : null;
} else {
employeeID = vm.selectedEmployeeID();
}
newEmployeehour: function () {
var vm = dbo.employeehoursModel;
var employeehour = {
id : 0,
employee_id: employeeID,
hourdate : employeeHour ? employeeHour.hourdate() : null,
hourtype_id: employeeHour ? employeeHour.hourtype_id() : 9,
project_id : employeeHour ? employeeHour.projectID() : null,
hours : 0,
inEdit : true
};
var employeeHour = vm.employeehours()[vm.employeehours().length - 1];
vm.employeehours.push( new vm.Employeehour( employeehour ) );
},
var employeeID = null;
if ( !vm.selectedEmployeeID ) {
employeeID = employeeHour ? employeeHour.employee_id() : null;
} else {
employeeID = vm.selectedEmployeeID();
}
toggleArchive: function () {
var vm = dbo.employeeemployeehoursModel;
var employeehour = {
id : 0,
employee_id: employeeID,
hourdate : employeeHour ? employeeHour.hourdate() : null,
hourtype_id: employeeHour ? employeeHour.hourtype_id() : 9,
project_id : employeeHour ? employeeHour.projectID() : null,
hours : 0,
inEdit : true,
dirty : true
};
vm.archive( !vm.archive() );
vm.employeehours.push( new vm.Employeehour( employeehour ) );
},
vm.refreshHours();
},
toggleArchive: function () {
var vm = dbo.employeehoursModel;
saveEmployeehours: function ( self = false ) {
if ( !self ) self = this;
vm.archive( !vm.archive() );
if ( !self.employee_id() ) return;
if ( !self.hourtype_id() ) return;
if ( !self.hourdate() ) return;
if ( self.hourType() == 'PROJECTS' && !self.projectID() ) return;
if ( self.hourType() == 'OFFERS' && !self.projectID() ) return;
vm.refreshHours();
},
var submitDATA = {
id : self.id(),
employee_id: self.employee_id(),
hourdate : self.hourdate(),
hourtype_id: self.hourtype_id(),
hours : self.hours(),
hourType : self.hourType(),
project_id : self.projectID()
};
saveDelayedEmployeehours: function () {
var vm = dbo.employeehoursModel;
var self = this;
self.dirty( true );
if ( timeout ) {
clearTimeout( timeout );
timeout = null;
}
timeout = setTimeout( function () {
vm.saveEmployeehours( self );
}, 300 );
},
dbo.employeehoursDataService.saveEmployeehour( submitDATA, function ( data ) {
self.id( data.employeehourID );
} );
},
saveEmployeehours: function ( self = false ) {
self.dirty( true );
if ( !self ) self = this;
editEmployeehour: function () {
dbo.employeehoursModel.saveEmployeehours( this );
this.inEdit( !this.inEdit() );
},
if ( !self.employee_id() ) return;
if ( !self.hourtype_id() ) return;
if ( !self.hourdate() ) return;
if ( self.hours() <= 0 ) return;
if ( self.hourType() == 'PROJECTS' && !self.projectID() ) return;
if ( self.hourType() == 'OFFERS' && !self.projectID() ) return;
changeEmployee: function () {
var vm = dbo.employeehoursModel;
this.projects( vm.setEmployeeProjects( this ) );
var submitDATA = {
id : self.id(),
employee_id: self.employee_id(),
hourdate : self.hourdate(),
hourtype_id: self.hourtype_id(),
hours : self.hours(),
hourType : self.hourType(),
project_id : self.projectID()
};
this.projectID( null );
dbo.employeehoursDataService.saveEmployeehour( submitDATA, function ( data ) {
self.id( data.employeehourID );
self.dirty( false );
} );
},
vm.saveEmployeehours( this );
},
editEmployeehour: function () {
dbo.employeehoursModel.saveEmployeehours( this );
this.inEdit( !this.inEdit() );
},
removeEmployeehour: function () {
var vm = dbo.employeehoursModel;
var self = this;
changeEmployee: function () {
var vm = dbo.employeehoursModel;
this.projects( vm.setEmployeeProjects( 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(), self.hourType(), function ( data ) {
if ( data.result ) {
vm.refreshEmployeehours();
} else {
tellMe( {
title : 'fout bij verwijderen uren',
message : 'de uren konden niet worden verwijderd',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
this.projectID( null );
refreshEmployeehours: function () {
var vm = dbo.employeehoursModel;
vm.saveEmployeehours( this );
},
if( vm.busy == true ) return;
removeEmployeehour: function () {
var vm = dbo.employeehoursModel;
var self = this;
var employeeID = vm.selectedEmployeeID() || 0;
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(), self.hourType(), function ( data ) {
if ( data.result ) {
vm.refreshEmployeehours();
} else {
tellMe( {
title : 'fout bij verwijderen uren',
message : 'de uren konden niet worden verwijderd',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
vm.employeehours.removeAll();
dbo.employeehoursDataService.getEmployeehours(
vm.selectedMonth(), vm.selectedYear(), employeeID, function ( data ) {
$.each( data, function ( i, p ) {
vm.employeehours.push( new vm.Employeehour( p ) );
} );
} );
},
refreshEmployeehours: function () {
var vm = dbo.employeehoursModel;
validateNumber: function ( field ) {
this[field]( dbo.helpers.validateNumber( this[field](), true ) );
},
if ( vm.busy == true ) return;
Employee: function ( data ) {
var vm = dbo.employeehoursModel;
var self = this;
var employeeID = vm.selectedEmployeeID() || 0;
self.id = data.id;
self.fullname = data.fullname;
vm.employeehours.removeAll();
dbo.employeehoursDataService.getEmployeehours(
vm.selectedMonth(), vm.selectedYear(), employeeID, function ( data ) {
$.each( data, function ( i, p ) {
vm.employeehours.push( new vm.Employeehour( p ) );
} );
} );
},
self.projecten = ko.observableArray( [] );
_.each( data.projectemployees, function ( p ) {
if ( p.project )
self.projecten.push( new vm.Project( p ) );
} );
validateNumber: function ( field ) {
this[field]( dbo.helpers.validateNumber( this[field](), true ) );
},
Employee: function ( data ) {
var vm = dbo.employeehoursModel;
var self = this;
self.id = data.id;
self.fullname = data.fullname;
self.projecten = ko.observableArray( [] );
_.each( data.projectemployees, function ( p ) {
if ( p.project )
self.projecten.push( new vm.Project( p ) );
} );
// _.each( vm.offersWithoutProject(), function ( p ) {
// self.projecten.push( new vm.Offer( p, self.id ) );
// } );
},
},
Project: function ( data ) {
this.projectEmployeeID = data.id;
this.type = 'PROJECT';
this.projectID = data.project.id;
this.project = data.project.projectnumber + ' - ' + data.project.projectname;
},
Project: function ( data ) {
this.projectEmployeeID = data.id;
this.type = 'PROJECT';
this.projectID = data.project.id;
this.project = data.project.projectnumber + ' - ' + data.project.projectname;
this.projectname = data.project.projectnumber + ' - ' + data.project.projectname;
},
Offer: function ( data, employeeID ) {
this.projectemployeeID = employeeID;
this.type = 'OFFER';
this.projectID = data.id;
this.project = data.offernumber + ' - ' + data.offername;
},
Offer: function ( data, employeeID ) {
this.projectemployeeID = employeeID;
this.type = 'OFFER';
this.projectID = data.id;
this.project = data.offernumber + ' - ' + data.offername;
},
Employeehour: function ( data ) {
var vm = dbo.employeehoursModel;
var self = this;
Employeehour: function ( data ) {
var vm = dbo.employeehoursModel;
var self = this;
self.id = ko.observable( data.id );
self.employee_id = ko.observable( data.employee_id );
self.hourtype_id = ko.observable( data.hourtype_id );
self.hourdate = ko.observable( data.hourdate );
self.hours = ko.observable( data.hours );
self.inEdit = ko.observable( data.inEdit || false );
self.projectID = ko.observable( data.project_id );
self.hourType = ko.pureComputed( function () {
return dbo.helpers.findArrayElement( 'id', 'key', this.hourtype_id(), vm.hourtypes() );
}, this );
self.id = ko.observable( data.id );
self.employee_id = ko.observable( data.employee_id );
self.hourtype_id = ko.observable( data.hourtype_id );
self.hourdate = ko.observable( data.hourdate );
self.hours = ko.observable( data.hours );
self.inEdit = ko.observable( data.inEdit || false );
self.projectID = ko.observable( data.project_id );
self.dirty = ko.observable( data.dirty || false );
self.hourType = ko.pureComputed( function () {
return dbo.helpers.findArrayElement( 'id', 'key', this.hourtype_id(), vm.hourtypes() );
}, this );
self.canFillInHours = ko.pureComputed( function () {
if ( self.hourType() == 'PROJECTS' || self.hourType() == 'OFFERS' ) {
if ( !self.projectID() ) {
self.hours( 0 );
}
}
vm.setEmployeeProjects( self );
},
setEmployeeProjects: function ( self ) {
var vm = dbo.employeehoursModel;
return true;
} );
}
};
var employeeProjects =
dbo.helpers.findArrayElement( 'id', 'projecten', self.employee_id(), vm.employees() );
self.projects = ko.observableArray( [] );
_.each( employeeProjects, function ( p ) {
self.projects.push( {
projectID : p.projectID,
projectname: p.project
} );
} );
}
};
dbo.employeehoursModel.init();
dbo.employeehoursModel.init();
ko.applyBindings( dbo.employeehoursModel, document.getElementById( 'EMPLOYEEHOURS' ) );
ko.applyBindings( dbo.employeehoursModel, document.getElementById( 'EMPLOYEEHOURS' ) );
}
dbo.employeehoursModel.selectedEmployeeID.subscribe( function () {
dbo.userDataService.getUserActiveProjects( dbo.currentUser.id, function ( data ) {
dbo.employeehoursModel.projects( data );
} );
} );
}
}
+66 -64
View File
@@ -7,87 +7,89 @@
dbo.offersInit = function () {
var timeout;
var timeout;
if ( dbo.offersModel !== undefined ) {
if ( dbo.offersModel !== undefined ) {
} else {
dbo.offersModel = {
} else {
dbo.offersModel = {
tableName : 'OFFER',
offers : ko.observableArray( [] ),
offer : ko.observable(),
archive : ko.observable( false ),
comments : ko.observableArray( [] ),
documents : ko.observableArray( [] ),
selectedRowID: ko.observable(),
projectID : 0,
search : ko.observable(''),
order : ko.observable('offernumber'),
direction : ko.observable(),
tableName : 'OFFER',
offers : ko.observableArray( [] ),
offer : ko.observable(),
archive : ko.observable( false ),
comments : ko.observableArray( [] ),
documents : ko.observableArray( [] ),
selectedRowID : ko.observable(),
projectID : 0,
search : ko.observable( '' ),
order : ko.observable( 'offernumber' ),
direction : ko.observable(),
totalOwnRevenue : ko.observable( 0 ),
totalChanceOwnRevenue: ko.observable( 0 ),
init: function () {
var service = dbo.offersService;
service.vm = dbo.offersModel;
init: function () {
var service = dbo.offersService;
service.vm = dbo.offersModel;
service.refreshOffers();
},
service.refreshOffers();
},
searchOffers: function () {
var service = dbo.offersService;
if ( timeout ) {
clearTimeout( timeout );
timeout = null;
}
timeout = setTimeout( function () {
service.refreshOffers();
}, 700 );
},
searchOffers: function () {
var service = dbo.offersService;
if ( timeout ) {
clearTimeout( timeout );
timeout = null;
}
timeout = setTimeout( function () {
service.refreshOffers();
}, 700 );
},
directionOrderOffers : function(field){
var service = dbo.offersService;
directionOrderOffers: function ( field ) {
var service = dbo.offersService;
service.directionOrderOffers(field);
},
service.directionOrderOffers( field );
},
newOffer: function () {
var service = dbo.offersService;
service.vm = dbo.offersModel;
newOffer: function () {
var service = dbo.offersService;
service.vm = dbo.offersModel;
service.newOffer();
},
service.newOffer();
},
toggleArchive: function () {
var service = dbo.offersService;
service.vm = dbo.offersModel;
toggleArchive: function () {
var service = dbo.offersService;
service.vm = dbo.offersModel;
service.toggleArchive();
},
service.toggleArchive();
},
editOffer: function () {
var service = dbo.offersService;
service.vm = dbo.offersModel;
editOffer: function () {
var service = dbo.offersService;
service.vm = dbo.offersModel;
service.editOffer( this );
},
service.editOffer( this );
},
archiveOffer: function () {
var service = dbo.offersService;
service.vm = dbo.offersModel;
archiveOffer: function () {
var service = dbo.offersService;
service.vm = dbo.offersModel;
service.archiveOffer( this );
},
service.archiveOffer( this );
},
removeOffer: function () {
var service = dbo.offersService;
service.vm = dbo.offersModel;
removeOffer: function () {
var service = dbo.offersService;
service.vm = dbo.offersModel;
service.removeOffer( this );
}
};
service.removeOffer( this );
}
};
dbo.offersModel.init();
dbo.offersModel.init();
ko.applyBindings( dbo.offersModel, document.getElementById( 'OFFERS' ) );
}
}
ko.applyBindings( dbo.offersModel, document.getElementById( 'OFFERS' ) );
}
}
+175 -159
View File
@@ -7,196 +7,212 @@
dbo.projectsInit = function () {
var timeout;
var timeout;
if ( dbo.projectsModel !== undefined ) {
dbo.projectsModel.refreshProjects();
} else {
dbo.projectsModel = {
if ( dbo.projectsModel !== undefined ) {
dbo.projectsModel.refreshProjects();
} else {
dbo.projectsModel = {
projects : ko.observableArray( [] ),
project : ko.observable(),
archive : ko.observable( false ),
selectedRowID: ko.observable(),
busy : false,
search : ko.observable(),
order : ko.observable( 'projectnumber' ),
direction : ko.observable(),
projects : ko.observableArray( [] ),
project : ko.observable(),
archive : ko.observable( false ),
selectedRowID : ko.observable(),
busy : false,
search : ko.observable(),
order : ko.observable( 'projectnumber' ),
direction : ko.observable(),
totalOwnRevenue : ko.observable( 0 ),
totalOtherrevenue: ko.observable( 0 ),
totalCosts : ko.observable( 0 ),
total : ko.observable( 0 ),
init: function () {
var vm = dbo.projectsModel;
vm.refreshProjects();
},
init: function () {
var vm = dbo.projectsModel;
searchProjects: function () {
var vm = dbo.projectsModel;
if ( timeout ) {
clearTimeout( timeout );
timeout = null;
}
timeout = setTimeout( function () {
vm.refreshProjects();
}, 700 );
},
vm.refreshProjects();
},
directionOrderProjects: function ( field ) {
var vm = dbo.projectsModel;
searchProjects: function () {
var vm = dbo.projectsModel;
if ( timeout ) {
clearTimeout( timeout );
timeout = null;
}
timeout = setTimeout( function () {
vm.refreshProjects();
}, 700 );
},
if ( field == vm.order() ) {
vm.direction( !vm.direction() );
} else {
vm.direction( true );
}
directionOrderProjects: function ( field ) {
var vm = dbo.projectsModel;
vm.order( field );
if ( field == vm.order() ) {
vm.direction( !vm.direction() );
} else {
vm.direction( true );
}
vm.refreshProjects();
},
vm.order( field );
newProject: function () {
var vm = dbo.projectsModel;
dbo.editProjectModal.addProject( function () {
vm.refreshProjects();
} );
},
vm.refreshProjects();
},
toggleArchive: function () {
var vm = dbo.projectsModel;
newProject: function () {
var vm = dbo.projectsModel;
dbo.editProjectModal.addProject( function () {
vm.refreshProjects();
} );
},
vm.archive( !vm.archive() );
toggleArchive: function () {
var vm = dbo.projectsModel;
vm.refreshProjects();
},
vm.archive( !vm.archive() );
editProject: function () {
var project = this;
var vm = dbo.projectsModel;
vm.refreshProjects();
},
dbo.editProjectModal.editProject( project.id, function () {
vm.refreshProjects();
} );
},
editProject: function () {
var project = this;
var vm = dbo.projectsModel;
selectProject: function () {
var vm = dbo.projectsModel;
dbo.editProjectModal.editProject( project.id, function () {
vm.refreshProjects();
} );
},
vm.selectedRowID( this.id );
},
selectProject: function () {
var vm = dbo.projectsModel;
archiveProject: function () {
var vm = dbo.projectsModel;
var self = this;
vm.selectedRowID( this.id );
},
var status = self.archive == 'F' ? 'T' : 'F';
archiveProject: function () {
var vm = dbo.projectsModel;
var self = this;
dbo.projectDataService.archiveProject( self.id, status, function () {
vm.refreshProjects();
} );
},
var status = self.archive == 'F' ? 'T' : 'F';
removeProject: function () {
var vm = dbo.projectsModel;
var self = this;
dbo.projectDataService.archiveProject( self.id, status, function () {
vm.refreshProjects();
} );
},
tellMe( {
title : 'verwijderen projecte',
message : 'weet u zeker dat u de project wilt verwijderen, dit kan niet ongedaan worden gemaakt',
notify : true,
noText : 'nee verwijder de project niet',
yesText : 'ja verwijder de project',
modalClass: 'modal-warning'
}, function ( response ) {
console.log( response );
if ( response ) {
dbo.projectDataService.removeProject( self.id, function ( data ) {
if ( data.result ) {
tellMe( {
title : 'project verwijderd',
message : 'de project is succesvol verwijderd',
modalClass: 'modal-success'
}, function () {
vm.refreshProjects();
} );
} else {
tellMe( {
title : 'fout bij verwijderen project',
message : 'de project kan niet worden verwijderd, verwijder eerst de gerelateerde gegevens (facturen, reserveringen, projectmedewerkers, prognoses) ',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
removeProject: function () {
var vm = dbo.projectsModel;
var self = this;
refreshProjects: function () {
var vm = dbo.projectsModel;
var projectsObject = {
archive : vm.archive() ? 'T' : 'F',
search : vm.search(),
order : vm.order(),
direction: vm.direction() ? 'ASC' : 'DESC'
}
tellMe( {
title : 'verwijderen projecte',
message : 'weet u zeker dat u de project wilt verwijderen, dit kan niet ongedaan worden gemaakt',
notify : true,
noText : 'nee verwijder de project niet',
yesText : 'ja verwijder de project',
modalClass: 'modal-warning'
}, function ( response ) {
console.log( response );
if ( response ) {
dbo.projectDataService.removeProject( self.id, function ( data ) {
if ( data.result ) {
tellMe( {
title : 'project verwijderd',
message : 'de project is succesvol verwijderd',
modalClass: 'modal-success'
}, function () {
vm.refreshProjects();
} );
} else {
tellMe( {
title : 'fout bij verwijderen project',
message : 'de project kan niet worden verwijderd, verwijder eerst de gerelateerde gegevens (facturen, reserveringen, projectmedewerkers, prognoses) ',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
dbo.projectDataService.getAllProjects( projectsObject, function ( data ) {
vm.projects.removeAll();
$.each( data, function ( i, p ) {
vm.projects.push( new vm.Project( p ) );
} )
} );
},
refreshProjects: function () {
var vm = dbo.projectsModel;
var projectsObject = {
archive : vm.archive() ? 'T' : 'F',
search : vm.search(),
order : vm.order(),
direction: vm.direction() ? 'ASC' : 'DESC'
}
Project: function ( data ) {
var vm = dbo.projectsModel;
dbo.projectDataService.getAllProjects( projectsObject, function ( data ) {
vm.totalOwnRevenue(0);
vm.totalOtherrevenue(0);
vm.totalCosts(0);
vm.total(0);
vm.projects.removeAll();
$.each( data, function ( i, p ) {
vm.projects.push( new vm.Project( p ) );
} )
} );
},
var self = this;
self.id = data.id;
self.projectnumber = data.projectnumber;
self.projectleader = data.projectleader ? data.projectleader.fullname : '#NB';
self.projectname = data.projectname;
self.customer = data.customer ? data.customer.name : '#NB';
self.startdate = data.startdate;
self.enddate = data.enddate;
self.archive = data.archive;
Project: function ( data ) {
var vm = dbo.projectsModel;
self.totalOwnrevenue = Number( data.offer.own_revenue );
self.totalOtherrevenue = Number( data.offer.other_revenue );
self.costs = Number( data.offer.costs );
self.total = Number( data.offer.own_revenue ) + Number( data.offer.other_revenue ) + Number( data.offer.costs );
},
var self = this;
self.id = data.id;
self.projectnumber = data.projectnumber;
self.projectleader = data.projectleader ? data.projectleader.fullname : '#NB';
self.projectname = data.projectname;
self.customer = data.customer ? data.customer.name : '#NB';
self.startdate = data.startdate;
self.enddate = data.enddate;
self.archive = data.archive;
Revenue: function ( data ) {
var vm = dbo.projectsModel;
var self = this;
self.totalOwnrevenue = Number( data.offer.own_revenue );
self.totalOtherrevenue = Number( data.offer.other_revenue );
self.costs = Number( data.offer.costs );
self.total = Number( data.offer.own_revenue ) + Number( data.offer.other_revenue ) + Number( data.offer.costs );
self.id = data.id;
self.offernumber = data.offernumber;
self.startdate = dbo.helpers.mysql2date( self.startdate );
self.accepteddate = dbo.helpers.mysql2date( self.accepteddate );
self.rejectdate = dbo.helpers.mysql2date( self.rejectdate );
self.own_revenue = data.own_revenue;
self.other_revenue = data.other_revenue;
self.acceptance_chance = data.acceptance_chance;
vm.totalOwnRevenue( vm.totalOwnRevenue() + self.totalOwnrevenue )
vm.totalOtherrevenue( vm.totalOtherrevenue() + self.totalOtherrevenue )
vm.totalCosts( vm.totalCosts() + self.costs )
vm.total( Math.round(vm.total() + self.total) )
self.payed = 0;
self.payments = ko.observableArray( [] );
$.each( data.payments, function ( i, p ) {
self.payed = +p.paymentamount;
self.payments.push( new vm.Payment( p ) );
} );
},
},
Payment: function ( data ) {
self.id = data.id;
self.paymentdate = dbo.helpers.mysql2date( self.paymentdate );
self.paymentamount = data.paymentamount;
}
};
Revenue: function ( data ) {
var vm = dbo.projectsModel;
var self = this;
dbo.projectsModel.init();
self.id = data.id;
self.offernumber = data.offernumber;
self.startdate = dbo.helpers.mysql2date( self.startdate );
self.accepteddate = dbo.helpers.mysql2date( self.accepteddate );
self.rejectdate = dbo.helpers.mysql2date( self.rejectdate );
self.own_revenue = data.own_revenue;
self.other_revenue = data.other_revenue;
self.acceptance_chance = data.acceptance_chance;
ko.applyBindings( dbo.projectsModel, document.getElementById( 'PROJECTS' ) );
}
}
self.payed = 0;
self.payments = ko.observableArray( [] );
$.each( data.payments, function ( i, p ) {
self.payed = +p.paymentamount;
self.payments.push( new vm.Payment( p ) );
} );
},
Payment: function ( data ) {
self.id = data.id;
self.paymentdate = dbo.helpers.mysql2date( self.paymentdate );
self.paymentamount = data.paymentamount;
}
};
dbo.projectsModel.init();
ko.applyBindings( dbo.projectsModel, document.getElementById( 'PROJECTS' ) );
}
}
+113 -105
View File
@@ -8,128 +8,136 @@
dbo.offersService = {
vm: null,
vm: null,
newOffer: function (projectID=false, customerID=false) {
var service = dbo.offersService;
newOffer: function ( projectID = false, customerID = false ) {
var service = dbo.offersService;
dbo.editOfferModal.newEditOffer( false, projectID, customerID, true, function () {
service.refreshOffers();
} );
},
dbo.editOfferModal.newEditOffer( false, projectID, customerID, true, function () {
service.refreshOffers();
} );
},
toggleArchive: function () {
var service = dbo.offersService;
var vm = dbo.offersService.vm;
toggleArchive: function () {
var service = dbo.offersService;
var vm = dbo.offersService.vm;
vm.archive( !vm.archive() );
vm.archive( !vm.archive() );
service.refreshOffers();
},
service.refreshOffers();
},
editOffer: function ( that, projectID=false, custormerID=false, hasProject=false ) {
var offer = that;
editOffer: function ( that, projectID = false, custormerID = false, hasProject = false ) {
var offer = that;
dbo.editOfferModal.newEditOffer( offer, projectID, custormerID, hasProject, function () {
dbo.offersService.refreshOffers();
} );
},
dbo.editOfferModal.newEditOffer( offer, projectID, custormerID, hasProject, function () {
dbo.offersService.refreshOffers();
} );
},
archiveOffer: function ( that ) {
var service = dbo.offersService;
archiveOffer: function ( that ) {
var service = dbo.offersService;
var status = that.archive == 'F' ? 'T' : 'F';
var status = that.archive == 'F' ? 'T' : 'F';
dbo.offerDataService.archiveOffer( that.id, status, function () {
service.refreshOffers();
} );
},
dbo.offerDataService.archiveOffer( that.id, status, function () {
service.refreshOffers();
} );
},
removeOffer: function ( that ) {
var service = dbo.offersService;
removeOffer: function ( that ) {
var service = dbo.offersService;
tellMe( {
title : 'verwijderen offerte',
message : 'weet u zeker dat u de offerte wilt verwijderen, dit kan niet ongedaan worden gemaakt',
notify : true,
noText : 'nee verwijder de offerte niet',
yesText : 'ja verwijder de offerte',
modalClass: 'modal-warning'
}, function ( response ) {
if ( response ) {
dbo.offerDataService.removeOffer( that.id, function ( data ) {
if ( data.result ) {
tellMe( {
title : 'offerte verwijderd',
message : 'de offerte is succesvol verwijderd',
modalClass: 'modal-success'
}, function () {
service.refreshOffers();
} );
} else {
tellMe( {
title : 'fout bij verwijderen offerte',
message : 'de offerte kan niet worden verwijderd, verwijder eerst het gerelateerde project',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
tellMe( {
title : 'verwijderen offerte',
message : 'weet u zeker dat u de offerte wilt verwijderen, dit kan niet ongedaan worden gemaakt',
notify : true,
noText : 'nee verwijder de offerte niet',
yesText : 'ja verwijder de offerte',
modalClass: 'modal-warning'
}, function ( response ) {
if ( response ) {
dbo.offerDataService.removeOffer( that.id, function ( data ) {
if ( data.result ) {
tellMe( {
title : 'offerte verwijderd',
message : 'de offerte is succesvol verwijderd',
modalClass: 'modal-success'
}, function () {
service.refreshOffers();
} );
} else {
tellMe( {
title : 'fout bij verwijderen offerte',
message : 'de offerte kan niet worden verwijderd, verwijder eerst het gerelateerde project',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
directionOrderOffers: function ( field ) {
var vm = dbo.offersModel;
var self = dbo.offersService;
directionOrderOffers: function ( field ) {
var vm = dbo.offersModel;
var self = dbo.offersService;
if ( field == vm.order() ) {
vm.direction( !vm.direction() );
} else {
vm.direction( true );
}
if ( field == vm.order() ) {
vm.direction( !vm.direction() );
} else {
vm.direction( true );
}
vm.order( field );
vm.order( field );
self.refreshOffers();
},
self.refreshOffers();
},
refreshOffers: function () {
var vm = dbo.offersService.vm;
var self = dbo.offersService;
refreshOffers: function () {
var vm = dbo.offersService.vm;
var self = dbo.offersService;
var offersObject = {
projectID: vm.projectID,
archive : vm.archive() ? 'T' : 'F',
search : vm.search(),
order : vm.order(),
direction: vm.direction() ? 'ASC' : 'DESC'
}
var offersObject = {
projectID: vm.projectID,
archive : vm.archive() ? 'T' : 'F',
search : vm.search(),
order : vm.order(),
direction: vm.direction() ? 'ASC' : 'DESC'
}
dbo.offerDataService.getAllOffers( offersObject, function ( data ) {
vm.offers.removeAll();
$.each( data, function ( i, p ) {
vm.offers.push( new self.Offer( p ) );
} );
} );
},
dbo.offerDataService.getAllOffers( offersObject, function ( data ) {
vm.offers.removeAll();
$.each( data, function ( i, p ) {
vm.totalOwnRevenue( 0 );
vm.totalChanceOwnRevenue( 0 );
vm.offers.push( new self.Offer( p ) );
} );
} );
},
Offer: function ( data ) {
this.id = data.id;
this.offernumber = data.offernumber;
this.offername = data.offername;
this.offerleader_id = data.offerleader_id;
this.project_id = data.project_id;
this.acceptance_chance = data.acceptance_chance;
this.projectNumber = data.project ? data.project.projectnumber : null;
this.customerName = data.customer ? data.customer.name : null;
this.customer_id = data.customer_id;
this.startdate = data.startdate ? dbo.helpers.mysql2date( data.startdate ) : null;
this.rejectdate = data.rejectdate ? dbo.helpers.mysql2date( data.rejectdate ) : null;
this.accepteddate = data.accepteddate ? dbo.helpers.mysql2date( data.accepteddate ) : null;
this.acceptance_chance = data.acceptance_chance ? data.acceptance_chance : 0;
this.own_revenue = data.own_revenue;
this.other_revenue = data.other_revenue;
this.costs = data.costs;
this.archive = data.archive;
}
};
Offer: function ( data ) {
var vm = dbo.offersModel;
this.id = data.id;
this.offernumber = data.offernumber;
this.offername = data.offername;
this.offerleader_id = data.offerleader_id;
this.project_id = data.project_id;
this.acceptance_chance = data.acceptance_chance;
this.projectNumber = data.project ? data.project.projectnumber : null;
this.customerName = data.customer ? data.customer.name : null;
this.customer_id = data.customer_id;
this.startdate = data.startdate ? dbo.helpers.mysql2date( data.startdate ) : null;
this.rejectdate = data.rejectdate ? dbo.helpers.mysql2date( data.rejectdate ) : null;
this.accepteddate = data.accepteddate ? dbo.helpers.mysql2date( data.accepteddate ) : null;
this.acceptance_chance = data.acceptance_chance ? data.acceptance_chance : 0;
this.other_revenue = data.other_revenue;
this.own_revenue = data.own_revenue;
this.chanceOwnRevenue = Math.round( (Number( data.own_revenue ) * data.acceptance_chance) / 100 );
this.costs = data.costs;
this.archive = data.archive;
vm.totalOwnRevenue( Number( vm.totalOwnRevenue() ) + Number( this.own_revenue ) );
vm.totalChanceOwnRevenue( Number( vm.totalChanceOwnRevenue() ) + Number( this.chanceOwnRevenue ) );
}
};