/** * 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' } ); } } ); } } ); }, directionOrderOffers: function ( field ) { var vm = dbo.offersModel; var self = dbo.offersService; if ( field == vm.order() ) { vm.direction( !vm.direction() ); } else { vm.direction( true ); } vm.order( field ); self.refreshOffers(); }, refreshOffers: function () { var vm = dbo.offersService.vm; var self = dbo.offersService; var offersObject = { projectID: vm.projectID, archive : vm.archive() ? 'T' : 'F', search : vm.search(), order : vm.order(), direction: vm.direction() ? 'ASC' : 'DESC' } dbo.offerDataService.getAllOffers( offersObject, function ( data ) { vm.offers.removeAll(); vm.totalOwnRevenue( 0 ); vm.totalChanceOwnRevenue( 0 ); $.each( data, function ( i, p ) { vm.offers.push( new self.Offer( p ) ); } ); } ); }, Offer: function ( data ) { var vm = dbo.offersModel; 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.deadline = data.deadline ? dbo.helpers.mysql2date( data.deadline ) : null 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.other_revenue = data.other_revenue; this.own_revenue = data.own_revenue; this.chanceOwnRevenue = Math.round( (Number( data.own_revenue ) * data.acceptance_chance) / 100 ); this.costs = data.costs; this.archive = data.archive; vm.totalOwnRevenue( Number( vm.totalOwnRevenue() ) + Number( this.own_revenue ) ); vm.totalChanceOwnRevenue( Number( vm.totalChanceOwnRevenue() ) + Number( this.chanceOwnRevenue ) ); } };