Files
dbois/public/js/lib/modules/projects/offersModule.js
T
2018-01-10 14:09:34 +01:00

127 lines
4.4 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 = {
offers : ko.observableArray( [] ),
offer : ko.observable(),
archive: ko.observable( false ),
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();
} );
},
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'
} );
}
} );
}
} );
},
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 ) );
} )
} );
},
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;
}
};
dbo.offersModel.init();
ko.applyBindings( dbo.offersModel, document.getElementById( 'OFFERS' ) );
}
}