/** * 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.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; } }; dbo.offersModel.init(); ko.applyBindings( dbo.offersModel, document.getElementById( 'OFFERS' ) ); } }