242 lines
8.8 KiB
JavaScript
242 lines
8.8 KiB
JavaScript
/**
|
|
* Created by Pensare Software.
|
|
* User: Theo Weijmer
|
|
* Date: 05/01/2018
|
|
* Time: 15:54
|
|
*/
|
|
|
|
|
|
dbo.offersInit = function () {
|
|
|
|
if ( dbo.offersModel !== undefined ) {
|
|
|
|
} else {
|
|
dbo.offersModel = {
|
|
|
|
tableName : 'OFFER',
|
|
offers : ko.observableArray( [] ),
|
|
offer : ko.observable(),
|
|
archive : ko.observable( false ),
|
|
comments : ko.observableArray( [] ),
|
|
documents : ko.observableArray( [] ),
|
|
selectedRowID: ko.observable(),
|
|
|
|
init: function () {
|
|
var vm = dbo.offersModel;
|
|
|
|
vm.refreshOffers();
|
|
},
|
|
|
|
newOffer: function () {
|
|
var vm = dbo.offersModel;
|
|
dbo.editOfferModal.newEditOffer( false, function () {
|
|
vm.refreshOffers();
|
|
} );
|
|
},
|
|
|
|
toggleArchive: function () {
|
|
var vm = dbo.offersModel;
|
|
|
|
vm.archive( !vm.archive() );
|
|
|
|
vm.refreshOffers();
|
|
},
|
|
|
|
editOffer: function () {
|
|
var offer = this;
|
|
var 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 );
|
|
},
|
|
|
|
archiveOffer: function () {
|
|
var vm = dbo.offersModel;
|
|
var self = this;
|
|
|
|
var status = self.archive == 'F' ? 'T' : 'F';
|
|
|
|
dbo.offerDataService.archiveOffer( self.id, status, function () {
|
|
vm.refreshOffers();
|
|
} );
|
|
},
|
|
|
|
removeOffer: function () {
|
|
var vm = dbo.offersModel;
|
|
var self = this;
|
|
|
|
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.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;
|
|
}
|
|
|
|
|
|
};
|
|
|
|
dbo.offersModel.init();
|
|
|
|
ko.applyBindings( dbo.offersModel, document.getElementById( 'OFFERS' ) );
|
|
}
|
|
} |