projecten

This commit is contained in:
2018-01-18 08:45:09 +01:00
parent 00246f49f7
commit 970aa53971
25 changed files with 689 additions and 285 deletions
@@ -7,7 +7,7 @@
dbo.offerDataService = {
getAllOffers: function ( archive = 'F', callback ) {
getAllOffers: function ( projectID, archive = 'F', callback ) {
$.getJSON( 'index.php/projects/offersController/getAllOffers/' + archive )
.done( function ( data ) {
callback( data );
@@ -14,13 +14,31 @@ dbo.projectDataService = {
} );
},
getProject: function ( userID, callback ) {
$.getJSON( 'index.php/projects/projectsController/getProject/' + userID )
getProject: function ( projectID, callback ) {
$.getJSON( 'index.php/projects/projectsController/getProject/' + projectID )
.done( function ( data ) {
callback( data );
} );
},
addProject: function ( callback ) {
$.getJSON( 'index.php/projects/projectsController/addProject', function ( data ) {
callback( data );
} );
},
addProject: function ( callback ) {
$.getJSON( 'index.php/projects/projectsController/addProject', function ( data ) {
callback( data );
} );
},
addProjectEmployee: function ( projectID, callback ) {
$.getJSON( 'index.php/projects/projectsController/addProjectemployee/' + projectID, function ( data ) {
callback( data );
} );
},
saveProject: function ( submitDATA, callback ) {
$.post( 'index.php/projects/projectsController/saveProject', submitDATA, function () {
}, 'json' )
+102
View File
@@ -0,0 +1,102 @@
/**
* Created by Pensare Software.
* Offer: Theo Weijmer
* Date: 25/12/2017
* Time: 17:32
*/
$( function () {
dbo.editProjectModal = {
offers : ko.observableArray( [] ),
projectEmployees: ko.observableArray( [] ),
customers : ko.observableArray( [] ),
showProject : ko.observable( false ),
projectID : null,
callback : null,
customerID : ko.observable( null ),
archive : ko.observable( false ),
startdate : ko.observable( null ),
enddate : ko.observable( null ),
init: function () {
var vm = dbo.editProjectModal;
vm.refreshProject();
dbo.customerDataService.getAllCustomers( 'F', function ( data ) {
vm.customers( data );
} );
},
addProject: function ( callback ) {
var vm = dbo.editProjectModal;
vm.callback = callback;
dbo.projectDataService.addProject( function ( data ) {
vm.projectID = data;
vm.showProject( true );
vm.init();
} );
},
addProjectEmployee: function () {
var vm = dbo.editProjectModal;
dbo.projectDataService.addProjectemployee( function ( projectID ) {
vm.projectID = projectID;
vm.refreshProject();
} );
},
saveCustomerID: function () {
},
closeProject: function () {
var vm = dbo.editProjectModal;
vm.showProject( false );
},
refreshProject: function () {
var vm = dbo.editProjectModal;
dbo.projectDataService.getProject( vm.projectID, function ( data ) {
vm.Project( data );
} );
},
Project: function ( data ) {
var vm = dbo.editProjectModal;
var self = this;
vm.id = data.id;
vm.customerID( data.customer_id );
vm.startdate( data.startdate );
vm.enddate( data.enddate );
self.projectEmployees = ko.observableArray( [] );
$.each( data.employees, function ( i, p ) {
self.projectEmployees.push( new vm.Projectemployee( p ) );
} );
},
Projectemployee: function ( data ) {
var self = this;
self.id = data.id;
self.employee_id = data.employee_id;
self.fullname = data.user ? data.user.fullname : '#NB';
self.tarif = data.tarif;
self.budget = data.budget;
self.startdate = dbo.helpers.mysql2date( data.startdate );
self.enddate = dbo.helpers.mysql2date( data.enddate );
}
};
ko.applyBindings( dbo.editProjectModal, document.getElementById( 'project-modal' ) );
} );
@@ -1,28 +0,0 @@
/**
* Created by Pensare Software.
* Offer: Theo Weijmer
* Date: 25/12/2017
* Time: 17:32
*/
$( function () {
dbo.editProjectModal = {
showProject: ko.observable( false ),
newEditProject: function () {
var vm = dbo.editProjectModal;
vm.showProject( true );
},
closeProject: function(){
var vm = dbo.editProjectModal;
vm.showProject( false );
}
};
ko.applyBindings( dbo.editProjectModal, document.getElementById( 'project-modal' ) );
} );
+19 -191
View File
@@ -22,218 +22,46 @@ dbo.offersInit = function () {
selectedRowID: ko.observable(),
init: function () {
var vm = dbo.offersModel;
var service = dbo.offersService;
service.vm = dbo.offersModel;
vm.refreshOffers();
service.refreshOffers();
},
newOffer: function () {
var vm = dbo.offersModel;
dbo.editOfferModal.newEditOffer( false, function () {
vm.refreshOffers();
} );
var service = dbo.offersService;
service.vm = dbo.offersModel;
service.newOffer();
},
toggleArchive: function () {
var vm = dbo.offersModel;
var service = dbo.offersService;
service.vm = dbo.offersModel;
vm.archive( !vm.archive() );
vm.refreshOffers();
service.toggleArchive();
},
editOffer: function () {
var offer = this;
var vm = dbo.offersModel;
var service = dbo.offersService;
service.vm = dbo.offersModel;
dbo.editOfferModal.newEditOffer( offer, function () {
vm.refreshOffers();
} );
},
selectOffer: function () {
var vm = dbo.offersModel;
vm.selectedRowID( this.id );
vm.refreshComments();
vm.refreshDocuments();
},
addDocument: function ( data, evt ) {
var vm = dbo.offersModel;
uploadFile( evt.target.files[0], vm.selectedRowID(), vm.tableName, function () {
vm.refreshDocuments();
} );
},
addComment: function () {
var vm = dbo.offersModel;
dbo.commentsDataService.addComment( vm.selectedRowID(), vm.tableName, function ( commentID ) {
dbo.commentModel.showComment( commentID, function () {
vm.refreshComments();
} )
} );
},
editComment: function () {
var vm = dbo.offersModel;
dbo.commentModel.showComment( this.id, function () {
vm.refreshComments();
} );
},
downloadDocument: function () {
window.open( 'index.php/projects/documentscontroller/downloaddocument/' + this.id );
service.editOffer();
},
archiveOffer: function () {
var vm = dbo.offersModel;
var self = this;
var service = dbo.offersService;
service.vm = dbo.offersModel;
var status = self.archive == 'F' ? 'T' : 'F';
dbo.offerDataService.archiveOffer( self.id, status, function () {
vm.refreshOffers();
} );
service.archiveOffer( this );
},
removeOffer: function () {
var vm = dbo.offersModel;
var self = this;
var service = dbo.offersService;
service.vm = dbo.offersModel;
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 ) {
console.log( response );
if ( response ) {
dbo.offerDataService.removeOffer( self.id, function ( data ) {
if ( data.result ) {
tellMe( {
title : 'offerte verwijderd',
message : 'de offerte is succesvol verwijderd',
modalClass: 'modal-success'
}, function () {
vm.refreshOffers();
} );
} else {
tellMe( {
title : 'fout bij verwijderen offerte',
message : 'de offerte kan niet worden verwijderd',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
removeFile: function () {
var vm = dbo.offersModel;
var self = this;
tellMe( {
title : 'verwijderen document',
message : 'weet u zeker dat u hjet document wilt verwijderen, dit kan niet ongedaan worden gemaakt',
notify : true,
noText : 'nee verwijder het document niet',
yesText : 'ja verwijder het document',
modalClass: 'modal-warning'
}, function ( response ) {
console.log( response );
if ( response ) {
dbo.documentsDataService.removeDocument( self.id, function ( data ) {
if ( data.result ) {
tellMe( {
title : 'document verwijderd',
message : 'het document is succesvol verwijderd',
modalClass: 'modal-success'
}, function () {
vm.refreshDocuments();
} );
} else {
tellMe( {
title : 'fout bij verwijderen document',
message : 'het document kan niet worden verwijderd',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
refreshOffers: function () {
var vm = dbo.offersModel;
dbo.offerDataService.getAllOffers( vm.archive() ? 'T' : 'F', function ( data ) {
vm.offers.removeAll();
$.each( data, function ( i, p ) {
vm.offers.push( new vm.Offer( p ) );
} )
} );
},
refreshComments: function () {
var vm = dbo.offersModel;
dbo.commentsDataService.getComments( vm.selectedRowID(), vm.tableName, function ( data ) {
vm.comments.removeAll();
console.log( data );
$.each( data, function ( i, p ) {
vm.comments.push( new vm.Comment( p ) );
} );
} );
},
refreshDocuments: function () {
var vm = dbo.offersModel;
dbo.documentsDataService.getdocuments( vm.selectedRowID(), vm.tableName, function ( data ) {
vm.documents.removeAll();
$.each( data, function ( i, p ) {
vm.documents.push( new vm.Document( p ) );
} )
} )
},
Offer: function ( data ) {
this.id = data.id;
this.offernumber = data.offernumber;
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.archive = data.archive;
},
Comment: function ( data ) {
this.id = data.id;
this.comment_date = data.comment_date;
this.fullname = data.user.fullname;
this.comment = ko.observable( data.comment );
},
Document: function ( data ) {
this.id = data.id;
this.originalname = data.originalname;
this.uploaddate = data.uploaddate;
this.fullname = data.user.fullname;
service.removeOffer( this );
}
};
dbo.offersModel.init();
@@ -26,7 +26,7 @@ dbo.projectsInit = function () {
newProject: function () {
var vm = dbo.projectsModel;
dbo.editProjectModal.newEditProject( false, function () {
dbo.editProjectModal.addProject( false, function () {
vm.refreshProjects();
} );
},
@@ -117,8 +117,8 @@ dbo.projectsInit = function () {
var self = this;
self.id = data.id;
self.projectnumber = data.projectnumber;
self.projectleader = data.projectleader.fullname;
self.customer = data.customer.name;
self.projectleader = data.projectleader ? data.projectleader.fullname : '#NB';
self.customer = data.customer ? data.customer.name : '#NB';
self.startdate = data.startdate;
self.enddate = data.enddate;
self.archive = data.archive;
+47
View File
@@ -0,0 +1,47 @@
/**
* Created by Pensare Software.
* User: Theo Weijmer
* Date: 17/01/2018
* Time: 09:55
*/
dbo.commentsService = {
tableName: 'OFFER',
addComment: function () {
var vm = dbo.offersModel;
dbo.commentsDataService.addComment( vm.selectedRowID(), vm.tableName, function ( commentID ) {
dbo.commentModel.showComment( commentID, function () {
vm.refreshComments();
} )
} );
},
editComment: function () {
var vm = dbo.offersModel;
dbo.commentModel.showComment( this.id, function () {
vm.refreshComments();
} );
},
refreshComments: function () {
var vm = dbo.offersModel;
dbo.commentsDataService.getComments( vm.selectedRowID(), vm.tableName, function ( data ) {
vm.comments.removeAll();
console.log( data );
$.each( data, function ( i, p ) {
vm.comments.push( new vm.Comment( p ) );
} );
} );
},
Comment: function ( data ) {
this.id = data.id;
this.comment_date = data.comment_date;
this.fullname = data.user.fullname;
this.comment = ko.observable( data.comment );
},
}
+78
View File
@@ -0,0 +1,78 @@
/**
* Created by Pensare Software.
* User: Theo Weijmer
* Date: 17/01/2018
* Time: 09:53
*/
dbo.documentService = {
tableName: 'OFFER',
removeFile: function (that) {
var vm = dbo.offersService.vm;
tellMe( {
title : 'verwijderen document',
message : 'weet u zeker dat u hjet document wilt verwijderen, dit kan niet ongedaan worden gemaakt',
notify : true,
noText : 'nee verwijder het document niet',
yesText : 'ja verwijder het document',
modalClass: 'modal-warning'
}, function ( response ) {
console.log( response );
if ( response ) {
dbo.documentsDataService.removeDocument( self.id, function ( data ) {
if ( data.result ) {
tellMe( {
title : 'document verwijderd',
message : 'het document is succesvol verwijderd',
modalClass: 'modal-success'
}, function () {
vm.refreshDocuments();
} );
} else {
tellMe( {
title : 'fout bij verwijderen document',
message : 'het document kan niet worden verwijderd',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
addDocument: function ( data, evt ) {
var vm = dbo.offersModel;
uploadFile( evt.target.files[0], vm.selectedRowID(), vm.tableName, function () {
vm.refreshDocuments();
} );
},
refreshDocuments: function () {
var vm = dbo.offersModel;
dbo.documentsDataService.getdocuments( vm.selectedRowID(), vm.tableName, function ( data ) {
vm.documents.removeAll();
$.each( data, function ( i, p ) {
vm.documents.push( new vm.Document( p ) );
} )
} )
},
downloadDocument: function () {
window.open( 'index.php/projects/documentscontroller/downloaddocument/' + this.id );
},
Document: function ( data ) {
this.id = data.id;
this.originalname = data.originalname;
this.uploaddate = data.uploaddate;
this.fullname = data.user.fullname;
}
}
+112
View File
@@ -0,0 +1,112 @@
/**
* Created by Pensare Software.
* User: Theo Weijmer
* Date: 17/01/2018
* Time: 09:31
*/
dbo.offersService = {
vm: null,
init: function () {
var service = dbo.offersService;
service.refreshOffers();
},
newOffer: function () {
var service = dbo.offersService;
dbo.editOfferModal.newEditOffer( false, function () {
service.refreshOffers();
} );
},
toggleArchive: function () {
var service = dbo.offersService;
var vm = dbo.offersService.vm;
vm.archive( !vm.archive() );
service.refreshOffers();
},
editOffer: function ( that ) {
var offer = that;
dbo.editOfferModal.newEditOffer( offer, function () {
dbo.offersService.refreshOffers();
} );
},
archiveOffer: function ( that ) {
var service = dbo.offersService;
var status = that.archive == 'F' ? 'T' : 'F';
dbo.offerDataService.archiveOffer( that.id, status, function () {
service.refreshOffers();
} );
},
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',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
refreshOffers: function (projectID = false) {
var vm = dbo.offersService.vm;
var self = dbo.offersService;
dbo.offerDataService.getAllOffers( projectID, vm.archive() ? 'T' : 'F', function ( data ) {
vm.offers.removeAll();
$.each( data, function ( i, p ) {
vm.offers.push( new self.Offer( p ) );
} )
} );
},
Offer: function ( data ) {
this.id = data.id;
this.offernumber = data.offernumber;
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.archive = data.archive;
}
};