strat projects

This commit is contained in:
2018-01-15 09:27:58 +01:00
parent 73f2866020
commit 97f1b988bc
13 changed files with 450 additions and 26 deletions
@@ -10,17 +10,24 @@ $( function () {
id : null,
projects : ko.observableArray( [] ),
customers : ko.observableArray( [] ),
users : ko.observableArray( [] ),
startdate : ko.observable(),
acceptance_chance: ko.observable(),
accepteddate : ko.observable(),
rejectdate : ko.observable(),
customer_id : ko.observable(),
project_id : ko.observable(),
offernumber : ko.observable(),
offerleader_id : ko.observable(),
own_revenue : ko.observable(),
other_revenue : ko.observable(),
init: function () {
var vm = dbo.editOfferModal;
dbo.editOfferModal.refreshCustomers();
dbo.editOfferModal.refreshUsers();
},
newEditOffer: function ( offer, callback ) {
@@ -45,6 +52,10 @@ $( function () {
id : vm.id,
project_id : vm.project_id(),
customer_id : vm.customer_id(),
offerleader_id : vm.offerleader_id(),
offernumber : vm.offernumber(),
own_revenue : vm.own_revenue(),
other_revenue : vm.other_revenue(),
startdate : vm.startdate(),
acceptance_chance: vm.acceptance_chance(),
accepteddate : vm.accepteddate(),
@@ -87,10 +98,14 @@ $( function () {
vm.id = offer.id || 0;
vm.customer_id( offer.customer_id || null );
vm.project_id( offer.project_id || null );
vm.offerleader_id( offer.offerleader_id || null );
vm.offernumber( offer.offernumber || null );
vm.startdate( offer.startdate || null );
vm.acceptance_chance( offer.acceptance_chance || 0 );
vm.accepteddate( offer.accepteddate || null );
vm.rejectdate( offer.rejectdate || null );
vm.own_revenue( offer.own_revenue || 0 );
vm.other_revenue( offer.other_revenue || 0 )
},
showOfferModal: function () {
@@ -113,6 +128,14 @@ $( function () {
} );
},
addUser:function(){
var vm = dbo.editOfferModal;
dbo.editUserModal.newEditUser( false, function () {
vm.refreshUsers();
} );
},
refreshCustomers: function () {
var vm = dbo.editOfferModal;
dbo.customerDataService.getAllCustomers( 'F', function ( data ) {
@@ -120,6 +143,13 @@ $( function () {
} );
},
refreshUsers: function () {
var vm = dbo.editOfferModal;
dbo.userDataService.getAllUsers( 'F', function ( data ) {
vm.users( data );
} );
},
resetDate: function ( field ) {
var vm = dbo.editOfferModal;
@@ -142,7 +172,9 @@ $( function () {
}, dbo.editOfferModal );
dbo.editOfferModal.formValid = ko.pureComputed( function () {
if ( !this.offernumber() ) return false;
if ( !this.customer_id() ) return false;
if ( !this.offerleader_id() ) return false;
if ( !this.offerDateValid() ) return false;
return true;
@@ -0,0 +1,14 @@
/**
* Created by Pensare Software.
* Offer: Theo Weijmer
* Date: 25/12/2017
* Time: 17:32
*/
$( function () {
dbo.editOfferModal = {
};
ko.applyBindings( dbo.editOfferModal, document.getElementById( 'project-modal' ) );
} );
@@ -207,6 +207,7 @@ dbo.offersInit = function () {
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;
@@ -0,0 +1,129 @@
/**
* Created by Pensare Software.
* User: Theo Weijmer
* Date: 05/01/2018
* Time: 15:54
*/
dbo.projectsInit = function () {
if ( dbo.projectsModel !== undefined ) {
} else {
dbo.projectsModel = {
projects : ko.observableArray( [] ),
project : ko.observable(),
archive : ko.observable( false ),
selectedRowID: ko.observable(),
init: function () {
var vm = dbo.projectsModel;
vm.refreshProjects();
},
newProject: function () {
var vm = dbo.projectsModel;
dbo.editProjectModal.newEditProject( false, function () {
vm.refreshProjects();
} );
},
toggleArchive: function () {
var vm = dbo.projectsModel;
vm.archive( !vm.archive() );
vm.refreshProjects();
},
editProject: function () {
var project = this;
var vm = dbo.projectsModel;
dbo.editProjectModal.newEditProject( project, function () {
vm.refreshProjects();
} );
},
selectProject: function () {
var vm = dbo.projectsModel;
vm.selectedRowID( this.id );
},
archiveProject: function () {
var vm = dbo.projectsModel;
var self = this;
var status = self.archive == 'F' ? 'T' : 'F';
dbo.projectDataService.archiveProject( self.id, status, function () {
vm.refreshProjects();
} );
},
removeProject: function () {
var vm = dbo.projectsModel;
var self = this;
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',
modalClass: 'modal-danger'
} );
}
} );
}
} );
},
refreshProjects: function () {
var vm = dbo.projectsModel;
dbo.projectDataService.getAllProjects( vm.archive() ? 'T' : 'F', function ( data ) {
vm.projects.removeAll();
$.each( data, function ( i, p ) {
vm.projects.push( new vm.Project( p ) );
} )
} );
},
Project: function ( data ) {
this.id = data.id;
this.projectnumber = data.projectnumber;
this.projectleader = data.projectleader.fullname;
this.customer = data.customer.name;
this.startdate = data.startdate;
this.enddate = data.enddate;
this.archive = data.archive;
},
};
dbo.projectsModel.init();
ko.applyBindings( dbo.projectsModel, document.getElementById( 'PROJECTS' ) );
}
}