/** * Created by Pensare Software. * User: Theo Weijmer * Date: 17/01/2018 * Time: 09:31 */ dbo.offersService = { vm: null, newOffer: function (projectID=false, customerID=false) { var service = dbo.offersService; dbo.editOfferModal.newEditOffer( false, projectID, customerID, true, function () { service.refreshOffers(); } ); }, toggleArchive: function () { var service = dbo.offersService; var vm = dbo.offersService.vm; vm.archive( !vm.archive() ); service.refreshOffers(); }, editOffer: function ( that, projectID=false, custormerID=false, hasProject=false ) { var offer = that; dbo.editOfferModal.newEditOffer( offer, projectID, custormerID, hasProject, 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, verwijder eerst het gerelateerde project', modalClass: 'modal-danger' } ); } } ); } } ); }, refreshOffers: function () { var vm = dbo.offersService.vm; var self = dbo.offersService; dbo.offerDataService.getAllOffers( vm.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.offername = data.offername; this.offerleader_id = data.offerleader_id; this.project_id = data.project_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.own_revenue = data.own_revenue; this.other_revenue = data.other_revenue; this.costs = data.costs; this.archive = data.archive; } };